(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0012】
以下、本発明の好適な実施形態につき説明する。
【0013】
<構成>
図3は一実施形態にかかるシステムの構成例を示す図である。
図3において、複数の端末装置1A、1B、1C、・・は、無線LAN(Local Area Network)等のネットワーク2を介して、あるいは無線接続により直接に、PC(Personal Computer)等のサーバ装置(情報処理装置)3に接続できるようになっている。また、テレビ等のモニタ装置4はサーバ装置3に接続されている。なお、サーバ装置3は、モニタ装置4に内蔵されるものでもよい。
【0014】
図4は各装置の機能構成例を示す図である。
図4において、端末装置1(1A、1B、1C、・・)は、端末装置1側からイベント情報をサーバ装置3に送信するイベント送信部11(11A、11B、11C、・・)を備えている。
【0015】
サーバ装置3は、イベント処理部31とOS(Operating System)32とアプリケーション33とを備えている。イベント処理部31は、制御部311とイベント受信部312とイベントバッファ313と端末毎イベント集約部314とマルチタッチイベント変換部315とID管理情報316と前回値情報317とイベント通知部318とを備えている。アプリケーション33は、マルチタッチイベント配列処理部331を備えている。
【0016】
イベント処理部31は、複数の端末装置1からイベント情報を受信し、マルチタッチイベントにイベント情報を変換して、OS32に引き渡す機能を有している。マルチタッチイベントは、本来はタッチパネルに対する複数の指のタッチ状態を同時に伝えるイベントであるが、ここでは、複数の情報を区別して同時に送ることができる性質を利用し、複数の端末装置1のイベント情報を区別した状態で同時に送るために用いている。また、マルチタッチイベントはOS標準のイベント形式であるため、そのままOS32に引き渡すことができ、OS32はマルチタッチイベントを監視(リッスン)しているアプリケーション33にそのまま引き渡すことができる。
【0017】
制御部311は、イベント処理部31における全体的な制御を行う機能を有している。イベント受信部312は、複数の端末装置1からイベント情報を受信し、受信したイベント情報をイベントバッファ313に格納する機能を有している。端末毎イベント集約部314は、イベント受信部312により受信されてイベントバッファ313に格納されたイベント情報を、所定時間毎に、端末装置1毎に集約する機能を有している。ここでの所定時間は、OS32が連続したイベントを「連続している」と判断できる時間(数十msec)より短くするものとする。
【0018】
マルチタッチイベント変換部315は、端末装置1毎に集約されたイベント情報(端末毎集約イベント)から、マルチタッチイベントに変換する機能を有している。この際、端末IDとマルチタッチイベントの配列要素の位置(添字)の対応関係を取得するためにID管理情報316を用いる。ID管理情報316は、API(Application Program Interface)を介してアプリケーション33から参照することもできる。また、端末装置1をポインティングデバイスとして用いる場合のイベント情報に含まれる変位を、マルチタッチイベントでは絶対座標に変換するため、前回の計算結果(初期値は画面中央の座標値)を保持した前回値情報317を用いている。イベント通知部318は、マルチタッチイベント変換部315により生成(変換)されたマルチタッチイベントをOS32に引き渡す機能を有している。
【0019】
OS32は、サーバ装置3において基本的な制御を行う部分であり、イベント処理部31からマルチタッチイベントを受け取ると、アプリケーション33にマルチタッチイベントを通知する。
【0020】
アプリケーション33は、サーバ装置3上で端末装置1により操作の対象となる表示画面を提供するプログラムであり、OS32から通知されるマルチタッチイベントの配列(マルチタッチイベント配列)を処理するマルチタッチイベント配列処理部331を含んでいる。マルチタッチイベント配列は、マルチタッチイベントの内容(タッチ位置の絶対座標)を示すデータ構造体である。
【0021】
図5は端末装置1およびサーバ装置3の情報処理にかかるハードウェア構成例を示す図である。
図5において、端末装置1等は、バス107を介して相互に接続されたCPU(Central Processing Unit)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103を備えている。また、端末装置1等は、HDD(Hard Disk Drive)/SSD(Solid State Drive)104、接続I/F(Interface)105、通信I/F106を備えている。CPU101は、RAM103をワークエリアとしてROM102またはHDD/SSD104等に格納されたプログラムを実行することで、端末装置1等の動作を統括的に制御する。接続I/F105は、端末装置1等に接続される機器とのインタフェースである。通信I/F106は、ネットワークを介して他の情報処理装置と通信を行うためのインタフェースである。
【0022】
図4で説明した端末装置1等の機能は、CPU101において所定のプログラムが実行されることで実現される。プログラムは、記録媒体を経由して取得されるものでもよいし、ネットワークを経由して取得されるものでもよいし、ROM組込でもよい。処理に際して参照・更新されるデータは、RAM103またはHDD/SSD104に保持される。
【0023】
<動作>
図6は上記の実施形態の処理例を示すフローチャートであり、
図7はマルチタッチイベントの配列への変換(
図6のステップS106)の処理例を示すフローチャートである。
【0024】
図6において、サーバ装置3のイベント処理部31の制御部311は、処理を開始すると、内部的なタイマの時間を設定してタイマをスタートする(ステップS101)。タイマの設定時間は、OS32が連続したイベントを「連続している」と判断できる時間(数十msec)より短く設定する。
【0025】
次いで、イベント受信部312が端末装置1からイベント情報を受信した場合(ステップS102のYes)、イベント受信部312は受信したイベント情報をイベントバッファ313へ格納する(ステップS103)。
【0026】
次いで、制御部311は、タイマの設定時間を経過したか否か判断し(ステップS104)、経過していない場合(ステップS104のNo)、イベント受信の判断(ステップS102)に戻る。
【0027】
図8は端末装置1から送信されたイベント情報がイベントバッファ313に格納される例を示す図であり、イベント受信部312は端末装置1A、1Bから前後してイベント情報を受信し、イベントバッファ313に格納した状態を示している。図示のイベント情報は、端末装置1A、1Bをポインティングデバイスとして使用する場合の例を示しており、端末装置1A、1Bを識別する端末IDと、X変位(水平方向の変位)と、Y変位(垂直方向の変位)とを含んでいる。変位は、端末装置1内において検出された加速度に応じた値である。
【0028】
図6に戻り、タイマの設定時間を経過した場合(ステップS104のYes)、制御部311は端末毎イベント集約部314を動作させ、端末毎イベント集約部314はイベントバッファ313内の各端末装置1のイベントを端末装置1毎に集約する(ステップS105)。集約が完了した場合、イベントバッファ313の内容はクリアする。
【0029】
図9はイベントバッファ313に格納されたイベント情報から端末毎集約イベントを生成する例を示す図である。図示のイベントバッファ313には所定時間内に受信したイベント情報が格納されており、ポインティングデバイスとしてのイベント情報として変位を含んだものである。そのため、例えば、格納されたイベント情報のX変位とY変位を端末装置1毎にそれぞれ平均することで集約を行う。端末装置1の加速度に応じた変位はばらつきが生じやすいが、所定時間内の変位の平均をとることで、ばらつきが平準化される利点がある。
【0030】
図6に戻り、集約が完了すると、制御部311はマルチタッチイベント変換部315を動作させ、端末毎集約イベントをひとつのマルチタッチイベント配列に変換する(ステップS106)。マルチタッチイベント変換部315の処理を、
図7を用いてより詳しく説明する。
【0031】
図7において、マルチタッチイベント変換部315は、処理を開始すると、端末毎集約イベント毎に以下の処理を行う。
【0032】
先ず、マルチタッチイベント変換部315は、端末毎集約イベントの端末IDがID管理情報316に登録済であるか否か判断する(ステップS111)。登録済でない場合(ステップS111のNo)、マルチタッチイベント変換部315は配列の未割当の位置を新規に割り当てる(ステップS112)。割当は端末IDと配列要素の位置の対をID管理情報316に登録することで行う。
【0033】
次いで、マルチタッチイベント変換部315は、新規に割り当てた場合は、初期値としてモニタ装置4の表示画面の中心座標に基づいて配列要素に設定する値を算出する(ステップS113)。すなわち、表示画面の中心座標に対して端末毎集約イベントの変位が加えられたX方向およびY方向の絶対座標を算出する。表示画面の中心座標は、予め設定しておくか、動的に取得する。
図10はマルチタッチイベントへの変換の例を示す図である。図示の例では、端末毎集約イベントの端末ID「PhoneA」「PhoneB」がID管理情報316に未登録である場合に、ID管理情報316の新規に登録を行い、前回値情報317として画面中心座標に端末毎集約イベントの変位を加算して絶対座標を算出した状態を示している。
【0034】
図7に戻り、マルチタッチイベント変換部315は、次回の算出のために、算出した値を端末装置1毎にタイムスタンプを付加して保持する(ステップS114)。
【0035】
次いで、マルチタッチイベント変換部315は、算出した値を配列要素の割当位置に設定し(ステップS115)、処理を終了する。
図10では、ID管理情報316において端末ID「PhoneA」が配列要素位置[0]に割り当てられ、端末ID「PhoneB」が配列要素位置[2]に割り当てられたとする。この場合、マルチタッチイベント配列の先頭から「PhoneA」のX絶対座標、Y絶対座標、「PhoneB」のX絶対座標、Y絶対座標にそれぞれ値が設定される。
【0036】
図7に戻り、端末毎集約イベントの端末IDが登録済であった場合(ステップS111のYes)、マルチタッチイベント変換部315は、所定時間経過後の再接続であるか否か、前回値情報317のタイムスタンプにより判断する(ステップS116)。この場合の所定時間は、一時的な通信断等によりイベント情報が途切れた場合でも同じ端末装置1からのイベント情報として再接続を許容するためのものであり、端末毎イベント集約部314においてイベント情報を集約する時間間隔よりも長い時間間隔とする。そして、所定時間経過後の再接続である場合(ステップS116のYes)、新規登録の場合と同様に、初期値としてモニタ装置4の表示画面の中心座標に基づいて配列要素に設定する値を算出する(ステップS113)。その後の処理(ステップS114、S115)も同様である。
【0037】
また、所定時間経過後の再接続でない場合(ステップS116のNo)、マルチタッチイベント変換部315は、前回値情報317に保持された各端末装置1毎の前回値に基づいて配列要素に設定する値を算出する(ステップS117)。
図11は、端末毎集約イベントの端末ID「PhoneA」「PhoneB」がID管理情報316に登録済であり、所定時間経過後の再接続でない場合に、前回値情報317の各端末装置1のX絶対座標・Y絶対座標に端末毎集約イベントのX変位・Y変位を加算して絶対座標を算出した状態を示している。
【0038】
図7に戻りマルチタッチイベント変換部315は、次回の算出のために、算出した値を端末装置1毎にタイムスタンプを付加して保持(既に保持されているため上書き)する(ステップS114)。次いで、マルチタッチイベント変換部315は、算出した値を配列の割当位置に設定し(ステップS115)、処理を終了する。
【0039】
図6に戻り、マルチタッチイベント変換部315によりマルチタッチイベントへの変換が行われると、イベント通知部318は、変換後のマルチタッチイベントをOS32に通知し(ステップS107)、制御部311はタイマをクリアする(ステップS108)。そして、タイマの設定およびスタート(ステップS101)から処理を繰り返す。
【0040】
OS32は、マルチタッチイベントの通知を受けると、アプリケーション33にマルチタッチイベントを通知し、アプリケーション33のマルチタッチイベント配列処理部331はマルチタッチイベント配列の内容に従って所定の処理を行う。
【0041】
図12はマルチタッチイベント配列に基づいて端末装置1毎に軌跡を描画するプログラムの例を示す図である。
図12(a)において、「canvas.addEventListener」はイベントターゲット「canvas」に対してイベントリスナーを登録し、それを呼び出す記述である。図示のイベントリスナーは、タイプ「'touchmove'」のイベントをリッスンし、そのタイプのイベントが発生した場合にそのタッチ内容「event.touches」に応じて、コマンド「drawLines」により線を描画する。OS32から通知されるマルチタッチイベントはタイプ「'touchmove'」のイベントに相当し、タッチ内容はマルチタッチイベント配列で示される。
【0042】
図12(b)は上記のプログラムによりモニタ装置4のユーザA、Bの端末装置1A、1Bにより表示画面上に描画を行っている状態を示している。ユーザA、Bがそれぞれ操作する端末装置1A、1Bからのイベント情報はマルチタッチイベントにおいて配列要素の位置により区別されるため、別々の線として描画される。また、連続した描画であるか否かはOS32がイベントの時間間隔から判断するため、アプリケーション33側で判断する必要はない。
【0043】
なお、マルチタッチイベント配列だけからは、異なる端末装置1からのイベント情報であることは区別できるが、端末装置1を特定することはできない。端末装置1を特定する必要がある場合は、APIを介してID管理情報316を参照し、マルチタッチイベント配列の要素位置から端末IDを取得する。
【0044】
なお、イベント情報として、端末装置1をポインティングデバイスとして使用する場合の変位を含む場合について説明したが、変位に代えて音声データや動画データ等の他の形式のデータを含めることもできる。
【0045】
<総括>
以上説明したように、本実施形態によれば、アプリケーションにおけるイベント情報の処理を容易にすることができる。
【0046】
以上、好適な実施の形態により説明した。ここでは特定の具体例を示して説明したが、特許請求の範囲に定義された広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により限定されるものと解釈してはならない。
【0047】
以上の説明に関し、更に以下の項を開示する。
(付記1)
複数の端末装置からイベント情報を受信する受信部と、
所定時間内に受信した前記イベント情報を、複数の同時に発生するタッチイベントを記述する形式のマルチタッチイベントに変換する変換部と、
前記マルチタッチイベントをオペレーティングシステムを経由して対象となるアプリケーションに通知する通知部と、
を備えたことを特徴とする情報処理装置。
(付記2)
前記変換部は、所定時間内に受信した前記イベント情報を端末装置毎に集約した上で、マルチタッチイベントに変換する、
ことを特徴とする付記1に記載の情報処理装置。
(付記3)
前記変換部は、前記端末装置の変位を含む前記イベント情報について、前記端末装置毎に所定時間内に受信した前記イベント情報の変位の平均をとることで集約を行う、
ことを特徴とする付記2に記載の情報処理装置。
(付記4)
前記変換部は、前記端末装置の変位を含む前記イベント情報について、表示画面上の絶対座標を算出してマルチタッチイベントの端末装置に対応する配列要素に設定する、
ことを特徴とする付記1乃至3のいずれか一項に記載の情報処理装置。
(付記5)
前記変換部は、前記イベント情報が途切れた端末装置について、マルチタッチイベントの該端末装置に対応する配列要素をブランクとし、前記イベント情報が再到来した端末装置について、マルチタッチイベントのそれまでと同じ配列要素に値を設定する、
ことを特徴とする付記1乃至4のいずれか一項に記載の情報処理装置。
(付記6)
前記変換部は、前記端末装置の変位を含む前記イベント情報について、所定の許容時間内に前記イベント情報が再到来した端末装置について、前回の絶対座標の算出結果を基準に絶対座標を算出し、所定の許容時間経過後に前記イベント情報が再到来した端末装置について、初回の場合と同じに表示画面の中心座標を基準に絶対座標を算出する、
ことを特徴とする付記5に記載の情報処理装置。
(付記7)
複数の端末装置と情報処理装置とを備えた情報処理システムであって、
前記端末装置は、イベント情報を送信する送信部を備え、
前記情報処理装置は、
前記端末装置からイベント情報を受信する受信部と、
所定時間内に受信した前記イベント情報を、複数の同時に発生するタッチイベントを記述する形式のマルチタッチイベントに変換する変換部と、
前記マルチタッチイベントをオペレーティングシステムを経由して対象となるアプリケーションに通知する通知部と、
を備えたことを特徴とする情報処理システム。
(付記8)
前記変換部は、所定時間内に受信した前記イベント情報を端末装置毎に集約した上で、マルチタッチイベントに変換する、
ことを特徴とする付記7に記載の情報処理システム。
(付記9)
前記変換部は、前記端末装置の変位を含む前記イベント情報について、前記端末装置毎に所定時間内に受信した前記イベント情報の変位の平均をとることで集約を行う、
ことを特徴とする付記8に記載の情報処理システム。
(付記10)
前記変換部は、前記端末装置の変位を含む前記イベント情報について、表示画面上の絶対座標を算出してマルチタッチイベントの端末装置に対応する配列要素に設定する、
ことを特徴とする付記7乃至9のいずれか一項に記載の情報処理システム。
(付記11)
前記変換部は、前記イベント情報が途切れた端末装置について、マルチタッチイベントの該端末装置に対応する配列要素をブランクとし、前記イベント情報が再到来した端末装置について、マルチタッチイベントのそれまでと同じ配列要素に値を設定する、
ことを特徴とする付記7乃至10のいずれか一項に記載の情報処理システム。
(付記12)
前記変換部は、前記端末装置の変位を含む前記イベント情報について、所定の許容時間内に前記イベント情報が再到来した端末装置について、前回の絶対座標の算出結果を基準に絶対座標を算出し、所定の許容時間経過後に前記イベント情報が再到来した端末装置について、初回の場合と同じに表示画面の中心座標を基準に絶対座標を算出する、
ことを特徴とする付記11に記載の情報処理システム。
(付記13)
複数の端末装置からイベント情報を受信し、
所定時間内に受信した前記イベント情報を、複数の同時に発生するタッチイベントを記述する形式のマルチタッチイベントに変換し、
前記マルチタッチイベントをオペレーティングシステムを経由して対象となるアプリケーションに通知する、
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
(付記14)
前記変換する処理は、所定時間内に受信した前記イベント情報を端末装置毎に集約した上で、マルチタッチイベントに変換する、
ことを特徴とする付記13に記載の情報処理プログラム。
(付記15)
前記変換する処理は、前記端末装置の変位を含む前記イベント情報について、前記端末装置毎に所定時間内に受信した前記イベント情報の変位の平均をとることで集約を行う、
ことを特徴とする付記14に記載の情報処理プログラム。
(付記16)
前記変換する処理は、前記端末装置の変位を含む前記イベント情報について、表示画面上の絶対座標を算出してマルチタッチイベントの端末装置に対応する配列要素に設定する、
ことを特徴とする付記13乃至15のいずれか一項に記載の情報処理プログラム。
(付記17)
前記変換する処理は、前記イベント情報が途切れた端末装置について、マルチタッチイベントの該端末装置に対応する配列要素をブランクとし、前記イベント情報が再到来した端末装置について、マルチタッチイベントのそれまでと同じ配列要素に値を設定する、
ことを特徴とする付記13乃至16のいずれか一項に記載の情報処理プログラム。
(付記18)
前記変換する処理は、前記端末装置の変位を含む前記イベント情報について、所定の許容時間内に前記イベント情報が再到来した端末装置について、前回の絶対座標の算出結果を基準に絶対座標を算出し、所定の許容時間経過後に前記イベント情報が再到来した端末装置について、初回の場合と同じに表示画面の中心座標を基準に絶対座標を算出する、
ことを特徴とする付記17に記載の情報処理プログラム。
(付記19)
複数の端末装置からイベント情報を受信し、
所定時間内に受信した前記イベント情報を、複数の同時に発生するタッチイベントを記述する形式のマルチタッチイベントに変換し、
前記マルチタッチイベントをオペレーティングシステムを経由して対象となるアプリケーションに通知する、
処理をコンピュータが実行することを特徴とする情報処理方法。
(付記20)
前記変換する処理は、所定時間内に受信した前記イベント情報を端末装置毎に集約した上で、マルチタッチイベントに変換する、
ことを特徴とする付記19に記載の情報処理方法。
(付記21)
前記変換する処理は、前記端末装置の変位を含む前記イベント情報について、前記端末装置毎に所定時間内に受信した前記イベント情報の変位の平均をとることで集約を行う、
ことを特徴とする付記20に記載の情報処理方法。
(付記22)
前記変換する処理は、前記端末装置の変位を含む前記イベント情報について、表示画面上の絶対座標を算出してマルチタッチイベントの端末装置に対応する配列要素に設定する、
ことを特徴とする付記19乃至21のいずれか一項に記載の情報処理方法。
(付記23)
前記変換する処理は、前記イベント情報が途切れた端末装置について、マルチタッチイベントの該端末装置に対応する配列要素をブランクとし、前記イベント情報が再到来した端末装置について、マルチタッチイベントのそれまでと同じ配列要素に値を設定する、
ことを特徴とする付記19乃至22のいずれか一項に記載の情報処理方法。
(付記24)
前記変換する処理は、前記端末装置の変位を含む前記イベント情報について、所定の許容時間内に前記イベント情報が再到来した端末装置について、前回の絶対座標の算出結果を基準に絶対座標を算出し、所定の許容時間経過後に前記イベント情報が再到来した端末装置について、初回の場合と同じに表示画面の中心座標を基準に絶対座標を算出する、
ことを特徴とする付記23に記載の情報処理方法。