以下、図面を参照しながら、本発明の第1の実施例について説明する。
図1は、本発明の実施形態における情報処理システムのシステム構成の一例を示す図である。情報処理システムは、情報処理装置101と投影撮像装置102(表示部)を含む。情報処理装置101は、投影撮像装置102と通信可能に接続されており、更にディスプレイ410と入力デバイス409とも通信可能に接続されている。図1では、これらの装置は有線で接続されているが、無線であってもよい。尚、図1のシステム上に接続される各種端末の構成は一例であり、用途や目的に応じて様々な構成例がある。
情報処理装置101は、オペレーティングシステムを搭載する汎用的な装置である。情報処理装置101は、情報処理装置101に接続された各種デバイスに対して各種動作を実行するよう指示を行う。
投影撮像装置102は、デジタルカメラと赤外線センサとプロジェクタとを備える装置である。情報処理装置101からの指示に応じてプロジェクタで投影をし、投影された机上等の投影面をデジタルカメラで撮像し、また投影面上でユーザの手の動きや物体の位置を認識する。
投影撮像装置102の外部構造及び内部構造の概要の一例について、図2を用いて説明する。
図2は、投影撮像装置102の正面図と右側面図である。内部構造の隠れ線は破線で表現している。投影撮像装置102は、デジタルカメラ421と赤外線センサ422とプロジェクタ423とを格納する収納部203を備え、収納部203は底面201と左側面202aと右側面202bとで左右から挟みこんで固定している。
また、上面204が左側面202aと右側面202bとの上部に設置され、上面204の下側にはプロジェクタ423から照射される光を反射するための反射鏡207を備える。すなわち、プロジェクタ423は第1の開口部205を通してこの反射鏡207に向けて投影できるよう、設置されている。デジタルカメラ421も同様に、反射鏡207で反射した投影面を撮像するため、デジタルカメラ421は第2の開口部206を通して反射鏡207に向けて設置されている。
また赤外線センサ422は、例えば赤外線を用いた深度センサである。これはプロジェクタ423が投影した投影面上におけるユーザの手や紙文書等の位置や動きを特定するために、赤外線センサ422からこれらの物体までの距離を算出する。赤外線センサ422は、近赤外線のドットパターンを現実空間に投影し、このドットの形や間隔を取得することで物体までの距離を算出する。または、赤外線光を投影し、赤外線センサ422が備えるカメラによって反射した赤外線光を読み取り、赤外線光が往復した時間を算出することで距離を算出する方式であってもよい。現実空間における物体の位置や動きを取得することができれば、赤外線センサ422の距離の算出方式はどのような方式であってもよいし、赤外線センサ422以外のセンサを用いてもよい。また、赤外線センサ422もデジタルカメラ421と同様に、第2の開口部206を通して反射鏡207に向けて設置されている。この反射鏡207に向けて赤外線を照射する。
投影撮像装置102は以上のように大きく3つの装置を内包しており、これらがそれぞれ情報処理装置101と通信可能に接続されている。本実施形態においては、情報処理装置101と投影撮像装置102とが異なる筐体であるが、同一の筐体であってもよい。すなわち、投影撮像装置102に更に情報処理装置101を内包してもよい。
次に図3を用いて、本実施形態における投影撮像装置102とユーザとの位置関係について説明する。投影撮像装置102は、机上303に設置される。本実施形態では机を挟んで二人のユーザがいる。銀行窓口で商品説明を行うテラー301と、商品説明を受ける顧客302である。
テラー301は、入力デバイス409を操作して情報処理装置101に画面の表示指示を行うと、情報処理装置101からプロジェクタ423に対して当該画面の投影指示が送信される。プロジェクタ423はこれを受けると反射鏡207に向かって左右を反転させた画面を投影する。これは、反射鏡207で反射することにより、投影面304に投影される像が左右反転してしまうからである。こうすると、投影面304に指示した画面が投影される。画面を左右に反転させる処理は、情報処理装置101が行ってもよいし、プロジェクタ423が行ってもよい。また投影面304は、投影される光が見やすいよう模様のない白い面であることが望ましい。
プロジェクタ423から照射された光が反射鏡207で図3の破線の矢印で示すような方向に反射されると、その光が投影面304に投影される。この光によって表現される画面を見て、テラー301が顧客302に商品説明を行う。本実施形態では、このようにテラー301と顧客302とが机を挟んで位置しており、それぞれが投影された画面を見ながら操作していく形態を前提として説明を行う。
図4は、情報処理装置101及び投影撮像装置102のハードウェア構成の一例を示す図である。
CPU401は、システムバス404に接続される各デバイスやコントローラを統括的に制御する。
また、ROM402あるいは外部メモリ411には、CPU401の制御プログラムであるBIOS(Basic Input / OutputSystem)やオペレーティングシステムプログラム(以下、OSという。)や、情報処理装置101の実行する機能を実現するために必要な各種プログラム等が記憶されている。RAM403は、CPU401の主メモリ、ワークエリア等として機能する。
CPU401は、処理の実行に際して必要なプログラム等をRAM403にロードして、プログラムを実行することで各種動作を実現するものである。
また、汎用入出力コントローラ405は、キーボードやマウス等の入力デバイス409、更には投影撮像装置102のデジタルカメラ421や赤外線センサ422との入出力を制御する。これらは、USB(Universal Serial Bus)等のバス規格により接続される。
ビデオコントローラ406は、ディスプレイ410や投影撮像装置102のプロジェクタ423等の表示装置や投影装置への表示を制御する。ディスプレイ410は例えばCRTや液晶ディスプレイである。更にビデオコントローラ406は、ディスプレイ410と投影撮像装置102のプロジェクタ423とそれぞれに対して同じ画面または異なる画面を表示及び投影指示する。これらは、いわゆるミラーリングやマルチモニタが可能である。
メモリコントローラ407は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスクやフレキシブルディスク或いはPCMCIAカードスロットにアダプタを介して接続されるカード型メモリ等の外部メモリ411へのアクセスを制御する。
通信I/Fコントローラ408は、ネットワークを介して、外部機器と接続及び通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いたインターネット通信等が可能である。
尚、CPU401は、例えばRAM403内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ410上での表示や投影撮像装置102のプロジェクタ423での投影を可能としている。また、CPU401は、ディスプレイ410上の不図示のマウスカーソル等でのユーザ指示を可能とする。更にCPU401は、投影面304に投影された画面をユーザの手でタッチすることによっても、ユーザ指示を可能とする。すなわち、赤外線センサ422で検知した現実空間におけるユーザの手の座標位置に応じて、画面のボタン等が押下されたのか否かを検知し、CPU401に動作を実行させる。
本発明の情報処理装置101が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ411(記憶手段の一例である)に記録されており、必要に応じてRAM403にロードされることによりCPU401によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ411に格納されている。
次に、情報処理装置101の機能構成の一例について図5を用いて説明する。尚、図5の情報処理装置101及び携帯端末103の機能構成は一例であり、用途や目的に応じて様々な構成例がある。
情報処理装置101は機能部として、記憶部501と、表示制御部502と、投影制御部503と、撮像制御部504と、センサ制御部505と、座標変換部506と、操作検知部507と、通信制御部508と、アノテーション付与部509と、アノテーション回転判定部510と、アノテーション表示方向制御部511とを備える。
記憶部501は、後述する各種テーブルの情報や各種画面を構成する情報を記憶するための機能部である。必要に応じて、情報の追加・更新・削除を行う。
表示制御部502は、情報処理装置101と通信可能に接続されたディスプレイ410の表示を制御するための機能部である。表示制御部502から画面等の表示指示がなされると、ビデオコントローラ406を介してディスプレイ410に表示指示が送信される。そして、ディスプレイ410はこの指示を受信すると、指示に従って画面等を表示する。
投影制御部503は、情報処理装置101と通信可能に接続されたプロジェクタ423の投影を制御するための機能部である(投影手段の一例である)。投影制御部503から画面等の投影指示がなされると、表示制御部502と同様にビデオコントローラ406を介してプロジェクタ423に投影指示が送信される。そして、プロジェクタ423はこの指示を受信すると、指示に従って画面等を現実空間に投影する。
撮像制御部504は、情報処理装置101と通信可能に接続されたデジタルカメラ421の撮像を制御するための機能部である。撮像制御部504から投影面304の撮像指示が出されると、汎用入出力コントローラ405を介してデジタルカメラ421に撮像指示がなされる。デジタルカメラ421はこの指示を受信すると、撮像を行い、撮像により生成された画像データを情報処理装置101に送信する。撮像制御部504は、これを受け取り、画像データを左右反転させた上で記憶部501が外部メモリ411等に記憶する。前述した通り、デジタルカメラ421は反射鏡207に写った像を撮像するため左右が反転している。これを補正するために、記憶部501で画像データを記憶する前に、撮像制御部504がこの画像データを左右反転する。
センサ制御部505は、情報処理装置101と通信可能に接続された赤外線センサ422から送信される、投影面304における現実空間の情報(物体の有無や位置等)を受信するための機能部である。赤外線センサ422が検出した現実空間の情報は、赤外線センサ422から情報処理装置101に対して逐一送信される。センサ制御部505はこれを受信し、後述する座標変換部506に渡す。
座標変換部506は、センサ制御部505が受信した現実空間の情報に含まれる、投影面304にある物体の位置を示す座標値を変換するための機能部である。座標変換部506は、この座標値を投影面304に投影された画面における座標値に変換する。すなわち、赤外線センサ422で検知した座標値が、情報処理装置101が管理する画面のどの座標値に該当するのかを、この座標変換部506を用いて特定する。尚、座標変換の方法は従来技術を用いるため詳細な説明は省略する。
操作検知部507は、ユーザからの操作を検知するための機能部である。情報処理装置101に接続された入力デバイス409を通じて送信されるユーザからの指示を検知したり、投影面304に投影された画面でユーザが行った指示を検知したりする。後者の指示の検知は、投影面304において検知した物体の座標値を座標変換部506で変換することにより画面上のどのボタンが押下されたのかを検知したり、書類が置かれることにより書類の取込が指示されたのかを検知したりする。
通信制御部508は、情報処理装置101と携帯端末103との通信を制御するための機能部である。通信制御部508は、情報処理装置101と携帯端末103との情報の送受信を制御する。また、通信制御部508は、情報処理装置101が属するネットワークに接続された携帯端末103のIPアドレス等(以下、接続先情報という。)を取得することが可能である。
アノテーション付与部509は、アノテーション907を新規に生成し、投影面304に付与する機能部である。アノテーション907にユーザから入力を受け付けたテキストを流し込むことで任意のアノテーションを生成することが可能である。
アノテーション回転判定部510は、ドラッグ動作などで移動を受け付けたアノテーションの表示する向きを決定するための機能部である。画面上の顧客領域か否かを判定し、顧客領域と判定した場合には向きを回転させると判定する。
アノテーション表示方向制御部511は、アノテーション907の表示方向を変更するよう制御する機能部である。なお、アノテーション907の表示方向の変更は、アノテーション907そのものの表示方向を変更するものとするが、アノテーション907に含まれるテキストの表示方向だけを変更する方法でも本発明を実施可能である。
以上で図5に示す機能構成図の説明を終了する。
次に、メニュー画面700において操作を受け付ける処理の流れについて、図6に示すフローチャートを用いて説明する。
まず、ステップS601では、情報処理装置101のCPU401は、テラー301からの指示に応じて外部メモリ411等に記憶された投影アプリケーションを起動する。投影アプリケーションは、後述するステップS602乃至ステップS606の各処理を実行するためのアプリケーションである。投影アプリケーションを動作させることにより、投影面304に商品説明のための各種画面をプロジェクタ423により投影できるようになる。
ステップS602では、情報処理装置101のCPU401は、図7に示すようなメニュー画面700をディスプレイ410に表示する。メニュー画面700は、商品説明ボタン701と終了ボタン702とを備えている。商品説明ボタン701は、顧客302に対する商品説明を開始するためのボタンである。終了ボタン702は、投影アプリケーションを終了するためのボタンである。
ステップS603では、情報処理装置101のCPU401は、商品説明ボタン701の押下を検知したか否かを判定する。すなわち、入力デバイス409を介してディスプレイ410上で商品説明ボタン701の押下を受け付けたか否かを判定する。商品説明ボタン701の押下を検知したと判定した場合には、ステップS604に処理を進める。商品説明ボタン701の押下を検知していない、または商品説明ボタン701以外のボタンの押下を検知したと判定した場合には、ステップS605に処理を進める。
ステップS604では、情報処理装置101のCPU401は、商品説明処理を実行する。商品説明処理の詳細は、後述する図8に示す。商品説明処理が終了したら、ステップS603に処理を戻す。
ステップS605では、情報処理装置101のCPU401は、終了ボタン702の押下を検知したか否かを判定する。すなわち、入力デバイス409を介してディスプレイ410上で終了ボタン702の押下を受け付けたか否かを判定する。終了ボタン702の押下を検知したと判定した場合には、ステップS606に処理を進める。終了ボタン702の押下を検知していないと判定した場合には、ステップS603に処理を戻す。
ステップS606では、情報処理装置101のCPU401は、ステップS601で起動した投影アプリケーションを終了する。
次に、第1の実施例における商品説明処理の流れについて、図8に示すフローチャートを用いて説明する。
ステップS801では、情報処理装置101のCPU401は、図9に示すような商品説明画面900をプロジェクタ423で投影させて、投影面304に表示する。このとき、ミラーリング機能を用いて、ディスプレイ410にも同じ画面が表示されてもよいし、マルチモニタ機能を用いて、ディスプレイ410には画面を操作するためのマニュアルや説明すべきポイントを表示させてもよい。以下、プロジェクタ423から投影面304に画面を投影する場合についても同様である。
商品説明画面900は、テラー領域901と顧客領域902とを備える。テラー領域901は、テラー301が情報の閲覧や操作を行う領域であり、顧客領域902は顧客302が情報の閲覧や操作を行う領域である。それぞれ領域に表示する情報は、当該領域に対応するユーザの方向に向けて配置されている。テラー領域901には、サムネイル画像領域903と、アノテーションボタン904と、メニューボタン905とが配置されている。サムネイル画像領域903は、顧客領域902に表示する文書データのサムネイル画像を表示する領域である。情報処理装置101は、図10に示す文書データ管理テーブル1000のサムネイル画像保存場所1003が示す保存場所からサムネイル画像を取得し、表示位置1004が示す位置にこれを表示する。サムネイル画像領域903でサムネイル画像の選択を検知すると、選択されたサムネイル画像に対応する文書データを取得し、これを顧客領域902の文書データ領域906に表示する。アノテーションボタン904は、アノテーション907を生成するためのボタンであり、アノテーションボタン904の押下を受け付けると、アノテーション907をテラー向きに表示させる。メニューボタン905は、商品説明画面900の投影を終了し、ディスプレイ410にメニュー画面700を表示させるためのボタンである。
図10の文書データ管理テーブル1000は、投影面304に表示する文書データを管理するためのデータテーブルである。文書データ管理テーブル1000は、文書ID1001と、文書データ保存場所1002と、サムネイル画像保存場所1003と、表示位置1004とを備える。文書ID1001は、文書データごとに割り振られる一意な識別情報を示す。文書データ保存場所1002は、文書データの保存場所を示す。サムネイル画像保存場所1003は、文書データに対応するサムネイル画像の保存場所を示す。表示位置1004は、サムネイル画像を表示する座標を示す。
ステップS802では、情報処理装置101のCPU401は、サムネイル画像領域903に表示されたサムネイル画像に対する選択を、センサ制御部505の機能により検知したか否かを判定する。すなわち、投影面304に投影された商品説明画面900において、サムネイル画像に対するタッチ操作を検知したか否かを判定する。サムネイル画像に対する選択を検知したと判定した場合には、ステップS803に処理を進める。サムネイル画像に対する選択を検知していないと判定した場合には、ステップS805に処理を進める。
ステップS803では、情報処理装置101のCPU401は、選択されたサムネイル画像に対応する文書データを、文書データ管理テーブル1000を用いて取得する。より具体的には、情報処理装置101は選択されたサムネイル画像に対応するレコードを文書データ管理テーブル1000で特定し、当該レコードの文書データ保存場所1002が示す保存場所に保存されている文書データを取得する。
ステップS804では、情報処理装置101のCPU401は、ステップS803で取得した文書データを顧客領域902の文書データ領域906に表示し、これが表示された商品説明画面900を投影面304に投影する。これにより、顧客302は文書データを閲覧することができるようになる。ステップS804の処理が終わったら、ステップS802に処理を戻す。
ステップS805では、情報処理装置101のCPU401は、商品説明画面900が備えるアノテーションボタン904の押下を、センサ制御部505の機能により検知したか否かを判定する。すなわち、投影面304に投影された商品説明画面900において、アノテーションボタン904に対するタッチ操作を検知したか否かを判定する。アノテーションボタン904に対する押下を検知したと判定した場合には、ステップS806に処理を進める。アノテーションボタン904に対する押下を検知していないと判定した場合には、ステップS808に処理を進める。
ステップS806では、情報処理装置101のCPU401は、アノテーション907をテラー領域901に表示する(アノテーション付与手段の一例を示すステップである)。表示されるアノテーション907は、デフォルトアノテーションテーブル2100を基に表示する。図21に示すデフォルトアノテーションテーブル2100は、デフォルト表示位置2101と方向フラグ2102を格納している。デフォルト表示位置2101は、アノテーションを表示する位置を2点の座標で示しており、この2点からなる矩形を表示する。方向フラグ2102は、アノテーション907の表示する方向を示している。「0」はテラーの向きであり、「1」が顧客の向きを示している。
ステップS806で表示するアノテーション907は方向フラグ2102に基づいてテラー向きでデフォルト表示位置2101が示す位置に表示する。アノテーション907はテキストを入力デバイス(キーボード)409などにより入力可能なアノテーションであり、ユーザのドラッグ動作などの指示に応じて商品説明画面900上を移動することが可能である。生成されたアノテーション907に関する情報は、図13に示すアノテーションテーブル1300に格納されている。
アノテーションテーブル1300には、アノテーションID1301、表示位置1302、テキスト内容1303、方向フラグ1304が格納されている。アノテーションID1301は、アノテーション907を一意に識別するためのIDである。表示位置1302は、アノテーション907を表示する位置を示す情報である。2点の座標からなる矩形をアノテーション907の表示領域とする。テキスト内容1303は、ユーザからの入力を受け付けたアノテーション907として表示されるテキストを格納する。方向フラグ1304はアノテーションの表示方向を示すフラグである。方向フラグ1304が、「0」であれば、テラーの方向であり、「1」であれば顧客の方向として規定されている。
ステップS807では、情報処理装置101のCPU401は、アノテーション907に対するテキストの入力を受け付ける。テキストの入力は、入力デバイス409によって受け付ける。なお、テキストの入力は投影によるソフトウェアキーボードによる入力やマイクを通した音声入力であっても構わない。入力を受け付けたテキストデータは、テキスト内容1303に格納する。
ステップS808では、情報処理装置101のCPU401は、アノテーション907に対してドラッグ動作を受け付けたか否かを判定する。アノテーション907の領域に対するドラッグ動作をセンサ制御部505の機能により検知したか否かを判定する。ドラッグ動作を受け付けたと判定した場合は処理をステップS809に進め、ドラッグ動作を受け付けないと判定した場合は、処理をステップS810に進める。
ステップS809では、情報処理装置101のCPU401は、アノテーション907を移動する操作であるアノテーション移動処理(移動受付手段の一例を示すステップである)を行う。アノテーション移動処理は図11のフローチャートを用いて詳細に説明する。
ステップS810では、情報処理装置101のCPU401は、商品説明画面900が備えるメニューボタン905の押下を、センサ制御部505の機能により検知したか否かを判定する。すなわち、投影面304に投影された商品説明画面900において、メニューボタン905に対するタッチ操作を検知したか否かを判定する。メニューボタン905に対する押下を検知したと判定した場合には、ステップS806に処理を進める。メニューボタン905に対する押下を検知していないと判定した場合には、ステップS802に処理を戻す。
ステップS811では、情報処理装置101のCPU401は、投影している商品説明画面900の投影を終了するようプロジェクタ423に指示し、ディスプレイ410にメニュー画面700を表示する。そして、商品説明処理を終了する。
以上で、図8に示す商品説明処理の説明を終了する。
次に、第1の実施例における図8に示すアノテーション移動処理について、図11のフローチャートを用いて説明を行う。
ステップS1101では、情報処理装置101のCPU401は、外部メモリ411に記憶されたアノテーションテーブル1300を参照する。
ステップS1102では、情報処理装置101のCPU401は、ステップS1101で参照したアノテーションテーブル1300の表示位置1302とユーザからの移動指示(ドラッグ動作)を受け付けた位置の座標とに基づいて、移動指示を受け付けたアノテーション907のアノテーションID1301を特定する。
ステップS1103からステップS1105までは、ステップS1102でアノテーションID1301を特定したアノテーション907のドラッグ動作が終了する(すなわち、ドロップ動作が行われる)までループする。なお、ドラッグ動作中はアノテーション907の動きとタッチ操作をする指の動きとが同期する。具体的には、ステップS1102でアノテーションID1301が特定されたアノテーション907の表示位置1302が示す座標と、ドラッグ動作により投影面304上でタッチされている位置の座標との位置関係を保つようにアノテーション907の表示位置1302を変化させて移動することで同期を行う。
ステップS1103では、情報処理装置101のCPU401は、ステップS1102で特定したアノテーションID1301に対応する表示位置1302が示す矩形の中心点が、図14に示すアノテーション回転領域テーブル1400のアノテーション回転領域1401が示す領域にあるか否かを判定する(判定手段の一例を示すステップである)。なお、本実施例では、アノテーション907がアノテーション回転領域1401の示す領域にあるか否かの判定を表示位置1302が示す矩形の中心点としたが、表示位置1302が示す矩形の外枠の一部がアノテーション回転領域1401の示す領域にあるか否かを判定するようにしてもよい。ステップS1102で特定したアノテーションID1301に対応する表示位置1302が示す矩形の中心点が、図14に示すアノテーション回転領域テーブル1400のアノテーション回転領域1401が示す領域にあると判定した場合は処理をステップS1104に進め、ステップS1102で特定したアノテーションID1301に対応する表示位置1302が示す矩形の中心点が、図14に示すアノテーション回転領域テーブル1400のアノテーション回転領域1401が示す領域にないと判定した場合は処理をステップS1105に進める。
アノテーション回転領域テーブル1400にはアノテーション回転領域1401が格納されている。アノテーション回転領域1401(変更エリア)は、アノテーション907を回転させる領域の矩形を示す2点の座標をそれぞれ格納している。アノテーション907がアノテーション回転領域1401にある場合には、アノテーション907を顧客方向に回転すべく、アノテーションの中心点を基準に反転(180度回転)して、表示方向を切り替える。つまり本実施例では、アノテーション回転領域1401内にあるアノテーションは顧客向きで表示をし、それ以外のテラー領域901やアノテーション回転領域1401ではない顧客領域902にあるアノテーションはテラー向きで表示をする。
ステップS1104では、情報処理装置101のCPU401は、アノテーション907がアノテーション回転領域1401にあると判定したので、アノテーションを顧客向きになるようにアノテーションの中心点を基準に反転(180度回転)して、回転させることで表示の向きを変更する(表示向き変更手段の一例を示すステップである)。具体的には、アノテーションテーブル1300の方向フラグ1304を「1」とし、アノテーションの中心点を基準に反転(180度回転)して、アノテーションの向きを顧客側に変更する。
具体的に、図12を用いて説明する。図12はアノテーション表示画面1200の一例を示す模式図である。テラーが、テラー領域901にあるアノテーション907を顧客領域902の文書データ領域906(本実施例ではアノテーション回転領域1401の領域を文書データ領域906と領域を同じくする)までドラッグ動作を行うと、アノテーション回転領域1401の文書データ領域906を境目にしてアノテーション907の顧客方向への回転(回転動作1201)がなされる。回転したアノテーション907は、顧客向きアノテーション1202となる。
これにより、テラーはアノテーション907に対して回転処理を行うことなくアノテーション回転領域1401に顧客向きアノテーション1202を表示させることが可能になる。尚、回転ではなく、顧客方向に向いているアノテーションを別途用意し、これと差し替えてもよい。
ステップS1105では、情報処理装置101のCPU401は、アノテーション907がアノテーション回転領域1401の示す領域にないと判定されたので、アノテーション907をテラー向きになるようにアノテーションの中心点を基準に回転させる(表示向き変更手段の一例を示すステップである)。具体的には、アノテーションテーブル1300の方向フラグ1304を「0」とし、アノテーションの中心点を基準に反転(180度回転)して、アノテーションの向きをテラー側に変更する。これにより、例えば顧客方向に表示されている顧客向きアノテーション1202を再度テラーが編集したい場合にも適切にテラー方向にアノテーションの表示の向きを変更することが可能になる。すなわち、アノテーション回転領域内からアノテーション回転領域外にアノテーションを移動させた場合には、アノテーションの表示方向をテラー向きに変更する。アノテーションをアノテーション回転領域内からアノテーション回転領域内に移動させる場合はアノテーションの表示する向きを変更することはしない。また、アノテーション回転領域外からアノテーション回転領域外に移動させる場合にも、アノテーションの表示する向きを変更する必要はない。
ステップS1103からステップS1105の間にドロップ動作を受け付けた場合には、処理をステップS1106に進める。
ステップS1106では、情報処理装置101のCPU401は、ドラッグ動作中のアノテーション907の動きとタッチ操作をする指の動きと同期を解除し、ドロップ動作を受け付けた座標に対応するよう、表示位置1302に更新する。
以上、説明したようにアノテーションの移動を行う間に、顧客領域にアノテーションがあるか否かを判定することによりアノテーションを回転させることで、テラーの手間を軽減する仕組みを提供するという効果がある。
次に第2の実施例について、図15、16に示すフローチャートを用いて説明を行う。
第1の実施例では、アノテーションのドラッグ動作中にリアルタイムでアノテーション回転領域にアノテーションがあるか否かを判定していた。第2の実施例ではリアルタイムにアノテーションの位置を判定せずに、アノテーションを移動したドロップ動作を受け付けた位置に応じてアノテーションを回転させる。また、アノテーションの着地の位置と顧客の情報(例えば性別の情報などのユーザ情報)に応じて表示するアノテーションの種類を切り替える。
第2の実施例では、システム構成、ハードウェア構成、機能構成、画面例、テーブルは第1の実施例と同じであり、図8が図15、図11が図16にそれぞれ対応するものである。
第1の実施例の図8に対応する図15のフローチャートを用いて、第2の実施例における商品説明処理の説明を行う。
ステップS1501では、情報処理装置101のCPU401は、図17に示すID入力受付画面1700をディスプレイ410に表示させ、ID入力受付画面1700にそれぞれテラーのIDと顧客のIDの入力を受け付ける。顧客の情報は例えば、図18の顧客情報テーブル1800に格納されている。本実施例の顧客情報テーブル1800には、顧客ID1801と性別1802とが格納されている。顧客ID1801は顧客を一意に識別するIDである。性別1802は、顧客の性別を示すフラグであり、「0」は男性、「1」は女性を示している。顧客情報テーブル1800は、管理者による入力などにより既に作成されているものとする。顧客IDの入力を受け付けることで、顧客を特定することができ、顧客に適したアノテーションの種類を表示することができる。
ステップS1502からステップS1512までは、図8のステップS801からステップS811までと対応するものである。そのため、ステップS1502からステップS1512までの説明は省略する。
第1の実施例の図11に対応する図16のフローチャートを用いて、第2の実施例におけるアノテーション移動処理の説明を行う。
ステップS1601では、情報処理装置101のCPU401は、外部メモリ411に記憶されたアノテーションテーブル1300を参照する。
ステップS1602では、情報処理装置101のCPU401は、ステップS1601で参照したアノテーションテーブル1300の表示位置1302とユーザからの移動指示(ドラッグ動作)を受け付けた位置の座標とに基づいて、移動指示を受け付けたアノテーション907のアノテーションID1301を特定する。
ステップS1603では、情報処理装置101のCPU401は、ユーザのアノテーションへのドラッグ動作中はアノテーション907の動きとタッチ操作をする指の動きとが同期するよう制御する。具体的には、ステップS1602でアノテーションID1301が特定されたアノテーション907の表示位置1302が示す座標と、ドラッグ動作により投影面304上でタッチされている位置の座標との位置関係を保つようにアノテーション907の表示位置1302を変化させて移動することで同期を行う。座標の同期は、中止の指示がなされるまで同期する。
ステップS1604では、情報処理装置101のCPU401は、ステップS1509で受け付けたドラッグ動作を行う指(本実施例ではユーザの指とするが、指示することが可能であれば何でも構わない)がアノテーション907から離れたか否かを判定する。指がアノテーションから離れたと判定した場合には処理をステップS1605に進め、指がアノテーションから離れなかったと判定した場合には処理をステップS1604に戻す。
ステップS1605では、情報処理装置101のCPU401は、ステップS1604でアノテーション907から指が離れたと判定したので、指の位置とアノテーション907の表示位置1302の同期を中止する。これにより、指がアノテーション907から離れた位置でアノテーション907の動きを止めることができる。
ステップS1606では、情報処理装置101のCPU401は、情報処理装置101のCPU401は、アノテーション907がアノテーション回転領域1401にあるか否かを判定する。具体的には、アノテーション907の表示位置1302がアノテーション回転領域テーブル1400のアノテーション回転領域1401が示す領域にあるか否かを判定する。アノテーション907がアノテーション回転領域1401にあると判定した場合には処理をステップS1607に進める。アノテーション907がアノテーション回転領域1401にないと判定した場合には処理をステップS1611に進める。
ステップS1607では、情報処理装置101のCPU401は、顧客情報テーブル1800を取得し、ステップS1501で入力を受け付けた顧客ID1801を基に、顧客の性別1802を特定する(ユーザ情報取得手段の一例を示すステップである)。特定をしたのち、処理をステップS1608に進める。
ステップS1608では、情報処理装置101のCPU401は、外部メモリ411に記憶されたアノテーションテーマテーブル1900を参照する。図19に示すアノテーションテーマテーブル1900は性別フラグ1901とテーマ保存場所1902とを格納している。性別フラグ1901は、性別の情報を示しており、「0」が男性、「1」が女性を示している。テーマ保存場所1902は、それぞれの性別に対応するアノテーションのテーマを示すテーマデータ(アノテーションテーマ)の保存場所が格納されている。
ステップS1609では、情報処理装置101のCPU401は、アノテーションテーマテーブル1900からステップS1607で特定した性別1802を基に、対応する性別フラグ1901のテーマ保存場所1902を特定する。例えば、性別1802が「0」である場合には、対応する性別フラグ1901が「0」のテーマ保存場所1902、「./jpg/001.jpg」を特定する。このようにしてユーザの性別に対応するテーマ保存場所1902に保存されているテーマデータを取得する。なお、本実施例では顧客の性別によってアノテーションの種類を切り替えているが、顧客の年齢など他の顧客の情報に基づいてもよい。顧客の年齢などの場合も、同様に顧客情報テーブル1800に項目が設けられ、この情報に基づいてアノテーションの種類を切り替える。
ステップS1610では、情報処理装置101のCPU401は、ステップS1609で取得したテーマデータにアノテーションの種類を切り替える(アノテーションテーマ切替手段の一例を示すステップである)。具体的には、テーマデータにテキスト内容1303を重畳させることで、アノテーションの種類を切り替えるよう表示する。例えば図20に示す模式図のようにアノテーションの回転と種類の変更を行う。アノテーション907をアノテーション回転領域1401に移動させた場合に、アノテーションをテラーの方向に回転させ、アノテーションの種類を変更したものが、アノテーション2001である。
ステップS1611では、情報処理装置101のCPU401は、ステップS1611で種類を切り替えたアノテーションの表示の向きを顧客向きに回転させる。具体的には、アノテーションテーブル1300の方向フラグ1304を「1」とし、アノテーションの中心点を基準に反転(180度回転)して、アノテーションの向きを顧客側に変更する。表示の向きを変更したのち、アノテーション移動処理を終了する。
ステップS1612では、情報処理装置101のCPU401は、アノテーション907のテーマをデフォルトに変更する。顧客にアノテーションを見せるためのアノテーション回転領域ではない場所にアノテーション907がある場合には、アノテーションのテーマを切り替える必要がないためである。
ステップS1613では、情報処理装置101のCPU401は、ステップS1612でデフォルトに切り替えたアノテーション907をテラー向きに回転させる。具体的には、アノテーションテーブル1300の方向フラグ1304を「0」とし、アノテーションの中心点を基準に反転(180度回転)して、アノテーションの向きをテラー側に変更する。アノテーション907をテラー向きに回転させたのち、アノテーション移動処理を終了する。これにより、一度アノテーションが顧客領域に置かれた場合であっても、アノテーションの種類をデフォルトに戻し、更にテラーの向きに方向を切り替えることを可能にする。
以上、第2の実施例では、アノテーションの位置に応じて、アノテーションの顧客への表示方向を変更するだけでなく、顧客の情報に基づいてアノテーションの種類を変更することで、より適切なアノテーションを表示させることを可能にする。また、リアルタイムではなく、アノテーションの最終的な移動先の位置によってアノテーションを顧客向きに表示するか否かを判定することにより、逐一アノテーションを回転させずに適切な向きでアノテーションを表示することが可能な仕組みを提供することができる。
次に、本発明の第3の実施例について説明する。第3の実施例では、アノテーションを表示させる際に、付与された文書データに応じて適切な向き及び倍率でアノテーションを表示させることが可能となるものである。第3の実施例では、システム構成、ハードウェア構成、機能構成、画面例、テーブルは第1の実施例と同じであり、図8が図22に、図10が図24に、図11が図23に、図13が図25にそれぞれ変更し、図26と図27が追加されたものである。
変更がない部分については説明を省略し、上記変更点・追加点について説明を行う。
図22は第2の実施例における商品説明処理の詳細な流れを説明するフローチャートである。
ステップS2201からステップS2203までは、図8のステップS801からステップS803までの処理と同様のため説明を省略する。
ステップS2204は、情報処理装置101のCPU401が、ステップS2203で選択を受け付けた文書についての文書表示・操作処理を行う処理であり、詳細な処理の流れは図26に示すフローチャートで説明を行う。
図26は、文書表示・操作処理の詳細な処理の流れを説明するフローチャートである。
ステップS2601では、情報処理装置101のCPU401が、ステップS2203で取得した文書データを顧客領域902の文書データ領域906に表示し、これが表示された商品説明画面900を投影面304に投影する。これにより、顧客302は文書データを閲覧することができるようになる。
ステップS2602では、情報処理装置101のCPU401が、文書データ管理テーブル2400の回転角度2405を「0°」にし、表示倍率2406を「100%」にする。
図24に示す文書データ管理テーブル2400について説明する。文書データ管理テーブル2400は、文書ID2401と、文書データ保存場所2402と、サムネイル画像保存場所2403と、表示位置2404と、回転角度2405、表示倍率2406、アノテーション色2407とを備える。文書ID2401、文書データ保存場所2402、サムネイル画像保存場所2403、表示位置2404は、図10の文書データ管理テーブル1000は、文書ID1001と、文書データ保存場所1002と、サムネイル画像保存場所1003と、表示位置1004と同様であるため説明を省略する。回転角度2405は文書データの表示される角度を示しており顧客に向けて初期表示した状態の文書を0°とした文書データの表示角度を示す。表示倍率2406は、顧客に向けて初期表示した状態の文書を100%とした文書データの表示倍率を示す。アノテーション色2407(色情報に相当する)は、複数文書データを表示した場合のアノテーションの色を示す。
ステップS2603では、情報処理装置101のCPU401が、ステップS2601で表示された文書データに対して、ユーザによるタッチ操作による選択を受け付けたか否かを判定する。選択を受け付けた場合は処理をステップS2604に進め、そうでない場合は処理を終了する。
ステップS2604では、情報処理装置101のCPU401が、選択された文書データをタッチされた位置によって特定する。(タッチされた位置が含まれる表示位置2404に対応する文書ID2401を特定する)
ステップS2605では、情報処理装置101のCPU401が、入力デバイス(キーボード等)409の所定のキー押下による回転ボタンの押下を受け付けたか否かを判断する。回転ボタンの押下を受け付けたと判定した場合には、処理をステップS2606に進め、そうでない場合は処理をステップS2607に進める。
ステップS2606では、情報処理装置101のCPU401が、ステップS2604で特定した文書IDに対応する回転角度2405を更新する。回転ボタンの押下を一度受け付けると、回転角度2405を45°時計回りに回転させる設定がなされており、ステップS2605で回転ボタンの押下を検知したと判断された場合には、回転角度2405に45を加算する。回転角度が360°を超える場合には0°に戻す。なお、回転ボタンに対して設定される角度は例であって、これ以外の角度に設定されていてもよい。
ステップS2607では、情報処理装置101のCPU401が、入力デバイス(キーボード等)409の所定のキー押下による拡大縮小ボタンの押下を受け付けたか否かを判断する。拡大縮小ボタンの押下を受け付けたと判断した場合は処理をステップS2608に進め、そうでない場合は処理をステップS2603に戻す。
ステップS2608では、情報処理装置101のCPU401が、ステップS2607で押下されたボタンにより、表示倍率2406を更新する。例えば、拡大ボタンを押下した場合には表示倍率2406が10%増加し、縮小ボタンを押下した場合には表示倍率2406が10%減少されるよう設定されている。ステップS2607で押下されたボタンによって、それぞれ表示倍率2406が更新される。なお、拡大ボタンや縮小ボタンに対して設定された値は例であってこれに限定されない。
以上で、図26に示す文書表示・操作処理の詳細な処理の説明を終了する。
図22の説明に戻る。
ステップS2205からステップS2208までの処理は図8に示すステップS805からステップS808の処理と同様であるため説明を省略する。
ステップS2209では、情報処理装置101のCPU401が、アノテーション907を移動させる処理であるアノテーション移動処理を行う。第3の実施例におけるアノテーション移動処理の詳細な処理の説明を図23に示すフローチャートで説明する。
図23は、第1の実施例の図11に対応するもので、第3の実施例におけるアノテーション移動処理の詳細な処理を説明するフローチャートである。なお、ステップS2303で用いるアノテーション回転領域が、本実施例では、図27に示す顧客領域902(文書データ表示領域に相当する)がアノテーション回転領域として設定されているものとする。そのため、本実施例では、顧客領域902にアノテーションがある場合にはアノテーションを顧客に相対する向きに回転させ、更に文書データ上にアノテーションがある場合には文書データと同じ向きとなるようにアノテーションの表示する向きを変更する。
ステップS2301からステップS2305までの処理は図11のステップS1101からステップS1105までの処理と同様であるため説明を省略する。
ステップS2307は、情報処理装置101のCPU401が、図24に示す文書データ管理テーブル2400を参照する。
ステップS2308は、情報処理装置101のCPU401が、ステップS2302で特定したアノテーションID1301に対応する表示位置1302が示す矩形が、図24に示す文書データ管理テーブル2400の表示位置2404が示す領域にあるか否かを判定する。なお、本実施例ではアノテーション907が表示位置2404が示す領域に表示位置1302が示す矩形があるか否かによって、判定を行ったが、例えば表示位置1302が示す矩形の中心点が表示位置2404が示す領域にあるか否かによって判定しても構わない。つまり、アノテーション907が文書データ上に重畳表示されているか否かを判定できれば他の方法でも構わない。表示位置1302が示す矩形が、図24に示す文書データ管理テーブル2400の表示位置2404が示す領域にあると判定された場合は処理をステップS2309に進め、そうでないと判定された場合に処理をステップS2303に戻す。
ステップS2309は、情報処理装置101のCPU401が、ステップS2308で表示位置1302が示す矩形があると判定された、表示位置2404に対応する、回転角度2405と表示倍率2406とを特定する。
ステップS2310は、情報処理装置101のCPU401が、ステップS2309で特定した回転角度2405と表示倍率2406とを、アノテーションテーブル2500の回転角度2504と表示倍率2505にそれぞれ上書きすることにより更新する。(表示大きさ変更手段に相当する)
ステップS2311は、情報処理装置101のCPU401が、文書データ管理テーブル2400のレコードを参照することにより、複数の文書データが表示されているか否かを判定する。複数の文書データが表示されていると判定した場合は処理をステップS2312に進め、そうでない場合には処理をステップS2306に進める。
ステップS2312は、情報処理装置101のCPU401が、ステップS2308で表示位置1302が示す矩形があると判定された表示位置2404に対応するアノテーション色2407を取得する。
ステップS2313は、情報処理装置101のCPU401が、ステップS2312で取得したアノテーション色2407が示す色でアノテーション907の色を変更する。
ステップS2306の処理は、図11のステップS1106の処理と同様であるため、説明を省略する。
以上で図22に示す第3の実施例における商品説明処理の詳細な処理の説明を終了する。
図22に示す第3の実施例によれば、例えば図27に示すアノテーション表示画面2700のように、顧客領域に入るとアノテーションが回転するわけではなく、アノテーションが付与された文書データの向きに合わせてアノテーションの表示する向きを変更することができる。このようにすることで、仮に文書データの表示向きを変えたとしても、ユーザがアノテーションの表示向きを変更する手間を掛けることなく自動的にアノテーションの向きも変更されるようになる。更に、複数の文書データを表示する場合であっても、重畳された文書データによってアノテーションの色を変えることができ、文書データに対して統一感のある色でアノテーションを表示することができる。なお、アノテーションの色に限定されることなく、アノテーションの形状(円形、四角系など)を文書データに合わせて変更してもよい。
なお、アノテーションの表示する向きについて、回転させずとも表示の向きを切り替えてもよい。本発明の実施例では一方の回転方向を例に説明したが、反対の方向に回転させてもよい。さらに、文書データを複数の領域に区分けしておき、一方の領域上にドロップされた際の回転と、他方の領域にドロップされた際の回転を逆にしてもよい。さらに、この領域を文書データの右半分と左半分で区分けし、文書データを顧客から見て右半分(右側)に入った場合にはアノテーションを右回転で回転させ、文書データを顧客から見て左半分(左側)に入った場合にはアノテーションを左回転で回転させる。これにより、顧客にとって違和感が無いように文書データ上にアノテーションを重畳表示させることを可能とする効果がある。
なお、文書データを表示する大きさを規定する情報として、表示倍率としたが、これに限定されず、文書データの表示する大きさをピクセルで指定するなど、他の方法でも構わない。
以上、本発明によれば、画面上のアノテーションの表示される向きを適切に変更することの可能な仕組みを提供すること提供することが可能となる効果がある。
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、1つの機器からなる装置に適用してもよい。
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RWなどがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などもある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。