図1を参照して、この実施例のコンテンツ提示装置10は、たとえば横250×縦180cm程度のサイズのプラスチックスクリーン(以下、単に「スクリーン」という。)12を含む。ただし、このサイズは単なる一例であり、用途に応じて任意に変更可能である。スクリーン12は、赤外光透過可能材料、たとえばポリカーボネイトなどのプラスチックからなり、全体としてたとえば乳白色である。ただし、このスクリーン12は完全な透明ではない。なぜなら、このスクリーン12は、後述のプロジェクタ30から映像を映写するための投影スクリーンとして機能する必要があるからである。また、このスクリーン12は、比較的大きい剛性を有する。なぜなら、このコンテンツ提示装置10では、図1に示すように、スクリーン12の前方の人間(ユーザ)14が、自分の手16でスクリーン12を直接タッチすることによって、スクリーン12の上の位置(点または領域)を指示することができるからである。つまり、スクリーン12にはユーザの手が触っても容易には変形しない程度の剛性が必要である。
ただし、実施例ではプラスチックでスクリーン12を形成した。しかしながら、ガラスや他の赤外光透過材料が用いられてもよい。
このスクリーン12の前方上方には、スクリーン12の前面1200の全面に赤外光を投射するための赤外光源18が設けられる。この赤外光源18としては、ハロゲンランプまたはブラックライトなどが利用可能である。この赤外光源18を設ける位置は基本的にはスクリーン12のサイズに依存して決定されるが、実施例のスクリーン12が上記サイズであれば、たとえば、赤外光源18は、スクリーン12の前面1200から200−400cm離れた高さ200−300cmの位置に配置される。赤外光源18から投射された赤外光はスクリーン12の前面1200から入射し、このスクリーン12を透過して背面1202に至る。これらの数値は単なる例示である。
スクリーン12の後方には、ミラー20が設けられる。このミラー20はスクリーン12の背面1202の全面を映出できる大きさと位置に配置される。実施例ではスクリーン12が、先に示したように、250×180cmであれば、ミラー20はたとえば150×110cm程度の大きさにされ、スクリーン12の背面からたとえば200cm後方に配置される。これらの数値も単なる例示である。
また、スクリーン12の後方には、このミラー20の表面に合焦されたモノクロカメラ22が設けられる。このモノクロカメラ22には赤外フィルタ24が装着される。したがって、このカメラ22は全体としては、赤外カメラとして機能する。そのため、モノクロカメラ22および赤外フィルタ24は赤外カメラに代えられてもよい。このカメラ22はミラー20を通してスクリーン12の背面1202の全面を撮影する。カメラ22からの映像信号は、本発明の内部構成を示す図2から分かるように、A/D変換器28によって映像信号データに変換されて、コンピュータ26に入力される。
この図1に示す実施例では、スクリーン12の後方に、プロジェクタ30が設けられる。このプロジェクタ30は、前述のようにスクリーン12の背面1202の全面に映像を投射するためのものである。実施例では、プロジェクタ30は、ミラー20を通して、背面1202の全面に投影できるようにされる。プロジェクタ30から投射された映像(光学像)は、ミラー20で反射されて、スクリーン12の背面1202に投影される。したがって、このスクリーン12の前面1200から、その投影された映像を見ることができる。
なお、ミラー20を用いる理由は、スクリーン12の後方のスペースを可及的小さくするためである。したがって、当然のことではあるが、ミラー20を省略することができる。この場合には、上述のカメラ22がスクリーン12の背面1202の全域を直接撮影し、プロジェクタ30からスクリーン12の背面1202に映像が直接投射される。
また、図1では省略されているが、スクリーン12の後方には、さらに、複数のRFID読取装置38,38,…が設けられている。各RFID読取装置38は、ユーザ14によって所持ないし装着されたRFIDタグ(以下、単に「タグ」という。)42から送信される送信信号を受信し、送信信号に含まれる識別情報(RFID)を検出する。また、各RFID読取装置38は、タグ42からの送信信号を検出したときの電波強度を検出する。たとえば、各RFID読取装置38は、タグ42から送信される送信信号の読取可能な範囲(距離)は、5.0m〜10.0mの間の一定値(たとえば、6.0m)に設定される。
なお、この実施例では、図1に示すように、スクリーン12の前面1200にユーザ14が対面しており、スクリーン12の前面1200に垂直な方向がz軸方向に設定され、スクリーン12の前面1200に対して平行な水平方向がx軸方向に設定され、スクリーン12の前面1200に対して平行であり、x軸およびz軸に垂直な方向がy軸方向に設定される。
本発明装置は、図2に示すように、コンピュータ26にはたとえば半導体メモリやハードディスクなどの内部メモリ32が内蔵されるとともに、必要に応じて、メモリインタフェース34を介して、半導体メモリである外部メモリ36が接続される。内部メモリ32は、後述のフロー図に示すようなプログラムを予め記憶するプログラムメモリとして、さらには画像処理のためのワーキングメモリやレジスタなどとして利用される。プロジェクタ30を用いる場合には、内部メモリ32はさらに、プロジェクタ30のためのメモリのビデオメモリ(VRAM)としても用いられる。
なお、外部メモリ36としては、半導体メモリ以外に、磁気記録媒体、光学式記録媒体、光磁気記録媒体などが用いられ得るが、ここでは便宜上すべて「メモリ」の用語を使用する。したがって、「メモリ」というときは、あらゆる形式の記憶媒体または記録媒体を指すものと理解されたい。
また、コンピュータ26は、ランプドライバ38を制御し、赤外光源18のオン/オフを制御するとともに、必要な場合には、その赤外光源18の輝度を調節する。赤外光源18はオンされている場合に、ユーザ14がスクリーン12の前に存在すると、ユーザ14によって赤外光が遮られ、ユーザ14の影を含む映像がカメラ22で撮影される。コンピュータ26は、カメラ22で撮影された映像に基づいてユーザ14がスクリーン12にタッチしているか否かを検出することができる。また、ユーザ14がスクリーン12にタッチしている場合には、スクリーン12上におけるタッチの位置を知ることができる。
なお、ユーザ14がスクリーン12にタッチしている(手を押し付けている)か否かを検出する方法やタッチの位置を検出する方法については、本件出願人が先に出願し、既に出願公開された特開2004−326188号公報に開示されているため、詳細な説明は省略することにする。
さらに、コンピュータ26は、RFID読取装置38で検出されたタグ42のRFIDに基づいてユーザ14を検出する。また、コンピュータ26は、必要に応じて、RFID読取装置38から入力される電波強度に基づいて、スクリーン12(コンテンツ)とユーザ14との距離を検出する。
ここで、図1では省略したが、複数のRFID読取装置38は、スクリーン12の後方(背面側)であり、プロジェクタ30からの映像を映写するのに邪魔にならない位置(たとえば、スクリーン12の下方)に配置される。具体的には、複数のRFID読取装置38は、スクリーン12を上方から見ると、図3に示すように、スクリーン12の後方であり、その幅方向(x軸方向)に等間隔に並んで配置される。ただし、図3では、各RFID読取装置38を識別するために、参照符号を区別してある。また、スクリーン12の前方に設定される一定範囲(検出範囲)200(図6参照)内に存在するユーザ14(タグ42)を検出するようにするため、スクリーン12の幅を超えて、RFID読取装置38a,38b,38c,38d,38e,38f,38g,38h,38iは配置される。
なお、この実施例では、検出範囲200は、250×300cmに設定される。ただし、この数値は一例であり、限定される必要はない。
この実施例では、複数のRFID読取装置38a−38iの検出結果に基づいて、スクリーン12に対するユーザ14の2次元位置(x,z)を求めるようにしてある。ただし、この実施例では、3次元座標(x,zについての2次元座標も同じ。)の原点は、スクリーン12の左下の点に設定してある。
上述したように、各RFID読取装置38a−38iは、その直線距離が6.0m以内であれば、タグ42からの送信信号を検出することができる。図3においては、その読み取り(検出)可能な最大の距離(最大検出距離)が、両端に矢印を付した直線で示してある。ただし、図面の都合上、最大検出距離は、スクリーン12の幅よりも短く示してある。図3に示す例では、タグ42(ユーザ14)は、スクリーン12のほぼ中央に存在し、このタグ42の送信信号は、RFID読取装置38c,38d,38e,38f,38gによって読み取ることができる。一方、RFID読取装置38a,38b,38hおよび38iは、タグ42からの送信信号を読み取ることができない。したがって、タグ42すなわちユーザ14の2次元位置(x,z)のx座標は、タグ42の送信信号を読み取っているRFID読取装置38のうち、両端のRFID読取装置38(図3では、38c,38g)の中間位置に決定するようにしてある。
また、上述したように、RFID読取装置38a−38iは、タグ42からの送信信号を検出したときの電波強度を検出するようにしてあるため、その電波強度に基づいてタグ42との距離を求めることができる。また、各RFID読取装置38a−38iは、等間隔に配置され、任意の2つのRFID読取装置38間の距離は既知である。したがって、2以上のRFID読取装置38がタグ42からの送信信号を検出するとき、いずれか2つのRFID読取装置38で検出されるタグ42との距離と、当該2つのRFID読取装置38間の距離とを用いて、三角測量の方法により、スクリーン12からタグ42(ユーザ14)までの距離(z軸方向の距離)すなわちz座標を検出することもできる。
このように、タグ42すなわちユーザ14の2次元座標(x,z)を求めることができるため、ユーザ14が予め設定される検出範囲200内に存在するか否かは簡単に知ることができる
このような構成のコンテンツ提示装置10は、主として、コンテンツプロバイダが提供するコンテンツ(映像、テキストなど)をスクリーン12に表示して、ユーザ14に提示する。ただし、コンテンツは、コンピュータ26に接続されるコンテンツプロバイダのサーバ(図示せず)から取得したり、インターネットのサイトから検索したりするようにしてある。また、図示は省略するが、各ユーザ14についてのプロファイル(趣味、興味を含む。)を、RFIDに対応付けて、内部メモリ32ないしは外部メモリ36に記憶している。
したがって、たとえば、コンテンツ提示装置10では、或るユーザ14が検出範囲200に侵入すると、タグ42からの送信信号からRFIDを検出し、つまり当該ユーザ14を識別し、識別したユーザ14に対応するプロファイルに基づいて、提示可能なコンテンツについての選択画面(メニュー画面)を表示する。ただし、メニュー画面は、ユーザ14毎に予め作成しておいてもよい。この実施例では、メニュー画面は、ユーザ14(タグ42)の位置(2次元位置)からスクリーン12の前面1200に垂線を下ろした位置に表示される。ただし、この実施例では、ユーザ14すなわちタグ42のy軸方向の長さ(高さ)は検出しないため、たとえば、プロファイルにユーザ14の身長の情報を含めておき、身長に応じてメニュー画面を表示する高さ(y軸方向の位置)を決定するようにしてもよい。以下、メニュー画面を表示する場合において同じである。そして、メニュー画面を操作して(この実施例では、タッチして)、ユーザ14が所望のコンテンツ(メニュー)を選択すると、当該コンテンツについてのコンテンツ画面を表示する。
このようなコンテンツ提示装置10では、スクリーン12は大画面であるため、複数のユーザ14が使用することができる。ただし、一旦、メニュー画面やコンテンツ画面が表示された場合に、その画面(ウインドウ)の表示位置が固定されてしまうと、複数のユーザ14で使用する場合に、スクリーン12全体を効率良く使えない場合がある。また、或るユーザ14がコンテンツを視聴している場合に、他のユーザ14が当該コンテンツの視聴に参加したり、他のユーザ14が同じまたは他のコンテンツを別のウインドウで表示して視聴したりする場合もある。つまり、1のコンテンツを複数のユーザ14が視聴したり、複数のコンテンツをそれぞれ、1人のユーザ14で視聴し、または、複数のグループで視聴したりする場合もある。
したがって、この実施例では、ユーザ14がコンテンツを視聴している間に、当該コンテンツの表示されたウインドウを移動させたり、ウインドウを大きくしたりすることにより、上述したような様々な使用状態に対応して、ユーザ14の利便性を向上するようにしてある。以下、具体的に説明する。
この実施例では、コンテンツ提示装置10(スクリーン12)の使用状態およびその使用状態の遷移(状態遷移)は、図4に示すように定義される。図4において、状態0(C0状態)は、誰もコンテンツ(コンテンツ提示装置10,スクリーン12)を使用していない状態である。状態1(C1状態)は、1のコンテンツを1人のユーザ14が使用している状態である。状態2(C2状態)は、複数のコンテンツの各々を1人のユーザ14が使用している状態である。たとえば、後述するように、2つのコンテンツが表示され、2人のユーザ14が検出範囲に存在する場合に、一方のユーザ14が一方のコンテンツを使用し、他方のユーザ14が他方のコンテンツを使用している状態がC2状態である。状態3(C3状態)は、1のコンテンツを複数のユーザ14が使用している状態である。状態4(C4状態)は、複数のコンテンツを複数のグループが使用している状態である。ただし、このC4状態においては、グループは、ユーザ14が1人の場合も含むが、複数のグループのうち少なくとも1つのグループは2人以上でコンテンツを視聴している必要がある。すべてのグループのユーザ14が1人である場合は、上述したC2状態だからである。
また、図4に示すように、C0状態とC1状態との間で、コンテンツの使用状態が遷移する場合がある。また、C1状態とC2状態との間、または、C1状態とC3状態との間で、コンテンツの使用状態が遷移する場合がある。ただし、C2状態とC3状態との間でコンテンツの使用状態が遷移することはない。さらに、C2状態とC4状態との間、または、C3状態とC4状態との間で、コンテンツの使用状態が遷移する場合がある。ただし、C2状態からC4状態に遷移した場合には、さらに、C2状態に遷移(戻る)ことはあるが、C3状態に遷移することはない。同様に、C3状態からC4状態に遷移した場合には、さらに、C3状態に遷移(戻る)ことはあるが,C2状態に遷移することはない。
図示は省略するが、各使用状態を示すフラグ(状態フラグ)が内部メモリ32に記憶される。たとえば、状態フラグは、5ビットのレジスタで構成され、最上位ビットから順にC0状態,C1状態,C2状態,C3状態に対応し、そして、最下位ビットがC4状態に対応する。状態フラグは、設定されている(現在の)コンテンツの使用状態に対応するビットにデータ値「1」が設定され、他のビットにデータ値「0」が設定される。
図5(A)はC0状態におけるスクリーン12の表示例を示す。ただし、C0状態は、誰もコンテンツを使用していない状態であるため、スクリーン12には何らコンテンツは表示されていない。図5(A)に示すように、スクリーン12の表示領域は、横方向(x軸方向)に並ぶように、複数の領域(この実施例では、第1領域12a,第2領域12b,第3領域12c)に分割される。このように、スクリーン12の表示領域を分割するのは、複数のコンテンツ(この実施例では、2つのコンテンツ)を表示する場合に、スクリーン12の表示領域を効果的に使用するためである。
また、図6(A)に示すように、スクリーン12の第1領域12a,第2領域12b,第3領域12cのそれぞれには、x軸方向の中心位置が標準中心位置として設定されている。具体的には,各領域12a,12b,12cに対応して、標準中心位置についてのx座標が内部メモリ32(または外部メモリ36)に記憶されているのである。たとえば、ウインドウのx軸方向の中心位置を標準中心位置に設定することにより、ウインドウを対応する領域12a,12b,12c内に表示することができる。ただし、実際には、スクリーン12に映写される映像は、内部メモリ32のVRAMを用いて行われるため、たとえば、VRAMの全領域が領域12a,12b,12cに分割され、さらに、各領域12a,12b,12cに対応して、標準中心位置が設定されているのである。
さらに、図6(A)および図6(B)に示すように、第1領域12a,第2領域12b,第3領域12cのそれぞれに対応して、検出範囲200は第1検出領域200a,第2検出領域200b,第3検出領域200cに分割される。このように、スクリーン12の表示領域に対応して、検出範囲200を分割するのは、ユーザ14が検出範囲200に侵入した場合に、当該ユーザ14が既に表示されたコンテンツ(画面)の視聴に参加するか否かを判別するためである。
また、図示は省略するが、第1領域12a,第2領域12b,第3領域の12cのそれぞれに対応して、内部メモリ32には使用中フラグが設けられており、使用中フラグに基づいて、未使用の領域(12a,12b,12c)であるか否か判断するのである。図示は省略するが、使用中フラグは、3ビットのレジスタで構成され、最上位ビットが第1領域12aに対応し、最下位ビットが第3領域12cに対応し、そして、それらの間のビットが第2領域12bに対応する。また、領域12a,12b,12cを使用中である場合には、対応するビットにデータ値「1」が設定され、領域12a,12b,12cを未使用である場合には、対応するビットにデータ値「0」が設定される。
図5(A)に戻って、たとえば、C0状態において、検出範囲200にユーザ14が侵入すると、図5(B)に示すように、ユーザ14a(厳密には、タグ42)の正面にウインドウ120が設定され、当該ウインドウ120にメニュー画面が表示される。ただし、図5(B)(図7および図9も同じ。)では、これ以降の状態遷移の説明において、各ユーザ14を識別するために、異なる参照符号で示してある。
なお、上述したように、ユーザ14(ここでは、14a)はタグ42のRFIDで識別され、当該ユーザ14aのプロファイルに基づいて生成されたメニュー画面がウインドウ120に表示される。以下、同じ。
図5(B)に示す状態は、コンテンツの使用状態がC0状態からC1状態に遷移するか否かの途中の状態である。つまり、ユーザ14aが、このメニュー画面を操作(タッチ)すると、コンテンツ画面が表示され、したがって、1のコンテンツを1人のユーザ14aが使用するC1状態に遷移する(図7(A))。一方、メニュー画面をタッチすることなく、ユーザ14aが検出範囲200から退出した場合には、C1状態に遷移することなく、C0状態を維持する。図示は省略するが、かかる場合には、ユーザ14aが検出範囲200から退出した後、メニュー画面は消去される。
図示は省略するが、図5(B)に示すように、メニュー画面が表示されている場合には、ユーザ14aが移動するに従って、ウインドウ120も移動される。これは、スクリーン12の前(検出範囲200)を横切るように、ユーザ14aが移動する場合であっても、当該ユーザ14aにメニュー画面を提示するためである。つまり、ユーザ14aが検出範囲200に存在する場合には、その(タグ42の)2次元位置(x,z)が検出され、そのx座標にウインドウ120の中心が来るように、ウインドウ120はスクリーン12に設定される。
ただし、ウインドウ120は、スクリーン12に設定された当初すなわちメニュー画面が表示された当初では、所定の大きさ(デフォルトの大きさ)を有している。また、後述するように、当該ウインドウ120にコンテンツ画面が表示され、このコンテンツ画面を視聴するユーザ14が増加するに連れて、ウインドウ120(他のウインドウ122も同じ。)は拡大される(図10(B)参照)。ただし、ウインドウ120は、その大きさが最大になると、ユーザ14が増加した場合であっても、拡大されなくなる。これは、スクリーン12の表示領域を効率良く使用するためである。なお、ウインドウ120の大きさの最大値は、スクリーン12の大きさや分割した表示領域(分割領域)の大きさに応じて予め設定される。
図5(B)に示す状態において、ユーザ14aがメニュー画面においてタッチすることにより、所望のコンテンツを選択すると、図7(A)に示すように、当該コンテンツについてのコンテンツ画面がウインドウ120に表示される。このとき、C0状態からC1状態にコンテンツの使用状態が遷移する。つまり、状態フラグが更新される。
また、図7(A)に示すように、C1状態では、1のコンテンツを1人のユーザ14aが使用している。したがって、図7(B)に示すように、表示領域を効率良く利用するために、ウインドウ120を移動させるようにしてある。ここで、図7(A)から分かるように、コンテンツ画面が表示されたウインドウ120は、第1領域12aおよび第2領域12bの両方に跨っている。つまり、第1領域12aおよび第2領域12bの両方が使用されている状態である。したがって、図7(A)に示す状態では、他のユーザ14が使用可能な領域(使用可能領域)は、第3領域12cのみである。この使用可能領域を増やして、効率良くスクリーン12を使用するために、ウインドウ120を移動させるのである。この実施例では、ウインドウ120は、その中心位置(x軸方向の中心位置)が最も近い標準中心位置と一致するように、徐々に(所定距離(長さ)ずつ)に移動される。したがって、図7(B)に示すように、ウインドウ120は、第1領域12a内に移動される。つまり、図7(B)に示す状態では、第2領域12bと第3領域12cとが使用可能領域である。
ただし、C1状態(C3状態も同じ。)では、他のユーザ14が検出範囲200に侵入して、他のメニュー画面を表示する(他のウインドウを設定する)場合には、使用可能領域ではなく、実際にメニュー画面を表示可能な領域(表示可能領域)130に表示するようにしてある。図8(A)では、表示可能領域130は、斜線を付して示してある。したがって、この表示可能領域130に対応する、検出範囲200内の一部の範囲(部分範囲)210に他のユーザ14が侵入したとき、当該ユーザ14の正面に他のウインドウ122が設定され、メニュー画面が表示される(図9(A),図12(B)参照)。
図9(A)は、図7(B)に示すC1状態において、スクリーン12の表示可能領域130に対応する部分範囲210に他のユーザ14bが侵入し、当該ユーザ14bの正面にウインドウ122が設定され、当該ユーザ14bに応じたメニュー画面が表示された状態を示す。つまり、図9(A)に示す状態は、コンテンツの使用状態がC1状態からC2状態に遷移するか否かの途中の状態である。図9(A)において、ユーザ14bがウインドウ122に表示されたメニュー画面にタッチして、図9(B)に示すように、所望のコンテンツについてのコンテンツ画像の視聴を開始すると、コンテンツの使用状態がC2状態に設定される。しかし、図9(A)において、ユーザ14bがコンテンツを視聴することなく、部分範囲210から退出した場合には、コンテンツの使用状態は、C2状態に遷移せず、C1状態を維持する。
また、図示は省略するが、C2状態において、ユーザ14aまたはユーザ14bが検出範囲200から退出した場合には、1のコンテンツを1人のユーザ14aまたは14bが使用(視聴)することとなり、C1状態に遷移される(戻る)。
図10(A)は、図7(B)に示すC1状態において、コンテンツ画面が表示される領域(ここでは、第1領域12a)に対応する検出範囲200の領域すなわち第1検出領域200aに他のユーザ14cが侵入した状態を示す。つまり、ユーザ14cが既に表示されたコンテンツ(画面)の視聴に参加する状態を示す。かかる場合には、1のコンテンツを複数のユーザ14で視聴するため、コンテンツの使用状態としてC3状態が設定される。このC3状態では、参加人数が増加するに連れて、図10(B)に示すように、ウインドウ120が拡大される。ただし、ウインドウ120の大きさが最大になると、参加人数が増加しても、ウインドウ120は拡大されない。つまり、複数人のユーザ14でコンテンツを視聴するため、ウインドウ120を拡大して、すべてのユーザ14が視聴し易いようにしてある。
このように、ウインドウ120が拡大されると、これに応じて、図11(A)および図11(B)に示すように、表示可能領域130および部分範囲210は、縮小される。なお、図11(A)および図11(B)では、ウインドウ120が拡大される様子を分かり易く示すために、図10(B)で示したウインドウ120の拡大率よりも大きくしてある。
図示は省略するが、C3状態において、ユーザ14aまたは14cがコンテンツの表示領域すなわち第1検出領域200aから退出すると、1のコンテンツを1人のユーザ14aまたは14cが使用(視聴)することになるため、C1状態に遷移される(戻る)。
図12(A)は、図9(B)に示したように、コンテンツの使用状態がC2状態である場合に、検出範囲200のうち、コンテンツ画面が表示されている第1領域12aに対応する第1検出領域200aに、他のユーザ14dが侵入した状態を示す。かかる場合には、複数のコンテンツが複数のグループによって使用されている状態であり、コンテンツの使用状態がC2状態からC4状態に遷移する。図示は省略するが、図12(A)に示すように、C4状態が設定された後に、ユーザ14aまたはユーザ14cが検出範囲200から退出すると、各コンテンツを1人のユーザ14a(または14c),14dが使用(視聴)することとなり、コンテンツの使用状態がC4状態からC2状態に遷移する(戻る)。
なお、C2状態とC3状態との間におけるコンテンツの使用状態の遷移は考慮していないため、図12(A)に示すC4状態からC3状態に遷移することも考慮していない。
また、図12(B)は、図10(A)に示したように、コンテンツの使用状態がC3状態である場合に、部分範囲210に他のユーザ14dが侵入した状態を示す。つまり、図12(B)は、コンテンツの使用状態がC3状態からC4状態に遷移するか否かの途中の状態である。したがって、図12(B)に示す状態において、ユーザ14dがメニュー画面をタッチして、所望のコンテンツに対応するコンテンツ画面が表示されると、C4状態に遷移する。しかし、図12(B)に示す状態において、ユーザ14dが部分範囲210から退出すると、コンテンツ使用状態は、C4状態に遷移せずに、C3状態を維持する。
また、図示は省略するが、図12(B)に示すC3状態からC4状態に遷移した後に、ユーザ14dが部分範囲210から退出した場合には、さらに、C3状態に遷移する(戻る)。
なお、C2状態とC3状態との間におけるコンテンツの使用状態の遷移は考慮していないため、図12(B)に示すC3状態からC4状態に遷移した後に、C2状態に遷移することも考慮していない。
具体的には、図1および図2に示したコンピュータ26が図13−図19に示すフロー図に従ってコンテンツ提示処理を実行する。ただし、上述した状態遷移を分かり易く説明するために、ユーザ14a−14dを識別して説明することにする。また、ウインドウ120,122も識別して説明することにする。
図13に示すように、コンピュータ26はコンテンツ提示処理を開始すると、ステップS1で、コンテンツの使用状態をC0状態に設定する。つまり、状態フラグの最上位ビットにデータ値「1」を設定し、他のすべてのビットにデータ値「0」を設定する。
次のステップS3では、検出範囲200にユーザ14aが侵入したかどうかを判断する。つまり、今まで検出していなかったタグ42のRFIDを検出したかどうかを判断する。以下、同じ。ステップS3で“NO”であれば、つまり検出範囲200にユーザ14aが侵入していなければ、後述するステップS11に進む。一方、ステップS3で“YES”であれば、つまり検出範囲200にユーザaが侵入すれば、ステップS5で、当該ユーザ14aの位置を検出する。ここでは、上述したように、ユーザ14aの2次元位置(x,z)を検出する。
続いて、ステップS7では、当該ユーザ14aに応じたメニュー画面を表示する。つまり、検出したRFIDからユーザ14aを識別(特定)し、識別したユーザ14aについてのプロファイル情報に基づいてメニュー画面を作成し、ウインドウ120に表示する。ただし、このときウインドウ120は、デフォルトサイズに設定される。また、ウインドウ120の設定位置すなわちメニュー画面の表示位置については上述した通りである。さらに、メニュー画面を表示すると、その表示された位置に応じて、使用中フラグが設定される。
そして、ステップS9では、検出範囲200からユーザ14aが退出したかどうかを判断する。ここでは、今まで検出していたユーザ14aに対するRFIDを検出しなくなったかどうかを判断する。ステップS9で“NO”であれば、つまり検出範囲200からユーザ14aが退出していなければ、C0状態からC1状態に遷移するか否かの途中の状態であると判断して、後述するステップS13に進む。一方、ステップS9で“YES”であれば、つまり検出範囲200からユーザ14aが退出すると、C0状態を維持すると判断して、ステップS1に戻る。ただし、このとき、メニュー画面を消去する。
上述したように、ステップS3で“NO”となると、ステップS11で、検出範囲200にユーザ14aが存在するかどうかを判断する。つまり、RFID読取装置38が、ユーザ14aが所持するタグ42の送信信号を検出しており、検出しているタグ42の2次元位置(x,z)が検出範囲200内であるかどうかを判断する。ステップS11で“NO”であれば、つまり検出範囲200にユーザ14aが存在しなければ、そのままステップS1に戻る。
しかし、ステップS11で“YES”であれば、つまり検出範囲200にユーザ14aが存在する場合には、ステップS13で、コンテンツの使用状態がC1状態であるかどうかを判断する。ここでは、状態フラグを参照して、コンテンツ使用状態がC1状態であるかどうかを判断するのである。以下、コンテンツの使用状態を判断する場合において同じである。
ステップS13で“YES”であれば、つまりコンテンツの使用状態がC1状態であれば、図14に示すステップS25に進む。一方、ステップS13で“NO”であれば、つまりコンテンツ使用状態がC1状態でなければ、ステップS15で、当該ユーザ14aの位置(2次元位置)を検出し、ステップS17で、メニュー画面とインタラクションがあるかどうかを判断する。つまり、メニュー画面の所望のコンテンツをタッチ(選択)したかどうかを判断する。
ステップS17で“NO”であれば、つまりメニュー画面とインタラクションが無ければ、ステップS19で、当該ユーザ14aの位置に応じてウインドウ120の位置を変更して、ステップS9に進む。一方、ステップS17で“YES”であれば、つまりメニュー画面とインタラクションが有れば、ステップS21で、タッチされたコンテンツについてのコンテンツ画面を表示し、ステップS23で、コンテンツの使用状態をC1状態に設定して、すなわち状態フラグを更新して、ステップS9に進む。
図14に示すように、ステップS25では、ウインドウ120の中心位置が標準中心位置と一致するかどうかを判断する。ステップS25で“YES”であれば、つまり各ウインドウ120の中心位置が標準中心位置と一致する場合には、そのままステップS29に進む。一方、ステップS25で“NO”であれば、つまりウインドウ120の中心位置が標準中心位置と一致してない場合には、当該ウインドウ120を最も近い標準中心位置(表示領域12aの標準中心位置)に向けて所定量移動させて、ステップS29に進む。したがって、ステップS27の処理が実行される度に、徐々にウインドウ120が移動され、未使用の表示領域12b,12cが確保される。つまり、スクリーン12を効率良く使用することができる。
ステップS29では、検出範囲200に、他のユーザ14b,14cが侵入したかどうかを判断する。ステップS29で“YES”であれば、つまり検出範囲200に、他のユーザ14b,14cが侵入すれば、後述するステップS37に進む。一方、ステップS29で“NO”であれば、つまり検出範囲200に、他のユーザ14b,14cが侵入していなければ、ステップS31で、コンテンツの表示領域12a(厳密には、表示領域12aに対応する第1検出領域200aである。以下、同じ。)からユーザ14a,14cが退出したかどうかを判断する。つまり、コンテンツの使用(視聴)を辞めたユーザ14a,14bが存在するかどうかを判断するのである。ただし、ここでは、コンテンツの使用状態がC1状態である場合に、ユーザ14aが退出したかどうかを判断し、後述するように、コンテンツの使用状態がC3状態である場合に、ユーザ14a,14cが退出したかどうかを判断するのである。
ステップS31で“NO”であれば、つまりコンテンツの表示領域12aからユーザ14a,14cが退出していなければ、そのままステップS25に戻る。一方、ステップS31で“YES”であれば、つまりコンテンツの表示領域12aからユーザ14a,14cが退出すれば、ステップS33で、当該コンテンツについての使用人数を1減算する。
なお、図示は省略するが、コンテンツ画面が表示されるとき、当該コンテンツ画面に対応して、コンテンツの使用人数をカウントするカウンタ(レジスタ)が内部メモリ32に設けられる。したがって、コンテンツの使用人数を1減算する場合には、当該コンテンツに対応して設定されたカウンタがデクリメントされる。ただし、後述するように、コンテンツの使用人数を1加算する場合には、当該コンテンツに対応して設定されたカウンタがインクリメントされる。
続いて、ステップS35では、当該コンテンツの使用人数が1人であるかどうかを判断する。厳密には、ステップS35では、C1状態における1のコンテンツについての使用人数が、1人であるか、0人であるかを判断しているのである。ステップS35で“YES”であれば、つまり当該コンテンツの使用人数が1人であれば、そのままステップS25に戻る。一方、ステップS35で“NO”であれば、つまり当該コンテンツの使用人数が1人でなければ、使用人数が0人であると判断して、図13に示したステップS1に戻る。つまり、コンテンツの使用状態がC1状態からC0状態に遷移する(戻る)。
また、上述したように、ステップS29で“YES”となると、ステップS37で、コンテンツの使用状態がC3状態であるかどうかを判断する。ステップS37で“YES”であれば、つまりコンテンツの使用状態がC3状態である場合には、後述する図18のステップS93に進む。一方、ステップS37で“NO”であれば、つまりコンテンツの使用状態がC2状態である場合には、ステップS39で、検出範囲200に侵入したユーザ14b,14cが、既に表示されているコンテンツの表示領域12a(第1検出領域200a)内に存在するか否かを判断する。ステップS39で“NO”であれば、つまりユーザ14b,14cが既に表示されているコンテンツの表示領域12a内に存在しなければ、コンテンツの使用状態がC1状態からC2状態に遷移するか否かの途中であると判断して、後述する図15のステップS47に進む。
一方、ステップS39で“YES”であれば、つまりユーザ14bが既に表示されているコンテンツの表示領域12a内に存在すれば、ステップS41で、当該コンテンツについての使用人数を1加算して、ステップS43で、コンテンツの使用状態をC3状態に設定する。つまり、状態フラグを更新する。そして、ステップS45で、ウインドウ120を拡大して、ステップS25に戻る。たとえば、ステップS45では、ウインドウ120を所定の倍率で拡大する。
図15に示すように、ステップS47では、当該ユーザ14bの位置を検出する。続くステップS49では、当該ユーザ14bに応じたメニュー画面を表示する。つまり、他のウインドウ122を設定して、設定したウインドウ122に、ユーザ14bに応じたメニュー画面を表示する。そして、ステップS51では、ユーザ14a,14bが検出範囲200から退出したかどうかを判断する。ただし、ここでは、コンテンツの使用状態がC1状態である場合には、ユーザ14aが退出したかどうかを判断し、コンテンツの使用状態がC2状態である場合には、ユーザ14a,14bが退出したかどうかを判断するのである。ステップS51で“NO”であれば、つまりユーザ14a,14bが検出範囲200から退出していなければ、後述するステップS59に進む。一方、ステップS51で“YES”であれば、つまりユーザ14a,14bが検出範囲200から退出すれば、ステップS53で、ユーザ14a,14bが退出してから一定時間(たとえば、10秒)が経過したかどうかを判断する。
なお、図示は省略するが、一定時間は、コンピュータ26の内部タイマでカウントされる。また、このように、一定時間をカウントするのは、確実に、検出範囲200から退出したこと、すなわちコンテンツの視聴を終了したこを判断するためである。
ステップS53で“NO”であれば、つまりユーザ14a,14bが退出してから一定時間が経過していなければ、そのままステップS51に戻る。一方、ステップS55で“YES”であれば、つまりユーザ14a,14bが退出してから一定時間が経過すれば、ステップS55で、コンテンツの使用状態がC2状態であるかどうかを判断する。ステップS55で“NO”であれば、つまりコンテンツの使用状態がC1状態である場合には、図13に示したステップS1に戻る。一方、ステップS55で“YES”であれば、つまりコンテンツの使用状態がC2状態である場合には、ステップS57で、コンテンツの使用状態をC1状態に設定して、図13に示したステップS9に戻る。つまり、コンテンツの使用状態がC2状態からC1状態に遷移する(戻る)。
また、上述したように、ステップS51で“NO”となると、ステップS59で、コンテンツの使用状態がC2状態であるかどうかを判断する。ステップS59で“YES”であれば、つまりコンテンツの使用状態がC2状態である場合には、後述する図16のステップS71に進む。一方、ステップS59で“NO”であれば、つまりコンテンツの使用状態がC1状態である場合には、ステップS61で、当該ユーザ14bの位置を検出し、ステップS63で、メニュー画面とインタラクションが有るかどうかを判断する。ステップS63で“NO”であれば、ステップS65で、当該ユーザ14bの位置に応じてウインドウ122の位置を変更して、ステップS51に戻る。一方、ステップS63で“YES”であれば、ステップS67で、ウインドウ122にコンテンツ画面を表示して、ステップS69で、コンテンツの使用状態をC2状態に設定して、すなわち状態フラグを更新して、ステップS51に戻る。
上述したように、ステップS59で“YES”となると、図16に示すステップS71で、各ウインドウ120,122の中心位置が標準中心位置と一致するかどうかを判断する。ステップS71で“YES”であれば、つまり各ウインドウ120,122の中心位置が標準中心位置と一致する場合には、そのままステップS75に進む。一方、ステップS71で“NO”であれば、つまり各ウインドウ120,122の中心位置が標準中心位置と一致しない場合には、各ウインドウ120,122を最も近い標準中心位置に向けて所定量移動して、ステップS75に進む。ただし、ステップS75では、ウインドウ120,122のうち、中心位置が標準中心位置と一致していないものだけが移動され、既に中心位置が標準中心位置と一致している場合には移動されない。
ステップS75では、コンテンツの表示領域12aにユーザ14cが侵入したかどうかを判断する。ステップS75で“NO”であれば、つまりコンテンツの表示領域12aにユーザ14cが侵入していなければ、後述する図17のステップS83に進む。一方、ステップ75で“YES”であれば、つまりコンテンツの表示領域12aにユーザ14cが侵入すれば、ステップS77で、当該コンテンツについての使用人数を1加算し、ステップS79で、コンテンツの使用状態をC4状態に設定し、すなわち状態フラグを更新し、ステップS81で、当該コンテンツのウインドウ120を拡大して、ステップS71に戻る。
ただし、ステップS79では、既にコンテンツの使用状態としてC4状態が設定されている場合には、状態フラグを更新せずに、そのままステップS81に進む。また、ウインドウ120の大きさが最大になっている場合には、ウインドウ120を拡大せずに、そのままステップS71に戻る。
上述したように、ステップS75で“NO”となると、図17に示すステップS83で、コンテンツンの使用状態がC4状態であるかどうかを判断する。ステップS83で“NO”であれば、つまりコンテンツの使用状態がC2状態であれば、そのまま図16に示したステップS71に戻る。一方、ステップS83で“YES”であれば、つまりコンテンツの使用状態がC4状態であれば、ステップS85で、コンテンツの表示領域12aからユーザ14a,14cが退出したかどうかを判断する。
ステップS85で“NO”であれば、つまりコンテンツの表示領域12aからユーザ14a,14cが退出していなければ、そのままステップS71に戻る。一方、ステップS85で“YES”であれば、つまりコンテンツの表示領域12aからユーザ14a,14cが退出すれば、ステップS87で、当該コンテンツについての使用人数を1減算する。そして、ステップS89で、スクリーン12に表示されているすべてのコンテンツの各々の使用人数が1であるかどうかを判断する。つまり、複数のコンテンツの各々を、1人のユーザ14が使用している状態であるかどうかを判断するのである。
ステップS89で“NO”であれば、つまりすべてのコンテンツの各々の使用人数が1でなければ、コンテンツの使用状態をC4状態で維持すると判断して、ステップS71に戻る。一方、ステップS89で“YES”であれば、つまりすべてのコンテンツの各々の使用人数が1であれば、ステップS91で、コンテンツの使用状態をC2状態に設定して、すなわち状態フラグを更新し、図15に示したステップS51に戻る。
また、図14に示したように、ステップS37で“YES”であれば、図18に示すステップS93で、当該ユーザ14d(部分範囲210に侵入したユーザ14d)の2次元位置(x,z)を検出する。続くステップS95では、当該ユーザ14dに対してメニュー画面を表示する。次のステップS97では、部分範囲210からユーザ14dが退出したかどうかを判断する。ステップS97で“NO”であれば、つまり部分範囲210からユーザ14dが退出していなければ、後述する図19のステップS103に進む。
また、ステップS97で“YES”であれば、つまり部分範囲210からユーザ14dが退出すれば、ステップS99で、ユーザ14dが退出してから一定時間が経過したかどうかを判断する。ステップS99で“NO”であれば、つまりユーザ14dが退出してから一定時間が経過していなければ、そのままステップS97に戻る。一方、ステップS99で“YES”であれば、つまりユーザ14dが退出してから一定時間が経過すれば、ステップS101で、コンテンツの使用状態をC3状態に設定して、すなわち状態フラグを更新し、図14に示したステップS25に戻る。
上述したように、ステップS97で“NO”となると、図19に示すステップS103で、コンテンツの使用状態がC4状態であるかどうかを判断する。ステップS103で“NO”であれば、つまりコンテンツの使用状態がC3状態であれば、ステップS105で、当該ユーザ14dの2次元位置(x,z)を検出し、ステップS107で、メニュー画面とインタラクションがある(タッチしたか)かどうかを判断する。ステップS107で“NO”であれば、つまりメニュー画面とインタラクションが無ければ、ステップS109で、当該ユーザ14dの位置に応じてウインドウ122の位置を変更し、図18に示したステップS97に戻る。一方、ステップS107で“YES”でれば、つまりメニュー画面とインタラクションが有れば、ステップS111で、ウインドウ122にコンテンツ画面を表示し、ステップS113で、コンテンツの使用状態をC4状態に設定して、すなわち状態フラグを更新して、ステップS97に戻る。
また、ステップS103で“YES”であれば、つまりコンテンツの使用状態がC4状態であれば、ステップS115で、各ウインドウ120,122の中心位置が標準中心位置と一致するかどうかを判断する。ステップS115で“YES”であれば、つまり各ウインドウ120,122の中心位置が標準中心位置と一致する場合には、そのままステップS97に戻る。一方、ステップS115で“NO”であれば、つまり各ウインドウ120,122の中心位置が標準中心位置と一致しない場合には、ステップS117で、各ウインドウ120,122を最も近い標準中心位置に向けて所定量移動して、ステップS97に戻る。
この実施例によれば、コンテンツが表示されるウインドウを移動させて、空き領域を確保するので、スクリーンに複数のコンテンツを表示する場合に、効率良くスクリーンの表示領域を使用することができる。また、1のコンテンツを複数のユーザで視聴する場合には、ウインドウを拡大させるので、各ユーザはコンテンツを視聴し易い。さらに、ユーザは、既に表示されているコンテンツの視聴に参加したり、別途コンテンツを表示させたりすることができるので、利便性を向上することができる。
なお、この実施例では、スクリーンにタッチすることによりコンテンツを選択するようにしたため、図1に示したようなスクリーン、ランプ、ミラー、カメラおよびプロジェクタ等を用いるようにした。しかし、このような構成に限定される必要はない。たとえば、スクリーンとは別に、入力装置ないしボタンを設けるようにした場合には、スクリーンには、単にコンテンツを表示するだけでよい。かかる場合には、スクリーンに代えて、LCDやプラズマディスプレイのような他の表示装置を用いて、コンピュータがメニュー画面やコンテンツ画面を表示するようにしてもよい。もしくは、布製のスクリーンを用いて、または、スクリーンを用いずに白壁に、プロジェクタからの映像を映写するようにしてもよい。
また、この実施例では、視聴者を識別するタグおよびRFID読取装置を用いて、スクリーンと視聴者との距離を検出するようにした。ただし、視聴者を識別するとともに、スクリーンと視聴者との距離を検出する方法はこれに限定されるべきではない。たとえば、ARTag(http://www.artag.net/)を用いることが考えられる。かかる場合には、同じ種類の2つのARTagが用いられ、一方のARTagが視聴者の正面側(たとえば、胸部)に貼り付けられ、他方のARTagが視聴者の上面側(たとえば、肩,頭頂部)に貼り付けられる。また、2つのARTagを検出するために、2台のカメラが設置される。一方のカメラは、スクリーン12の背面側であり、スクリーンに対面する視聴者を正面から撮影可能な位置に配置され、その正面側に貼り付けられたARTagを撮影する。他方のカメラは、スクリーンが配置され、少なくとも目視可能範囲に存在する視聴者を上部から撮影可能な位置(天井)に配置され、その上面側に貼り付けられたARTagを撮影する。したがって、ARTagと視聴者とを対応付けておけば、2台のカメラの撮影画像から認識されるARTagの種類に応じて視聴者を特定することができ、また、天井に設置したカメラの撮影画像からスクリーン12と視聴者との距離を測定(検出)することができる。