(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-04-01
(45)【発行日】2022-04-11
(54)【発明の名称】コンテンツ共有システム
(51)【国際特許分類】
H04N 1/387 20060101AFI20220404BHJP
G06T 3/00 20060101ALI20220404BHJP
G06T 11/80 20060101ALI20220404BHJP
H04L 67/00 20220101ALI20220404BHJP
【FI】
H04N1/387
G06T3/00 700
G06T11/80 B
H04L67/00
(21)【出願番号】P 2016239676
(22)【出願日】2016-12-09
【審査請求日】2019-12-03
(73)【特許権者】
【識別番号】509291127
【氏名又は名称】株式会社MetaMoJi
(74)【代理人】
【識別番号】100092956
【氏名又は名称】古谷 栄男
(74)【代理人】
【識別番号】100101018
【氏名又は名称】松下 正
(72)【発明者】
【氏名】伊藤 良記
【審査官】橘 高志
(56)【参考文献】
【文献】特開2015-084211(JP,A)
【文献】特開平10-326274(JP,A)
【文献】特開平06-333006(JP,A)
【文献】特開2007-280147(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 1/387
G06T 3/00
G06T 11/80
H04L 67/00
(57)【特許請求の範囲】
【請求項1】
サーバ装置と、当該サーバ装置と通信可能な二以上の端末装置とを備えたコンテンツ共同編集システムであって、
前記サーバ装置は、
各端末装置から受信した操作情報を記録部に記録する操作情報記録手段と、
記録部に記録された操作情報を各端末装置に配信する操作情報配信手段とを備え、
前記端末装置は、
オブジェクトの特徴座標およびアフィン操作総量を記録する記録部と、
オブジェクトに対する操作を受け付ける直接操作受付手段と、
直接操作受付手段によって受け付けたオブジェクトに対する操作に基づいて、当該オブジェクトを操作し、操作結果を表示部に表示する直接操作表示手段と、
直接操作受付手段によって受け付けたオブジェクトに対する操作に基づいて、当該オブジェクトの特徴座標およびアフィン操作総量を更新し、当該アフィン操作総量を操作情報として前記サーバ装置に送信する直接操作送信手段と、
サーバ装置から受信した操作情報を受信する間接操作受信手段と、
間接操作受信手段によって受信した操作情報を受けると、記録部に記録されている当該オブジェクトの現在の特徴座標とアフィン操作総量とに基づいて、当該オブジェクトの生成当初の特徴座標を算出し、当該生成当初の特徴座標と受信した操作情報であるアフィン操作総量とに基づいて、操作後の特徴座標を算出して、操作結果を表示部に表示する間接操作表示手段と、
記録部に記録されている特徴座標とアフィン操作総量を、操作後の特徴座標と受信したアフィン操作総量で更新する間接操作記録手段と、
を備えたコンテンツ共同編集システム。
【請求項2】
請求項1のシステムにおいて、
前記直接操作送信手段は、サーバ装置を介して、他の端末装置に操作情報を送信することを特徴とするシステム。
【請求項3】
オブジェクトの特徴座標およびアフィン操作総量を記録する記録部と、
オブジェクトに対する操作を受け付ける直接操作受付手段と、
直接操作受付手段によって受け付けたオブジェクトに対する操作に基づいて、当該オブジェクトを操作し、操作結果を表示部に表示する直接操作表示手段と、
直接操作受付手段によって受け付けたオブジェクトに対する操作に基づいて、当該オブジェクトの特徴座標およびアフィン操作総量を更新し、当該アフィン操作総量を操作情報として、直接的または間接的に他の端末装置に送信する直接操作送信手段と、
直接的または間接的に他の端末装置から受信した操作情報を受信する間接操作受信手段と、
間接操作受信手段によって受信した操作情報を受けると、記録部に記録されている当該オブジェクトの現在の特徴座標とアフィン操作総量とに基づいて、当該オブジェクトの生成当初の特徴座標を算出し、当該生成当初の特徴座標と受信した操作情報であるアフィン操作総量とに基づいて、操作後の特徴座標を算出して、操作結果を表示部に表示する間接操作表示手段と、
記録部に記録されている特徴座標とアフィン操作総量を、操作後の特徴座標と受信したアフィン操作総量で更新する間接操作記録手段と、
を備えた端末装置。
【請求項4】
請求項3の装置において、
前記直接操作送信手段は、サーバ装置を介して、他の端末装置に操作情報を送信することを特徴とする装置。
【請求項5】
コンピュータによって端末装置を実現するための端末プログラムであって、コンピュータを、
オブジェクトに対する操作を受け付ける直接操作受付手段と、
直接操作受付手段によって受け付けたオブジェクトに対する操作に基づいて、当該オブジェクトを操作し、操作結果を表示部に表示する直接操作表示手段と、
直接操作受付手段によって受け付けたオブジェクトに対する操作に基づいて、記録部に記録されている当該オブジェクトの特徴座標およびアフィン操作総量を更新し、当該アフィン操作総量を操作情報として、直接的または間接的に他の端末装置に送信する直接操作送信手段と、
直接的または間接的に他の端末装置から受信した操作情報を受信する間接操作受信手段と、
間接操作受信手段によって受信した操作情報を受けると、記録部に記録されている当該オブジェクトの現在の特徴座標とアフィン操作総量とに基づいて、当該オブジェクトの生成当初の特徴座標を算出し、当該生成当初の特徴座標と受信した操作情報であるアフィン操作総量とに基づいて、操作後の特徴座標を算出して、操作結果を表示部に表示する間接操作表示手段と、
記録部に記録されている特徴座標とアフィン操作総量を、操作後の特徴座標と受信したアフィン操作総量で更新する間接操作記録手段として機能させるための端末プログラム。
【請求項6】
請求項5のプログラムにおいて、
前記直接操作送信手段は、サーバ装置を介して、他の端末装置に操作情報を送信することを特徴とするプログラム。
【請求項7】
サーバ装置と、当該サーバ装置と通信可能な二以上の端末装置とを備えたコンテンツ共同編集システムであって、
前記サーバ装置は、
各端末装置から受信した操作情報を記録部に記録する操作情報記録手段と、
記録部に記録された操作情報を各端末装置に配信する操作情報配信手段とを備え、
前記端末装置は、
オブジェクトの特徴座標およびアフィン操作総量を記録する記録部と、
オブジェクトに対する操作を受け付ける直接操作受付手段と、
直接操作受付手段によって受け付けたオブジェクトに対する操作に基づいて、当該オブジェクトを操作し、操作結果を表示部に表示する直接操作表示手段と、
直接操作受付手段によって受け付けたオブジェクトに対する操作に基づいて、当該オブジェクトの特徴座標を更新し、当該更新した特徴座標にアフィン操作総量の逆特性を乗じた生成当初の特徴座標を操作情報として前記サーバ装置に送信する直接操作送信手段と、
前記サーバ装置から受信した操作情報を受信する間接操作受信手段と、
間接操作受信手段によって受信した操作情報を受けると、記録部に記録されている当該オブジェクトのアフィン操作総量と前記操作情報である生成当初の特徴座標とに基づいて、操作後の特徴座標を算出して、操作結果を表示部に表示する間接操作表示手段と、
記録部に記録されている特徴座標を、操作後の特徴座標で更新する間接操作記録手段と、
を備えたコンテンツ共同編集システム。
【請求項8】
請求項7のシステムにおいて、
前記直接操作送信手段は、サーバ装置を介して、他の端末装置に操作情報を送信することを特徴とするシステム。
【請求項9】
オブジェクトの特徴座標およびアフィン操作総量を記録する記録部と、
オブジェクトに対する操作を受け付ける直接操作受付手段と、
直接操作受付手段によって受け付けたオブジェクトに対する操作に基づいて、当該オブジェクトを操作し、操作結果を表示部に表示する直接操作表示手段と、
直接操作受付手段によって受け付けたオブジェクトに対する操作に基づいて、当該オブジェクトの特徴座標を更新し、当該更新した特徴座標にアフィン操作総量の逆特性を乗じた生成当初の特徴座標を操作情報としてサーバ装置に送信する直接操作送信手段と、
前記サーバ装置から受信した操作情報を受信する間接操作受信手段と、
間接操作受信手段によって受信した操作情報を受けると、記録部に記録されている当該オブジェクトのアフィン操作総量と前記操作情報である生成当初の特徴座標とに基づいて、操作後の特徴座標を算出して、操作結果を表示部に表示する間接操作表示手段と、
記録部に記録されている特徴座標を、操作後の特徴座標で更新する間接操作記録手段と、
を備えた端末装置。
【請求項10】
請求項9の装置において、
前記直接操作送信手段は、サーバ装置を介して、他の端末装置に操作情報を送信することを特徴とする装置。
【請求項11】
コンピュータによって端末装置を実現するための端末プログラムであって、コンピュータを、
オブジェクトに対する操作を受け付ける直接操作受付手段と、
直接操作受付手段によって受け付けたオブジェクトに対する操作に基づいて、当該オブジェクトを操作し、操作結果を表示部に表示する直接操作表示手段と、
直接操作受付手段によって受け付けたオブジェクトに対する操作に基づいて、記録部に記録されている当該オブジェクトの特徴座標を更新し、当該更新した特徴座標にアフィン操作総量の逆特性を乗じた生成当初の特徴座標を操作情報としてサーバ装置に送信する直接操作送信手段と、
前記サーバ装置から受信した操作情報を受信する間接操作受信手段と、
間接操作受信手段によって受信した操作情報を受けると、記録部に記録されている当該オブジェクトのアフィン操作総量と前記操作情報である生成当初の特徴座標とに基づいて、操作後の特徴座標を算出して、操作結果を表示部に表示する間接操作表示手段と、
記録部に記録されている特徴座標を、操作後の特徴座標で更新する間接操作記録手段と、
を備えた端末プログラム。
【請求項12】
請求項11のプログラムにおいて、
前記直接操作送信手段は、サーバ装置を介して、他の端末装置に操作情報を送信することを特徴とするプログラム。
【請求項13】
サーバ装置と、当該サーバ装置と通信可能な二以上の端末装置とを備えたコンテンツ共同編集システムであって、
前記サーバ装置は、
各端末装置から受信した操作情報を記録部に記録する操作情報記録手段と、
記録部に記録された操作情報を各端末装置に配信する操作情報配信手段とを備え、
前記端末装置は、
オブジェクトの特徴座標およびアフィン操作総量を記録する記録部と、
オブジェクトに対する特徴座標操作またはアフィン操作を受け付ける直接操作受付手段と、
直接操作受付手段によって受け付けたオブジェクトに対する特徴座標操作またはアフィン操作に基づいて、当該オブジェクトを操作し、操作結果を表示部に表示する直接操作表示手段と、
直接操作受付手段によって受け付けたオブジェクトに対する操作に基づいて、当該操作が特徴座標操作であれば、当該オブジェクトの特徴座標を更新し、当該更新した特徴座標にアフィン操作総量の逆特性を乗じた生成当初の特徴座標を操作情報として前記サーバ装置に送信し、当該操作がアフィン操作であれば、当該オブジェクトの特徴座標およびアフィン操作総量を更新し、当該アフィン操作総量を操作情報として前記サーバ装置に送信する直接操作送信手段と、
前記サーバ装置から受信した操作情報を受信する間接操作受信手段と、
間接操作受信手段によって受信した操作情報を受けると、当該操作情報が特徴座標操作に関するものであれば、記録部に記録されている当該オブジェクトのアフィン操作総量と受信した操作情報である生成当初の特徴座標とに基づいて、操作後の特徴座標を算出して、操作結果を表示部に表示し、当該操作情報がアフィン操作に関するものであれば、記録部に記録されている当該オブジェクトの現在の特徴座標とアフィン操作総量とに基づいて、当該オブジェクトの生成当初の特徴座標を算出し、当該生成当初の特徴座標と受信した操作情報であるアフィン操作総量とに基づいて、操作後の特徴座標を算出して、操作結果を表示部に表示する間接操作表示手段と、
受信した操作情報が特徴座標操作であれば、記録部に記録されている特徴座標を、操作後の特徴座標で更新し、受信した操作情報がアフィン操作であれば、記録部に記録されている特徴座標とアフィン操作総量を、操作後の特徴座標と受信したアフィン操作総量で更新する間接操作記録手段と、
を備えたコンテンツ共同編集システム。
【請求項14】
請求項13のシステムにおいて、
前記直接操作送信手段は、サーバ装置を介して、他の端末装置に操作情報を送信することを特徴とするシステム。
【請求項15】
請求項2、8、14のいずれかのシステムにおいて、
前記サーバ装置の前記操作情報記録手段は、各端末装置から受信した操作情報を、受信した順が明らかになるように記録部に記録し、
前記サーバ装置の前記操作情報配信手段は、記録部に記録された操作情報を、受信した順に各端末装置に配信するものであり、
前記端末装置の前記間接操作受信手段によって受信し、間接操作表示手段によって処理される操作情報には、他の端末装置の操作情報だけでなく、前記直接操作受付手段によって受け付けた自端末装置の操作情報も含むことを特徴とするシステム。
【請求項16】
オブジェクトの特徴座標およびアフィン操作総量を記録する記録部と、
オブジェクトに対する特徴座標操作またはアフィン操作を受け付ける直接操作受付手段と、
直接操作受付手段によって受け付けたオブジェクトに対する特徴座標操作またはアフィン操作に基づいて、当該オブジェクトを操作し、操作結果を表示部に表示する直接操作表示手段と、
直接操作受付手段によって受け付けたオブジェクトに対する操作に基づいて、当該操作が特徴座標操作であれば、当該オブジェクトの特徴座標を更新し、当該更新した特徴座標にアフィン操作総量の逆特性を乗じた生成当初の特徴座標を操作情報としてサーバ装置に送信し、当該操作がアフィン操作であれば、当該オブジェクトの特徴座標およびアフィン操作総量を更新し、当該アフィン操作総量を操作情報として前記サーバ装置に送信する直接操作送信手段と、
前記サーバ装置から受信した操作情報を受信する間接操作受信手段と、
間接操作受信手段によって受信した操作情報を受けると、当該操作情報が特徴座標操作に関するものであれば、記録部に記録されている当該オブジェクトのアフィン操作総量と受信した操作情報である生成当初の特徴座標とに基づいて、操作後の特徴座標を算出して、操作結果を表示部に表示し、当該操作情報がアフィン操作に関するものであれば、記録部に記録されている当該オブジェクトの現在の特徴座標とアフィン操作総量とに基づいて、当該オブジェクトの生成当初の特徴座標を算出し、当該生成当初の特徴座標と受信した操作情報であるアフィン操作総量とに基づいて、操作後の特徴座標を算出して、操作結果を表示部に表示する間接操作表示手段と、
受信した操作情報が特徴座標操作であれば、記録部に記録されている特徴座標を、操作後の特徴座標で更新し、受信した操作情報がアフィン操作であれば、記録部に記録されている特徴座標とアフィン操作総量を、操作後の特徴座標と受信したアフィン操作総量で更新する間接操作記録手段と、
を備えた端末装置。
【請求項17】
請求項16の装置において、
前記直接操作送信手段は、サーバ装置を介して、他の端末装置に操作情報を送信することを特徴とする装置。
【請求項18】
請求項4、10、17のいずれかの装置において、
前記サーバ装置は、各端末装置から受信した操作情報を、受信した順が明らかになるように記録部に記録し、
前記サーバ装置は、記録部に記録された操作情報を、受信した順に各端末装置に配信するものであり、
前記端末装置の前記間接操作受信手段によって受信し、間接操作表示手段によって処理される操作情報には、他の端末装置の操作情報だけでなく、前記直接操作受付手段によって受け付けた自端末装置の操作情報も含むことを特徴とする装置。
【請求項19】
コンピュータによって端末装置を実現するための端末プログラムであって、コンピュータを、
オブジェクトに対する特徴座標操作またはアフィン操作を受け付ける直接操作受付手段と、
直接操作受付手段によって受け付けたオブジェクトに対する特徴座標操作またはアフィン操作に基づいて、当該オブジェクトを操作し、操作結果を表示部に表示する直接操作表示手段と、
直接操作受付手段によって受け付けたオブジェクトに対する操作に基づいて、当該操作が特徴座標操作であれば、記録部に記録されている当該オブジェクトの特徴座標を更新し、当該更新した特徴座標にアフィン操作総量の逆特性を乗じた生成当初の特徴座標を操作情報としてサーバ装置に送信し、当該操作がアフィン操作であれば、記録部に記録されている当該オブジェクトの特徴座標およびアフィン操作総量を更新し、当該アフィン操作総量を操作情報として前記サーバ装置に送信する直接操作送信手段と、
前記サーバ装置から受信した操作情報を受信する間接操作受信手段と、
間接操作受信手段によって受信した操作情報を受けると、当該操作情報が特徴座標操作に関するものであれば、記録部に記録されている当該オブジェクトのアフィン操作総量と受信した操作情報である生成当初の特徴座標とに基づいて、操作後の特徴座標を算出して、操作結果を表示部に表示し、当該操作情報がアフィン操作に関するものであれば、記録部に記録されている当該オブジェクトの現在の特徴座標とアフィン操作総量とに基づいて、当該オブジェクトの生成当初の特徴座標を算出し、当該生成当初の特徴座標と受信した操作情報であるアフィン操作総量とに基づいて、操作後の特徴座標を算出して、操作結果を表示部に表示する間接操作表示手段と、
受信した操作情報が特徴座標操作であれば、記録部に記録されている特徴座標を、操作後の特徴座標で更新し、受信した操作情報がアフィン操作であれば、記録部に記録されている特徴座標とアフィン操作総量を、操作後の特徴座標と受信したアフィン操作総量で更新する間接操作記録手段として機能させるための端末プログラム。
【請求項20】
請求項19のプログラムにおいて、
前記直接操作送信手段は、サーバ装置を介して、他の端末装置に操作情報を送信することを特徴とするプログラム。
【請求項21】
請求項6、12、20のいずれかのプログラムにおいて、
前記サーバ装置は、各端末装置から受信した操作情報を、受信した順が明らかになるように記録部に記録し、
前記サーバ装置は、記録部に記録された操作情報を、受信した順に各端末装置に配信するものであり、
前記端末装置の前記間接操作受信手段によって受信し、間接操作表示手段によって処理される操作情報には、他の端末装置の操作情報だけでなく、前記直接操作受付手段によって受け付けた自端末装置の操作情報も含むことを特徴とするプログラム。
【請求項22】
サーバ装置と、当該サーバ装置と通信可能な二以上の端末装置とを備えたコンテンツ共同編集システムであって、
前記サーバ装置は、
各端末装置から受信した操作情報を記録部に記録する操作情報記録手段と、
記録部に記録された操作情報を各端末装置に配信する操作情報配信手段とを備え、
前記端末装置は、
線オブジェクトの特徴座標および生成当初の特徴座標を記録する記録部と、
線オブジェクトに対する操作を受け付ける直接操作受付手段と、
直接操作受付手段によって受け付けた、線オブジェクトを二以上に分割する削除操作に基づいて、当該線オブジェクトの一部を削除し、操作結果を表示部に表示する直接操作表示手段と、
直接操作受付手段によって受け付けた線オブジェクトに対する一部削除に基づいて、当該線オブジェクトを二以上の線オブジェクトに分割して、各線オブジェクトの特徴座標を記録部に記録するとともに、これら線オブジェクトに対応付けて分割前の線オブジェクトの生成当初の特徴座標を関連づけて記録し、これらを操作情報として前記サーバ装置に送信する直接操作送信手段と、
サーバ装置から受信した操作情報を受信する間接操作受信手段と、
間接操作受信手段によって受信した操作情報を受けると、記録部に記録されている当該線オブジェクトの一部を削除して、操作結果を表示部に表示する間接操作表示手段と、
記録部に記録されている線オブジェクトを上記削除に基づいて、二以上の線オブジェクトに分割し、各線オブジェクトの特徴座標を記録部に記録するとともに、これら線オブジェクトに対応付けて分割前の線オブジェクトの生成当初の特徴座標を関連づけて記録する間接操作記録手段と、
を備えたコンテンツ共同編集システム。
【請求項23】
請求項22のシステムにおいて、
前記直接操作送信手段は、サーバ装置を介して、他の端末装置に操作情報を送信することを特徴とするシステム。
【請求項24】
請求項23のシステムにおいて、
前記サーバ装置の操作情報記録手段は、各端末装置から受信した操作情報を、受信した順が明らかになるように記録部に記録し、
前記サーバ装置の操作情報配信手段は、記録部に記録された操作情報を、受信した順に各端末装置に配信するものであり、
前記端末装置の前記間接操作受信手段によって受信し、間接操作表示手段によって処理される操作情報には、他の端末装置の操作情報だけでなく、前記直接操作受付手段によって受け付けた自端末装置の操作情報も含むことを特徴とするシステム。
【請求項25】
請求項22~24のいずれかのシステムにおいて、
前記削除の操作情報は、削除位置を、線オブジェクトの形状にかかわらず、当該線オブジェクトの全長に対する相対的位置を含むことを特徴とするシステム。
【請求項26】
線オブジェクトの特徴座標および生成当初の特徴座標を記録する記録部と、
線オブジェクトに対する操作を受け付ける直接操作受付手段と、
直接操作受付手段によって受け付けた、線オブジェクトを二以上に分割する削除操作に基づいて、当該線オブジェクトの一部を削除し、操作結果を表示部に表示する直接操作表示手段と、
直接操作受付手段によって受け付けた線オブジェクトに対する一部削除に基づいて、当該線オブジェクトを二以上の線オブジェクトに分割して、各線オブジェクトの特徴座標を記録部に記録するとともに、これら線オブジェクトに対応付けて分割前の線オブジェクトの生成当初の特徴座標を関連づけて記録し、これらを操作情報として直接的または間接的に他の端末装置に送信する直接操作送信手段と、
直接的または間接的に他の端末装置から受信した操作情報を受信する間接操作受信手段と、
間接操作受信手段によって受信した操作情報を受けると、記録部に記録されている当該線オブジェクトの一部を削除して、操作結果を表示部に表示する間接操作表示手段と、
記録部に記録されている線オブジェクトを上記削除に基づいて、二以上の線オブジェクトに分割し、各線オブジェクトの特徴座標を記録部に記録するとともに、これら線オブジェクトに対応付けて分割前の線オブジェクトの生成当初の特徴座標を関連づけて記録する間接操作記録手段と、
を備えた端末装置。
【請求項27】
請求項26の装置において、
前記直接操作送信手段は、サーバ装置を介して、他の端末装置に操作情報を送信することを特徴とする装置。
【請求項28】
請求項27の装置において、
前記サーバ装置の操作情報記録手段は、各端末装置から受信した操作情報を、受信した順が明らかになるように記録部に記録し、
前記サーバ装置の操作情報配信手段は、記録部に記録された操作情報を、受信した順に各端末装置に配信するものであり、
前記端末装置の前記間接操作受信手段によって受信し、間接操作表示手段によって処理される操作情報には、他の端末装置の操作情報だけでなく、前記直接操作受付手段によって受け付けた自端末装置の操作情報も含むことを特徴とする装置。
【請求項29】
請求項26~28のいずれかの装置において、
前記削除の操作情報は、削除位置を、線オブジェクトの形状にかかわらず、当該線オブジェクトの全長に対する相対的位置を含むことを特徴とする装置。
【請求項30】
コンピュータによって端末装置を実現するための端末プログラムであって、コンピュータを、
線オブジェクトに対する操作を受け付ける直接操作受付手段と、
直接操作受付手段によって受け付けた、線オブジェクトを二以上に分割する削除操作に基づいて、当該線オブジェクトの一部を削除し、操作結果を表示部に表示する直接操作表示手段と、
直接操作受付手段によって受け付けた線オブジェクトに対する一部削除に基づいて、当該線オブジェクトを二以上の線オブジェクトに分割して、各線オブジェクトの特徴座標を記録部に記録するとともに、これら線オブジェクトに対応付けて分割前の線オブジェクトの生成当初の特徴座標を関連づけて記録し、これらを操作情報として直接的または間接的に他の端末装置に送信する直接操作送信手段と、
直接的または間接的に他の端末装置から受信した操作情報を受信する間接操作受信手段と、
間接操作受信手段によって受信した操作情報を受けると、記録部に記録されている当該線オブジェクトの一部を削除して、操作結果を表示部に表示する間接操作表示手段と、
記録部に記録されている線オブジェクトを上記削除に基づいて、二以上の線オブジェクトに分割し、各線オブジェクトの特徴座標を記録部に記録するとともに、これら線オブジェクトに対応付けて分割前の線オブジェクトの生成当初の特徴座標を関連づけて記録する間接操作記録手段として機能させるための端末プログラム。
【請求項31】
請求項30のプログラムにおいて、
前記直接操作送信手段は、サーバ装置を介して、他の端末装置に操作情報を送信することを特徴とするプログラム。
【請求項32】
請求項31のプログラムにおいて、
前記サーバ装置の操作情報記録手段は、各端末装置から受信した操作情報を、受信した順が明らかになるように記録部に記録し、
前記サーバ装置の操作情報配信手段は、記録部に記録された操作情報を、受信した順に各端末装置に配信するものであり、
前記端末装置の前記間接操作受信手段によって受信し、間接操作表示手段によって処理される操作情報には、他の端末装置の操作情報だけでなく、前記直接操作受付手段によって受け付けた自端末装置の操作情報も含むことを特徴とするプログラム。
【請求項33】
請求項30~32のいずれかのプログラムにおいて、
前記削除の操作情報は、削除位置を、線オブジェクトの形状にかかわらず、当該線オブジェクトの全長に対する相対的位置を含むことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、複数のユーザにて図形などのコンテンツを共同編集するシステムに関するものである。
【背景技術】
【0002】
サーバ装置に複数の端末装置を接続し、複数のユーザにて図形などを共同編集して閲覧するシステムが提案されている(たとえば特許文献1)。このように共同編集を行う方式としては、主として差分更新方式と全体更新方式が用いられている。
【0003】
全体更新方式は、各端末装置において一部のオブジェクトのみを編集した場合であっても、他のオブジェクトを含めて全ての情報をサーバ装置に送信し、サーバ装置から他の端末装置にこれを送信する。端末装置では、受信した情報に基づいて、全てのオブジェクトの情報を更新する。
【0004】
差分更新方式は、各端末装置において編集が加えられたオブジェクトの情報のみをサーバ装置に送信し、サーバ装置から他の端末装置にこれを送信する。端末装置では、受信した情報に基づいて、当該オブジェクトの情報のみを更新する。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記の全体更新方式では、各端末装置において、受信した情報によって全てのオブジェクトを書き換えるため、各端末装置間において同一状態を保つのが容易であるという利点がある。しかし、その反面、全てのオブジェクトのデータを送信するため送信データ量が多くなり、オブジェクトの変更に対する即時性が低いという問題があった。また、複数のユーザが同時に編集を行った場合、両立しうる編集であったとしても、いずれか一方の編集のみが選択され、他方の編集は無効となるという問題もあった。
【0007】
差分更新方式では、送信データ量が少なく即時性を高くすることができ、複数のユーザが両立しうる編集を行った場合に双方を有効とすることができるという利点がある。
【0008】
しかし、差分更新方式では、複数の端末装置において同一オブジェクトに対する編集が同時に行われた場合、編集結果が想定外のものとなってしまうという問題があったり、各端末装置におけるオブジェクトを同一の状態に保つことが難しいという問題があった。
【0009】
この問題を説明すると以下のとおりである。
図32に示すように、サーバ装置Sには、端末装置T1、T2が接続されている。今、端末装置T1、T2ともに、左上にオブジェクトが表示されている状態にあるとする((a)(b)参照)。この状態から、端末装置T1において、オブジェクトが右に50移動されたとする((c)参照)。ほぼ同時に、端末装置T2において、オブジェクトが下に20移動されたとする((d)参照)。
【0010】
端末装置T1は、オブジェクトが右に50移動したという操作内容をサーバ装置Sに送信し、サーバ装置Sはこの操作内容を端末装置T2に送信する。端末装置T2はこれを受けて、左下に移動していたオブジェクトを、右に50移動させる((f)参照)。
【0011】
一方、端末装置T2は、オブジェクトが下に20移動したという操作内容をサーバ装置Sに送信し、サーバ装置Sはこの操作内容を端末装置T1に送信する。端末装置T1はこれを受けて、右上に移動していたオブジェクトを、下に20移動させる((e)参照)。
【0012】
以上のように、端末装置T1のユーザにとっては、オブジェクトを右上に移動しようとしたにもかかわらず、右下に移動する結果となり、端末装置T2のユーザにとっては、オブジェクトを左下に移動しようとしたにもかかわらず、右下に移動する結果となる。
【0013】
ここでの問題は、いずれのユーザも意図していなかった右下という位置にオブジェクトが移動してしまうという点である。つまり、オブジェクトの操作結果をいずれのユーザも予測することができず、どのユーザも意図していなかった操作結果が生じることになってしまうという問題があった。
【0014】
このような問題を解決するため、操作結果を送信するという方法が考えられる。
図33に、操作結果を送信する場合の問題点を説明する。今、端末装置T1、T2ともに、左上にオブジェクトが表示されている状態にあるとする((a)(b)参照)。この状態から、端末装置T1において、オブジェクトが右に50移動され、その結果右上に移動されたとする((c)参照)。ほぼ同時に、端末装置T2において、オブジェクトが下に20移動され、その結果左下に移動されたとする((d)参照)。
【0015】
端末装置T1は、オブジェクトが右上に移動したという操作結果をサーバ装置Sに送信し、サーバ装置Sはこの操作結果を端末装置T2に送信する。端末装置T2はこれを受けて、左下に移動していたオブジェクトを、操作結果として受信した右上に移動させる((f)参照)。
【0016】
一方、端末装置T2は、オブジェクトが左下に移動したという操作結果をサーバ装置Sに送信し、サーバ装置Sはこの操作結果を端末装置T1に送信する。端末装置T1はこれを受けて、右上に移動していたオブジェクトを、操作結果として受信した左下に移動させる((e)参照)。
【0017】
ここでの問題は、端末装置T1において表示されている操作結果と、端末装置T2において表示されている操作結果が異なるという点である。これは、共同編集においては、致命的な問題である。
【0018】
この発明は、少なくとも上記のいずれかの問題を解決したシステムを提供することを目的とする。
【課題を解決するための手段】
【0019】
以下、この発明の独立して適用可能な特徴を列挙する。
【0020】
(1)(2)(3)この発明の一実施形態による共同編集システムは、サーバ装置と、当該サーバ装置と通信可能な二以上の端末装置とを備えたコンテンツ共同編集システムであって、
前記サーバ装置は、各端末装置から受信した操作情報を記録部に記録する操作情報記録手段と、記録部に記録された操作情報を各端末装置に配信する操作情報配信手段とを備え、
前記端末装置は、オブジェクトの特徴座標およびアフィン操作総量を記録する記録部と、オブジェクトに対する操作を受け付ける直接操作受付手段と、直接操作受付手段によって受け付けたオブジェクトに対する操作に基づいて、当該オブジェクトを操作し、操作結果を表示部に表示する直接操作表示手段と、直接操作受付手段によって受け付けたオブジェクトに対する操作に基づいて、当該オブジェクトの特徴座標およびアフィン操作総量を更新し、当該アフィン操作総量を操作情報として前記サーバ装置に送信する直接操作送信手段と、サーバ装置から受信した操作情報を受信する間接操作受信手段と、間接操作受信手段によって受信した操作情報を受けると、記録部に記録されている当該オブジェクトの現在の特徴座標とアフィン操作総量とに基づいて、当該オブジェクトの当初の特徴座標を算出し、当該当初の特徴座標と受信した操作情報であるアフィン操作総量とに基づいて、操作後の特徴座標を算出して、操作結果を表示部に表示する間接操作表示手段と、記録部に記録されている特徴座標とアフィン操作総量を、操作後の特徴座標と受信したアフィン操作総量で更新する間接操作記録手段とを備えている。
【0021】
したがって、アフィン操作総量をやり取りすることで、各端末装置における操作を統一することができる。
【0022】
(4)この発明に係る共同編集システムは、直接操作送信手段は、サーバ装置を介して、他の端末装置に操作情報を送信することを特徴としている。
【0023】
したがって、サーバ装置によって各端末装置の操作を統一することができる。
【0024】
(5)(6)(7)この発明に係る共同編集システムは、サーバ装置と、当該サーバ装置と通信可能な二以上の端末装置とを備えたコンテンツ共同編集システムであって、
前記サーバ装置は、各端末装置から受信した操作情報を記録部に記録する操作情報記録手段と、記録部に記録された操作情報を各端末装置に配信する操作情報配信手段とを備え、
前記端末装置は、オブジェクトの特徴座標およびアフィン操作総量を記録する記録部と、オブジェクトに対する操作を受け付ける直接操作受付手段と、直接操作受付手段によって受け付けたオブジェクトに対する操作に基づいて、当該オブジェクトを操作し、操作結果を表示部に表示する直接操作表示手段と、直接操作受付手段によって受け付けたオブジェクトに対する操作に基づいて、当該オブジェクトの特徴座標を更新し、当該更新した特徴座標にアフィン操作総量の逆特性を乗じた編集当初特徴座標を操作情報として前記サーバ装置に送信する直接操作送信手段と、サーバ装置から受信した操作情報を受信する間接操作受信手段と、間接操作受信手段によって受信した操作情報を受けると、記録部に記録されている当該オブジェクトのアフィン操作総量と前記操作情報である編集当初特徴座標とに基づいて、操作後の特徴座標を算出して、操作結果を表示部に表示する間接操作表示手段と、記録部に記録されている特徴座標を、操作後の特徴座標で更新する間接操作記録手段とを備えている。
【0025】
したがって、オブジェクトに対する固有の編集が行われた場合でも、編集当初特徴座標を送信することで、各端末装置における操作を統一することができる。
【0026】
(8)この発明に係る共同編集システムは、直接操作送信手段は、サーバ装置を介して、他の端末装置に操作情報を送信することを特徴としている。
【0027】
したがって、サーバ装置によって各端末装置の操作を統一することができる。
【0028】
(9)(10)(11)この発明に係る共同編集システムは、サーバ装置と、当該サーバ装置と通信可能な二以上の端末装置とを備えたコンテンツ共同編集システムであって、
前記サーバ装置は、各端末装置から受信した操作情報を記録部に記録する操作情報記録手段と、記録部に記録された操作情報を各端末装置に配信する操作情報配信手段とを備え、
前記端末装置は、オブジェクトの特徴座標およびアフィン操作総量を記録する記録部と、オブジェクトに対する特徴座標操作またはアフィン操作を受け付ける直接操作受付手段と、直接操作受付手段によって受け付けたオブジェクトに対する特徴座標操作またはアフィン操作に基づいて、当該オブジェクトを操作し、操作結果を表示部に表示する直接操作表示手段と、直接操作受付手段によって受け付けたオブジェクトに対する操作に基づいて、当該操作が特徴座標操作であれば、当該オブジェクトの特徴座標を更新し、当該更新した特徴座標にアフィン操作総量の逆特性を乗じた編集当初特徴座標を操作情報として前記サーバ装置に送信し、当該操作がアフィン操作であれば、当該オブジェクトの特徴座標およびアフィン操作総量を更新し、当該アフィン操作総量を操作情報として前記サーバ装置に送信する直接操作送信手段と、サーバ装置から受信した操作情報を受信する間接操作受信手段と、間接操作受信手段によって受信した操作情報を受けると、当該操作情報が特徴座標操作に関するものであれば、記録部に記録されている当該オブジェクトのアフィン操作総量と受信した操作情報である編集当初特徴座標とに基づいて、操作後の特徴座標を算出して、操作結果を表示部に表示し、当該操作情報がアフィン操作に関するものであれば、記録部に記録されている当該オブジェクトの現在の特徴座標とアフィン操作総量とに基づいて、当該オブジェクトの当初の特徴座標を算出し、当該当初の特徴座標と受信した操作情報であるアフィン操作総量とに基づいて、操作後の特徴座標を算出して、操作結果を表示部に表示する間接操作表示手段と、受信した操作情報が特徴座標操作であれば、記録部に記録されている特徴座標を、操作後の特徴座標で更新し、受信した操作情報がアフィン操作であれば、記録部に記録されている特徴座標とアフィン操作総量を、操作後の特徴座標と受信したアフィン操作総量で更新する間接操作記録手段とを備えている。
【0029】
したがって、オブジェクトに対する固有の編集と、アフィン操作を両立させることができる。
【0030】
(12)この発明に係る共同編集システムは、直接操作送信手段が、サーバ装置を介して、他の端末装置に操作情報を送信することを特徴としている。
【0031】
したがって、サーバ装置によって各端末装置の操作を統一することができる。
【0032】
(13)この発明に係る共同編集システムは、サーバ装置の前記操作情報記録手段は、各端末装置から受信した操作情報を、受信した順が明らかになるように記録部に記録し、前記サーバ装置の前記操作情報配信手段は、記録部に記録された操作情報を、受信した順に各端末装置に配信するものであり、前記端末装置の前記間接操作受信手段によって受信し、間接操作表示手段によって処理される操作情報には、他の端末装置の操作情報だけでなく、前記直接操作受付手段によって受け付けた自端末装置の操作情報も含むことを特徴としている。
【0033】
したがって、各端末装置における操作の統一を容易に図ることができる。
【0034】
(14)(15(16)この発明に係る共同編集システムは、サーバ装置と、当該サーバ装置と通信可能な二以上の端末装置とを備えたコンテンツ共同編集システムであって、
前記サーバ装置は、各端末装置から受信した操作情報を記録部に記録する操作情報記録手段と、記録部に記録された操作情報を各端末装置に配信する操作情報配信手段とを備え、
前記端末装置は、線オブジェクトの特徴座標および当初特徴座標を記録する記録部と、線オブジェクトに対する操作を受け付ける直接操作受付手段と、直接操作受付手段によって受け付けた、線オブジェクトを二以上に分割する削除操作に基づいて、当該線オブジェクトの一部を削除し、操作結果を表示部に表示する直接操作表示手段と、直接操作受付手段によって受け付けた線オブジェクトに対する一部削除に基づいて、当該線オブジェクトを二以上の線オブジェクトに分割して、各線オブジェクトの特徴座標を記録部に記録するとともに、これら線オブジェクトに対応付けて分割前の線オブジェクトの当初特徴座標を関連づけて記録し、これらを操作情報として前記サーバ装置に送信する直接操作送信手段と、サーバ装置から受信した操作情報を受信する間接操作受信手段と、間接操作受信手段によって受信した操作情報を受けると、記録部に記録されている当該線オブジェクトの一部を削除して、操作結果を表示部に表示する間接操作表示手段と、記録部に記録されている線オブジェクトを上記削除に基づいて、二以上の線オブジェクトに分割し、各線オブジェクトの特徴座標を記録部に記録するとともに、これら線オブジェクトに対応付けて分割前の線オブジェクトの当初特徴座標を関連づけて記録する間接操作記録手段とを備えている。
【0035】
したがって、オブジェクトの分割とその他の操作が同時的になされても、双方の操作を生かすことができる。
【0036】
(17)この発明に係る共同編集システムは、直接操作送信手段は、サーバ装置を介して、他の端末装置に操作情報を送信することを特徴としている。
【0037】
したがって、サーバ装置によって各端末装置の操作を統一することができる。
【0038】
(18)この発明に係る共同編集システムは、サーバ装置の前記操作情報記録手段は、各端末装置から受信した操作情報を、受信した順が明らかになるように記録部に記録し、前記サーバ装置の前記操作情報配信手段は、記録部に記録された操作情報を、受信した順に各端末装置に配信するものであり、前記端末装置の前記間接操作受信手段によって受信し、間接操作表示手段によって処理される操作情報には、他の端末装置の操作情報だけでなく、前記直接操作受付手段によって受け付けた自端末装置の操作情報も含むことを特徴としている。
【0039】
したがって、各端末装置における操作の統一を容易に図ることができる。
【0040】
(19)この発明に係る共同編集システムは、削除の操作情報は、削除位置を、線オブジェクトの形状にかかわらず、当該線オブジェクトの全長に対する相対的位置を含むことを特徴としている。
【0041】
したがって、線オブジェクトの形状が変更されたとしても、相対的位置にて位置を特定することができる。
【0042】
「直接操作受付手段」は、実施形態においては、ステップS503、S522がこれに対応する。
【0043】
「直接操作表示手段」は、実施形態においては、ステップS504、S523がこれに対応する。
【0044】
「直接操作送信手段」は、実施形態においては、ステップS506、S525がこれに対応する。
【0045】
「間接操作受信手段」は、実施形態においては、ステップS507、S526がこれに対応する。
【0046】
「間接操作表示手段」は、実施形態においては、ステップS511、S530がこれに対応する。
【0047】
「間接操作記録手段」は、実施形態においては、ステップS512、S531がこれに対応する。
【0048】
「プログラム」とは、CPUにより直接実行可能なプログラムだけでなく、ソース形式のプログラム、圧縮処理がされたプログラム、暗号化されたプログラム等を含む概念である。
【図面の簡単な説明】
【0049】
【
図1】この発明の一実施形態によるコンテンツ共同編集システムの全体構成図である。
【
図2】コンテンツ共同編集システムの処理を説明するための図である。
【
図9】オブジェクトの位置と大きさの表現方法を説明するための図である。
【
図10】端末装置T1、T2における表示例である。
【
図18】第2の実施形態による共同編集システムの全体構成図である。
【
図19】コンテンツ共同編集システムの処理を説明するための図である。
【
図25】端末装置T1、T2における表示例である。
【
図28】第3の実施形態による共同編集システムの全体構成図である。
【
図32】従来のコンテンツ共同編集システムの動作を説明するための図である。
【
図33】従来のコンテンツ共同編集システムの動作を説明するための図である。
【
図34】第4の実施形態による共同編集システムの全体構成図である。
【
図35】コンテンツ共同編集システムの処理を説明するための図である。
【
図43】コンテンツ共同編集システムの処理を説明するための図である。
【
図46】コンテンツ共同編集システムの処理を説明するための図である。
【
図50】第5の実施形態による共同編集システムの全体構成図である。
【
図51】コンテンツ共同編集システムの処理を説明するための図である。
【発明を実施するための形態】
【0050】
1.第1の実施形態
1.1システム構成と概要
図1に、この発明の一実施形態によるコンテンツ共同編集システムの全体構成を示す。サーバ装置Sには、複数の端末装置T1、T2・・・Tnが接続されている。
図2は、コンテンツ共同編集システムにおける共同編集を説明するための概念図である。
【0051】
以下、
図1と
図2を参照して説明する。端末装置T1、T2のいずれにおいても、
図2の最上段に示すように、左上にオブジェクトが表示されているものとする。
【0052】
端末装置T1の直接操作受付手段2(
図1)は、マウスなどによるユーザの操作を受け付ける。直接操作表示手段4は、この操作内容を表示部6に表示する。たとえば、
図2に示すように、端末装置T1のユーザがオブジェクトを左上から右上に移動するよう操作したとする(
図2の(1))。端末装置T1の直接操作送信手段10は、この操作情報をサーバ装置Sに送信する。この実施形態では、操作情報として、オブジェクトを右に移動したという操作内容ではなく、オブジェクトが右上に移動したという操作結果を送信するようにしている。サーバ装置Sの操作情報記録手段22(
図1)は、これを受けて、記録部24に記録する(
図2の(2))。
【0053】
この時、ほぼ同時に、少し遅れて端末装置T2のユーザが、オブジェクトを操作しようとしたとする。この際、端末装置T2には、上記の端末装置T1での操作が送られてきていないので、オブジェクトはまだ左上にあるように表示されている。ここで、端末装置T2のユーザが、マウスなどの操作によって、オブジェクトを左上から左下に移動するよう操作したとする(
図2の(3))。端末装置T2の直接操作送信手段10(図示せず)は、この操作情報をサーバ装置Sに送信する。サーバ装置Sの操作情報記録手段22(
図1)は、これを受けて、記録部24に記録する(
図2の(4))。
【0054】
サーバ装置Sの操作情報配信手段26は、記録部24に記録された操作情報を記録順に読み出して、各端末装置T1、T2・・・Tnに配信する。まず、端末装置T1によって操作されたオブジェクトの右上への移動を読み出して、各端末装置T1、T2・・・Tnに配信する。この際、操作情報を送信してきた端末装置T1に対してもこの操作情報の配信を行う(
図2の(5))。
【0055】
端末装置T1の間接操作受信手段12は、サーバ装置Sからの操作情報を受信する(
図2の(5))。間接操作表示手段8は、受信した操作情報に基づいてオブジェクトを操作し、表示部6に表示する。端末装置T1においては、オブジェクトが右上に表示された状態にあるので、そのままの位置に保持されることになる(
図2の(6))。
【0056】
同様に、端末装置T2の間接操作受信手段12(図示せず)も、サーバ装置Sからの操作情報を受信する(
図2の(5))。間接操作表示手段8(図示せず)は、受信した操作情報に基づいてオブジェクトを操作し、表示部6(図示せず)に表示する。端末装置T2においては、オブジェクトが左下に表示された状態にあるので、右上に移動されることになる(
図2の(6))。
【0057】
続いて、サーバ装置Sは、端末装置T2によって操作されたオブジェクトの左下への移動を読み出して、各端末装置T1、T2・・・Tnに配信する。この際、操作情報を送信してきた端末装置T2に対してもこの操作情報の配信を行う(
図2の(7))。
【0058】
端末装置T1の間接操作受信手段12は、サーバ装置Sからの操作情報を受信する(
図2の(7))。間接操作表示手段8は、受信した操作情報に基づいてオブジェクトを操作し、表示部6に表示する。端末装置T1においては、オブジェクトが右上に表示された状態にあるので、左下に移動されることになる(
図2の(8))。
【0059】
同様に、端末装置T2の間接操作受信手段12(図示せず)も、サーバ装置Sからの操作情報を受信する(
図2の(7))。間接操作表示手段8(図示せず)は、受信した操作情報に基づいてオブジェクトを操作し、表示部6(図示せず)に表示する。端末装置T2においては、オブジェクトが右上に表示された状態にあるので、左下に移動されることになる(
図2の(8))。
【0060】
以上のようにして、他の端末装置からの操作情報が送られてくる前に、操作がなされた場合であっても、最後に操作を行った端末装置の操作が優先され、各端末装置T1、T2・・・Tnにおけるオブジェクトの操作結果が一致する。また、操作されていないオブジェクトの位置などを送信するものでないため、操作内容の反映が迅速である。
【0061】
図3に、このシステムの機器構成例を示す。サーバ装置Sは、インターネットを介して、端末装置T1~T3であるタブレットPC、端末装置T4である据置型PCに接続されている。端末装置T1~T3は、無線LANによってサーバ装置Sに接続されている。端末装置T4は、LANによってサーバ装置Sに接続されている。
【0062】
図4に、端末装置T1のハードウエア構成を示す。CPU30には、メモリ32、タッチスクリーンディスプレイ34、不揮発性メモリ36、通信回路38が接続されている。タッチスクリーンディスプレイ34は、表示を行うとともに、スタイラスペンなどを用いて入力を行うことができるようになっている。通信回路38は、インターネットに接続するための回路である。
【0063】
不揮発性メモリ36には、オペレーティングシステム40、端末プログラム42が記録されている。また、生成・編集されたオブジェクトを示すオブジェクトデータ44、オブジェクトに対する操作を示す操作データ45が記録される。端末プログラム42は、オペレーティングシステム40と協働してその機能を発揮するものである。これらプログラムは、インターネットを介してプログラム配信サーバ装置(図示せず)からダウンロードしてインストールしたものである。オブジェクトデータ44は、自端末装置T1・他の端末装置T2~T4において生成・編集されたオブジェクトを示すデータであり、各端末装置T1~T4における生成・編集状況によって変化するものである。
【0064】
なお、端末装置T2、T3は同様の構成である。また、端末装置T4も同様の構成であるが、タッチスクリーンディスプレイ34の代わりに、ディスプレイとキーボード/マウスが設けられている点が異なる。
【0065】
図5に、サーバ装置Sのハードウエア構成を示す。CPU50には、メモリ52、ディスプレイ54、ハードディスク56、DVD-ROMドライブ58、通信回路60が接続されている。通信回路60は、インターネットに接続するための回路である。
【0066】
ハードディスク56には、オペレーティングシステム62、サーバプログラム64が記録されている。サーバプログラム64は、オペレーティングシステム62と協働してその機能を発揮するものである。これらプログラムは、DVD-ROM68に記録されていたものを、DVD-ROMドライブ58を介して、ハードディスク56にインストールしたものである。操作データ45は、各端末装置T1~T4から受信したものである。
【0067】
1.2共同編集処理
図6、
図7に、このシステムによる共同編集処理のフローチャートを示す。
図6、
図7において、端末装置T1、端末装置T2は端末プログラム42を表している。サーバ装置Sは、サーバプログラム64を表している。なお、
図6、
図7においては、2つの端末装置T1、T2のみを示しているが、他の端末装置T3、T4も同様の処理を行う。
【0068】
なお、以下では、端末装置T3、T4によって既に共同編集が行われており、その後、端末装置T1、T2がこの共同編集に参加する場合を例として説明する。
【0069】
端末装置T1を操作するユーザは、スタイラスペン(図示せず)によりタッチスクリーン・ディスプレイ34を操作して、サーバ装置Sにアクセスする。端末装置T1のCPU30(以下、端末装置T1と省略することがある)は、この操作を受けて、ユーザによって入力されたユーザIDとパスワードを、サーバ装置Sに送信する(ステップS1)。
【0070】
サーバ装置SのCPU50(以下、サーバ装置Sと省略することがある)は、これを受けて、当該ユーザIDとパスワードの組合せが予めハードディスク56に記録されたものと合致するかどうかを判断する(ステップS101)。合致すれば、正当なユーザからのログインであると判断して、これまでに他の端末装置T3、T4によって既に生成・編集されたオブジェクトの操作データ一覧を端末装置T1に送信する(ステップS102)。
【0071】
図8Aに、操作データの例を示す。ここでは、オブジェクトの生成のみが行われただけであるから、1つの操作データのみが記録されている。左端の数字「0」は、操作データを記録した順を示している。操作の欄は、操作の種類を示している。ここでは「生成」が記録されている。さらに、生成されたオブジェクトを識別するオブジェクトIDとともに、オブジェクトの属性、オブジェクトの特徴点の座標、色、太さなどが記録されている。
図9に、オブジェクトの座標の表現方式を示す。オブジェクトの特徴点A、B、C、Dの座標は、ディスプレイの左上隅を原点(0,0)とし、横方向にX軸、縦方向にY軸として表している。
【0072】
端末装置T1は、この操作データ一覧を受信し、不揮発性メモリ36に記録する(ステップS2)。
図12Aに、端末装置T1に記録された操作データ一覧を示す。
【0073】
さらに、端末装置T1は、この操作データ一覧に基づいて、オブジェクトデータを生成し、タッチスクリーン・ディスプレイ34にオブジェクトを表示する(ステップS2)。
【0074】
図10Aに、タッチスクリーン・ディスプレイ34に表示されたオブジェクト70を示す。端末装置T1は、オブジェクの属性が「四角」であることから、四角形としてオブジェクトを表示する。その際、操作データに示された四角形の四隅の点A、B、C、Dの座標に基づいて、その位置と大きさを決定する。また、オブジェクトの色、太さなどについても、操作データに記載された指定どおりに表示する。
【0075】
端末装置T2のCPU30(以下、端末装置T2と省略することがある)も、上記と同様にして、サーバ装置Sにログインする(ステップS21)。サーバ装置Sは、ログイン処理を行い(ステップS103)、操作データ一覧を端末装置T2に送信する(ステップS104)。
図13Aに、端末装置T2に記録された操作データ一覧を示す。
【0076】
操作データ一覧を受けた端末装置T2は、端末装置T1と同じようにして、オブジェクトデータを生成しオブジェクトの表示を行う(ステップS22)。
図10Bに、端末装置T2において表示されたオブジェクト70を示す。同じオブジェクトデータに基づく表示であるから、端末装置T1、T2のいずれにおいても、同じようにオブジェクトが左上に表示されている。
【0077】
次に、端末装置T1のユーザが、スタイラスペン(図示せず)によりタッチスクリーン・ディスプレイ34に表示されたオブジェクト70を右に移動させたとする。端末装置T1は、この操作を受け付けて、操作データX1を得る(ステップS3)。端末装置T1は、この操作データX1に基づき、オブジェクトデータを修正し、
図10Cに示すようにオブジェクト70の表示を右に移動させる(ステップS4)。
【0078】
この操作データX1を、
図11に示す。操作されたオブジェクトのオブジェクトID、操作種類が記録されている。ここでは、オブジェクトが移動されたので、操作種類は移動として記録されている。この操作種類に続いて、移動後のオブジェクトの座標が記録されている。端末装置T1は、この操作データX1を、サーバ装置Sから受信した操作データ一覧に追加して記録する(ステップS3)。したがって、端末装置T1において記録された操作データ一覧は、
図12Bのようになる。
【0079】
端末装置T1は、次に、操作データX1をサーバ装置Sに送信する(ステップS5)。サーバ装置Sは、操作データX1を受信し、操作データ一覧に追加して記録する(ステップS105)。したがって、サーバ装置Sにおける操作データ一覧は、
図8Bのようになる。
【0080】
一方、端末装置T2も端末装置T1とほぼ同時に、オブジェクト70に対する操作を行ったとする。この際、端末装置T2においては、上記の操作データX1がまだ届いていないので、オブジェクトは
図10Bのような状態として表示されている。
【0081】
ここで、端末装置T2のユーザにより、オブジェクト70が左下に移動するよう操作されたとする。端末装置T2は、この操作を受け付けて操作データX2を得る(ステップS23)。端末装置T2は、この操作データX2を、サーバ装置Sから受信した操作データ一覧に追加して記録する(ステップS23)。したがって、端末装置T2における操作データ一覧は、
図13Bのようになる。
【0082】
さらに、
図10Dのように、タッチスクリーン・ディスプレイ34にオブジェクト70の移動を表示する(ステップS24)。続いて、操作データX2をサーバ装置Sに送信する(ステップS25)。
【0083】
サーバ装置Sは、操作データX2を受信し、これをハードディスク56に記録する(ステップS106)。したがって、サーバ装置Sには、
図8Cに示すように操作データ一覧が記録される。この実施形態では、操作データを受信した順に、番号をつけて記録するようにしている。なお、受信の順番は、受信時のタイムスタンプに基づいて行うようにしてもよい。以上のようにして、サーバ装置Sには、操作データX1、X2が記録されることになる。
【0084】
続いて、サーバ装置Sは、端末装置T1、T2より受信して記録した操作データを、その記録時刻順(受信時刻順)に、全ての端末装置T1、T2、T3、T4に配信する(ステップS107)。この例であれば、まず、端末装置T1から受信した操作データX1を、各端末装置T1、T2、T3、T4に配信することになる。
【0085】
図7においては、端末装置T1、T2に対する配信のみが表示されているが、他の端末装置T3、T4に対しても同じように配信がなされる。この時、操作データX1は、上記のように、端末装置T1から受信したものであるが、サーバ装置Sは、当該端末装置T1に対しても、操作データX1を送信する。また、サーバ装置Sは、送信済みの操作データについては、送信済みのフラグ(図示せず)を立てる。
【0086】
操作データX1を受信した端末装置T1は、これを不揮発性メモリ36の操作データ一覧に追加して記録する(ステップS6)。ただし、ここでは、端末装置T1にすでに記録されていた最新の操作データX1と、受信した操作データX1が同一であるから、改めて記録を行わない。したがって、端末装置T1における操作データ一覧は、
図12Bのままである。
【0087】
端末装置T1は、操作データX1に基づいて当該オブジェクトを操作し、操作結果を表示する(ステップS8)。つまり、操作データX1に基づいてオブジェクトデータを修正し、修正したオブジェクトデータに基づいてオブジェクトを表示する。
【0088】
操作データX1は、オブジェクト70を右上に移動するという操作である。
図10Cに示すように、端末装置T1においては、ユーザの操作によって既に、オブジェクト70が右上に移動されている。したがって、端末装置T1は、タッチスクリーン・ディスプレイ34に表示されたオブジェクト70の位置を、そのまま右上に維持する(
図10E)。
【0089】
なお、対象となる当該オブジェクトが既に削除されている場合(既に削除されたオブジェクトに対する操作である場合)には、ステップS8の操作は実行しない(ステップS7)。この点については、後述する。
【0090】
操作データX1を受信した端末装置T2は、これを不揮発性メモリ36の操作データ一覧に追加して記録する(ステップS26)。したがって、端末装置T2における操作データ一覧は、
図13Cのようになる。
【0091】
端末装置T2は、操作データX1に基づいて当該オブジェクトを操作し、操作結果を表示する(ステップS28)。つまり、操作データX1に基づいてオブジェクトデータを修正し、修正したオブジェクトデータに基づいてオブジェクトを表示する。
【0092】
操作データX1は、オブジェクト70を右上に移動するという操作である。
図10Dに示すように、端末装置T2においては、ユーザの操作によって既に、オブジェクト70が左下に移動されている。したがって、端末装置T2は、タッチスクリーン・ディスプレイ34に表示されたオブジェクト70の位置を、左下から右上に移動するよう操作する(
図10F)。なお、この実施形態では、操作(現在位置から右へ移動)を反映するのではなく、操作結果(現在位置に拘わらず右上に移動)を反映するようにしている。
【0093】
なお、対象となる当該オブジェクトが既に削除されている場合(既に削除されたオブジェクトに対する操作である場合)には、ステップS28の操作は実行しない(ステップS27)。この点については、後述する。
【0094】
次に、サーバ装置Sは、端末装置T2から受信した操作データX2を、各端末装置T1、T2、T3、T4に配信する。
図7においては、端末装置T1、T2に対する配信のみが表示されているが、他の端末装置T3、T4に対しても同じように配信がなされる。この時、操作データX2は、上記のように、端末装置T2から受信したものであるが、サーバ装置Sは、当該端末装置T2に対しても、操作データX2を送信する。
【0095】
操作データX2を受信した端末装置T1は、これを不揮発性メモリ36の操作データ一覧に追加して記録する(ステップS9)。操作データX2が追加された操作データ一覧を、
図12Cに示す。
【0096】
端末装置T1は、操作データX2に基づいて当該オブジェクトを操作し、操作結果を表示する(ステップS11)。つまり、操作データX2に基づいてオブジェクトデータを修正し、修正したオブジェクトデータに基づいてオブジェクトを表示する。この時の端末装置T1における、オブジェクトデータは
図11Bに示すとおりである。
【0097】
操作データX2は、オブジェクト70を左下に移動するという操作である。
図10Eに示すように、端末装置T1においては、オブジェクト70が右上に位置している。したがって、端末装置T1は、タッチスクリーン・ディスプレイ34に表示されたオブジェクト70の位置を、右上から左下に移動する(
図10G)。
【0098】
操作データX2を受信した端末装置T2は、これを不揮発性メモリ36の操作データ一覧に追加して記録する(ステップS29)。操作データX2が追加された操作データ一覧を、
図13Dに示す。
【0099】
端末装置T2は、操作データX2に基づいて当該オブジェクトを操作し、操作結果を表示する(ステップS31)。つまり、操作データX2に基づいてオブジェクトデータを修正し、修正したオブジェクトデータに基づいてオブジェクトを表示する。この時の、端末装置T2におけるオブジェクトデータは、
図11Bに示すとおりである。
【0100】
操作データX2は、オブジェクト70を左下に移動するという操作である。
図10Fに示すように、端末装置T2においては、オブジェクト70が右上に表示されている。したがって、端末装置T2は、タッチスクリーン・ディスプレイ34に表示されたオブジェクト70の位置を、右上から左下に移動するよう操作する(
図10H)。
【0101】
以上のようにして、各端末装置T1、T2、T3、T4におけるオブジェクトデータが
図11Bに示すように統一され、それに基づくオブジェクトの表示も統一される。
【0102】
上記では、端末装置T1と端末装置T2において、双方が同じオブジェクトに対し、抵触する移動操作を行った場合について説明した。ここで、「抵触する操作」とは、一方の端末装置がオブジェクトに対する操作を行ってから、その操作が他方の端末装置に反映されるまでの間に、他方の端末装置が同じオブジェクトに対して、一方の端末装置の行った操作と両立しない操作を行った場合の、双方の操作をいう。
【0103】
しかし、上記のような処理は、移動操作だけでなく他の抵触する操作についても同様に行われる。たとえば、一方の端末装置がオブジェクトの色を変更し、同時に他方の端末装置がオブジェクトを他の色に変更した場合や、一方の端末装置がオブジェクトの線種を変更し、同時に他方の端末装置がオブジェクトを他の線種に変更した場合や、一方の端末装置がオブジェクトの拡大を行い、同時に他方の端末装置がオブジェクトの縮小を行った場合などにおいても、同様の処理がなされる。
【0104】
また、一方の端末装置がオブジェクトに対する操作を行ってから、その操作が他方の端末装置に反映されるまでの間に、他方の端末装置が同じオブジェクトに対して、一方の端末装置の行った操作と両立する操作を行った場合も、同様の処理が行われる。しかし、両立する操作であるから、最後の操作だけでなく両操作ともに有効なものとなる。
【0105】
たとえば、端末装置T1において拡大操作がなされ、端末装置T2において線種変更がなされた場合の処理を、
図14に示す。両端末装置T1、T2ともに、左上にオブジェクトが表示されている状態であるとする。
【0106】
ここで、端末装置T1において、オブジェクトの拡大操作がなされたとする(
図14の(1)参照)。端末装置T1は、この拡大操作の操作データX1をサーバ装置Sに送信する。サーバ装置Sは、この操作データX1を記録する((2)参照)。なお、この実施形態では、オブジェクトデータのうち操作によって変化する項目について、操作後のデータを、操作データとするようにしている。したがって、拡大操作の操作データX1は、拡大後のオブジェクトの各特徴点の座標となる。
【0107】
少し遅れて、端末装置T2において、オブジェクトの線種を太線に変更する太線変更操作がなされたとする((3)参照)。端末装置T2は、この太線変更操作の操作データX2をサーバ装置Sに送信する。サーバ装置Sは、この操作データX2を記録する((4)参照)。線種変更の操作データX2は、線種を太線とするものとなる。
【0108】
サーバ装置Sは、先に記録した拡大操作の操作データX1を、全ての端末装置T1、T2に配信する((5)参照)。これにより、端末装置T1においては、拡大されたオブジェクトがそのまま維持される((6)参照)。端末装置T2においては、オブジェクトがすでに太線に変更されている。したがって、この太線のオブジェクトが拡大される((6)参照)。
【0109】
続いて、サーバ装置Sは、太線変更の操作データX2を、全ての端末装置T1、T2に配信する((7)参照)。これにより、端末装置T1においては、拡大されたオブジェクトの線種が太線に変更される((8)参照)。端末装置T2においては、オブジェクトの線種はすでに太線になっているので、そのままに維持される((8)参照)。
【0110】
以上のように、各端末装置において両立しうる操作が行われた場合も、各端末装置T、サーバ装置Sは同様の処理を行うが、操作が両立するため、双方の操作が生かされることになる。
【0111】
また、複数の端末装置において、一方の端末装置による操作が他の端末装置に反映される前になされた、異なるオブジェクトの操作についても、
図6、
図7のフローチャートに従う処理が行われる。この場合には、異なるオブジェクトに対する操作であり抵触がないので、双方の操作ともに有効なものとして、全端末装置のオブジェクトデータおよび表示が統一される。
【0112】
たとえば、端末装置T1においてオブジェクト70の回転操作がなされ、端末装置T2においてオブジェクト72の線種変更がなされた場合の処理を、
図15に示す。両端末装置T1、T2ともに、左上にオブジェクト70、右上にオブジェクト72が表示されている状態であるとする。ここで、端末装置T1において、オブジェクト70の回転操作がなされたとする(
図15の(1)参照)。端末装置T1は、この拡大操作の操作データX1をサーバ装置Sに送信する。サーバ装置Sは、この操作データX1を記録する((2)参照)。
【0113】
少し遅れて、端末装置T2において、オブジェクト72の線種を太線に変更する太線変更操作がなされたとする((3)参照)。端末装置T2は、この太線変更操作の操作データX2をサーバ装置Sに送信する。サーバ装置Sは、この操作データX2を記録する((4)参照)。
【0114】
サーバ装置Sは、先に記録したオブジェクト70に対する回転操作の操作データX1を、全ての端末装置T1、T2に配信する((5)参照)。これにより、端末装置T1においては、回転されたオブジェクト70がそのまま維持される((6)参照)。端末装置T2においては、オブジェクト70の回転操作がなされる((6)参照)。端末装置T2においては、既にオブジェクト72の太線変更の操作がなされているが、操作データX1によって、この操作は影響を受けない。異なるオブジェクトに対する操作だからである。
【0115】
続いて、サーバ装置Sは、オブジェクト72に対する太線変更の操作データX2を、全ての端末装置T1、T2に配信する((7)参照)。これにより、端末装置T1においては、オブジェクト72が太線に変更される((8)参照)。この際も、既に操作がなされているオブジェクト70の回転操作は影響を受けない。端末装置T2においては、既に太線に変更されているオブジェクト72が維持される((8)参照)。
【0116】
このように、一方の端末装置による操作が他の端末装置に反映される前になされた、異なるオブジェクトの操作は互いに抵触しないので、各端末装置における操作が全て有効なものとして、全端末装置のオブジェクトデータおよび表示が統一される。
【0117】
また、同じオブジェクトに対する操作が異なる端末装置でなされた場合であっても、一方の端末装置による操作データが他方の端末装置に反映された後の操作であれば、全ての操作が有効なものとされる。たとえば、端末装置T1において拡大操作がなされ、この拡大操作が反映された後に、端末装置T2において線種変更がなされた場合の処理を、
図16に示す。
【0118】
この場合、端末装置T1による拡大操作と、端末装置T2による太線変更操作がともに有効なものとして、全端末装置のオブジェクトデータおよび表示が統一される。
【0119】
なお、抵触する操作が異なる端末装置においてなされた場合には、先に述べたように、抵触する操作のうち最後の操作によって統一するようにしている。しかし、この実施形態では、抵触する操作の少なくとも一つがオブジェクトの削除操作である場合には、オブジェクトの削除操作によって統一を行うようにする。つまり、オブジェクトの削除操作があった後の抵触する操作は、オブジェクトデータに記録しないか、あるいは記録したとしても実行しないようにしている。なお、他の実施形態としては、抵触する操作に削除操作が含まれていても、原則どおり、抵触する操作のうち最後の操作によって統一するようにしてもよい。
【0120】
なお、各端末装置においてサーバ装置Sからの配信を受信するタイミングは異なっている。このため、他の端末装置においては操作データを受信しているにもかかわらず、ある端末装置においては操作データを受信していない場合もある。この場合、当該操作データを受信していない端末装置において、当該オブジェクトに対する操作が行われると、抵触が生じることになる。
【0121】
このような場合の例を、
図17に示す。端末装置T1によってなされた拡大操作は、サーバ装置Sから各端末装置に配信される((4)参照)。しかし、(5)に示すように、端末装置T1、T3には到達しているが、端末装置T2には到達していない。この時に、端末装置T2によって縮小操作がなされると抵触が生じることになる。
【0122】
拡大操作の操作データは、(8)において端末装置T2に到達する。しかし、その後、縮小操作の操作データによって、端末装置T1、T2、T3において縮小操作に統一される。つまり、抵触が生じた操作(拡大操作)が最終的に無効となり、端末装置T2によってなされた縮小操作によって統一がなされる。
【0123】
また、抵触操作が連鎖する場合もある。たとえば、端末装置T1が線種を青色にする操作を行い、端末装置T2が線種を赤色にする抵触する操作を行ったとする。さらに、端末装置T1の操作とは抵触しないが、端末装置T2の操作とは抵触する操作(線種を黄色にする操作)を、端末装置T3が行ったとする。つまり、端末装置T3において、端末装置T1の操作が反映された後であって、端末装置T2の操作が反映される前に操作がなされたとする。この場合、端末装置T3の行った操作(線種を黄色にする操作)によって、各端末装置の操作の統一がなされる。
【0124】
なお、この実施形態では、サーバ装置Sとの通信が一時的にできなくなった端末装置においても、オブジェクトに対する編集を行うことができる。その後、当該端末装置がサーバ装置Sと通信できるようになった時に、他の端末装置からの操作データを受け取り、また、自らの操作データをサーバ装置Sを介して他の端末装置に送信することができる。この場合に、抵触する操作があった場合には、上記と同様にして、最後にサーバ装置Sに記録された操作が優先されて、各端末装置における操作が統一されることになる。
【0125】
1.3その他
(1)上記実施形態では、四角形のオブジェクトを例として説明した。しかし、その他の図形や文字・符号などについても同様に適用することができる。この場合、図形などの種類によりその形状と位置を特定するために、オブジェクトデータに記録する座標は異なってくる。たとえば、円形であれば、中心点の座標と半径によって特定することができる。
【0126】
(2)上記実施形態では、操作結果(操作後のオブジェクトの状態)を操作データとして送信するようにしている。しかし、操作結果として、操作前のオブジェクト状態と操作内容(移動量など)とを送信するようにしてもよい。
【0127】
(3)上記実施形態では、サーバ装置Sが送信済みの操作データについてフラグを立て、未送信の操作データについて各端末装置に送信するようにしている。しかし、サーバ装置Sにおいて、連続番号などを付して操作データを記録し、各端末装置では、受信した操作データの連続番号を記録するようにしてもよい。この場合、各端末装置は、所定のタイミングで、自らが受信済みの操作データの連続番号を明示して、サーバ装置Sに操作データの送信を要求する。
【0128】
(4)上記実施形態および変形例は、その本質に反しない限り、他の実施形態と組み合わせて実施可能である。
【0129】
2.第2の実施形態
2.1システム構成と概要
図18に、この発明の一実施形態によるコンテンツ共同編集システムの全体構成を示す。サーバ装置Sには、複数の端末装置T1、T2・・・Tnが接続されている。
図19は、コンテンツ共同編集システムにおける共同編集を説明するための概念図である。
【0130】
以下、
図18と
図19を参照して説明する。端末装置T1、T2のいずれにおいても、
図19の最上段に示すように、楕円のオブジェクトが表示されているものとする。この実施形態では、オブジェクトごとに表示の重なり順(Zオーダ)をデータとして持つようにしている。ここでは、楕円のオブジェクトのZオーダは「0」(Z=0)として保持されているものとする。なお、Zオーダの値が小さいほど、下側になるように表示されることになる。
【0131】
端末装置T1の直接変更受付手段102(
図18)は、マウスなどによるユーザの操作を受け付ける。直接変更表示手段104は、この操作内容を表示部106に表示する。たとえば、
図19に示すように、端末装置T1のユーザが楕円オブジェクトの上に、菱形オブジェクト(Z=1)を生成したとする(
図19の(1))。端末装置T1の直接変更送信手段110は、この菱形オブジェクト(Z=1)が生成された旨を示す操作データを(Zオーダを含む)をサーバ装置Sに送信する。サーバ装置SのZオーダ情報記録手段122(
図1)は、これを受けて、記録部124に記録する(
図19の(2))。
【0132】
この時、ほぼ同時に、少し遅れて端末装置T2のユーザが、楕円オブジェクトの上に四角オブジェクトを生成したとする(
図19の(3))。この際、端末装置T2には、上記の端末装置T1からの操作データが送られてきていないので、楕円オブジェクトの上に四角オブジェクトが生成されることになる。つまり、四角オブジェクトのZオーダは「1」(Z=1)となる。端末装置T2の直接変更送信手段110(図示せず)は、この操作データ(Zオーダを含む)をサーバ装置Sに送信する。サーバ装置SのZオーダ情報記録手段122(
図18)は、これを受けて、記録部124に記録する(
図19の(4))。
【0133】
サーバ装置Sの操作情報配信手段126は、記録部124に記録された操作データを記録順に読み出して、各端末装置T1、T2・・・Tnに配信する。まず、端末装置T1によって生成された操作データ(菱形オブジェクト(Z=1)の生成)を、各端末装置T1、T2・・・Tnに配信する。この際、菱形オブジェクトを生成した端末装置T1に対してもこの操作データの配信を行う(
図19の(5))。
【0134】
端末装置T1の間接変更受信手段112は、サーバ装置Sからの操作データ(菱形オブジェクト(Z=1)の生成)を受信する(
図19の(5))。間接変更表示手段108は、受信した操作データに基づいて菱形オブジェクト(Z=1)を生成して表示する。端末装置T1においては、楕円オブジェクト(Z=0)の上に菱形オブジェクト(Z=1)が表示された状態であるから、そのままの状態に保持されることになる(
図19の(6))。
【0135】
同様に、端末装置T2の間接変更受信手段112(図示せず)も、サーバ装置Sからの操作データ(菱形オブジェクト(Z=1)の生成)を受信する(
図19の(5))。間接変更表示手段108(図示せず)は、受信した操作データに基づいて菱形オブジェクト(Z=1)を生成し、表示部106(図示せず)に表示する。
【0136】
端末装置T2においては、楕円オブジェクト(Z=0)の上に四角オブジェクト(Z=1)が表示された状態にある。ここに、配信されてきた菱形オブジェクト(Z=1)を生成して、表示することになる。この際、間接変更表示手段108(図示せず)は、配信されてきた菱形オブジェクト(Z=1)のZオーダを変更することなく、しかも、既に存在するオブジェクトの上下関係を変更することなく、菱形オブジェクトを追加する。
【0137】
したがって、端末装置T2は、楕円オブジェクト(Z=0)、菱形オブジェクト(Z=1)、四角オブジェクト(Z=2)として表示を行う。つまり、
図19の(6)に示すように、楕円オブジェクトの上に、菱形オブジェクトを表示し、さらにその上に四角オブジェクトを表示する。
【0138】
続いて、サーバ装置Sは、端末装置T2によって生成された操作データ(四角オブジェクト(Z=1)の生成)を読み出して、各端末装置T1、T2・・・Tnに配信する。この際、操作情報を送信してきた端末装置T2に対してもこの操作データの配信を行う(
図19の(7))。
【0139】
端末装置T1の間接変更受信手段112は、サーバ装置Sからの操作データ(四角オブジェクト(Z=1)の生成)を受信する(
図19の(7))。間接変更表示手段108は、受信した操作データに基づいて四角オブジェクト(Z=1)を生成し表示部106に表示する。
【0140】
端末装置T1においては、楕円オブジェクト(Z=0)の上に菱形オブジェクト(Z=1)が表示された状態にある。したがって、端末装置T1は、前述のルールに従い、楕円オブジェクト(Z=0)、四角オブジェクト(Z=1)とし、菱形オブジェクトのZオーダを「2」に変更する。したがって、
図19の(8)に示すように、楕円オブジェクトの上に、四角オブジェクトを表示し、さらにその上に菱形オブジェクトを表示する。
【0141】
同様に、端末装置T2の間接変更受信手段112(図示せず)も、サーバ装置Sからの操作情報を受信する(
図19の(7))。間接変更表示手段108(図示せず)は、受信したオブジェクトデータ(Z=1)に基づいて四角オブジェクトを表示部106(図示せず)に表示する。
【0142】
端末装置T2においては、楕円オブジェクト(Z=0)の上に菱形オブジェクト(Z=1)が表示され、その上に四角オブジェクトが表示された状態にある。受信した四角オブジェクトのZオーダは「1」であるから、端末装置T2は、前述のルールに従い、楕円オブジェクト(Z=0)の上に、四角オブジェクト(Z=1)を表示し、さらにその上に菱形オブジェクト(Z=2)を表示する(
図19の(8))。
【0143】
以上のようにして、他の端末装置からのZオーダ変更のデータが送られてくる前に、Zオーダに関する操作がなされた場合であっても、最後に操作を行った端末装置のZオーダが優先され、各端末装置T1、T2・・・TnにおけるオブジェクトのZオーダが一致する。
【0144】
なお、上記実施形態では、変更のあったZオーダのみを送信するようにしているが、変更されていないオブジェクトも含めて全てのZオーダを操作情報として送信するようにしてもよい。
【0145】
システムの構成、端末装置Tのハードウエア構成、サーバ装置Sのハードウエア構成は、第1の実施形態と同様(
図3~
図5参照)である。
【0146】
2.2共同編集処理
図20、
図21に、このシステムによる共同編集処理のフローチャートを示す。
図20、
図21において、端末装置T1、端末装置T2は端末プログラム42を表している。サーバ装置Sは、サーバプログラム64を表している。なお、
図20、
図21においては、2つの端末装置T1、T2のみを示しているが、他の端末装置T3、T4も同様の処理を行う。
【0147】
なお、以下では、端末装置T3、T4によって既に共同編集が行われており、その後、端末装置T1、T2がこの共同編集に参加する場合を例として説明する。
【0148】
端末装置T1がサーバ装置Sにアクセスしログインを行う点は、第1の実施形態と同様である(ステップS201、S301)。サーバ装置Sは、正当なユーザからのログインであると判断すると、これまでに既に他の端末装置T3、T4から送られてきて記録している操作データ一覧を、端末装置T1に送信する(ステップS302)。
【0149】
図22Aに、操作データ一覧の例を示す。ここでは、オブジェクトの生成のみが行われただけであるから、1つの操作データのみが記録されている。生成されたオブジェクトを識別するオブジェクトIDとともに、Zオーダ、オブジェクトの属性、オブジェクトの特徴点の座標、色、太さなどが記録されている。
【0150】
端末装置T1は、この操作データ一覧を受信し、不揮発性メモリ36に記録する(ステップS202)。
図23Aに、端末装置T1に記録された操作データ一覧を示す。
【0151】
さらに、端末装置T1は、この操作データ一覧に基づいて、オブジェクトデータを生成し、タッチスクリーン・ディスプレイ34にオブジェクトを表示する(ステップS202)。
【0152】
図25Aに、タッチスクリーン・ディスプレイ34に表示されたオブジェクト70を示す。端末装置T1は、オブジェクの属性が「楕円」であることから、楕円としてオブジェクトを表示する。操作データに示されたF1、F2、F3、F4・・・の項目は、オブジェクトの特徴点の座標や寸法を表すものであり、属性に応じて予め定義されている。「楕円」の場合であれば、F1は中心座標、F2は短径、F3は長径と定義されている。端末装置T1は、F1、F2、F3・・・のデータに基づいて、その位置と大きさを決定する。また、オブジェクトの色、太さなどについても、操作データに記載された指定どおりに表示する。
【0153】
端末装置T2のCPU30も、上記と同様にして、サーバ装置Sにログインする(ステップS211)。サーバ装置Sは、ログイン処理を行い(ステップS303)、操作データ一覧を端末装置T2に送信する(ステップS304)。
図24Aに、端末装置T2に記録された操作データ一覧を示す。
【0154】
操作データ一覧を受けた端末装置T2は、端末装置T1と同じようにして、オブジェクトデータを生成しオブジェクトの表示を行う(ステップS212)。
図25Bに、端末装置T2において表示された楕円オブジェクト70を示す。同じオブジェクトデータに基づく表示であるから、端末装置T1、T2のいずれにおいても、同じように楕円オブジェクト70が表示されている。
【0155】
次に、端末装置T1のユーザが、スタイラスペン(図示せず)によりタッチスクリーン・ディスプレイ34に表示された楕円オブジェクト70の上に菱形オブジェクト72を描画したとする。端末装置T1は、この操作を受け付けて、操作データX11(菱形オブジェクト生成)を得る(ステップS203)。端末装置T1は、この操作データX11に基づき菱形オブジェクトを生成し、
図25Cに示すように楕円オブジェクト70の上に表示する(ステップS204)。
【0156】
さらに、この操作データX11(菱形オブジェクト(Z=1)生成)を、サーバ装置Sから受信した操作データ一覧に追加して記録する(ステップS204)。したがって、端末装置T1において記録された操作データ一覧は、
図23Bのようになる。なお、各端末装置において生成されたオブジェクトは、最前面に表示されるようにZオーダが付与される。したがって、菱形オブジェクト70のZオーダは「1」となる。
【0157】
端末装置T1は、次に、操作データX11をサーバ装置Sに送信する(ステップS205)。サーバ装置Sは、操作データX11を受信し、操作データ一覧に追加して記録する(ステップS305)。したがって、サーバ装置Sにおける操作データ一覧は、
図22Bのようになる。
【0158】
一方、端末装置T2も端末装置T1とほぼ同時に、楕円オブジェクト70の上に描画を行ったとする。ただし、端末装置T2では、四角オブジェクト74を描画したものとする。この際、端末装置T2においては、上記の操作データX11がまだ届いていないので、オブジェクトは
図25Bのような状態として表示されている。
【0159】
ここで、端末装置T2のユーザにより、四角オブジェクト74が描画されると、端末装置T2は、この操作を受け付けて操作データX12を得る(ステップS213)。端末装置T2は、この操作データX12に基づき四角オブジェクト74を生成し、
図25Dに示すように楕円オブジェクト70の上に表示する(ステップS214)。さらに、この操作データX12を、サーバ装置Sから受信した操作データ一覧に追加して記録する(ステップS214)。したがって、端末装置T2において記録された操作データ一覧は、
図24Bのようになる。
【0160】
端末装置T2は、次に、操作データX12をサーバ装置Sに送信する(ステップS215)。サーバ装置Sは、操作データX12を受信し、操作データ一覧に追加して記録する(ステップS306)。したがって、サーバ装置Sにおける操作データ一覧は、
図22Cのようになる。
【0161】
続いて、サーバ装置Sは、端末装置T1、T2より受信して記録した操作データを、その記録時刻順(受信時刻順)に、全ての端末装置T1、T2、T3、T4に配信する(ステップS307)。この例であれば、まず、端末装置T1から受信した操作データX11(菱形オブジェクト(Z=1)の生成)を、各端末装置T1、T2、T3、T4に配信することになる。
【0162】
図21においては、端末装置T1、T2に対する配信のみが表示されているが、他の端末装置T3、T4に対しても同じように配信がなされる。この時、操作データX11は、上記のように、端末装置T1から受信したものであるが、サーバ装置Sは、当該端末装置T1に対しても、操作データX11を送信する。また、サーバ装置Sは、送信済みの操作データについては、送信済みのフラグ(図示せず)を立てる。
【0163】
操作データX11を受信した端末装置T1は、これを不揮発性メモリ36の操作データ一覧に追加して記録する(ステップS206)。ただし、ここでは、端末装置T1にすでに記録されていた最新の操作データX11と、受信した操作データX11が同一であるから、改めて記録を行わない。したがって、端末装置T1における操作データ一覧は、
図23Bのままである。
【0164】
端末装置T1は、操作データX11に基づいて菱形オブジェクト72を生成し、当該菱形オブジェクトのZオーダ「1」が維持されるように表示を行う(ステップS207)。しかし、ここでは、既に、菱形オブジェクト72が生成され、楕円オブジェクト70の上に表示されているので、端末装置T1は現在の表示を維持する(
図25E参照)。
【0165】
なお、対象となる当該オブジェクトが既に削除されている場合(既に削除されたオブジェクトに対する操作である場合)には、ステップS207の操作は実行しない。この点については、第1の実施形態と同様である。
【0166】
操作データX11を受信した端末装置T2は、これを不揮発性メモリ36の操作データ一覧に追加して記録する(ステップS216)。したがって、端末装置T2における操作データ一覧は、
図24Cのようになる。
【0167】
端末装置T2は、操作データX11に基づいて菱形オブジェクト72を生成し、当該菱形オブジェクトのZオーダ「1」が維持されるように表示を行う(ステップS217)。ここでは、既に、楕円オブジェクト70がZオーダ「0」、四角オブジェクトがZオーダ「1」にて表示されている。したがって、端末装置T2は、生成した菱形オブジェクト72のZオーダを「1」に維持し、四角オブジェクト74のZオーダを「2」に変更して表示する(
図25F参照)。
【0168】
なお、対象となる当該オブジェクトが既に削除されている場合(既に削除されたオブジェクトに対する操作である場合)には、ステップS217の操作は実行しない。この点については、第1の実施形態と同様である。
【0169】
次に、サーバ装置Sは、端末装置T2から受信した操作データX12(四角オブジェクト74の生成)を、各端末装置T1、T2、T3、T4に配信する。
図21においては、端末装置T1、T2に対する配信のみが表示されているが、他の端末装置T3、T4に対しても同じように配信がなされる。この時、操作データX12は、上記のように、端末装置T2から受信したものであるが、サーバ装置Sは、当該端末装置T2に対しても、操作データX12を送信する。
【0170】
操作データX12を受信した端末装置T1は、これを不揮発性メモリ36の操作データ一覧に追加して記録する(ステップS208)。操作データX12が追加された操作データ一覧を、
図23Cに示す。
【0171】
端末装置T1は、操作データX12に基づいて四角オブジェクト74(Z=1)を生成し表示する(ステップS209)。端末装置T1においては、楕円オブジェクト(Z=0)の上に、菱形オブジェクト(Z=1)が表示されている。したがって、端末装置T1は、操作データX12にて指定された四角オブジェクト74のZオーダを「1」とし、菱形オブジェクト72のZオーダを「2」に変更する。したがって、楕円オブジェクト70の上に四角オブジェクト74が表示され、その上に菱形オブジェクト72が表示されることになる(
図25G参照)。
【0172】
この時の、端末装置T1におけるオブジェクトデータを、
図26に示す。楕円オブジェクトのZオーダが「0」、菱形オブジェクトのZオーダが「2」、四角オブジェクトのZオーダが「1」となっている。
【0173】
操作データX12を受信した端末装置T2は、これを不揮発性メモリ36の操作データ一覧に追加して記録する(ステップS218)。操作データX12が追加された操作データ一覧を、
図24Dに示す。
【0174】
端末装置T2は、操作データX12に基づいて四角オブジェクト74(Z=1)を生成し表示する(ステップS218)。端末装置T2においては、すでに四角オブジェクトが生成されているので、その生成は行わない。ただし、端末装置T2はZオーダの変更を行う。いま、端末装置T2においては、楕円オブジェクト70(Z=0)の上に、菱形オブジェクト72(Z=1)が表示され、その上に四角オブジェクト74(Z=2)が表示されている。したがって、端末装置T2は、操作データX12にて指定された四角オブジェクト74のZオーダを「1」とし、菱形オブジェクト72のZオーダを「2」に変更する。したがって、楕円オブジェクト70の上に四角オブジェクト74が表示され、その上に菱形オブジェクト72が表示されることになる(
図25H参照)。
【0175】
この時の、端末装置T2におけるオブジェクトデータを、
図26に示す。楕円オブジェクトのZオーダが「0」、菱形オブジェクトのZオーダが「1」、四角オブジェクトのZオーダが「2」となっている。
【0176】
以上のようにして、各端末装置T1、T2、T3、T4におけるZオーダを含むオブジェクトデータが統一され、それに基づくオブジェクトの表示順序も統一される。
【0177】
なお、上記では、各端末装置から送信され、サーバ装置から各端末装置に配信される操作データに、生成されたオブジェクトのZオーダのみを含めている。しかし、オブジェクト生成時に存在する他のオブジェクト全てのZオーダも含めて操作データとして送信するようにしてもよい。
【0178】
上記では、端末装置T1と端末装置T2において、双方がオブジェクトの生成を重複して行った場合(ほぼ同時刻に操作した場合)について説明した。しかし、新たなオブジェクトの生成だけでなく、既にあるオブジェクトのZオーダの変更などのZオーダを変える操作全般についても同様の処理がなされる。
【0179】
たとえば、端末装置T1においてZオーダの変更がなされ、端末装置T2においてもZオーダの変更がなされた場合の処理を、
図27に示す。なお、
図27の例では、全てのオブジェクトのZオーダを操作データとして送信するようにしている。両端末装置T1、T2ともに、下から楕円(Z=0)、四角(Z=1)、菱形(Z=2)の順にオブジェクトが表示されているものとする(
図27最上段参照)。ここで、端末装置T1において、菱形を最も下にする変更が行われ、下から菱形(Z=0)、楕円(Z=1)、四角(Z=2)の順になったとする(
図27の(1)参照)。
【0180】
端末装置T1は、このZオーダ変更の操作データX11をサーバ装置Sに送信する。なお、Zオーダの変更においては、変更がなされたオブジェクトのZオーダだけでなく、端末装置T1に記録されている全てのオブジェクトのZオーダを操作データX11として送信する。サーバ装置Sは、この操作データX11を記録する((2)参照)。
【0181】
少し遅れて、端末装置T2において、楕円を最も上にする変更が行われ、下から四角(Z=0)、菱形(Z=1)、楕円(Z=2)の順になったとする(
図27の(3)参照)。
【0182】
端末装置T2は、このZオーダ変更の操作データX12をサーバ装置Sに送信する。サーバ装置Sは、この操作データX12を記録する((4)参照)。
【0183】
サーバ装置Sは、先に記録した端末装置T1による操作データX11を、全ての端末装置T1、T2に配信する((5)参照)。これにより、端末装置T1においては、オブジェクトの表示順序がそのまま維持される((6)参照)。端末装置T2においては、操作データX11の指定どおり、下から菱形(Z=0)、楕円(Z=1)、四角(Z=2)の順に表示が変更される((6)参照)。
【0184】
続いて、サーバ装置Sは、端末装置T2による操作データX12を、全ての端末装置T1、T2に配信する((7)参照)。これにより、端末装置T1においては、操作データX12の指定どおり、下から四角(Z=0)、菱形(Z=1)、楕円(Z=2)の順に表示が変更される((8)参照)。同様に、端末装置T2においても、操作データX12の指定どおり、下から四角(Z=0)、菱形(Z=1)、楕円(Z=2)の順に表示が変更される((8)参照)。
【0185】
このように、この実施形態では、2つの(3つ以上であってもよい)抵触するZオーダ変更操作が異なる端末装置でなされた場合には、最後にサーバ装置Sに記録されたZオーダ変更操作が優先され(他の操作は無効となる)、このZオーダに統一がなされるようにしている。
【0186】
また、同じオブジェクトに対するZオーダ変更操作が異なる端末装置でなされた場合であっても、一方の端末装置によるZオーダ変更操作データが他方の端末装置に反映された後の操作であれば、全ての操作が有効なものとされる。
【0187】
なお、各端末装置においてサーバ装置Sからの配信を受信するタイミングは異なっている。このため、他の端末装置においては操作データを受信しているにもかかわらず、ある端末装置においては操作データを受信していない場合もある。この場合、当該操作データを受信していない端末装置において、当該オブジェクトに対する操作が行われると、抵触が生じることになる。この場合も、最後の操作が優先されることになる。
【0188】
2.3その他
上記実施形態および変形例は、その本質に反しない限り、他の実施形態と組み合わせて実施可能である。
【0189】
3.第3の実施形態
3.1システム構成と概要
図28に、第3の実施形態によるコンテンツ共同編集システムの全体構成を示す。サーバ装置Sには、複数の端末装置T1、T2・・・Tnが接続されている。
【0190】
サーバ装置Sの端末識別符号送信手段222は、端末装置T1、T2・・・Tnから初めてのアクセスを受けると、各端末装置を識別するための端末識別符号を返信する。端末装置T1の端末識別符号受信手段206は、この端末識別符号を受信して記録部208に記録する。この実施形態では、端末識別符号として数値データを用いるようにしている。
【0191】
オブジェクト生成受付手段202は、オブジェクトの生成操作を受け付ける。オブジェクト記録手段204は、生成されたオブジェクトに対して端末オブジェクト識別符号を生成し、前記端末識別符号と組み合わせることでオブジェクト識別符号を生成する。この実施形態では、端末オブジェクト識別符号として数値データを用いるようにしている。したがって、オブジェクト識別符号は、2つの数値データによって構成されることになる。さらに、このオブジェクト識別符号を付して、生成されたオブジェクトを記録部208に記録する。たとえば、端末識別符号が「3」であり、端末オブジェクト識別符号が「1」であれば、オブジェクト識別符号は、「3,1」というように生成される。数値データをコンマで区切って結合しているので、オブジェクト識別符号の連続番号を付していく過程で、桁数が増えた場合であっても対応することができる。たとえば、「3,1236」というようなオブジェクト識別符号を生成することができる。
【0192】
操作情報送信手段210は、オブジェクトに対する操作情報を、オブジェクト識別符号とともにサーバ装置Sに送信する。サーバ装置Sの操作情報記録手段224は、受信したオブジェクト識別符号を含む操作情報を記録部226に記録する。さらに、サーバ装置Sは、操作情報を各端末装置T2・・・Tnに配信する。
【0193】
操作情報の配信を受けた各端末装置T2・・・Tnの操作手段212は、対応するオブジェクト識別符号が付されたオブジェクトに対する操作を行う。
【0194】
なお、上記では、サーバ装置Sは、操作情報を送信してきた端末装置に対しては操作情報の配信をしていないが、操作情報を送信してきた端末装置に対しても操作情報を配信するようにしてもよい。
【0195】
このようにして、各端末装置にて生成されるオブジェクト識別符号が重複しないようにすることができる。
【0196】
システムの構成、端末装置Tのハードウエア構成、サーバ装置Sのハードウエア構成は、第1の実施形態と同様(
図3~
図5参照)である。
【0197】
3.2共同編集処理
図29、
図30に、このシステムによる共同編集処理のフローチャートを示す。
図29、
図30において、端末装置T1、端末装置T2は端末プログラム42を表している。サーバ装置Sは、サーバプログラム64を表している。なお、
図29、
図30においては、2つの端末装置T1、T2のみを示しているが、他の端末装置T3、T4も同様の処理を行う。
【0198】
端末装置T1がサーバ装置Sにアクセスしログインを行う点は、第1の実施形態と同様である(ステップS401、S501)。サーバ装置Sは、正当なユーザからのログインであると判断すると、端末装置T1に対する端末IDを生成して送信する(ステップS502)。
【0199】
この実施形態では、サーバ装置Sは、各端末装置に対してアクセスしてきた順に3桁の連番を生成して付与するようにしている。ここでは、端末装置T1に対して、端末IDとして「1」が付与されたものとする。端末IDを受信した端末装置T1は、これを不揮発性メモリ36に記録する(ステップS402)。
【0200】
続いて、端末装置T2がサーバ装置Sにアクセスしてログインを行ったとする(ステップS411、S503)。サーバ装置Sは、端末装置T2に対する端末IDを生成して送信する(ステップS504)。ここでは、端末装置T2に対して、端末IDとして「2」が付与されたものとする。端末装置T2はこれを記録する。
【0201】
なお、フローチャートには表していないが、端末装置T3、T4に対しても、同様にして端末IDとして「3」「4」が付与される。
【0202】
ここで、端末装置T1において、オブジェクトの生成がなされたとする。端末装置T1はこれを受け付ける(ステップS403)。端末装置T1は受け付けた操作に基づいて、オブジェクト生成の操作データを生成して記録する(ステップS404)。たとえば、菱形オブジェクトが生成された場合であれば、
図31に示すような操作データが生成されて記録される。
【0203】
なお、端末装置T1は、操作データ中のオブジェクトIDを次のようにして生成する。まず、端末装置T1において生成したオブジェクトについて連続番号を端末オブジェクトIDとして生成する。ここでは、最初に生成したオブジェクトであるから、「1」が生成される。次に、端末装置T1は、端末IDと端末オブジェクトIDを組み合わせて、オブジェクトIDとする。この実施形態では、「,」を挟んで、端末IDに続けて端末オブジェクトIDをつないで、オブジェクトIDとしている。したがって、オブジェクトIDとして「1,1」が得られる。
【0204】
この実施形態では、各端末装置ごとにユニークな端末オブジェクトIDを生成し、これと端末装置ごとにユニークな端末IDを組み合わせて、オブジェクトIDを得ている。したがって、オブジェクト生成のたびにサーバ装置Sに問い合わせを行わなくとも、端末装置の側でユニークなオブジェクトIDを生成することができる。
【0205】
次に、端末装置T1は、このオブジェクトIDを含む操作データを、サーバ装置Sに送信する(ステップS405)。サーバ装置Sは、受信した操作データを記録部に記録する(ステップS505)。
【0206】
さらに、サーバ装置Sは、この操作データを他の端末装置T2・・T4に配信する(ステップS507)。この操作データを受けた各端末装置T2・・T4は、操作データにしたがってオブジェクトを生成して表示する(ステップS416、S417)。また、そのオブジェクトIDによりオブジェクトを管理する。
【0207】
以後、いずれかの端末装置T1・・・Tnが、このオブジェクトに対する何らかの操作を行った場合には、オブジェクトIDが付された操作データが生成され、サーバ装置Sを介して他の端末装置に配信される。
【0208】
このように、オブジェクトIDを数値の組合せによって構成しているので、オブジェクトIDの検索や、オブジェクトIDの比較などの処理を迅速に行うことができる。
【0209】
3.3その他
(1)上記実施形態では、このオブジェクトデータ生成の方式を、差分更新方式に適用した場合について説明したが、全体更新方式についても適用することができる。
【0210】
(2)上記実施形態では、数値にて表される端末オブジェクト識別符号と、数値にて表される端末識別符号との組合せにより、オブジェクト識別符号を構成している。しかし、文字列にて表される端末オブジェクト識別符号と、文字列にて表される端末識別符号との組合せにより、オブジェクト識別符号を構成してもよい。この場合、オブジェクト識別符号を短く構成するため、端末識別符号を、端末装置に付与されている固有のハードウエア識別符号よりも短くすることが好ましい。
【0211】
(3)上記実施形態および変形例は、その本質に反しない限り、他の実施形態と組み合わせて実施可能である。
【0212】
4.第4の実施形態
4.1システム構成と概要
図34に、第4の実施形態によるコンテンツ共同編集システムの全体構成を示す。サーバ装置Sには、複数の端末装置T1、T2・・・Tnが接続されている。
【0213】
端末装置T1の直接操作受付手段2は、オブジェクトに対する操作を受け付ける。この実施形態では、いわゆるアフィン変換にてオフジェクトを操作する場合についての構成を示している。ここでアフィン変換とは、線形変換(拡大縮小、剪断、回転)や並行移動あるいはこれらの組合せによる操作をいう。
【0214】
なお、この実施形態では、各オブジェクトについて特徴座標を記録部16に記録している。さらに、オブジェクトを生成した際の特徴座標(当初特徴座標)からの全てのアフィン変換の内容(アフィン操作総量)も記録している。
【0215】
直接操作表示手段4は、オブジェクトに対して受け付けたアフィン変換に基づいて、オブジェクトを操作し表示部6に操作結果を表示する。直接操作送信手段10は、前記アフィン変換に基づいて、記録部16に記録されている当該オブジェクトの操作後の特徴座標およびアフィン操作総量を更新する。さらに、アフィン操作総量を操作情報としてサーバ装置Sに送信する。
【0216】
サーバ装置Sの操作情報記録手段22は、これを受け取って、記録部24に記録する。複数の端末装置T1~Tnが接続されているので、サーバ装置Sは受信した順に記録部24に操作情報(アフィン操作総量)を記録する。
【0217】
操作情報配信手段26は、記録部24に記録されている操作情報(アフィン操作総量)を、その受信順に各端末装置T1~Tnに配信する。この操作情報(アフィン操作総量)を受信した各端末装置T1~Tnの動作は以下のとおりである。
【0218】
端末装置T1の間接操作受信手段12は、サーバ装置Sからの操作情報(アフィン操作総量)を受信する。間接操作表示手段8は、操作情報(アフィン操作総量)を受け取ると、記録部16に記録されている当該オブジェクトの現在の特徴座標と現在のアフィン操作総量とに基づいて、当該オブジェクトの当初特徴座標を算出する。現在の特徴座標について、これまでの全てのアフィン操作を逆にすれば、当初特徴座標を得ることができる。さらに、算出した当初特徴座標と受信したアフィン操作総量とに基づいて、操作後の特徴座標を算出し操作後のオブジェクトを表示部6に表示する。
【0219】
間接操作記録手段14は、算出した操作後の特徴座標と受信した操作情報(アフィン操作総量)によって、記録部16に記録されている特徴座標とアフィン操作総量を更新する。
【0220】
システムの構成、端末装置Tのハードウエア構成、サーバ装置Sのハードウエア構成は、第1の実施形態と同様(
図3~
図5参照)である。
【0221】
4.2共同編集処理
図36~38に、このシステムによる共同編集処理のフローチャートを示す。
図36~38において、端末装置T1、端末装置T2は端末プログラム42を表している。サーバ装置Sは、サーバプログラム64を表している。なお、
図36~38においては、2つの端末装置T1、T2のみを示しているが、他の端末装置T3、T4も同様の処理を行う。
【0222】
なお、以下では、端末装置T3、T4によって既に共同編集が行われており、その後、端末装置T1、T2がこの共同編集に参加する場合を例として説明する。
【0223】
端末装置T1を操作するユーザは、スタイラスペン(図示せず)によりタッチスクリーン・ディスプレイ34を操作して、サーバ装置Sにアクセスする。端末装置T1のCPU30(以下、端末装置T1と省略することがある)は、この操作を受けて、ユーザによって入力されたユーザIDとパスワードを、サーバ装置Sに送信する(ステップS1)。
【0224】
サーバ装置SのCPU50(以下、サーバ装置Sと省略することがある)は、これを受けて、当該ユーザIDとパスワードの組合せが予めハードディスク56に記録されたものと合致するかどうかを判断する(ステップS101)。合致すれば、正当なユーザからのログインであると判断して、これまでに他の端末装置T3、T4によって既に生成・編集されたオブジェクトの操作データ一覧を端末装置T1に送信する(ステップS102)。
【0225】
図39Aに、操作データの例を示す。操作の欄は、操作の種類を示している。ここでは「生成」が記録されている。さらに、生成されたオブジェクトを識別するオブジェクトIDとともに、オブジェクトの属性、オブジェクトの特徴点の座標(特徴座標)、色、太さなどが記録されている。なお、新たに生成されたオブジェクトについての特徴座標を、アフィン操作(変換)が加えられる前の特徴座標という意味で当初特徴座標と呼んでいる。
【0226】
アフィン操作総量M0は、当初特徴座標からのアフィン操作の総量である。アフィン操作は、オブジェクトの特徴座標にアフィン操作の行列を乗じることで、変換後の特徴座標を算出することができる。
【0227】
図40に、アフィン操作の例と、対応する行列を示す。
図40Aは、X軸方向にTx、Y軸方向にTYだけ「移動」する場合の行列である。オブジェクトの特徴座標((Px,Py,1)の形式にて表される特徴点の集合)に、この行列を乗じることで、移動後の特徴座標を得ることができる。
【0228】
図40Bは、X軸方向にa倍、Y軸方向にb倍の拡大縮小を行う場合の行列である。
図40Cは、原点を中心として、オブジェクトを角度θだけ回転する場合の行列である。この他、図示していないが、剪断というアフィン変換もある。
【0229】
これらアフィン変換は線形変換であり、複数のアフィン変換がなされても、これらを乗じて一つの行列に表すことができる。この実施形態では、一つの行列にまとめられた行列を、アフィン操作総量としている。
【0230】
図39Aの例では、オブジェクトが生成されただけであって、このオブジェクトに対する操作がなされていないので、アフィン操作総量M0は、
図39Aに示すように、アフィン変換がないことを表す行列となる。
【0231】
端末装置T1は、受信した
図39Aの操作データを不揮発性メモリ36に記録するとともに、タッチスクリーンディスプレイ34にオブジェクトを表示する(ステップS2)。
図35の最上段に、表示されたオブジェクトを示す。
図41Aに、端末装置T1に記録された操作データを示す。
【0232】
端末装置T2も、上記端末装置T1と同じようにログインを行い(ステップS21)、操作データをサーバから受けて、表示及び記録を行う(ステップS22)。
図35の最上段に、表示されたオブジェクトを示す。
図42Aに、端末装置T2に記録された操作データを示す。
【0233】
このような状態にて、端末装置T1と端末装置T2によって、抵触する操作が行われた場合の処理について説明する。なお、この実施形態においても、一方の端末装置がオブジェクトに対する操作を行ってから、その操作が他方の端末装置に反映されるまでの間に、他方の端末装置が同じオブジェクトに対して、一方の端末装置の行った操作と両立しない操作を行った場合を、抵触する操作としている。ただし、この実施形態では、上記の場合に、両方の端末装置がアフィン操作を行った場合には、たとえ、これら操作が両立可能であっても抵触する操作と扱うようにしている。
【0234】
端末装置T1のユーザが、スタイラスペン(図示せず)によりタッチスクリーン・ディスプレイ34に表示されたオブジェクト70を拡大させたとする。端末装置T1は、この操作を受け付ける(ステップS503)。端末装置T1は、この操作に基づき、特徴座標を算出して記録し、
図35(1)に示すようにオブジェクト70を拡大して表示する(ステップS504)。
【0235】
さらに、この操作に基づいて、サーバ装置Sから受信した操作データの特徴座標を拡大後の特徴座標に更新する(ステップS504)。すなわち、
図41Bに示すように、特徴座標を拡大後の座標に書き換える。
【0236】
次に、端末装置T1は、受け付けた操作のアフィン操作行列を、もとからのアフィン操作総量(
図41A)に加えて、
図41Bに示すように、アフィン操作総量を更新する。したがって、操作が続けられたとしても、アフィン操作総量には、当初特徴座標からの全てのアフィン操作が含まれることになる。
【0237】
続いて、更新したアフィン操作総量を、操作データX1としてサーバ装置Sに送信する(ステップS506)。操作後の特徴座標を送信しないのは、アフィン操作総量を送信すれば、他の端末装置において、後述のような処理によって操作後の特徴座標を算出可能だからである。
【0238】
サーバ装置Sは、アフィン操作総量(操作データX1)を受信し、操作データ一覧に追加して記録する(ステップS105)。したがって、サーバ装置Sにおける操作データ一覧は、
図39Bに示すようになる。
【0239】
上記端末装置T1による拡大操作が、端末装置T2に反映される前に、端末装置T2が移動操作を行ったとする(
図35(3)参照)。すなわち、
図35(3)に示すように、オブジェクトを左下に移動させたとする。これにより、端末装置T2では、
図42Bに示すように、特徴座標を移動後の座標に書き換える(ステップS522、S523)。さらに、受け付けた操作のアフィン操作行列を、もとからのアフィン操作総量(
図42A)に加えて、
図42Bに示すように、アフィン操作総量を更新する。
【0240】
続いて、更新したアフィン操作総量を、操作データX2としてサーバ装置Sに送信する(ステップS525)。
【0241】
サーバ装置Sは、アフィン操作総量(操作データX2)を受信し、操作データ一覧に追加して記録する(ステップS106)。したがって、サーバ装置Sにおける操作データ一覧は、
図39Cに示すようになる。
【0242】
次に、サーバ装置Sは、最初に記録された操作データX1(拡大操作)を各端末装置に送信する(ステップS107)。すなわち、
図39Cの2行目のアフィン操作総量M1のデータをオブジェクトIDとともに送信する。
【0243】
端末装置T1は、操作データX1(アフィン操作総量M1)を受けて(ステップS507)、当該オブジェクトの現在の特徴座標およびアフィン操作総量を取得する(ステップS508)。端末装置T1の現在の特徴座標およびアフィン操作総量は、
図41Bに示すとおりである。
【0244】
端末装置T1は、現在の特徴座標とアフィン操作総量M1に基づいて、当該オブジェクトの当初の特徴座標を算出する(ステップS509)。アフィン操作総量は、そのオブジェクトが生成されてからのアフィン操作を全て含む行列である。したがって、現在の特徴座標に、アフィン操作総量の逆行列を乗じることで、当初の特徴座標を算出することができる。ここでは、(5,5)(10,5)(5,10)(10,10)を得ることができる。
【0245】
次に、端末装置T1は、これに操作データX1(アフィン操作総量M1)を乗じて、操作データX1による操作後の特徴座標を算出し記録する(ステップS510)。ここでは、(5,5)(15,5)(5,15)(15,15)を得ることができる。これに基づく表示は、
図35(6)のようになる。さらに、受信した操作データX1によってアフィン操作総量を更新する(ステップS512)。
【0246】
したがって、端末装置T1の操作データは、結局、
図41Bと同じものとなる。
【0247】
操作データX1を受信した端末装置T2においても、同様の処理が行われる。したがって、端末装置T2の操作データは、
図42Cのようになる。また、その表示は、
図35(6)のようになる。
【0248】
続いて、サーバ装置Sは、次に記録されている操作データX2(アフィン操作総量M2)をオブジェクトIDとともに、各端末装置に送信する。すなわち、
図39Cの3行目のアフィン操作総量M2のデータを送信する。
【0249】
操作データX2を受信した端末装置T1においては、当初特徴座標を算出し(ステップS514、S515)、これに操作データX2(アフィン操作総量M2)を乗じて、操作後の特徴座標を算出する(ステップS516)。さらに、
図35(8)に示すように表示を行う(ステップS517)。続いて、特徴座標、アフィン操作総量を更新する(ステップS518)。したがって、端末装置T1の操作データは、
図41Cのようになる。
【0250】
操作データX2を受信した端末装置T2においても、同様の処理が行われる。したがって、端末装置T2の操作データは、
図42Dのようになる。また、その表示は、
図35(8)のようになる。
【0251】
以上のようにして、2以上の端末装置において抵触する操作が行われても、各端末装置における操作結果を統一することができる。
【0252】
なお、上記では、端末装置T1における拡大操作が、端末装置T2に反映される前に、端末装置T2において移動操作が行われた場合を説明した。この場合は、上記のように、後にサーバ装置Sに記録された端末装置T2の移動操作によって操作が統一される。
【0253】
しかし、端末装置T1における拡大操作が端末装置T2に反映された後に、端末装置T2において移動操作が行われた場合には、当然であるが、
図43に示すように双方の操作が反映されて統一される。
【0254】
この時の、端末装置T1の操作データを
図44に示す。
図44Aが、当初特徴座標である。
図44Bは、拡大操作がされたときの特徴座標とアフィン操作総量である。さらに、
図44Cは、移動操作がされたときの特徴座標とアフィン操作総量である。
図44Cに示すように、アフィン操作総量M3は、これまでに当該オブジェクトに対してなされた拡大操作、移動操作を全て含む行列となっている。
【0255】
上記のように、この実施形態では、現在の特徴座標とアフィン操作総量を操作データとして記録するようにし、アフィン操作総量を他の端末装置に送信するようにしている。したがって、送信データの容量を小さく抑えつつ、各端末装置における操作の統一を図ることができる。
【0256】
上記では、アフィン変換による操作が行われた場合の処理について説明した。すなわち、基本となる特徴座標(当初特徴座標)には変更がなく、移動、拡大、縮小、回転などを施した場合について説明した。このように、基本となる特徴座標に変更がない場合には、アフィン操作総量を送るだけで実質的に操作結果を送ることになり、各端末装置における操作の統一を図ることができる。
【0257】
以下では、基本となる特徴座標に操作が行われて変更された場合(固有編集と呼ぶ)の処理を説明する。基本となる特徴座標に操作が行われる場合(固有編集)の例を、
図45に示す。
図45Aでは、吹き出し図形の吹き出しの方向を変更する操作が行われている。
図45Bでは、長方形の一点のみを移動させて、変形した四角形にする操作が行われている。
【0258】
図43に示す操作が行われた後に、端末装置T1において移動処理が行われ、その処理が端末装置T2に反映されないうちに、端末装置T2において固有処理が行われた場合の処理を、
図46に示す。
【0259】
まず、端末装置T1にて、オブジェクトを右下に移動する処理が行われたとする(
図46(9)参照)。これにより、端末装置T1は、前述のように、アフィン操作総量をサーバ装置Sに送信する。したがって、サーバ装置Sには、
図49Aに示すように操作データが記録されることになる。
【0260】
続いて、端末装置T2にて、オブジェクトの固有編集が行われたとする(
図46(11)参照)。端末装置T2は、その編集の結果によって得られた特徴座標によって、操作データの特徴座標を更新する。なお、アフィン変換は行われていないので、アフィン操作総量はM2のままで変更しない。
【0261】
さらに、端末装置T2は、固有編集後の特徴座標に、アフィン操作総量の逆行列を乗じたものを算出する。つまり、今回の固有編集を、当初の特徴座標において行ったとしたときの編集結果(当初換算編集特徴座標と呼ぶ)を算出する。端末装置T2は、このようにして算出した当初換算編集特徴座標を、操作データとしてサーバ装置Sに送信する。
図46の(12)であれば、当初換算編集特徴座標として、点A(5,5)、点B(10,5)、点C(0,7)、点D(10,10)を得て、サーバ装置Sに送信する。したがって、サーバ装置Sには、
図49Bに示すように、固有編集の操作データが記録される。
【0262】
サーバ装置Sは、アフィン操作総量M3にて示される操作データを、各端末装置に送信する。端末装置T1では、前述と同じようにして、現在の特徴座標とアフィン操作総量(
図47A参照)に基づいて当初特徴座標を算出した上で、受信したアフィン操作総量M3により、更新された新たな特徴座標を算出する。
【0263】
操作データ(アフィン操作総量M3)を受信した端末装置T2は、同様に、現在の特徴座標とアフィン操作総量(
図48A参照)に基づいて当初特徴座標を算出する。なお、端末装置T2においては固有編集がなされているので、算出された当初特徴座標は、オブジェクト生成時の特徴座標ではなく、当初換算編集特徴座標である。ここでは、点A(5,5)、点B(10,5)、点C(0,7)、点D(10,10)が得られる。
【0264】
続いて、端末装置T2は、この当初換算編集特徴座標に受信した操作データ(アフィン操作総量M3)を乗じて、編集後のオブジェクトを得る。すなわち、
図46に示すように、左下にあった変形オブジェクトを右下に移動させる。このように、端末装置T1において行なわれた移動操作と、端末装置T2において行われた固有編集は、互いに両立するものであるから、双方の結果が反映されることになる。
【0265】
次に、サーバ装置Sは、
図49Bに示す固有編集の操作データを、各端末装置に送信する。端末装置T1では、固有編集の操作データを受けると、これを当初特徴座標とし、これに現在のアフィン操作総量M3(
図47A参照)を乗じて、編集後の特徴座標を算出する。
【0266】
上述のように、固有編集の操作データは、行われた固有編集が当初特徴座標にて行われていたらどうであったかを示すものであるので(当初換算編集特徴座標)、これにアフィン操作総量M3を乗じることで、固有編集後のオブジェクトを得ることができる。したがって、端末装置T1においては、
図46(16)のような表示がなされることになる。
【0267】
また、端末装置T1は、
図47Bに示すように、編集後のオブジェクトの特徴座標を更新する。なお、アフィン操作総量M3に変化はないのでそのままである。このように、端末装置T1において行なわれた移動操作と、端末装置T2において行われた固有編集は、互いに両立するものであるから、双方の結果が反映されることになる。
【0268】
操作データ(当初換算編集特徴座標)を受信した端末装置T2は、同様に、これを当初特徴座標とし、これに現在のアフィン操作総量M3(
図48B参照)を乗じて、編集後の特徴座標を算出する。編集後の特徴座標によってオブジェクトの特徴座標を更新する(ここでは変化がないのでそのままとなる)。また、アフィン操作総量M3にも変化はないのでそのままである。
【0269】
以上のように、ある端末装置による操作が、他の端末装置に反映されるまでに当該他の端末装置にて操作が行われた場合(同時的操作)、両操作ともにアフィン操作であれば、他の端末装置の操作によって統一がなされる。両操作が、固有編集である場合も同様である。また、上記同時的操作の場合、一方がアフィン操作であり、他方が固有編集であれば、両操作を含めて統一がなされる。
【0270】
以上のように、この実施形態では、アフィン操作総量または当初換算編集特徴座標を操作結果として送信するようにしている。
【0271】
4.3その他
(1)上記実施形態では、同時的操作であっても、アフィン操作と固有編集であれば、両操作を含めて各端末装置での操作の統一を図ることができる。
【0272】
しかし、オブジェクトのスタイル変更(線幅、線色、不透過率、線種など)についても同様に適用できる。たとえば、アフィン操作とスタイル変更、固有編集とスタイル変更であれば、同時的操作であっても、両操作を含めて各端末装置での操作の統一を図ることができる。
【0273】
(2)上記実施形態では、サーバ装置Sを介して他の端末装置に操作データを送信するようにしている。しかし、サーバ装置Sを介さずに、直接、他の端末装置に操作データを送信するようにしてもよい。
【0274】
(3)上記実施形態および変形例は、その本質に反しない限り、他の実施形態と組み合わせて実施可能である。
【0275】
5.第5の実施形態
5.1システム構成と概要
図50に、第5の実施形態によるコンテンツ共同編集システムの全体構成を示す。サーバ装置Sには、複数の端末装置T1、T2・・・Tnが接続されている。
【0276】
端末装置T1の直接操作受付手段2は、オブジェクトに対する操作を受け付ける。この実施形態では、手書き入力の線(ストロークという)の一部を削除して、2つのオブジェクトに分割する操作についての構成を示している。
【0277】
直接操作表示手段4は、オブジェクトであるストロークに対して受け付けた削除操作に基づいて、ストロークの指定部分を削除し表示部6に操作結果を表示する。
【0278】
直接操作送信手段10は、前記削除操作に基づいて、記録部16に記録されている当該ストロークのデータを消去し、削除操作によって分割された2つのストロークのデータを生成して記録する。この時、新たに生成された2つのストロークのデータには、消去前のストローク(ベースストロークという)のいずれの部分が削除されて形成されたものであるかを示す参照情報を含めるようにしている。さらに、ベースストロークに対する削除操作の情報が、操作情報としてサーバ装置Sに送信される。
【0279】
サーバ装置Sの操作情報記録手段22は、これを受け取って、記録部24に記録する。複数の端末装置T1~Tnが接続されているので、サーバ装置Sは受信した順に記録部24に操作情報(ベースストロークの削除)を記録する。
【0280】
操作情報配信手段26は、記録部24に記録されている操作情報(ベースストロークの削除)を、その受信順に各端末装置T1~Tnに配信する。この操作情報(ベースストロークの削除)を受信した各端末装置T1~Tnの動作は以下のとおりである。
【0281】
端末装置T2の間接操作受信手段12は、サーバ装置Sからの操作情報(ベースストロークの削除)を受信する。間接操作表示手段8は、操作情報(ベースストロークの削除)を受け取ると、記録部16に記録されているベースストロークのデータに基づいて、削除操作を行って表示部6に表示する。
【0282】
間接操作記録手段14は、、前記削除操作に基づいて、記録部16に記録されている当該ストロークのデータを消去し、削除操作によって分割された2つのストロークのデータを生成して記録する。この時、新たに生成された2つのストロークのデータには、消去前のストローク(ベースストロークという)のいずれの部分が削除されて形成されたものであるかを示す参照情報を含めるようにしている。
【0283】
他の端末装置T3~Tnにおいても、同様の処理がなされる。なお、端末装置T1においては、既に上記の削除処理はなされているが、他の端末装置と同じように、操作情報が送信され削除処理がなされる。ただし、既に削除処理がなされているので、操作結果はそのままとなる。
【0284】
システムの構成、端末装置Tのハードウエア構成、サーバ装置Sのハードウエア構成は、第1の実施形態と同様(
図3~
図5参照)である。
【0285】
5.2共同編集処理
図52~54に、このシステムによる共同編集処理のフローチャートを示す。
図52~54において、端末装置T1、端末装置T2は端末プログラム42を表している。サーバ装置Sは、サーバプログラム64を表している。なお、
図52~54においては、2つの端末装置T1、T2のみを示しているが、他の端末装置T3、T4も同様の処理を行う。
【0286】
なお、以下では、端末装置T3、T4によって既に共同編集が行われており、その後、端末装置T1、T2がこの共同編集に参加する場合を例として説明する。
【0287】
端末装置T1を操作するユーザは、スタイラスペン(図示せず)によりタッチスクリーン・ディスプレイ34を操作して、サーバ装置Sにアクセスする。端末装置T1のCPU30(以下、端末装置T1と省略することがある)は、この操作を受けて、ユーザによって入力されたユーザIDとパスワードを、サーバ装置Sに送信する(ステップS1)。
【0288】
サーバ装置SのCPU50(以下、サーバ装置Sと省略することがある)は、これを受けて、当該ユーザIDとパスワードの組合せが予めハードディスク56に記録されたものと合致するかどうかを判断する(ステップS101)。合致すれば、正当なユーザからのログインであると判断して、これまでに他の端末装置T3、T4によって既に生成・編集されたオブジェクトの操作データ一覧を端末装置T1に送信する(ステップS102)。
【0289】
図55Aに、操作データの例を示す。操作の欄は、操作の種類を示している。ここでは「生成」が記録されている。さらに、生成されたオブジェクトを識別するオブジェクトIDとともに、オブジェクトの属性、オブジェクトの特徴点の座標(特徴座標)、色、太さなどが記録されている。この例では、ユーザがスタイラスペンによって手書きにて入力した直線(ストロークという)がオブジェクトとして記録されているものとする。
【0290】
また、オブジェクトIDとして「3,1」が記録されている。このオブジェクトIDは、第3の実施形態にて説明したとおり、端末識別符号「3」(端末装置T3を示す)と端末オブジェクト識別符号「1」の組合せによって構成されている。
【0291】
図55Aの例では、ストローク・オブジェクトが生成されただけであって、このオブジェクトに対する操作がなされていないので、アフィン操作総量M0は、
図55Aに示すように、アフィン変換がないことを表す行列となる。
【0292】
端末装置T1は、受信した
図55Aの操作データを不揮発性メモリ36に記録するとともに、タッチスクリーンディスプレイ34にストローク・オブジェクトを表示する(ステップS2)。
図51の最上段に、表示されたストローク・オブジェクトを示す。
図56Aに、端末装置T1に記録された操作データを示す。
【0293】
端末装置T2も、上記端末装置T1と同じようにログインを行い(ステップS21)、操作データをサーバから受けて、表示及び記録を行う(ステップS22)。
図51の最上段に、表示されたストローク・オブジェクトを示す。
図57Aに、端末装置T2に記録された操作データを示す。
【0294】
このような状態にて、端末装置T1のユーザが、ストローク・オブジェクトの一部を消ゴムコマンドによって削除したとする。この削除処理が端末装置T2に反映される前に、端末装置T2のユーザが、ストローク・オブジェクトを拡大処理(アフィン操作)した場合について説明する。この実施形態では、以下に示すように、上記のような場合であっても、削除および拡大処理の双方を採用して、統一を図るようにしている。
【0295】
端末装置T1のユーザが、スタイラスペン(図示せず)によりタッチスクリーン・ディスプレイ34に表示されたストローク・オブジェクト70の一部を消ゴム操作によって削除したとする。端末装置T1は、この操作を受け付ける(ステップS603)。端末装置T1は、この操作に基づき、ストローク・オブジェクト70を、ストローク・オブジェクト70a、70bの2つに分ける。すなわち、元のオブジェクト70(ベースオブジェクトという)を消去し、新しいオブジェクト70a、70bを生成する(ステップS604、S605)。
【0296】
図56Bに、端末装置T1の操作データを示す。「3,1」のオブジェクトIDを持つベースオブジェクトが消去され、「1,1」「1,2」のオブジェクトIDを持つ2つのオブジェクト70a、70bが生成されて記録されている。これら2つのオブジェクト70a、70bは、ベースオブジェクト70が分割されて生成されたものである。
【0297】
なお、端末装置T1は、分割して生成されたオブジェクト70a、70bに対し、「1,1」「1,2」というように、端末装置T1の端末識別符号を持つオブジェクトIDを付している。これにより、新たに生成したオブジェクト70a、70bのオブジェクトIDが、他の端末装置において生成されたオブジェクトIDと重複することを防ぐことができる。
【0298】
この実施形態では、それぞれのオブジェクト70b、70cの操作データの後に、ベースオブジェクトの情報を含めている。さらに、「該当部位」の項目を設け、ベースオブジェクトの全長を「1.0」に正規化した場合に、当該オブジェクトがどの部位にあたるかを示すようにしている。
【0299】
たとえば、オブジェクト70a(オブジェクトID=「1,1」)についてみると、XY座標で「5,5」から「8,5」までのストロークとなっている。これは、長さに関していうと、ベースオブジェクトの「5,5」から「15,5」の前半30%に該当する。したがって、該当部位の項目に「0.0-0.3」を記録するようにしている(全長を「1」とした場合の割合にて表す)。同様に、オブジェクト70b(オブジェクトID=「1,2」)についても、該当部位の項目に「0.35-1.0」を記録するようにしている。
【0300】
続いて、端末装置T1は、上記削除の操作データをサーバ装置Sに送信する(ステップS606)。この実施形態では、削除操作の対象となったオブジェクトのID、削除された部位を長さについて正規化した数値にて示す削除部位を操作データとして送信する。上記の例であれば、オブジェクトID=3,1のオブジェクトについて、「0.3-0.35」を削除するという操作データが送信されることになる。
【0301】
なお、上記では直線のストローク・オブジェクトについて説明したが、曲線のストローク・オブジェクトについても、その端部からの曲線に沿った長さによって正規化した数値にて、削除部位、該当部位を算出して記録することができる。
【0302】
サーバ装置Sは、操作データX1を受信し、操作データ一覧に追加して記録する(ステップS105)。したがって、サーバ装置Sにおける操作データ一覧は、
図55Bに示すようになる。
【0303】
上記端末装置T1による一部削除操作が、端末装置T2に反映される前に、端末装置T2が拡大操作(アフィン操作)を行ったとする(
図51(3)参照)。すなわち、
図51(3)に示すように、ストローク・オブジェクトをX軸方向に拡大させたとする。これにより、端末装置T2では、
図57Bに示すように、特徴座標を移動後の座標に書き換える(ステップS622、S623)。さらに、受け付けた操作のアフィン操作行列を、もとからのアフィン操作総量(
図57A)に加えて、
図57Bに示すように、アフィン操作総量を更新する。
【0304】
続いて、更新したアフィン操作総量を、操作データX2としてサーバ装置Sに送信する(ステップS625)。
【0305】
サーバ装置Sは、アフィン操作総量(操作データX2)を受信し、操作データ一覧に追加して記録する(ステップS106)。したがって、サーバ装置Sにおける操作データ一覧は、
図55Cに示すようになる。
【0306】
次に、サーバ装置Sは、最初に記録された操作データX1(一部削除)を各端末装置に送信する(ステップS107)。すなわち、
図55Cの2行目の一部削除のデータを送信する。
【0307】
端末装置T1は、操作データX1(一部削除)を受けて操作データに対する処理を行う(ステップS607)。操作データに対する処理の詳細を、
図54に示す。端末装置T1は、サーバ装置Sからの操作データX1を受信する(ステップS650)。
【0308】
続いて、端末装置T1は、操作データX1(
図55Cの2行目)に指定されているオブジェクトIDに対応するオブジェクトがあるかどうかを判断する(ステップS651)。すなわち、ID=「3,1」のオブジェクトがあるかどうかを判断する。端末装置T1の現在の操作データは、
図56Bに示すような状態である。ID=「3,1」のオブジェクトは、端末装置T1においては既に消去されているので、該当するオブジェクトがないことになる。
【0309】
端末装置T1は、関連づけて記載されたベースオブジェクトIDとして、上記「3,1」のIDがあるかどうかを検索する(ステップS655)。ここでは、ベースオブジェクトIDが「3,1」として記録されているのは、オブジェクトID「1,1」「1,2」の2つのオブジェクトである(
図56B参照)。したがって、この2つのオブジェクトを選択する。
【0310】
次に、検索した最初のオブジェクト「1,1」について、操作データX1の操作を行う(ステップS657)。操作データX1は、ベースオブジェクトに対する操作になっているので、ベースオブジェクトを基準にして一部削除操作を行う。操作データX1の内容は、正規化した長さにて0.3-0.35を削除するというものである。これによって、得られる2つのオブジェクトのうちの一方は、オブジェクト「1,1」と全く同じであるので、これをそのまま用いる。
【0311】
次に、検索した次のオブジェクト「1,2」についても、上記と同様にして、これをそのまま用いることになる。
【0312】
端末装置T1は、これらオブジェクト「1,1」「1,2」を表示する(ステップS658)。端末装置T1では、すでに、オブジェクト「1,1」(70a)、「1,2」(70b)が表示されているので、そのままの表示が維持されることになる。
【0313】
端末装置T2も、操作データX1を受けてこれに対する処理を行う(ステップS626)。操作データに対する処理の詳細を、
図54に示す。端末装置T2は、操作データX1を受信する(ステップS650)。
【0314】
続いて、端末装置T2は、操作データX1において指定されたオブジェクトID「3,1」が存在するかどうかを判断する(ステップS651)。端末装置T2の現在の操作データは、
図57Bに示すとおりである。したがって、指定されたオブジェクト「3,1」が存在するので、これに対する操作を行う(ステップS652)。すなわち、正規化された長さにおいて、0.3~0.35の部分を削除し、オブジェクトを2つに分離する処理を行う(ステップS652)。
【0315】
端末装置T2においては、既に、拡大処理がなされているので、拡大されたオブジェクトに対し、上記の一部削除処理が行われることになる。よって、
図51(6)に示すような表示がなされる(ステップS653)。また、端末装置T2の操作データは、
図57Cのようになる。
【0316】
ここで、端末装置T2においては、分割によって新たに生成されたオブジェクトのオブジェクトIDを「2,1」「2,2」としている。すなわち、端末識別符号「2」を用いたIDを付与するようにしている。これにより、各端末装置におけるオブジェクトIDの重複を防止することができる。
【0317】
ただし、同じオブジェクトであるにも拘わらず、端末装置T1では「1,1」(「1,2」)端末装置T2では「2,1」(「2,2」)が付されることになる。したがって、後に、端末装置T1にて「1,1」に対する操作がなされた場合には、端末装置T1はオブジェクトID「1,1」だけでなくベースオブジェクト「3,1」と正規化した該当部位「0.0-0.3」をサーバ装置Sに送信する。これを受信した端末装置T2は、ベースオブジェクト「3,1」と正規化した該当部位「0.0-0.3」に基づいて、オブジェクト「2,1」に対する操作であることを特定することができる。
【0318】
続いて、サーバ装置Sは、次に記録されている操作データX2(アフィン操作総量M1)を、各端末装置に送信する。すなわち、
図55Cの3行目のアフィン操作総量M1のデータを送信する。
【0319】
操作データX2を受信した端末装置T1においては、操作データX2(拡大)に対する処理を実行する(ステップS608)。操作データに対する処理の詳細を、
図54に示す。
【0320】
端末装置T1は、操作データX2(アフィン操作総量M1)を受信する(ステップS650)。操作データX2(
図55Cの3行目参照)に指示されたオブジェクトIDは「3,1」である。現在の端末装置T1の操作データは、
図56Bに示すとおりである。したがって、オブジェクトID「3,1」を見いだすことはできないので、参考情報として記載されているベースオブジェクトのIDから「3,1」を抽出する(ステップS655)。これにより、ベースオブジェクトID「3,1」が参考情報として付加された、オブジェクト「1,1」「1,2」が抽出される。
【0321】
次に、抽出した最初のオブジェクト「1,1」について、操作データX2の操作を行う(ステップS657)。操作データX2は、ベースオブジェクトに対する操作になっているので、ベースオブジェクトを基準にして拡大操作を行う。すなわち、以下のような操作を行う。
【0322】
まず、参考情報として付加されたベースオブジェクトのアフィン操作総量と特徴座標とに基づいて、ベースオブジェクトの当初特徴座標を算出する。
図56Bの例では、アフィン操作総量M0が「アフィン操作なし」を示しているので、記録されている特徴座標がそのまま当初特徴座標となる。続いて、この当初特徴座標に、操作データX2(アフィン操作総量M1)を乗じ、拡大後の特徴座標を得る。オブジェクト「1,1」は、ベースオブジェクトの0.0-0.3に該当する(該当部位参照)。したがって、拡大されたベースオブジェクトから、0.0-0.3に該当する部分を取り出し、拡大されたオブジェクト「1,1」を得る。上記の処理により、オブジェクト「1,1」は、
図56Cに示すように更新される。
【0323】
同様の処理により、オブジェクト「1,2」も、
図56Cに示すように更新される。
【0324】
端末装置T1は、上記のようにして拡大されたオブジェクト「1,1」(70a)、「1,2」(70b)を表示する(ステップS658)。
【0325】
端末装置T2も、操作データX2を受けて、操作データX2に対する処理を行う(ステップS627)。操作データに対する処理の詳細を、
図54に示す。端末装置T2は、操作データX2を受信する(ステップS650)。
【0326】
続いて、端末装置T2は、操作データX2において指定されたオブジェクトID「3,1」が存在するかどうかを判断する(ステップS651)。端末装置T2の現在の操作データは、
図57Cに示すとおりである。したがって、指定されたオブジェクト「3,1」はないので、ベースオブジェクトに「3,1」がないかを検索する。ここでは、ベースオブジェクトとして「3,1」を持つオブジェクトとして「2,1」「2,2」を抽出できる。
【0327】
端末装置T2は、オブジェクト「2,1」に対して、操作データX2による操作を行う。操作データX2は、ベースオブジェクトに対する操作であるから、これを基準として操作を行う。ただし、ここでは、ベースオブジェクトのアフィン操作総量M1と、操作データX2によるアフィン操作総量M1が等しいので、特段の処理を行わない。すでに、アフィン操作(拡大操作)がなされているからである。オブジェクト「2,2」についても同様である。したがって、端末装置T2の操作データは、
図57Cに示すままであり、表示も
図51(8)に示すようになる。
【0328】
以上のように、ある端末装置による操作が、他の端末装置に反映されるまでに当該他の端末装置にて操作が行われた場合(同時的操作)、一方が一部削除操作であり、他方がアフィン操作であれば、両操作を含めて統一がなされる。
【0329】
上記では、同時的操作の場合について説明した。説明は省略するが、同時的でない場合の操作(一方の端末装置による操作が、他方の端末装置に反映された後に、当該他方の端末装置で操作が行われた場合)の場合には、双方の操作を含むように操作の統一がなされるのは当然である。
【0330】
5.3その他
(1)上記実施形態では、同時的操作であっても、アフィン操作と一部削除操作であれば、両操作を含めて各端末装置での操作の統一を図ることができる。
【0331】
しかし、オブジェクトのスタイル変更(線幅、線色、不透過率、線種など)についても同様に適用できる。たとえば、アフィン操作とスタイル変更、一部削除操作とスタイル変更であれば、同時的操作であっても、両操作を含めて各端末装置での操作の統一を図ることができる。
【0332】
また、固有編集と一部削除操作であれば、同時的操作であっても、両操作を含めて各端末装置での操作の統一を図ることができる。
【0333】
さらに、同時的操作であっても、両操作がともに一部削除操作であれば、両操作を含めて各端末装置での操作の統一を図ることができる。
【0334】
(2)上記実施形態では、ストロークを分割した場合に、分割後のオブジェクトのデータ中に、ベースストロークの全ての情報を含めるようにしている。しかし、少なくともベースストロークIDと正規化した該当部位を含めるようにすれば、上記の処理を行うことができる。なお、ベースストロークの当初特徴座標は、分割後の各ストロークのアフィン操作総量によって導き出すことができる。
【0335】
(3)上記実施形態では、サーバ装置Sを介して他の端末装置に操作データを送信するようにしている。しかし、サーバ装置Sを介さずに、直接、他の端末装置に操作データを送信するようにしてもよい。
【0336】
(4)上記実施形態および変形例は、その本質に反しない限り、他の実施形態と組み合わせて実施可能である。