以下、図面を参照しながら、本発明のいくつかの実施形態について詳細に説明する。なお、複数の図面において対応する要素には同一の符号を付す。
図1は、例示的な情報表示システム100を示す図である。情報表示システム100は、例えば、表示装置151間での表示画面の表示領域を結合し、オブジェクトを表示するシステムであってよい。情報表示システム100は、例えば、サーバ101と、ディスプレイユニット(DU)102とを含む。
サーバ101は、例えば、パーソナルコンピュータ(PC)、及びノートPCなどのコンピュータ(情報処理装置)であってよい。サーバ101は、例えば、1又は複数のディスプレイユニット102に接続し、接続したディスプレイユニット102による情報の表示を制御してよい。例えば、図1では、サーバ101にはDU−1からDU−nの複数のディスプレイユニット102が接続されている。サーバ101は、接続されたDU−1からDU−nへの情報の表示を制御してよい。
ディスプレイユニット102は、例えば、パーソナルコンピュータ(PC)、ノートPCなどのコンピュータである。ディスプレイユニット102は、例えば、表示装置151、入力装置152、及びセンサ153を含む。なお、図1では、一部のディスプレイユニット102に表示装置151、入力装置152、及びセンサ153を示したが、他のディスプレイユニット102も、表示装置151、入力装置152、及びセンサ153を備えていてよい。表示装置151は、例えば、ディスプレイ及びプロジェクタなどの情報を表示する装置である。入力装置152は、例えば、表示装置151が表示する画面に、オブジェクト202の移動、向きやサイズの変更、削除、及び編集などの操作を入力する装置である。入力装置152は、例えば、ディスプレイなどの表示装置151と一体型に備えられたタッチセンサであってよく、或いは、赤外線ペンなどで描かれた光点の軌跡の入力を受け付けるカメラなどの撮像装置であってもよい。センサ153は、例えば、表示装置151の表示画面の周辺にいるユーザを検出するための装置である。センサ153は、例えば、表示画面とその周囲を画角に収めたカメラなどの撮像装置であってよく、或いは、深度センサなどであってもよい。一例では、入力装置152及びセンサ153の両方に、撮像装置が用いられてもよい。
なお、ディスプレイユニット102は、表示装置151、入力装置152、及びセンサ153を一体型で含んでいなくてもよく、表示装置151、入力装置152、及びセンサ153と接続されていればよい。ディスプレイユニット102は、サーバ101の指示に従って表示装置151に情報を表示し、また、入力装置152やセンサ153を介して入力された情報をサーバ101に通知してよい。
そして、サーバ101は、制御対象である複数のディスプレイユニット102の表示装置151の表示画面の表示領域を結合して表示する制御を実行してよい。なお、表示画面を結合するとは、例えば、或る表示画面201と、別の表示画面201とで表示画面を結合することである。例えば、表示画面201を結合するとは、或る表示画面201の一辺を超えてオブジェクトを移動すると、別の表示画面201の一辺からそのオブジェクトが現れるような制御であってよい。
ここで、例えば、或る表示画面201を別の表示画面201と結合する場合に、複数の表示装置151の表示画面に跨ってオブジェクトが表示されてしまい、操作しづらかったり、見にくかったりすることがある。
図2は、複数の表示装置151の表示画面201に跨ってオブジェクト202を表示する場合を例示する図である。図2(a)に示す様に、例えば、複数の表示画面201の表示領域が結合されている。図2には、第1のディスプレイユニット102の表示装置151が表示する表示画面1と、第2のディスプレイユニット102の表示装置151が表示する表示画面2とが示されている。なお、第1のディスプレイユニット102の表示画面1と、第2のディスプレイユニット102の表示画面2とは表示領域が結合されている。例えば、図2では、表示画面1の右辺と、表示画面2の左辺とが結合されており、表示画面1の右辺からはみ出したオブジェクト202の領域が、表示画面2の左辺から表示されている。そして、例えば、図2(a)に示すように、オブジェクト202が、結合している複数の表示画面の境界を横断して表示される場合、ユーザにとってオブジェクト202が操作しづらかったり、見にくかったりする。また、例えば、図2(b)のように、表示領域が接続されている複数の表示画面201が、物理的に離れた位置にある場合、例えば、オブジェクト202の操作のしづらさや、見にくさは、より問題になりやすい。
そこで、以下で述べる実施形態では、複数の表示装置151の表示画面201を結合してオブジェクト202を表示する場合に、制御部301は、オブジェクト202が複数の表示装置151の表示画面201に跨って表示されることを抑制するように制御する。そのため、複数の表示装置151の表示画面201を結合してオブジェクト202を表示する場合のユーザビリティーが向上する。
図3は、実施形態に係るサーバ101のブロック構成を例示する図である。サーバ101は、例えば、制御部301、記憶部302、及び通信部303を含んでいる。記憶部302は、例えば、後述する例えば、オブジェクト情報1400、表示態様情報1500、速度閾値情報1600,1700,1800などの情報を記憶している。通信部303は、例えば、制御部301の指示に従ってディスプレイユニット102を制御する。これらの各部の詳細及び記憶部302に格納されている情報の詳細については後述する。
図4は、実施形態に係るオブジェクト202が複数の表示装置151の表示画面201に跨って表示されることを抑制する境界での移動制御の一例を説明する図である。図4(a)は、表示領域が結合された2つの表示画面201を横断してユーザがオブジェクト202をドラッグした場合を例示する図である。なお、2つの表示画面201の表示領域を結合している境界には、制御領域210が設定されている。制御領域210は、例えば、境界から所定の距離の範囲の表示画面201上に設定されてよい。また、丸印250は、オブジェクト202が操作中(例えば、タッチ中)であることを示し、オブジェクト202はドラッグされている。そして、図4(a)に示す様に、オブジェクト202がドラッグされた場合には、制御部301は、オブジェクト202が境界を越えて表示画面1から表示画面2に移動するように制御してよい。一方、例えば、図4(b)に示す様に、ユーザがオブジェクト202を境界に向けてフリックして移動させた場合、制御部301は、制御領域210に入ったオブジェクト202が境界を越えて移動しないように制御してよい。この様に、オブジェクト202を境界に向けてフリックして移動させた場合に、オブジェクト202が境界を越えないように制御領域で制御することで、例えば、オブジェクト202が境界上に留まって見づらかったり、操作しづらかったりすることを軽減できる。
図5は、実施形態に係るオブジェクト202が複数の表示装置151の表示画面201に跨って表示されることを抑制する境界での移動制御の一例を説明する図である。図5では、2つの表示画面201の表示領域が結合された境界に向けてユーザがオブジェクト202をフリックして移動させた場合を例示している。なお、フリックによるオブジェクト202の移動速度は、例えば、以下の式1で設定されて、慣性移動してよい。
ここで、tは、フリック直後からの経過時間である。係数βは、0<β<1の定数である。また、V0は、フリックによるオブジェクト202の移動の初速度であり、以下の式2で表される値であってよい。
そして、制御部301は、例えば、オブジェクト202の移動速度を、所定の速度閾値と比較することで、オブジェクト202の境界への進入を制御してよい。
例えば、オブジェクト202が境界に進入した際のオブジェクト202の移動速度が、所定の閾値よりも小さい場合、図5(a)に示すように、制御部301は、制御領域210に入ったオブジェクト202が境界を越えて別の表示画面へと進入することを阻止する。一方、オブジェクト202の移動速度が、所定の閾値以上の場合、図5(b)に示すように、制御部301は、制御領域210に入ったオブジェクト202を境界を越えて別の表示画面に進入させてよい。
例えば、以上のように、オブジェクト202の移動速度に応じて、フリック操作によるオブジェクト202の移動時のオブジェクト202の別の表示画面への移動が制御されてよい。
図6は、実施形態に係るオブジェクト202毎の移動制御を例示する図である。図6には、オブジェクトAとオブジェクトBの2つのオブジェクト202が示されている。オブジェクトAとオブジェクトBには、それぞれ異なる速度閾値が設定されている。例えば、図6では、オブジェクトAには、オブジェクトBよりも高い速度閾値が設定されているものとする。そして、例えば、図6に示すように、オブジェクトA及びオブジェクトBを、境界へ向けてユーザがフリックし同じ速度で移動させたとする。この場合に、制御領域210に入ったオブジェクト202の境界での移動速度がオブジェクトAに対して設定された速度閾値未満であるとする。この場合、制御部301は、図6(a)に示すように、オブジェクトAが境界を越えて結合された別の表示画面201に移動することなく、境界の手前で停止するように移動を制御する。一方、オブジェクト202の境界での移動速度がオブジェクトBに対して設定された閾値以上である場合、制御部301は、図6(b)に示すように、境界を越えて結合された別の表示画面201にオブジェクトBが移動するように制御してよい。
この様に、オブジェクト202毎に異なる速度閾値を設定することで、データ量の大きいオブジェクト202の移動を制限したり、或いは、秘匿性の高いオブジェクト202の移動を制限したりすることが可能である。
また、制御部301は、表示領域が結合されている2つの表示画面201の物理的な距離が離れている場合や表示装置151の通信の応答時間が高い場合、物理的な距離が近い場合や応答時間が短い場合と比較して、速度閾値を高く設定してよい。
図7は、実施形態に係る表示装置151の位置に応じた制御を例示する図である。例えば、図7(a)に示す様に、表示領域が結合された2つの表示装置151が、接するくらい近い距離に並べられていたとする。この場合、オブジェクト202が境界に位置したとしても、ユーザがそれほど見づらく感じない可能性もある。そのため、2つの表示装置151が、表示領域を結合する境界が近接するように並べられている場合、制御部301は、制御領域におけるオブジェクト202の移動の制御を実行しない。或いは、制御部301は、2つの表示装置151が、表示領域を結合する境界が近接するように並べられている場合、境界制御におけるオブジェクト202の速度閾値を低く設定してよい。一方、2つの表示装置151が、表示領域を結合する境界が離れた位置に配置されている場合、オブジェクト202が境界に位置すると、そのオブジェクト202はユーザにとって見づらかったり、操作し難くかったりすることがある。そのため、2つの表示装置151が、表示領域を結合する境界が離れた位置になるように配置されている場合、制御部301は、境界におけるオブジェクト202の移動の制御を実行してよい。なお、ネットワーク上の距離が遠い場合に、物理的に離れた位置に配置されていると推定し、処理を実行してもよい。
また、制御部301は、表示領域が結合されている2つの表示画面201の一方から他方へのオブジェクト202の移動のし易さと、逆方向の他方から一方へのオブジェクト202の移動のし易さとが異なるように速度閾値を設定してもよい。
図8は、実施形態に係る表示領域が結合されている2つの表示画面201におけるオブジェクト202の移動方向に応じた制御を例示する図である。図8では、表示画面1から表示画面2にオブジェクト202を移動させる際に用いる第1の速度閾値が、表示画面2から表示画面1にオブジェクト202を移動させる際に用いる第2の速度閾値よりも低く設定されている。そして、例えば、図8(a)では、ユーザは表示画面1から表示画面2に向けてオブジェクト202をフリックして移動させている。この場合に、図8(a)の例では、制御部301は、例えば、オブジェクト202の境界での移動速度が、第1の速度閾値よりも大きいため、オブジェクト202を表示画面2へと移動する。一方、例えば、図8(b)では、ユーザは表示画面2から表示画面1に向けてオブジェクト202をフリックし、境界に向けて移動させている。この場合に、例えば、オブジェクト202の境界での移動速度が、第2の速度閾値よりも小さいため、制御部301は、オブジェクト202は表示画面1へと移動せずに表示画面2にとどめるように制御する。
この様に、表示領域が結合された複数の表示画面間での移動方向に応じて移動のし易さを異ならせることにより、ユーザビリティーを向上させることが可能である。例えば、以上の例において、表示画面1が、複数人で共有して利用している表示画面であり、表示画面2が自身のみが利用している表示画面であるとする。この場合、ユーザは、共有の表示画面1からオブジェクト202を容易に取り込むことが可能でありつつ、自身のみが利用する表示画面2からオブジェクト202がちょっとした操作で共有の表示画面1に移動してしまい、情報が漏洩してしまうことを抑制できる。
図9は、実施形態に係る表示領域が結合される複数のディスプレイユニット102の表示画面201間でのオブジェクト202の移動に関する制御の一例を説明する図である。図9では、2つの表示画面201の表示領域が結合された境界を横断してユーザがオブジェクト202をドラッグして移動させた場合を例示している。この場合に、図9(a)に示す様に、オブジェクト202が制御領域210に進入していない状態では、制御部301は、移動係数k=1として、オブジェクト202をドラッグするカーソルの移動量に移動係数k(ここで、k=1)をかける。そして、制御部301は、得られた移動量でオブジェクト202を移動させてよい。一方、図9(b)に示す様に、オブジェクト202が制御領域210に進入した場合には、オブジェクト202をドラッグするカーソルの移動量に移動係数k=1−α(ここで、0<α<1)を掛け、移動量を低下させてオブジェクト202を移動させてよい。
なお、制御領域にオブジェクト202が進入しているか否かの判定は、一例では、オブジェクト202の重心と、境界との距離dと、オブジェクト202の幅wに基づいて判定されてよい。wは、一例ではオブジェクト202の長手方向の幅であってよい。そして、制御部301は、d≧w/2の場合に、オブジェクト202が境界に進入していないと判定してよい。一方、制御部301は、d<w/2の場合に、オブジェクト202が境界に進入していると判定してよい。
また、移動係数kには、以上のように、制御領域にオブジェクト202が進入しているか否かに応じた定数を用いてもよいが、オブジェクト202が境界に近づくほどkの値が小さくなるように移動係数を動的に定めてもよい。一例では、制御領域にオブジェクト202が進入している場合に用いる移動係数として、k=1−α(1−2d/w)を用いてもよい。
そして、制御領域210内では移動係数の値を小さくしてオブジェクト202を移動させることで、ユーザは、オブジェクト202の表示画面間での移動の制御が行われていることを容易に知ることができる。
図10は、実施形態に係る制御領域210における表示制御を例示する図である。例えば、制御部301は、オブジェクト202が制御領域210に進入した場合に、オブジェクト202の表示態様を変更してよい。例えば、制御部301は、制御領域210に進入したオブジェクト202の大きさ、色、透明度などを変更してよい。それにより、ユーザは、オブジェクト202の表示画面間での移動の制御が行われていることを知ることができる。なお、表示態様は、オブジェクト202と、境界との距離dに応じて変更されてもよい。図10では、オブジェクト202が境界に近づくにつれサイズが小さくなるように、表示態様が変更されている。
図11は、実施形態に係る制御領域210上へのオブジェクト202の移動の制御を説明する図である。図11(a)は、例えば、ユーザがオブジェクト202をドラッグして制御領域210に移動した状態を示す図であり、その状態でユーザがオブジェクト202から手を放してドロップしたとする。この場合、図11(b)に示す様に、制御部301は、オブジェクト202が、制御領域210から外れるように制御してよい。例えば、制御部301は、以下の式3に従って、制御領域210に位置するオブジェクト202を移動させてよい。
V(t)=V0・βt ・・・式3
ここで、tは、オブジェクト202がドロップされてからの時間である。V0は、初速度である。係数βは、1<βの定数である。なお、ベクトルV0の方向は、境界からオブジェクト202の重心への方向に定められてよく、大きさは、所定の大きさであってよい。
このように、オブジェクト202が制御領域210上でドロップされた場合、オブジェクト202は制御領域210に形成された山を滑り降りるように移動してよい。そのため、制御領域210内にオブジェクト202が配置されることを抑制でき、複数の表示装置151の表示画面201に跨ってオブジェクト202が表示されてしまうことを抑制できる。
図12は、実施形態に係る制御領域210上でのオブジェクト202を停止する制御を例示する図である。例えば、オブジェクト202を制御領域210に配置しないように制御されている状態であっても、ユーザが制御領域210にオブジェクト202を配置したいと望むことがある。そこで、制御部301は、オブジェクト202に対して所定の操作が入力された場合に、そのオブジェクト202を制御領域210に配置するように制御してよい。例えば、図12(a)に示す例では、ユーザはオブジェクト202を制御領域210上にドラッグし、その状態で所定時間停止させた後でドロップしている。この場合に、制御部301は、ドラッグされたオブジェクト202をその制御領域210上の位置に固定してよい(図12(c)。また、オブジェクト202が制御領域210上に固定された状態で、ユーザがいずれかの表示画面でオブジェクト202をタップすると、制御部301は、図12(d)に示すように、タップされた側の表示画面へとオブジェクト202を移動させてよい。
図13は、実施形態に係る表示画面201の表示領域が結合されている境界におけるオブジェクト202の移動制御の設定を例示する図である。例えば、図13(a)に示すように、ユーザが、表示領域が結合されている2つの表示画面201にタッチし、両方の画面において境界に向けてスワイプするジェスチャを入力したとする。この場合、制御部301は、上記に例示したいくつかの境界におけるオブジェクト202の移動制御を実行してよい。一方、図13(b)に示すように、ユーザが、表示領域が結合されている2つの表示画面にタッチし、両方の画面において境界から離れる方向に向けてスワイプするジェスチャを入力したとする。この場合、制御部301は、上記に例示したいくつかの境界におけるオブジェクト202の移動制御を解除してよい。なお、制御部301は、ジェスチャの移動量の大きさが大きいほど、速度閾値や移動係数の定数αの値を大きくするなど、ジェスチャの移動量の大きさに基づいて、速度閾値や移動係数の定数αの値を設定してもよい。
以下、図4から図13を参照して述べた、いくつかの実施形態に係る表示画面201の境界における制御に関して更なる詳細を例示する。
図14は、実施形態に係るオブジェクト情報1400を例示する図である。オブジェクト情報1400には、例えば、表示画面201上に表示されているオブジェクト202についての情報を含むエントリが登録されている。エントリは、例えば、表示画面、オブジェクト、位置、及びサイズの情報を含んでよい。オブジェクト情報1400の表示画面は、例えば、エントリと対応するオブジェクト202が属している表示画面201を示す情報であってよく、例えば、オブジェクト202の所定の点(例えば、重心)が配置されている表示画面を識別する情報であってよい。オブジェクト情報1400のオブジェクトは、エントリと対応するオブジェクト202を識別するための情報である。位置は、エントリと対応するオブジェクト202の表示画面201上での位置を示す情報であり、例えば、オブジェクト202の中心などのオブジェクト202内の所定の点を配置する表示画面201上での座標であってよい。サイズは、オブジェクト202の表示サイズを示す情報であり、例えば、オブジェクト202の縦幅と横幅を指定する情報が登録されていてよい。そして、制御部301は、オブジェクト情報1400に基づいて、表示画面201上にオブジェクト202を配置して表示することができる。
図15は、実施形態に表示態様情報1500を例示する図である。オブジェクト202と、境界との距離に応じた表示態様が含まれており、オブジェクト202の表示態様として大きさ、色、及び透明度が含まれている。なお、オブジェクト202と、境界との距離には、例えば、オブジェクト202の重心と、境界との距離を用いることができる。図15の例では、オブジェクト202と、境界との距離がA未満で近い場合、制御部301が、オブジェクト202の大きさを90%と小さくし、オブジェクト202を黄色く変化させ、オブジェクト202を50%まで透過させて表示する例が示されている。また、オブジェクト202と、境界との距離がA以上B未満の中程度である場合、制御部301は、大きさと色は変更しないが、透明度を75%まで透過させる例が示されている。オブジェクト202と、境界との距離がB以上で遠い場合、制御部301は、オブジェクト202の大きさを120%と大きくし、オブジェクト202を赤色に変化させ、オブジェクト202の透明度は透過させない例が示されている。なお、オブジェクト202と、境界との距離が近いとは、例えば、距離が5cm未満などの所定の距離未満あってよく。また、中程度の距離とは、例えば、距離が5cm以上10cm未満などの所定の範囲の距離であってよい。距離が遠いとは、例えば、距離が10cm以上などの所定の距離以上の距離であってよい。また、図15に示す表示態様は、例示であり、大きさ、色、及び透明度はその他の値であってもよいし、一部の表示態様は含まれていなくてもよいし、更なる表示態様を含んでいてもよい。
図16は、実施形態に係る速度閾値情報1600を例示する図である。速度閾値情報1600には、オブジェクト202を識別するオブジェクト情報と、速度閾値とが対応づけられたエントリが登録されている。なお、図16の例では、オブジェクト情報として、オブジェクト202を生成しているアプリケーションを示す情報が登録されている。別の実施形態では、オブジェクト情報は、オブジェクト毎に設定されてもよいし、その他のグループ単位で設定されてもよい。また、速度閾値には、エントリのオブジェクト情報で識別されるオブジェクト202に対して設定された速度閾値が登録されている。速度閾値として示した第1の値、第2の値、及び第3の値は、それぞれ異なる値であってよく、例えば、第1の値<第3の値<第2の値の大小関係であってよい。
図17は、実施形態に係る距離に応じた速度閾値情報1700を例示する図である。図17(a)の速度閾値情報1700には、境界と、距離と、速度閾値とが対応付けられたエントリが登録されている。なお、図17(a)では、境界及び距離として、表示領域が結合されている2つの表示装置151と対応付けて物理的な距離が登録されている。また、速度閾値には、エントリの距離に対して設定された速度閾値が登録されている。例えば、表示領域が結合された2つの表示画面201の物理的な距離が遠い場合、図7(b)に示すように、オブジェクト202が境界を越えて移動すると、ユーザがオブジェクト202を見づらかったり、操作し難くかったりすることがある。そのため、例えば、表示領域が結合された2つの表示画面201の物理的な距離が所定の距離よりも遠い場合、物理的な距離が所定の距離以下の場合と比較して速度閾値を高く設定することで、オブジェクト202が別の表示装置151に移動するのを阻んでよい。それにより、離れた位置にある表示画面201にオブジェクト202が移動するのを抑制できるため、ユーザビリティーが向上する。
また、図17(b)では、距離として、表示装置151のそれぞれに対する通信の応答時間が登録されている。また、速度閾値には、エントリの距離に対して設定された速度閾値が登録されている。そして、図17(b)の例では、通信の応答時間が所定の閾値以上の場合の速度閾値を、通信の応答時間が所定の閾値未満の場合の速度閾値よりも高く設定している。例えば、応答時間が所定の閾値となっている表示装置151の表示画面201では、オブジェクト202の描画が十分な速度で行われないことがある。その場合に、応答時間が遅く所定の閾値以上となっている表示装置151で多くのオブジェクト202を表示するより、応答時間が所定の閾値未満で短い表示装置151にオブジェクト202を表示させた方が、通信の負荷が少なく描画が十分な速度で行われる可能性が高い。そのため、通信の応答時間が所定の閾値以上の場合の速度閾値を、通信の応答時間が所定の閾値未満の場合の速度閾値よりも高く設定し、応答速度の遅い表示装置151の表示画面201にオブジェクト202が移動し難くしている。それにより、通信の遅い表示装置151の表示画面201に表示するオブジェクト202が減り、ユーザビリティーが向上する。
図18は、実施形態に係る移動方向に応じた速度閾値情報1800を例示する図である。速度閾値情報1800には、進入方向と、速度閾値とを対応付けるエントリが登録されている。進入方向は、オブジェクト202に対して入力された移動操作で、オブジェクト202が境界に進入する方向を示す情報である。例えば、図18の例では、表示画面1から表示画面2に移動する場合と、表示画面2から表示画面1に移動する場合の2つのエントリが例示されている。また、速度閾値は、エントリの進入方向でオブジェクト202が境界に進入した場合に用いる速度閾値が登録されている。速度閾値は、進入方向に応じて異なる値に設定されてよい。図18の例では、表示画面1から表示画面2に向かう進入方向でオブジェクト202が境界に進入した場合の速度閾値よりも、表示画面2から表示画面1に向かう進入方向でオブジェクト202が境界に進入した場合の速度閾値の方が大きい値に設定されている。この場合、オブジェクト202は、例えば、表示画面2には移動し易く、また、表示画面1へは移動し難い。
図19は、第1の実施形態に係る移動制御処理の動作フローを例示する図である。例えば、オブジェクト202に対して操作が入力されると、サーバ101は、図19の移動制御処理を開始してよい。
ステップ1901(以降、ステップを“S”と記載し、例えば、S1901と表記する)において制御部301は、オブジェクト202が操作中(ドラッグ中)か否かを判定する。オブジェクト202が操作中である場合(S1901がYes)、フローはS1903に進み、制御部301は、オブジェクト202の境界への進入を許可し、フローはS1901に戻る。そのため、ユーザはオブジェクト202が現在表示されている表示画面201から、境界を越えて別の表示画面201へと移動することが可能である。
一方、オブジェクト202が操作中でない場合(S1901がNo)、フローはS1902に進み、制御部301は、オブジェクト202の境界への進入を不可にし、本動作フローは終了する。そのため、ユーザがオブジェクト202を境界に向けてフリックし、移動したとしても、オブジェクト202は境界を越えず、表示画面201内に留まる。
以上で述べた様に、第1の実施形態に係る移動制御処理によれば、オブジェクト202をフリック操作した際に、オブジェクト202が複数の表示画面201に跨って表示されてしまうことを抑止できる。一方で、ユーザは、ドラッグ操作によりオブジェクト202を別の表示画面に移動することができる。
図20は、第2の実施形態に係る移動制御処理の動作フローを例示する図である。例えば、オブジェクト202に対して操作が入力されると、サーバ101は、図20の移動制御処理を開始してよい。
S2001において制御部301は、オブジェクト202が境界に設けられた制御領域210に進入しているか否かを判定する。オブジェクト202が制御領域210に進入していない場合(S2001がNo)、フローはS2014に進む。S2014において制御部301は、オブジェクト202の操作が完了したか否かを判定する。オブジェクト202の操作が完了していない場合(S2014がNo)、フローはS2001に戻る。一方、オブジェクト202の操作が完了している場合(S2014がYes)、フローはS2015に進み、制御部301は、操作に従ってオブジェクト202を移動し、本動作フローは終了する。
一方、オブジェクト202が制御領域210に進入している場合(S2001がYes)、フローはS2002に進む。S2002において制御部301は、制御領域210に進入してからの経過時間を取得する。
S2003において制御部301は、制御領域210に進入したオブジェクト202が操作中(例えば、ドラッグ中)か否かを判定する。制御領域210に進入したオブジェクト202が操作されていない場合(S2003がNo)、フローはS2004に進む。
S2004において制御部301は、オブジェクト202が制御領域210に進入してから所定時間以上操作されていたか否かを判定する。オブジェクト202が制御領域210に進入してから所定時間以上操作されていた場合(S2004がYes)、フローはS2016に進み、制御部301は、オブジェクト202を制御領域210上の現在位置に留まるように制御し、本動作フローは終了する。
一方、オブジェクト202が制御領域210に進入してから所定時間以上の操作がされていない場合(S2004がNo)、フローはS2005に進む。S2005において制御部301は、速度閾値を取得する。なお、制御部301は、例えば、図16の速度閾値情報1600、図17の速度閾値情報1700、又は図18の速度閾値情報1800など、実施形態に応じていずれかの速度閾値情報を参照し、速度閾値を取得してよい。例えば、速度閾値情報1600を用いる場合、制御部301は、操作されたオブジェクト202と対応するオブジェクト情報を含むエントリから、速度閾値を取得してよい。例えば、アプリケーションごとなど、オブジェクト毎に異なる速度閾値を用いることで、例えば、データ量の多いオブジェクト202は別な表示装置151の表示画面201への移動がしにくくなるように制御したりすることが可能である。それにより、通信コストを削減することが可能である。
また、例えば、図17(a)の速度閾値情報1700を用いる場合、制御部301は、操作が入力されオブジェクト202を表示する表示装置151と、結合された表示装置151との間の距離に応じた速度閾値を取得してよい。それにより、例えば、表示装置151の距離が離れている場合に、オブジェクト202の移動を抑制することができ、ユーザにとって見づらくなる状況などでオブジェクト202が他の表示装置151の表示画面に移動することを抑制できる。また、例えば、図17(b)の速度閾値情報1700を用いる場合、制御部301は、結合された表示装置151の通信の応答時間に応じた速度閾値を取得してよい。それにより、例えば、応答時間が長く通信に時間のかかる表示装置151にオブジェクト202を移動させてしまうことを抑制できる。
更に、例えば、図18の速度閾値情報1800を用いる場合、制御部301は、操作が入力されオブジェクト202を表示する表示装置151から、表示領域が結合された別の表示装置151への進入方向から速度閾値を取得してもよい。進入方向に応じて速度閾値を変えることで、例えば、秘匿性の高い情報などの重要な情報を、共有されている表示装置151に送ってしまうことを抑制しつつ、共有されている表示装置151からの情報の取り込みは容易にするなどの制御が可能である。
S2006において制御部301は、オブジェクト202の移動速度が速度閾値以上か否かを判定する。移動速度が閾値未満である場合(S2006がNo)、フローはS2010に進む。S2010において制御部301は、オブジェクト202が境界を越えないように移動軌跡を算出し、フローはS2009に進む。一方、S2006において移動速度が速度閾値以上である場合(S2006がYes)、フローはS2007に進む。
S2007において制御部301は、オブジェクト202と境界との間の距離と対応する表示態様を、表示態様情報1500から取得し、取得した表示態様でオブジェクト202を表示するように制御する。例えば、制御部301は、オブジェクト202と境界との間の距離が5cm以下で近い場合、オブジェクト202の大きさを90%にし、色を黄色にし、透明度を50%に設定してよい。
S2008において制御部301は、オブジェクト202の移動軌跡を算出する。なお、この場合、S2006において移動速度が速度閾値以上の値を有しているため、オブジェクト202は、境界を越えて別の表示装置151の表示画面201へと移動してよい。S2009において制御部301は、オブジェクト202を算出した移動軌跡に従って移動し、本動作フローは終了する。
また、S2003において制御部301は、制御領域210に進入したオブジェクト202が操作されている場合(S2003がYes)、フローはS2011に進む。S2011において制御部301は、オブジェクト202と、境界との間の距離を算出する。一例では、制御部301は、オブジェクト202の重心と、境界との距離を、オブジェクト202と、境界との間の距離として用いてよい。
S2012において制御部301は、距離に応じてオブジェクト202の移動係数を取得する。例えば、制御部301は、図9の説明で述べた様にして移動係数kを取得してよい。S2013において制御部301は、入力されたドラッグ操作の移動量と移動係数に基づいてオブジェクト202の移動量を制御する。そのため、ユーザは、オブジェクト202をドラッグ操作で境界を越えて移動させようとする場合に、入力したドラッグ操作の移動量に対するオブジェクト202の移動の遅れなどから、境界での移動制御が行われていることを知ることができる。S2013の処理を完了すると、フローはS2001に戻る。
以上で述べた様に、実施形態に係る移動制御処理によれば、制御部301は、速度閾値により、オブジェクト202が境界を越えて移動するか否かを制御することができる。そのため、例えば、オブジェクト202が境界に跨って配置されてしまうことを抑制できる。そのため、オブジェクト202の表示や操作の際のユーザビリティーが向上する。また、速度閾値は、例えば、オブジェクト毎に、距離や応答時間に応じて、又は、進入方向に応じてなど、様々な条件に対応付けて設定することができる。
また、制御部301は、オブジェクト202をドラッグ操作により動かす場合にも、制御領域210上では移動量が小さくなるように制御するため、ユーザは境界での移動制御が行われていることを知ることができる。
また、制御部301は、オブジェクト202が制御領域210上で所定時間以上にわたってオブジェクト202が停止された場合に、そのオブジェクト202を制御領域210上で停止させるように制御する。そのため、ユーザは、実施形態に係る境界での移動制御が実行されている状況でも、オブジェクト202を制御領域210上に配置することができる。
図21は、実施形態に係る設置条件に基づく速度閾値情報1700の生成処理を例示する図である。制御部301は、例えば、速度閾値情報1700の生成処理の実行指示が入力されると、図21の動作フローを開始してよい。
S2101において制御部301は、速度閾値情報1700にエントリを登録する対象の2つの表示装置151間の距離を取得する。制御部301は、例えば、2つの表示装置151間の物理的な距離の入力をユーザから受け付けてよいし、或いは、別の実施形態では、制御部301は、2つの表示装置151のそれぞれの通信応答時間を取得してよい。
S2102において制御部301は、取得した距離に基づいて速度閾値を設定する。例えば、制御部301は、2つの表示装置151の物理的な距離が所定の距離よりも離れている場合の速度閾値を、距離が所定の距離以内の近い場合の速度閾値よりも高い値に設定してよい。また、例えば、制御部301は、境界を越えて移動する先の表示装置151の通信応答時間が所定の閾値よりも長い場合の速度閾値を、通信の応答時間が所定の閾値以下の場合の速度閾値よりも高い値に設定してよい。
S2103において制御部301は、設定した速度閾値を、S2101で距離を取得した対象の表示装置151と対応付けたエントリを、速度閾値情報1700に登録し、本動作フローは終了してよい。
例えば、以上のように、制御部301は、物理的な距離や、通信の応答時間に応じて速度閾値を設定することができる。
図22は、実施形態に係る境界における移動制御の実行設定処理を例示する図である。移動制御の実行設定処理は、例えば、サーバ101がディスプレイユニット102の制御を開始すると、開始してよい。
S2201において制御部301は、或る境界で表示領域が結合されている複数の表示装置の全てにおいて、ユーザが指を接触させるなどして操作を入力しているか否かを判定する。操作が入力されていない場合(S2201がNo)、フローはS2201の処理を繰り返す。一方、複数の表示装置151の全てにおいて操作が入力されている場合(S2201がYes)、フローはS2202に進む。
S2202において制御部301は、S2201でユーザが指を接触させるなどして操作を入力していた全ての表示装置151において入力が解除されたか否かを判定する。全ての表示装置151において入力が解除されていない場合(S2202がNo)、フローはS2202の処理を繰り返す。一方、S2202において全ての表示装置151において入力が解除された場合(S2202がYes)、フローはS2203に進む。
S2203において制御部301は、S2201からS2202までの処理で入力された操作の移動量と移動方向とを取得する。S2204において制御部301は、入力された操作の移動方向が、境界の方向であるか否かを判定する。入力された操作の移動方向が境界の方向でない場合(S2204がNo)、フローはS2210に進む。S2210において制御部301は、境界における移動制御を実行しないように無効化し、フローはS2201に戻る。
一方、入力された操作の移動方向が境界の方向である場合(S2204がYes)、フローはS2205に進む。S2205において制御部301は、境界の移動制御を有効化する。S2206において制御部301は、S2203で取得した移動量に基づいて、速度閾値を決定する。例えば、制御部301は、図13で述べた様に、移動量に基づいて速度閾値を決定してよい。S2207において制御部301は、決定した速度閾値を記憶部302に記憶する。
S2208において制御部301は、移動量に基づいて移動係数の定数αを算出する。例えば、制御部301は、図13で述べた様に、移動量に基づいて移動係数の定数αを設定し、その値を用いて移動係数を決定してよい。S2209において制御部301は、決定した移動係数を記憶部302に記憶し、フローはS2201に戻る。
以上で述べた様に、実施形態によれば、ユーザは表示画面201にジェスチャを入力することで、実施形態に係る境界における移動制御の実行の有無を切り換えることができる。そのため、ユーザは状況に応じて容易に移動制御の実行の有無を切り換えることができる。また、入力された操作の移動量に応じて、例えば、速度閾値を決定することで、ユーザは、オブジェクト202の移動制御を行う強さを容易に設定することができる。また、同様に、入力された操作の移動量に応じて、例えば、移動係数を決定することで、ドラッグ時のオブジェクト202の移動制御を行う強さを容易に設定することができる。
また、上述の実施形態では、例えば図7に示すように、制御部301が、物理的な距離や、ネットワーク上の距離に応じて速度閾値を設定する例を述べたが、実施形態はこれに限定されるものではなく、移動係数が設定されてもよい。
また、上述の図22の例では、オブジェクト202が制御領域210に進入してからの時間に基づいてオブジェクト202を制御領域210上に固定しているが、実施形態はこれに限定されるものではない。例えば、別の実施形態では、ドラッグでの移動後、位置を停止してからオブジェクト202をドロップするまでの時間に基づいて、オブジェクト202を制御領域210上に固定してもよい。
また、上述の図7及び図8では、距離や移動方向により速度閾値を異ならせる例を述べているが、別の実施形態では、移動係数を距離や移動方向により異ならせてもよい。
図23は、実施形態に係るサーバ101を実現するためのコンピュータ(情報処理装置)2300のハードウェア構成を例示する図である。図23のサーバ101を実現するためのハードウェア構成は、例えば、プロセッサ2301、メモリ2302、記憶装置2303、読取装置2304、通信インタフェース2306、及び入出力インタフェース2307を備える。なお、プロセッサ2301、メモリ2302、記憶装置2303、読取装置2304、通信インタフェース2306、入出力インタフェース2307は、例えば、バス2308を介して互いに接続されている。
プロセッサ2301は、例えば、シングルプロセッサであっても、マルチプロセッサやマルチコアであってもよい。プロセッサ2301は、メモリ2302を利用して例えば上述の動作フローの手順を記述したプログラムを実行することにより、上述した制御部301の一部または全部の機能を提供する。
メモリ2302は、例えば半導体メモリであり、RAM領域及びROM領域を含んでいてよい。記憶装置2303は、例えばハードディスク、フラッシュメモリ等の半導体メモリ、又は外部記憶装置である。なお、RAMは、Random Access Memoryの略称である。また、ROMは、Read Only Memoryの略称である。
読取装置2304は、プロセッサ2301の指示に従って着脱可能記憶媒体2305にアクセスする。着脱可能記憶媒体2305は、例えば、半導体デバイス(USBメモリ等)、磁気的作用により情報が入出力される媒体(磁気ディスク等)、光学的作用により情報が入出力される媒体(CD−ROM、DVD等)などにより実現される。なお、USBは、Universal Serial Busの略称である。CDは、Compact Discの略称である。DVDは、Digital Versatile Diskの略称である。
上述の記憶部302は、例えばメモリ2302、記憶装置2303、及び着脱可能記憶媒体2305を含んでいる。例えば、サーバ101の記憶装置2303には、例えば、オブジェクト情報1400、表示態様情報1500、速度閾値情報1600,1700,1800が格納されている。
通信インタフェース2306は、プロセッサ2301の指示に従ってネットワーク105や他の装置とデータを送受信する。例えば、プロセッサ2301は、通信インタフェース2306を制御して、ディスプレイユニット102に接続してよい。通信インタフェース2306は、例えば、通信部303の一例である。入出力インタフェース2307は、例えば、入力装置及び出力装置との間のインタフェースであってよい。入力装置は、例えばユーザからの指示を受け付けるキーボードやマウスなどのデバイスである。出力装置は、例えばディスプレイなどの表示装置、及びスピーカなどの音声装置である。
図24は、実施形態に係るディスプレイユニット102を実現するためのコンピュータ2400のハードウェア構成を例示する図である。図24のディスプレイユニット102を実現するためのハードウェア構成は、例えば、プロセッサ2401、メモリ2402、記憶装置2403、読取装置2404、通信インタフェース2406、表示装置151、入力装置152、及びセンサ153を備える。なお、プロセッサ2401、メモリ2402、記憶装置2403、読取装置2404、通信インタフェース2406、表示装置151、入力装置152、及びセンサ153は、例えば、バス2408を介して互いに接続されている。
プロセッサ2401は、例えば、シングルプロセッサであっても、マルチプロセッサやマルチコアであってもよい。プロセッサ2401は、メモリ2402を利用してプログラムを実行することにより、サーバ101の指示に従って表示装置151への表示を制御したり、入力装置152及びセンサ153からの入力をサーバ101に通知したりしてよい。
メモリ2402は、例えば半導体メモリであり、RAM領域及びROM領域を含んでいてよい。記憶装置2403は、例えばハードディスク、フラッシュメモリ等の半導体メモリ、又は外部記憶装置である。
読取装置2404は、プロセッサ2401の指示に従って着脱可能記憶媒体2405にアクセスする。着脱可能記憶媒体2405は、例えば、半導体デバイス(USBメモリ等)、磁気的作用により情報が入出力される媒体(磁気ディスク等)、光学的作用により情報が入出力される媒体(CD−ROM、DVD等)などにより実現される。
通信インタフェース2406は、プロセッサ2401の指示に従ってサーバ101や他の装置とデータを送受信する。例えば、プロセッサ2401は、通信インタフェース2406を制御して、サーバ101から表示装置151に表示するデータを受信し、表示装置151に表示してよい。また、プロセッサ2401は、通信インタフェース2406を制御して、入力装置152やセンサ153に入力された情報をサーバ101へと通知してよい。上述のように、表示装置151は、例えば、ディスプレイ及びプロジェクタなどの情報を表示する装置である。入力装置152は、例えば、ディスプレイなどの表示装置151と一体型に備えられたタッチセンサであってよく、或いは、赤外線ペンのなどで描かれた光点の軌跡の入力を受け付けるカメラなどの撮像装置であってもよい。センサ153は、例えば、表示画面とその周囲を画角に収めたカメラなどの撮像装置であってよく、或いは、深度センサなどであってもよい。一例では、入力装置152として用いられる撮像装置が、センサ153として用いられてもよく、この場合、センサ153は含まれていなくてもよい。
また、以上で述べた実施形態に係るプログラムは、例えば、下記の形態でサーバ101及びディスプレイユニット102に提供される。
(1)記憶装置2303,2403に予め記憶されている。
(2)着脱可能記憶媒体2305,2405により提供される。
(3)プログラムサーバなどのサーバから通信インタフェース2306,2406を介して提供される。
なお、図23及び図24を参照して述べたサーバ101及びディスプレイユニット102を実現するためのハードウェア構成は、例示であり、実施形態はこれに限定されるものではない。例えば、上述の各部の一部または全部の機能がFPGA及びSoCなどによるハードウェアとして実装されてもよい。なお、FPGAは、Field Programmable Gate Arrayの略称である。SoCは、System-on-a-chipの略称である。
また、図1のシステム構成は例示であり、実施形態はこれに限定されるものではない。例えば、別の実施形態では、サーバ101は、ディスプレイユニット102を介さず、例えば、図25(a)に示すように、直接、複数の表示装置151と接続されてもよい。或いは、別の実施形態では、図25(b)に示すように、複数のタブレット端末の1台がサーバ101として動作し、他のタブレット端末はディスプレイユニット102として動作して、実施形態にかかる処理が実行されてもよい。
以上において、いくつかの実施形態が説明される。しかしながら、実施形態は上記の実施形態に限定されるものではなく、上述の実施形態の各種変形形態及び代替形態を包含するものとして理解されるべきである。例えば、各種実施形態は、その趣旨及び範囲を逸脱しない範囲で構成要素を変形して具体化できることが理解されよう。また、前述した実施形態に開示されている複数の構成要素を適宜組み合わせることにより、種々の実施形態が実施され得ることが理解されよう。更には、実施形態に示される全構成要素からいくつかの構成要素を削除して又は置換して、或いは実施形態に示される構成要素にいくつかの構成要素を追加して種々の実施形態が実施され得ることが当業者には理解されよう。