説明

情報処理装置、情報処理方法及びコンピュータプログラム

【課題】複数のユーザによる同一のWebページの閲覧及び操作の様子を閲覧するだけのユーザからのフィードバックによって円滑なコミュニケーションが実現可能な情報処理装置を提供する。
【解決手段】コンテンツを直接操作するプレイヤーによって操作されるコンテンツと同一の内容を前記プレイヤー側とリアルタイムに共有して表示するコンテンツ表示部と、前記コンテンツ表示部が前記プレイヤー側とリアルタイムに共有して表示する前記コンテンツの所定の領域に、前記プレイヤーの操作を閲覧するのみの自装置及び他装置から送信されるコメントを所定の規則に基づいて規則的に出現させる表示制御部と、を備える、情報表示装置が提供される。

【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、情報処理方法及びコンピュータプログラムに関する。
【背景技術】
【0002】
複数のユーザによって同一のコンテンツ(例えば、インターネット上のWebページ)を、当該コンテンツを表示するためのアプリケーション(例えば、Webブラウザ)で同時に閲覧する技術がある(例えば、特許文献1等参照)。ここで、WebページとWebブラウザの関係を例にとれば、この技術では、あるユーザがWebページ上のリンクを選択したり、Webブラウザをスクロールさせたりしても、他のユーザのWebブラウザに同じように反映される。この技術により、複数のユーザが同じように、Webページを同時に閲覧できる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2011−70511号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
この技術を応用して、複数のユーザによる同一のWebページの閲覧及び操作の様子を、閲覧するだけのユーザという概念を用意する。複数のWebブラウザ間でWebページの閲覧をリアルタイムに共有する技術である。この共有では、同じURLのWebページを表示することに加えて、スクロールやマウスカーソルもリアルタイムに共有できる。この技術により、複数のユーザで話題のWebページを題材にチャットをするといったコミュニケーションが、Webブラウザだけで実現可能になる。
【0005】
複数のユーザによる同一のWebページの閲覧及び操作の様子を閲覧するだけのユーザからは必要に応じてフィードバックが返される。しかし、そのフィードバックが無秩序に画面上に表示されると、かえって円滑なコミュニケーションの妨げとなってしまう。
【0006】
そこで、本開示は、上記問題に鑑みてなされたものであり、本開示の目的とするところは、複数のユーザによる同一のWebページの閲覧及び操作の様子を閲覧するだけのユーザからのフィードバックによって円滑なコミュニケーションが実現可能な、新規かつ改良された情報処理装置、情報処理方法及びコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【0007】
本開示によれば、コンテンツを直接操作するプレイヤーによって操作されるコンテンツと同一の内容を前記プレイヤー側とリアルタイムに共有して表示するコンテンツ表示部と、前記コンテンツ表示部が前記プレイヤー側とリアルタイムに共有して表示する前記コンテンツの所定の領域に、前記プレイヤーの操作を閲覧するのみの自装置及び他装置から送信されるコメントを所定の規則に基づいて規則的に出現させる表示制御部と、を備える、情報表示装置が提供される。
【0008】
また本開示によれば、コンテンツを直接操作するプレイヤーによって操作される共有コンテンツと同一の内容を前記プレイヤー側とリアルタイムに表示するコンテンツ表示ステップと、前記コンテンツ表示ステップが前記プレイヤー側とリアルタイムに共有して表示する前記コンテンツの所定の領域に、前記プレイヤーの操作を閲覧するのみの自装置及び他装置から送信されるコメントを所定の規則に基づいて規則的に出現させる表示制御ステップと、を備える、情報表示方法が提供される。
【0009】
また本開示によれば、コンピュータに、コンテンツを直接操作するプレイヤーによって操作される共有コンテンツと同一の内容を前記プレイヤー側とリアルタイムに表示するコンテンツ表示ステップと、前記コンテンツ表示ステップが前記プレイヤー側とリアルタイムに共有して表示する前記コンテンツの所定の領域に、前記プレイヤーの操作を閲覧するのみの自装置及び他装置から送信されるコメントを所定の規則に基づいて規則的に出現させる表示制御ステップと、を実行させる、コンピュータプログラムが提供される。
【発明の効果】
【0010】
以上説明したように本開示によれば、複数のユーザによる同一のWebページの閲覧及び操作の様子を閲覧するだけのユーザからのフィードバックによって円滑なコミュニケーションが実現可能な、新規かつ改良された情報処理装置、情報処理方法及びコンピュータプログラムを提供することができる。
【図面の簡単な説明】
【0011】
【図1】本開示の一実施形態に係るコンテンツ共有システム1の全体構成を示す説明図である。
【図2】本開示の一実施形態に係るコンテンツ共有システム1を構成する各装置の概要を示す説明図である。
【図3】本開示の一実施形態に係るプレイヤー側の情報処理装置100aの機能構成を示す説明図である。
【図4】本開示の一実施形態に係るシステムサーバ20の機能構成を示す説明図である。
【図5】本開示の一実施形態に係るオーディエンス側の情報処理装置200aの機能構成を示す説明図である。
【図6】コンテンツスクリプト155とブラウザ拡張アプリ140が実行する処理を示す流れ図である。
【図7】リレーサーバ23が実行する処理を示す流れ図である。
【図8】専用Webアプリ240が実行する処理を示す流れ図である。
【図9】フレームとマウスカーソル位置の座標との関係の一例を示す説明図である。
【図10】リレーサーバ23から受信するカーソル位置と、専用Webアプリ240上でのカーソル位置との関係を示す説明図である。
【図11】専用Webアプリ240でのレンダリング処理を示す説明図である。
【図12】プレイヤーが情報処理装置100aで操作するカーソルを既存Webページ150の上に描画する様子を示す説明図である。
【図13】プレイヤー側の情報処理装置100aの動作を示す流れ図である。
【図14】プレイヤー側の情報処理装置に表示されるWebブラウザ130のユーザインタフェース300を示す説明図である。
【図15】プレイヤー側の情報処理装置に表示されるWebブラウザ130のユーザインタフェース300を示す説明図である。
【図16】オーディエンス側の情報処理装置に表示されるWebブラウザ230のユーザインタフェース400を示す説明図である。
【図17】オーディエンス側の情報処理装置に表示されるWebブラウザ230のユーザインタフェース400を示す説明図である。
【図18】オーディエンス側の情報処理装置に表示されるWebブラウザ230のユーザインタフェース400を示す説明図である。
【図19】オーディエンス側の情報処理装置に表示されるWebブラウザ230のユーザインタフェース400を示す説明図である。
【図20】オーディエンス側の情報処理装置に表示されるWebブラウザ230のユーザインタフェース400を示す説明図である。
【図21】オーディエンス側の情報処理装置に表示されるWebブラウザ230のユーザインタフェース400を示す説明図である。
【図22】オーディエンス側の情報処理装置に表示されるWebブラウザ230のユーザインタフェース400を示す説明図である。
【図23】オーディエンス側の情報処理装置に表示されるWebブラウザ230のユーザインタフェース400を示す説明図である。
【図24】オーディエンスから送られたコメントの表示の概要を示す説明図である。
【図25】オーディエンスから送られたコメントの表示の概要を示す説明図である。
【図26】オーディエンス情報表示領域420へのオーディエンスアイコンの表示を示す説明図である。
【図27】オーディエンス情報表示領域420へのオーディエンスアイコンの表示を示す説明図である。
【図28】オーディエンス情報表示領域420へのオーディエンスアイコンの表示を示す説明図である。
【図29】オーディエンス情報表示領域420へのオーディエンスアイコンの表示を示す説明図である。
【図30】オーディエンス情報表示領域420へのオーディエンスアイコンの表示を示す説明図である。
【図31】オーディエンス情報表示領域420へのオーディエンスアイコンの表示を示す説明図である。
【図32】オーディエンス情報表示領域420へのオーディエンスアイコンの表示を示す説明図である。
【図33】オーディエンス情報表示領域420へのオーディエンスアイコンの表示を示す説明図である。
【図34】オーディエンス情報表示領域420へのオーディエンスアイコンの表示を示す説明図である。
【図35】オーディエンスから送られたコメントの表示の概要を示す説明図である。
【図36】オーディエンス情報表示領域420へのオーディエンスアイコンの表示を示す説明図である。
【図37】オーディエンス情報表示領域420へのオーディエンスアイコンの表示を示す説明図である。
【図38】オーディエンス情報表示領域420へのオーディエンスアイコンの表示を示す説明図である。
【図39】オーディエンス情報表示領域420へのオーディエンスアイコンの表示を示す説明図である。
【図40】オーディエンス情報表示領域420へのオーディエンスアイコンの表示を示す説明図である。
【図41】オーディエンス情報表示領域420へのオーディエンスアイコンの表示を示す説明図である。
【図42】オーディエンス情報表示領域420へのオーディエンスアイコンの表示を示す説明図である。
【図43】オーディエンス情報表示領域420へのオーディエンスアイコンの表示を示す説明図である。
【図44】オーディエンス情報表示領域420へのオーディエンスアイコンの表示を示す説明図である。
【図45】オーディエンスからのコメントの表示処理の概要を示す説明図である。
【図46】オーディエンス側の情報処理装置に表示されるWebブラウザ230のユーザインタフェース400を示す説明図である。
【図47】オーディエンス側の情報処理装置に表示されるWebブラウザ230のユーザインタフェース400を示す説明図である。
【図48】オーディエンス側の情報処理装置に表示されるWebブラウザ230のユーザインタフェース400を示す説明図である。
【図49】オーディエンス側の情報処理装置に表示されるWebブラウザ230のユーザインタフェース400を示す説明図である。
【図50】オーディエンス側の情報処理装置に表示されるWebブラウザ230のユーザインタフェース400を示す説明図である。
【図51】オーディエンス側の情報処理装置に表示されるWebブラウザ230のユーザインタフェース400を示す説明図である。
【図52】本開示の一実施形態にかかるコンテンツ共有システム1を用いたネットイベントの一例を示す説明図である。
【図53】本開示の一実施形態にかかるコンテンツ共有システム1を用いたネットイベントの一例を示す説明図である。
【図54】本開示の一実施形態にかかるコンテンツ共有システム1を用いたネットイベントの一例を示す説明図である。
【発明を実施するための形態】
【0012】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0013】
なお、説明は以下の順序で行うものとする。
<1.本開示の一実施形態>
[1−1.コンテンツ共有システムの全体構成例]
[1−2.各装置の概要]
[1−3.各装置の動作]
[1−4.ユーザインタフェース例]
<2.まとめ>
【0014】
<1.本開示の一実施形態>
[1−1.コンテンツ共有システムの全体構成例]
まず、本開示の一実施形態に係るコンテンツ共有システムの全体構成について説明する。図1は、本開示の一実施形態に係るコンテンツ共有システム1の全体構成を示す説明図である。以下、図1を用いて本開示の一実施形態に係るコンテンツ共有システム1の全体構成について説明する。
【0015】
図1に示した本開示の一実施形態に係るコンテンツ共有システム1は、本開示のコンテンツの一例である、同一のWebページを複数の情報処理装置でリアルタイムに共有して、複数の情報処理装置で同時に表示することを実現するシステムである。図1に示したように、本開示の一実施形態に係るコンテンツ共有システム1は、システムサーバ20と、Webサーバ30と、情報処理装置100a、100b、200a、200b、200c、とが、ネットワーク10を介して相互に接続されている形態を有する。
【0016】
ネットワーク10に接続されている情報処理装置100a、100b、200a、200b、200cは、Webサーバ30が有するWebページを同時に表示することができる。ネットワーク10に接続されている各情報処理装置は、同一のWebページを同時に閲覧するとともに、Webページに対する操作をすることができるものと、表示されるWebページ自体の操作は出来ずに、他のユーザと、表示される同一のWebページを同時に閲覧するだけのものに分かれる。以下の説明では前者の情報処理装置を操作するユーザを「プレイヤー」、後者の情報処理装置を操作するユーザを「オーディエンス」と称する。本実施形態では、情報処理装置100a、100bが「プレイヤー」が操作する情報処理装置であり、情報処理装置200a、200b、200cが「オーディエンス」が操作する情報処理装置である。
【0017】
プレイヤーが操作する情報処理装置100a、100bは、共有するWebページを操作するプレイヤーが使用する。情報処理装置100a、100bでは、ブラウザ拡張機能を備えたWebブラウザが動作しており、そのWebブラウザには、このコンテンツ共有システム1専用のブラウザ拡張アプリがインストールされている。プレイヤーは、この情報処理装置100a、100bで動作するWebブラウザで通常通りのWebページのブラウズを行うことで、閲覧中のWebページがプレイヤー側とオーディエンス側とでリアルタイムに共有される。このとき共有される既存のWebページは、既存のWebページを提供するWebサーバ30から直接ロードされる。また、プレイヤーは、この情報処理装置100a、100bでWebページをブラウズしながら、情報処理装置100a、100bに設けられるマイクに向かって発言することで、その発言の内容が他のプレイヤー及びオーディエンスが操作する情報処理装置から出力される。
【0018】
オーディエンスが操作する情報処理装置200a、200b、200cは、プレイヤーによって操作されるWebページを同時に閲覧するだけのオーディエンスが使用する。オーディエンスが操作する情報処理装置200a、200b、200cでは、Webブラウザが動作している。オーディエンスは、このWebブラウザで特定のURLを入力し、このシステム専用のWebアプリをWebブラウザにロードし、Webページを表示させる。この専用Webアプリは、プレイヤーによって閲覧中のWebページが操作される様子を、オーディエンスが操作する情報処理装置200a、200b、200cに対してリアルタイムに表示する。このとき共有される既存のWebページは、既存のWebページを提供するWebサーバ30から直接ロードされる。
【0019】
システムサーバ20は、同一のWebページを、ネットワーク10に接続されている複数の情報処理装置の間で共有して表示させるためのサーバである。システムサーバ20の構成は後述するが、プレイヤーの操作内容をプレイヤーが操作する情報処理装置100a、100bから受け取り、そのプレイヤーの操作内容を、オーディエンスが操作する情報処理装置200a、200b、200cに表示させるために、情報処理装置200a、200b、200cに伝送する。またシステムサーバ20は、オーディエンスが操作する情報処理装置200a、200b、200cへ、専用Webアプリを提供するWebアプリケーションサーバ機能も有する。なお、上述した2つの機能は、本実施形態のように1つの機器に設けても良く、別々の機器に設けても良い。
【0020】
なお、図1では、プレイヤーが操作する情報処理装置を2つ、オーディエンスが操作する情報処理装置を3つ図示したが、本技術はかかる例に限定されない。本技術では、プレイヤーが操作する情報処理装置は複数であれば3つ以上であってもよく、オーディエンスが操作する情報処理装置は1つ以上であればよい。また、それぞれの情報処理装置は、プレイヤー及びオーディエンスのいずれもが操作するものであってもよい。
【0021】
なお、図1では、プレイヤーが操作する情報処理装置100a、100b及びオーディエンスが操作する情報処理装置200a、200b、200cは、いずれもノートブック型のパーソナルコンピュータとして図示したが、本開示はかかる例に限定されない。すなわち、Webサーバ30からWebページをロードして表示できるものであれば、以下で説明する技術を同様に適用可能である。
【0022】
以上、図1を用いて本開示の一実施形態に係るコンテンツ共有システム1の全体構成について説明した。次に、本開示の一実施形態に係るコンテンツ共有システム1を構成する各装置の概要を説明する。
【0023】
[1−2.各装置の概要]
図2は、本開示の一実施形態に係るコンテンツ共有システム1を構成する各装置の概要を示す説明図である。以下、図2を用いて、本開示の一実施形態に係るコンテンツ共有システム1を構成する各装置の概要について説明する。
【0024】
図2では、プレイヤーが操作する情報処理装置として情報処理装置100aを、オーディエンスが操作する情報処理装置として情報処理装置200aを図示している。
【0025】
図2に示したように、情報処理装置100aは、CPU、ROM、RAM、キーボード、マウス、マイク、スピーカ、ディスプレイ等で構成されるハードウェア110と、ハードウェア110によって実行されるOS(Operating System)120と、OS120によって実行されるWebブラウザ130と、を含んで構成される。
【0026】
Webブラウザ130には、コンテンツ共有システム1専用のブラウザ拡張アプリ140がインストールされる。Webブラウザ130は、既存のWebページを提供するWebサーバ30から直接ロードされる既存Webページ150を表示する。
【0027】
ブラウザ拡張アプリ140は、その一部であるコンテンツスクリプトを、既存Webページ150に送り込む。このコンテンツスクリプトは、プレイヤー側の情報処理装置とオーディエンス側の情報処理装置とで同一のWebページをリアルタイムに共有するために、ユーザによるイベントの監視と、共有に必要なデータの取得を行っている。
【0028】
図2に示したように、システムサーバ20は、CPU、ROM、RAM、キーボード、マウス、ディスプレイ等で構成されるハードウェア21と、ハードウェア21によって実行されるOS22と、OS22によって実行されるリレーサーバ23及び専用Webアプリサーバ24と、を含んで構成される。
【0029】
リレーサーバ23は、プレイヤー側の情報処理装置100aで動作するブラウザ拡張アプリ140と、オーディエンス側の情報処理装置200aで動作する専用Webアプリ240との間でやり取りされるメッセージを交換する機能を有する。
【0030】
このリレーサーバ23は主に2つの機能を有する。1つ目の機能は、リレーサーバ23に接続中のプレイヤーとオーディエンスの管理である。プレイヤーやオーディエンスは、リレーサーバ23に対して、HTML5のWebSocketやXmlHttpRequestを応用したComet等の技術を用いてコネクションを張る。プレイヤー側の情報処理装置100aから届いたメッセージを他のプレイヤーやオーディエンス側の情報処理装置200aにリアルタイムに転送するためには、これらコネクションをデータベース等で管理することが重要であるからである。
【0031】
もう1つの機能は、ブラウザ拡張アプリ140から受信したURL、レンダリングサイズ、スクロール位置、カーソル位置等の情報を、上述の、コネクションを管理するデータベースに登録されている、オーディエンス側の情報処理装置200aで動作する専用Webアプリ240や、送信元の情報処理装置以外のブラウザ拡張アプリへ転送する機能である。
【0032】
専用Webアプリサーバ24は、オーディエンス側の情報処理装置200aで動作する専用Webアプリを格納する。専用Webアプリサーバ24は、オーディエンス側の情報処理装置200aの求めに応じて、専用Webアプリサーバ24に格納される専用Webアプリを情報処理装置200aへ提供する。専用Webアプリサーバ24からの専用Webアプリの提供は、情報処理装置200aで実行されるWebブラウザ230から特定のURLにアクセスすることで行われる。
【0033】
図2に示したように、情報処理装置200aは、CPU、ROM、RAM、キーボード、マウス、マイク、スピーカ、ディスプレイ等で構成されるハードウェア210と、ハードウェア210によって実行されるOS220と、OS220によって実行されるWebブラウザ230と、を含んで構成される。
【0034】
上述したように、情報処理装置200aで実行されるWebブラウザ230から特定のURLにアクセスすると、プレイヤーが閲覧及び操作するWebページをリアルタイムに共有するための専用Webアプリを、専用Webアプリサーバ24からロードする。Webブラウザ230は、ロードした専用Webアプリ240で、プレイヤーが閲覧及び操作する既存Webページ150を表示することで、プレイヤーによって閲覧中のWebページが操作される様子をリアルタイムに表示する。
【0035】
本開示の一実施形態に係るコンテンツ共有システム1を構成する各装置が、このような構成を有することにより、プレイヤー側の情報処理装置で表示されているWebページの内容が、同時にオーディエンス側の情報処理装置にも表示される。
【0036】
以上、図2を用いて、本開示の一実施形態に係るコンテンツ共有システム1を構成する各装置の概要について説明した。次に、本開示の一実施形態に係るコンテンツ共有システム1を構成する、プレイヤー側の情報処理装置の機能構成について説明する。
【0037】
図3は、本開示の一実施形態に係るプレイヤー側の情報処理装置100aの機能構成を示す説明図である。以下、図3を用いて、プレイヤー側の情報処理装置100aの機能構成について説明する。
【0038】
上述したように、情報処理装置100aは、CPU、ROM、RAM、キーボード、マウス、マイク、ディスプレイ等で構成されるハードウェア110と、ハードウェア110によって実行されるOS120と、OS120によって実行されるWebブラウザ130と、を含んで構成される。
【0039】
ハードウェア110は通信モジュール111を含む。通信モジュール111は、後述のブラウザ拡張アプリ140とリレーサーバ23との間の通信を実行する。OS120は、ユーザのキーボード入力や画面出力といった入出力機能、ディスクやメモリの管理機能その他の、複数アプリケーションソフトから共通して利用される基本的な機能を提供し、情報処理装置100aを管理するソフトウェアである。
【0040】
Webブラウザ130は、OS120により実行される、Webページを表示するためのソフトウェアである。Webブラウザ130は、HTMLエンジン131と、スクリプト言語処理エンジン132と、ブラウザ拡張アプリ実行エンジン133と、描画処理エンジン134と、プロトコルスタック135と、を含んで構成される。
【0041】
HTMLエンジン131は、Webサーバ30から送られる、HTML言語によって作られた既存Webページ150について、Webサーバ30から送られてきたHTML言語を解析する。HTMLエンジン131により、既存Webページ150に記述されているHTML言語が解析されると、解析結果は、描画処理エンジン134により画像として出力される。Webサーバ30から送られる既存Webページ150は、既存Webページのコンテンツ151を含む。既存Webページのコンテンツ151は、コンテンツの内容が記述されたHTML文書152と、コンテンツのレイアウトを定義するスタイルシート153と、コンテンツの動作を定義するスクリプト154と、を含んで構成される。
【0042】
スクリプト言語処理エンジン132は、Webサーバ30から送られる、HTML言語によって作られたWebページに埋め込まれるスクリプト言語を解釈し、スクリプトを実行する。本実施形態では、スクリプト言語処理エンジン132は、Webサーバ30から送られてきたWebページに、Webブラウザ130にインストールされるブラウザ拡張アプリ140が埋め込むコンテンツスクリプト155の内容を解釈し、スクリプトを実行する。
【0043】
ブラウザ拡張アプリ実行エンジン133は、Webブラウザ130にインストールされるブラウザ拡張アプリ140を実行する。本実施形態では、ブラウザ拡張アプリ実行エンジン133は、コンテンツスクリプト155とブラウザ拡張アプリ140との間でデータの授受を実行する。ブラウザ拡張アプリ140は、例えばWebブラウザ130が所定のURLにアクセスすることで情報処理装置100aにインストールされ、Webブラウザ130の実行時にWebブラウザ130と共に実行される。
【0044】
描画処理エンジン134は、HTML言語によって作られたWebページの、HTMLエンジン131による解析結果に基づいて画像として出力するための描画処理を実行する。プロトコルスタック135は、ネットワーク機能を提供するためのソフトウェア群であり、プロトコルスタック135によりWebブラウザ130はWebサーバ30からWebページを取得したり、リレーサーバ23にWebブラウザ130の状態を送信したりすることができる。
【0045】
プレイヤー側の情報処理装置100aにおいて、プレイヤーが閲覧中のWebページをリアルタイムに共有するには、常にプレイヤーによるWebページの閲覧状況を監視し、状況の変化に応じて共有に必要なデータをリレーサーバ23へ送信することが求められる。共有に必要なデータとは、次の4種類である。
(1)閲覧中のWebページのURL
(2)閲覧中のWebページ全体のレンダリングサイズ
(3)閲覧中のWebページのスクロール位置
(4)Webページ全体のレンダリング領域の左上隅からのマウスカーソルの位置
【0046】
これらのデータの多くは、Webブラウザ130を用いて閲覧中の既存Webページ150からのみアクセス可能である。そのため、これらのデータを監視・取得するには、本システム専用のプログラムが、既存Webページ150にアクセスできなければならない。ところが、通常、Webブラウザには“Same Origin Policy”というセキュリティ確保の仕組みが備わっている。この仕組みは、あるドメインのWebページから別のドメインのWebページにアクセスできないというものある。
【0047】
そのため、本実施形態にかかるコンテンツ共有システム1は、Webブラウザ130の拡張機能を利用して、このセキュリティの壁を乗り越えている。つまり、Webブラウザ130の拡張機能の枠組みの中で動作するブラウザ拡張アプリ140が、既存Webページ150を監視し、共有に必要なデータを取得して、リレーサーバ23へ送信している。実際には、ブラウザ拡張アプリ140が、既存Webページ150を直接監視するのではなく、代わりにブラウザ拡張アプリ140の一部であるコンテンツスクリプト155を既存Webページ150内に送り込む。そして、このコンテンツスクリプト155が、プレイヤーによる操作の監視と、他のプレイヤーやオーディエンスとの間で共有に必要なデータの取得を行っている。
【0048】
ブラウザ拡張アプリ140は、スクリプト管理部141と、通信部142と、を含む。スクリプト管理部141は、Webブラウザ130が表示する既存Webページ150を直接操作するプレイヤーによる、該プレイヤーの既存Webページ150に対する操作を監視するコンテンツスクリプト155を既存Webページ150に送り込むとともに、既存Webページ150に送り込んだコンテンツスクリプト155と、ブラウザ拡張アプリ実行エンジン133を介して通信する。通信部142は、コンテンツスクリプト155が検出したプレイヤーの操作の内容を受け取って、通信モジュール111を介してその内容をリレーサーバ23に送信する。
【0049】
以上、図3を用いて、本開示の一実施形態に係るコンテンツ共有システム1を構成する、プレイヤー側の情報処理装置100aの機能構成について説明した。次に、本開示の一実施形態に係るコンテンツ共有システム1を構成する、システムサーバ20の機能構成について説明する。
【0050】
図4は、本開示の一実施形態に係るコンテンツ共有システム1を構成するシステムサーバ20の機能構成を示す説明図である。以下、図4を用いて本開示の一実施形態に係るコンテンツ共有システム1を構成するシステムサーバ20の機能構成について説明する。
【0051】
図4に示したように、システムサーバ20は、CPU、ROM、RAM、キーボード、マウス、マイク、ディスプレイ等で構成されるハードウェア21と、ハードウェア21によって実行されるOS22と、OS22によって実行されるリレーサーバ23及び専用Webアプリサーバ24と、を含んで構成される。
【0052】
ハードウェア21は通信モジュール25を含む。通信モジュール25は、リレーサーバ23と、情報処理装置100aで実行されるブラウザ拡張アプリ140との間の通信、及び、リレーサーバ23と、情報処理装置200aで実行される専用Webアプリ240を実行する。
【0053】
プレイヤー側の機器である情報処理装置100aのブラウザ拡張アプリ140と、オーディエンス側の機器である情報処理装置200aの専用Webアプリ240との間でやりとりされるメッセージの交換を行うリレーサーバ23は、接続管理部28と、転送部29と、を含む。接続管理部28は、上述したような、リレーサーバ23に接続中のプレイヤーとオーディエンスの管理を行う。転送部29は、上述したような、ブラウザ拡張アプリ140から受信した閲覧中の既存WebページのURL、レンダリングサイズ、スクロール位置、カーソル位置を、リレーサーバ23に登録されている専用Webアプリ240や、送信元以外のブラウザ拡張アプリ140へ転送する。
【0054】
専用Webアプリサーバ24は、上述したように、オーディエンス側の情報処理装置200aで動作する専用Webアプリを格納する。専用Webアプリサーバ24からの専用Webアプリの提供は、情報処理装置200aで実行されるWebブラウザ230から特定のURLにアクセスすることで行われる。
【0055】
以上、図4を用いて本開示の一実施形態に係るコンテンツ共有システム1を構成するシステムサーバ20の機能構成について説明した。次に、本開示の一実施形態に係るコンテンツ共有システム1を構成する、オーディエンス側の情報処理装置200aの機能構成について説明する。
【0056】
図5は、本開示の一実施形態に係るコンテンツ共有システム1を構成する、オーディエンス側の情報処理装置200aの機能構成を示す説明図である。
【0057】
図5に示したように、オーディエンス側の情報処理装置200aは、CPU、ROM、RAM、キーボード、マウス、マイク、ディスプレイ等で構成されるハードウェア210と、ハードウェア210によって実行されるOS220と、OS220によって実行されるWebブラウザ230と、を含んで構成される。
【0058】
ハードウェア210は通信モジュール211を含む。通信モジュール211は、後述の専用Webアプリ240とリレーサーバ23との間の通信を実行する。OS220は、ユーザのキーボード入力や画面出力といった入出力機能、ディスクやメモリの管理機能その他の、複数アプリケーションソフトから共通して利用される基本的な機能を提供し、情報処理装置200aを管理するソフトウェアである。
【0059】
Webブラウザ230は、OS220により実行される、Webページを表示するためのソフトウェアである。Webブラウザ230は、HTMLエンジン231と、スクリプト言語処理エンジン232と、描画処理エンジン234と、プロトコルスタック235と、を含んで構成される。
【0060】
HTMLエンジン231は、Webサーバ30から送られる、HTML言語によって作られた既存Webページ150について、送られてきたHTML言語を解析する。HTMLエンジン231によりHTML言語が解析されると、解析結果は、描画処理エンジン234により画像として出力される。Webサーバ30から送られる既存Webページ250は、既存Webページのコンテンツ251を含む。既存Webページのコンテンツ251は、コンテンツの内容が記述されたHTML文書252と、コンテンツのレイアウトを定義するスタイルシート253と、コンテンツの動作を定義するスクリプト254と、を含んで構成される。
【0061】
スクリプト言語処理エンジン232は、Webサーバ30から送られる、HTML言語によって作られたWebページに埋め込まれるスクリプト言語を解釈し、スクリプトを実行する。本実施形態では、スクリプト言語処理エンジン232は、Webサーバ30から送られてきた既存Webページ150のスクリプト155の内容を解釈し、スクリプト155に記述された処理を実行する。
【0062】
描画処理エンジン234は、HTML言語によって作られたWebページの、HTMLエンジン231による解析結果に基づいて画像として出力するための描画処理を実行する。プロトコルスタック235は、ネットワーク機能を提供するためのソフトウェア群であり、プロトコルスタック235によりWebブラウザ230はWebサーバ30からWebページを取得したり、リレーサーバ23と専用Webアプリ240との間の通信を実行したりすることができる。
【0063】
Webページをプレイヤー側とオーディエンス側とでリアルタイムに共有するためには、オーディエンス側の情報処理装置200aで、Webブラウザ230上で動作する専用Webアプリ240を、専用Webアプリサーバ24から取得する。専用Webアプリ240は、プレイヤーによる既存Webページ150の閲覧や操作の状況を表示することはできるが、オーディエンスによる当該Webページに対する操作は受け付けない。
【0064】
専用Webアプリ240は、プレイヤーによる既存Webページ150の閲覧や操作の状況をリアルタイムに情報処理装置200aで表示するためのスクリプト260を含んで構成される。スクリプト260は、リレーサーバ23との間で通信を実行し、プレイヤー側の情報処理装置100aにおいて、プレイヤーが閲覧中のWebページを情報処理装置200aでリアルタイムに共有する。
【0065】
スクリプト260は、専用Webアプリ240に含まれ、リレーサーバ23との間で通信を実行し、当該通信により得られる情報を用いて、プレイヤー側の情報処理装置100aと連動したレンダリング条件の反映処理及びカーソル位置の更新処理を実行する。スクリプト260が、プレイヤー側の情報処理装置100aと連動したレンダリング条件の反映処理及びカーソル位置の更新処理を実行することで、オーディエンス側の情報処理装置200aは、プレイヤーが操作する既存Webページの画面を、プレイヤー側と同じように画面に表示することができる。
【0066】
スクリプト260は、コンテンツ更新部261と、通信部262と、を含む。通信部262は、リレーサーバ23から、既存Webページ150を直接操作するプレイヤーによる、該プレイヤーの既存Webページ150に対する操作の内容を受信する。コンテンツ更新部261は、通信部262が受信したプレイヤーによる操作内容を、プレイヤー側の情報処理装置で表示される既存Webページ150と同一の既存Webページ150の表示に反映させる。
【0067】
以上、本開示の一実施形態に係るコンテンツ共有システム1を構成する、オーディエンス側の情報処理装置200aの機能構成について説明した。次に、本開示の一実施形態に係るコンテンツ共有システム1を構成する各装置の動作について説明する。
【0068】
[1−3.各装置の動作]
まず、プレイヤー側の情報処理装置100aの動作について説明する。図6は、プレイヤー側の情報処理装置100aの動作を示す流れ図であり、コンテンツスクリプト155とブラウザ拡張アプリ140が実行する処理を示す流れ図である。
【0069】
ブラウザ拡張アプリ140は、常にWebブラウザのウィンドウや、Webブラウザがタブブラウザである場合、表示中のタブのURLの変化を見張っている。そして、URLの変化イベントを検出すると(ステップS124)、新しいURLの情報をリレーサーバ23へ送信する(ステップS126)とともに、新たにロードされた既存Webページ150へ、コンテンツスクリプト155を送り込む(ステップS125)。既存Webページ150が子フレームを含む場合は、それぞれの子フレームにロードされる既存Webページにもコンテンツスクリプト155を送り込む。
【0070】
既存Webページ150へのコンテンツのロードが完了(ステップS101)し、ブラウザ拡張アプリ140が、既存Webページ150にコンテンツスクリプト155を送り込むと、ロードされたコンテンツスクリプト155は、まずブラウザ拡張アプリ140とのセッションを確立し(ステップS102)、マウスカーソル位置の監視や、子フレーム位置の問い合わせ待ちを開始する。マウスカーソル位置の監視は、例えば次のようにJavaScript(登録商標)でdocumentオブジェクトのmousemoveイベントを監視することで実現する。
【0071】
document.addEventListener('mousemove', function(event){
var x_cursor = event.pageX;
var y_cursor = event.pageY;
}, true);
【0072】
ページのロード先がトップレベルのフレームの場合は、コンテンツスクリプト155は、Webページ全体のレンダリングサイズとスクロール位置を取得し、ブラウザ拡張アプリ140経由でリレーサーバ23へ送信する(ステップS103、S104、S127)。またコンテンツスクリプト155は、Webページ全体のレンダリングサイズやスクロール位置の監視を開始する。コンテンツスクリプト155による、Webページ全体のレンダリングサイズの監視は、windowオブジェクトのresizeイベントや、定期的に実行されるタイマーイベントのタイミングでのチェックによって実現する。
【0073】
タイマーによってレンダリングサイズの変化を監視するには、コンテンツスクリプト155はタイマー登録を行い(ステップS105)、タイマーイベントを待機し(ステップS106)、Webページ全体のレンダリングサイズを取得する(ステップS107)。コンテンツスクリプト155は、サイズの変化があったかどうかを判断し(ステップS108)、サイズの変化があった場合は、コンテンツスクリプト155は、Webページ全体のレンダリングサイズをブラウザ拡張アプリ140経由でリレーサーバ23へ送信する(ステップS109、S127)。Webページ全体のレンダリングサイズの取得は、例えば次のようなスクリプトで実現する。
【0074】
width = Math.max.apply(null, [
document.body.clientWidth,
document.body.scrollWidth,
document.documentElement.scrollWidth,
document.documentElement.clientWidth
]);
height = Math.max.apply(null, [
document.body.clientHeight,
document.body.scrollHeight,
document.documentElement.scrollHeight,
document.documentElement.clientHeight
]);
【0075】
コンテンツスクリプト155は、スクロールイベントの発生を待機し(ステップS110)、スクロールイベントが発生すればスクロール位置を取得する(ステップS111)。コンテンツスクリプト155は、スクロール位置を取得した結果、スクロール位置が変化したかどうかを判断し(ステップS112)、スクロール位置が変化していれば、そのスクロール位置をブラウザ拡張アプリ140経由でリレーサーバ23へ送信する(ステップS113、S127)。スクロール位置の監視は、例えば次のようなスクリプトでdocumentオブジェクトのscrollイベントを監視することで実現する。
【0076】
document.addEventListener('scroll', function(event){
var scrollLeft = document.body.scrollLeft;
var scrollTop = document.body.scrollTop;
}, true);
【0077】
またコンテンツスクリプト155は、マウスイベントの発生を待機し(ステップS114)、マウスイベントが発生するとカーソル位置を取得する(ステップS115)。コンテンツスクリプト155は、カーソル位置を取得した結果、スクロール位置が変化したかどうかを判断し(ステップS116)、カーソル位置が変化していれば、そのカーソル位置をブラウザ拡張アプリ140経由でリレーサーバ23へ送信する(ステップS117)。
【0078】
コンテンツスクリプト155は、Webページ全体のレンダリングサイズやスクロール位置、マウスカーソル位置の監視を行う。そして、これらの情報の変化を検出した場合は、コンテンツスクリプト155はそれぞれの値を取得し、取得した値をブラウザ拡張アプリ140へと送信する。
【0079】
ブラウザ拡張アプリ140は、コンテンツスクリプト155から受信した、Webページ全体のレンダリングサイズやスクロール位置を、そのままリレーサーバ23へと送信する。しかし、ブラウザ拡張アプリ140は、コンテンツスクリプト155から受信したマウスカーソル位置は、リレーサーバ23へと送信する前に座標変換処理が必要になる場合がある。なぜなら、トップレベルフレームではなく子フレームに埋め込まれたコンテンツスクリプト155からマウスカーソル位置の情報を受信した場合、そのマウスカーソル位置は、子フレームの左上隅からの座標であって、トップレベルフレームの左上隅からの座標ではないためである。
【0080】
図9は、フレームとマウスカーソル位置の座標との関係の一例を示す説明図である。図9に示すように、フレーム“frame2”上でマウスカーソルが動いた時、フレーム“frame2”のコンテンツスクリプト155から受信するマウスカーソル位置は(x_cursor, y_cursor)である。これをトップレベルフレームの左上隅からの座標(x_out, y_out)に変換するため、ブラウザ拡張アプリ140は、フレーム“frame2”の、フレーム“frame1”内でのオフセット位置(x_offset2, y_offset2)と、フレーム“frame1”のトップレベルフレーム内でのオフセット位置(x_offset1,
y_offset1)を取得し、フレーム“frame2”のコンテンツスクリプト155からマウスカーソル位置(x_cursor, y_cursor)に加算する。それぞれの子フレームのオフセット位置は、親フレームにロードされているWebページ内からのみアクセス可能である。従って、ブラウザ拡張アプリ140は、フレーム名やフレームのURLをキーにして、親フレームのコンテンツスクリプト155にオフセット位置の問い合わせを行う。
【0081】
ブラウザ拡張アプリ140は、コンテンツスクリプト155から送信されたカーソル位置の情報が、トップレベルフレームからのものかどうかを判断する(ステップS122)。トップレベルフレームからのものであれば、ブラウザ拡張アプリ140はカーソル位置の情報をリレーサーバ23へ送信する(ステップS127)が、トップレベルフレームからのものでなければ、ブラウザ拡張アプリ140はフレーム位置の問い合わせを他フレームのコンテンツスクリプト155へ送信する(ステップS123)。
【0082】
コンテンツスクリプト155は、ブラウザ拡張アプリ140からの子フレーム位置の問い合わせを待機し(ステップS118)、該当の子フレームを含んでいるかどうかを判断し(ステップS119)、該当の子フレームを含んでいる場合には、子フレームのオフセット位置の取得及びブラウザ拡張アプリ140への送信を行う(ステップS120)。子フレームのオフセット位置の情報をコンテンツスクリプト155から受け取ったブラウザ拡張アプリ140は、子フレームのオフセット位置をカーソル位置に加算する(ステップS121)。
【0083】
カーソル位置の取得及び子フレームのオフセット位置の取得を、トップレベルのフレームになるまで繰り返すことで、上記ステップS115でコンテンツスクリプト155が取得したカーソル位置の情報は、トップレベルのフレームにおけるカーソル位置に変換されることになる。
【0084】
なおブラウザ拡張アプリ140は、どのプレイヤーによる操作かを識別できるように、リレーサーバ23に送信するデータに、プレイヤーを一意に識別できる情報(例えば、システムへのログインID等)を付加する。
【0085】
以上、プレイヤー側の情報処理装置100aの動作について説明した。次に、リレーサーバ23の動作について説明する。
【0086】
図7は、リレーサーバ23の動作を示す流れ図である。以下、図7を用いてリレーサーバ23の動作について説明する。
【0087】
リレーサーバ23は、プレイヤー及びオーディエンスの登録管理、及び、プレイヤー側の情報処理装置から送信される、URL、レンダリングサイズ、スクロール位置、カーソル位置の情報を、送信元以外の情報処理装置に対して送信する役割を有する。
【0088】
プレイヤー側のブラウザ拡張アプリ140からコンテンツ共有システム1への登録が要求され、ブラウザ拡張アプリ140とリレーサーバ23との間の接続が開始されると(ステップS201)、リレーサーバ23は、管理データベース31にブラウザ拡張アプリ140の情報を登録する(ステップS202)。同様に、オーディエンス側の専用Webアプリ240からコンテンツ共有システム1への登録が要求され、専用Webアプリ240とリレーサーバ23との間の接続が開始されると(ステップS203)、リレーサーバ23は、管理データベース31に専用Webアプリ240の情報を登録する(ステップS204)。
【0089】
一方、ブラウザ拡張アプリ140とリレーサーバ23との間の接続が終了されると(ステップS205)、リレーサーバ23は、管理データベース31からブラウザ拡張アプリ140の情報を削除する(ステップS206)。同様に、オーディエンス側の専用Webアプリ240とリレーサーバ23との間の接続が終了されると(ステップS207)、リレーサーバ23は、管理データベース31からその専用Webアプリ240の情報を削除する(ステップS208)。
【0090】
プレイヤー側のブラウザ拡張アプリ140からURLの情報(ステップS211)、レンダリングサイズの情報(ステップS212)、スクロール位置の情報(ステップS213)、カーソル位置の情報(ステップS214)をそれぞれ受信すると、リレーサーバ23は、管理データベース31から、接続中のアプリの情報を取得する(ステップS215)。そしてリレーサーバ23は、取得したアプリに対し、それぞれ、URLの情報(ステップS216)、レンダリングサイズの情報(ステップS217)、スクロール位置の情報(ステップS218)、カーソル位置の情報(ステップS219)を送信する。
【0091】
ここでリレーサーバ23は、URLの情報、レンダリングサイズの情報、スクロール位置の情報、カーソル位置の情報を送信する際には、送信元以外の全ての接続中のアプリへ情報を送信する。これにより、あるプレイヤーが操作した内容は、その他の全てのプレイヤー側及びオーディエンス側の情報処理装置にリアルタイムに反映される。
【0092】
以上、図7を用いてリレーサーバ23の動作について説明した。次にオーディエンス側の情報処理装置200aの動作について説明する。
【0093】
図8は、オーディエンス側の情報処理装置200aの動作について説明する流れ図であり、専用Webアプリ240の動作を示すものである。以下、図8を用いてオーディエンス側の情報処理装置200aの動作について説明する。
【0094】
オーディエンス側の情報処理装置200aのWebブラウザ230上で実行される専用Webアプリ240は、プレイヤーが閲覧中のWebページが、プレイヤーによって操作される様子を、オーディエンス側の情報処理装置200aにリアルタイムに表示する。プレイヤーとオーディエンスとで共有される既存Webページ150は、既存Webページ150を提供するWebサーバ30から専用Webアプリ240内のiframeに直接ロードされる。例えば、本実施形態では、既存Webページ用のiframeを次のように定義したとする。
【0095】
<iframe id="shared_page"></iframe>
【0096】
専用Webアプリ240は、リレーサーバ23からURL情報(url)を受信した場合(ステップS301)、例えばJavaScriptで次のような処理を記述すると、そのURLのWebページをiframe内に表示(ステップS302)することが出来る。
【0097】
document.getElementById('shared_page').src = url;
【0098】
また、専用Webアプリ240上で、プレイヤーとオーディエンスとで、マウスカーソルが既存Webページ150の同じ位置を指し示すためには、既存Webページ150のレンダリング結果が同じになる必要がある。そのため、既存Webページ150用のiframeのサイズを、既存Webページ150全体のレンダリングサイズに合わせることで、プレイヤー側でのレンダリング結果と同じにする。
【0099】
専用Webアプリ240は、リレーサーバ23からレンダリングサイズ(width, height)を受信すると(ステップS303)、例えばJavaScriptで次のような処理を記述することで、既存Webページ150を表示するiframeのサイズを変更(ステップS304)し、既存Webページ150のレンダリング結果をプレイヤー側と一致させることが出来る。
【0100】
var node = document.getElementById('shared_page');
node.width = width;
node.height = height;
【0101】
オーディエンス側の情報処理装置200aで、プレイヤー側での既存Webページ150の表示と一致させるには、プレイヤー側の情報処理装置100aで実行されたスクロール操作に合わせて、オーディエンス側の情報処理装置200aで表示される既存Webページ150も、適宜スクロールさせる必要がある。
【0102】
図11は、専用Webアプリ240でのレンダリング処理を示す説明図である。図11に示すように、既存Webページ150は、専用Webページ240内に全体が見える形でレンダリングされている。従って、専用Webアプリ240自体をスクロールし、Viewport(描画領域)を移動させることで、既存Webページ150もスクロールされたように見える。専用Webアプリ240がリレーサーバ23からスクロール位置(left, top)を受信した場合(ステップS305)、専用Webアプリ240は、既存Webページ150を表示するiframeの位置をスクロール位置に加算し(ステップS306)、加算結果に基づいてスクロール位置を更新する(ステップS307)。例えばJavaScriptで次のような処理を記述することで、既存Webページ150の表示をプレイヤー側と一致させることが出来る。
【0103】
window.scrollTo(left + x_offset, top + y_offset);
【0104】
プレイヤーが情報処理装置100aで操作するカーソルは、既存Webページ150内に描画するのではなく、既存Webページ150の上に描画する。専用Webアプリ240がリレーサーバ23からカーソル位置(x_in, y_in)を受信した場合(ステップS308)、専用Webアプリ240は、既存Webページ150を表示するiframeの位置をカーソル位置に加算し(ステップS309)、加算結果に基づいてカーソルを表現するDOM(Document Object Model)オブジェクトの位置を更新する(ステップS310)。図12は、プレイヤーが情報処理装置100aで操作するカーソルを既存Webページ150の上に描画する様子を示す説明図である。図12に示すように、既存Webページ150の上にカーソル表示用のレイヤを配置し、当該レイヤにカーソルを描画して重ね合わせることで、プレイヤーが情報処理装置100aで操作するカーソルの既存Webページ150の上への描画を表現する。
【0105】
図10は、リレーサーバ23から受信するカーソル位置と、専用Webアプリ240上でのカーソル位置との関係を示す説明図である。図10に示すように、専用Webアプリ240がリレーサーバ23から受信したカーソル位置は、既存Webページ150を表示するiframeの左上隅からの座標である。従って、専用Webアプリ240は、iframeのオフセット分を加えた上で、プレイヤーが情報処理装置100aで操作するカーソルをカーソルレイヤに描画する。プレイヤーが情報処理装置100aで操作するカーソルは、Webブラウザ230にカーソルのイメージを張ることで描画してもよいし、Canvas等のブラウザ上に図を描くために策定された仕様に基づいて描画してもよい。
【0106】
以上、オーディエンス側の情報処理装置200aの動作について説明した。次に、コンテンツ共有システム1に参加するプレイヤーが複数存在する場合の表示処理について説明する。
【0107】
コンテンツ共有システム1に参加するプレイヤーが複数存在する場合は、プレイヤー側の情報処理装置同士でも、既存Webページの閲覧状況を共有する。図13は、プレイヤー側の情報処理装置100aの動作を示す流れ図であり、プレイヤー側の情報処理装置100aで実行されるコンテンツスクリプト155とブラウザ拡張アプリ140が、リレーサーバ23経由で他のプレイヤー側の情報処理装置100bから受信する共有に必要なデータの処理の流れを示すものである。
【0108】
情報処理装置100aのブラウザ拡張アプリ140は、リレーサーバ23から新たなURLの情報を受信した場合は(ステップS401)、Webブラウザ130のウィンドウやタブで表示するURLを変更し、新しいWebページをWebサーバ30からロードする(ステップS402)とともに、ロードしたWebページにコンテンツスクリプト155をロードする(ステップS403)。コンテンツスクリプト155は、図6に示した動作を実行するとともに、プレイヤーによるスクロール位置やカーソル位置の変更に伴うイベントの受信待ちを行う。
【0109】
情報処理装置100aのブラウザ拡張アプリ140は、リレーサーバ23からレンダリングサイズを受信した場合は(ステップS405)、既存Webページのレンダリング結果が同じになるように、Webブラウザ130のウィンドウのサイズをレンダリングサイズの横幅に合わせて変更する(ステップS406)。
【0110】
情報処理装置100aのブラウザ拡張アプリ140は、リレーサーバ23からスクロール位置を受信した場合は(ステップS407)、トップレベルフレームに送り込まれたコンテンツスクリプト155に、スクロール位置を送信する(ステップS408)。スクロール位置の受信待ち状態にあるコンテンツスクリプト155は(ステップS409)、ブラウザ拡張アプリ140からスクロール位置の情報を受信すると、既存Webページ150のスクロール位置を更新する(ステップS410)。コンテンツスクリプト155は、スクロール位置(left, top)をブラウザ拡張アプリ140から受信した場合、例えばJavaScriptで次のような処理を記述すれば良い。
【0111】
window.scrollTo(left, top);
【0112】
情報処理装置100aのブラウザ拡張アプリ140は、リレーサーバ23からカーソル位置を受信した場合は(ステップS411)、トップレベルフレームに送り込まれたコンテンツスクリプト155に、カーソル位置を送信する(ステップS412)。カーソル位置の受信待ち状態にあるコンテンツスクリプト155は(ステップS413)、カーソル位置を受信すると、既存Webページ内にカーソルを描画する(ステップS414)。カーソル描画はイメージを張ることで描画してもよいし、Canvas等のブラウザ上に図を描くために策定された仕様に基づいて描画してもよい。なお、カーソルを描画する際には、コンテンツスクリプト155は、既存Webページ150の上に描画されるように、CSS(Cascading Style Sheets)のz-index等で描画位置を調整する。
【0113】
このように、プレイヤー側の情報処理装置100aの操作内容をリレーサーバ23に伝送し、リレーサーバ23は、接続元以外のプレイヤー及びオーディエンスに対して操作内容を転送することで、プレイヤー側の情報処理装置100a、100bと、オーディエンス側の情報処理装置200a、200b、200cとの間で、同一のWebページの表示をリアルタイムに共有させることができる。そして、プレイヤー側の情報処理装置で、既存Webページ150に対して操作された内容は、リレーサーバ23を介して、操作が実行された装置以外のプレイヤー側及びオーディエンス側の情報処理装置に送信される。これにより、プレイヤー側の情報処理装置で既存Webページ150に対して操作された内容が、他の情報処理装置に即座に反映されることになり、プレイヤーによる既存Webページ150に対する操作内容を他のプレイヤー側及びオーディエンス側の情報処理装置でも表示することができる。
【0114】
以上、本開示の一実施形態に係るコンテンツ共有システム1を構成する各装置の動作について説明した。次に、本開示の一実施形態に係るコンテンツ共有システム1を構成する、プレイヤー側の情報処理装置100a及びオーディエンス側の情報処理装置200aに表示されるWebブラウザのユーザインタフェースについて説明する。
【0115】
[1−4.ユーザインタフェース例]
まず、プレイヤー側の情報処理装置に表示されるWebブラウザのユーザインタフェース例について説明する。図14は、プレイヤー側の情報処理装置に表示されるWebブラウザ130のユーザインタフェース300を示す説明図である。プレイヤー側の情報処理装置(例えば情報処理装置100a)に表示されるWebブラウザ130のユーザインタフェースは、ブラウザ拡張アプリ140によって実現される。
【0116】
Webブラウザ130のユーザインタフェース300は、タブ301a、301b、301cと、共有切り替えボタン302と、プレイヤーアイコン311a、311b、311cと、オーディエンス情報表示領域320と、を含んで構成される。オーディエンス情報表示領域320には、オーディエンスアイコン321a、321b、321c、321d、321eと、オーディエンスからのフィードバック情報322と、が表示される。なお、本技術においては、タブの数は3つに限定されるものではないことは言うまでもない。
【0117】
プレイヤーアイコン311a、311b、311cは、各プレイヤーのマウスカーソルである。プレイヤーアイコン311a、311b、311cとして、それぞれのプレイヤーを識別するための画像と、ユーザ名(図14では“user name”と表記)とが表示される。プレイヤーアイコン311a、311b、311cは、それぞれのプレイヤーが情報処理装置を用いて(例えば、マウスで操作したり、画面をタッチしたりするなどして)Webブラウザ130上で移動させることができる。各プレイヤーは、プレイヤー側の情報処理装置で実行されるWebブラウザ130を操作することで、上述したように、リレーサーバ23経由で、自らの操作を他のプレイヤーやオーディエンスが操作する情報処理装置との間でリアルタイムに共有することができる。
【0118】
共有切り替えボタン302は、他のプレイヤーやオーディエンスとの間の共有のオン・オフを切り替えるためのボタンである。プレイヤーが共有切り替えボタン302を操作して共有をオフにすると、当該ウィンドウやタブでのプレイヤーの操作は、他のプレイヤーやオーディエンスには反映されなくなる。
【0119】
プレイヤーの操作に対して、オーディエンス側の情報処理装置200a〜200cを用いてオーディエンスから反応があると、その反応がオーディエンス情報表示領域320に表示される。オーディエンスからの反応としては、オーディエンスアイコン321a〜321eとともに表示される、オーディエンスが入力した文字情報であったり、後述する、オーディエンスからの拍手や笑いを意味するボタンの押下であったりする。
【0120】
このように、プレイヤーがWebページへの操作を行うエリアとは別に、オーディエンスからのコメントやフィードバック表示のエリアを設けることで、各プレイヤーは、オーディエンスからのコメントやフィードバックを閲覧しながら、Webページの操作を行うことができる。
【0121】
オーディエンス情報表示領域320へのオーディエンスアイコン321a〜321eの表示手法は様々なバリエーションが考えられる。オーディエンス情報表示領域320へのオーディエンスアイコン321a〜321eの表示手法については後に詳述する。
【0122】
図14では、プレイヤー側の情報処理装置100aに表示されるWebブラウザ130のユーザインタフェース300として、オーディエンス情報表示領域320がユーザインタフェース300の下部領域に表示されているものを示したが、本開示はかかる例に限定されない。また、オーディエンスがプレイヤーへのフィードバックのために文章を入力した際の、オーディエンス情報表示領域320へのオーディエンスアイコン321a〜321eの表示手法は特定のものに限定されないことは言うまでもないが、例えば画面の下の方から上に向かって現れるように表示しても良く、Webブラウザ130にフェードインするように表示しても良い。
【0123】
図15は、プレイヤー側の情報処理装置100aに表示されるWebブラウザ130のユーザインタフェース300を示す説明図である。
【0124】
図15に示したユーザインタフェース300は、オーディエンス情報表示領域320がユーザインタフェース300の右側に表示されている。オーディエンス情報表示領域320には、オーディエンスからの反応がリアルタイムに表示される点は図14に示したものと変わらないが、図15に示したユーザインタフェース300では、オーディエンス情報表示領域320には、オーディエンスからの反応が、オーディエンスコメント表示領域323に時系列で表示される。オーディエンスコメント表示領域323には、コメントを返したユーザ名(図15では“user1”〜“user9”で表記)及びコメント(図15では“user comment”で表記)が表示される。また、オーディエンス情報表示領域320には、オーディエンスコメント表示領域323とは別に、オーディエンスから、後述の拍手ボタン432と、笑いボタン433が押された数または頻度を表示するための、笑い情報表示領域324及び拍手情報表示領域325が設けられている。
【0125】
このように、オーディエンスからのコメントを時系列でオーディエンス情報表示領域320に表示することで、各プレイヤーは、話題にすべきコメントをチェックすることができる。
【0126】
以上、プレイヤー側の情報処理装置に表示されるWebブラウザのユーザインタフェース例について説明した。次に、オーディエンス側の情報処理装置に表示されるWebブラウザのユーザインタフェース例について説明する。
【0127】
図16は、オーディエンス側の情報処理装置に表示されるWebブラウザ230のユーザインタフェース400を示す説明図である。オーディエンス側の情報処理装置(例えば、情報処理装置200a)に表示されるWebブラウザ230のユーザインタフェース400は、専用Webアプリ240によって実現される。
【0128】
オーディエンス側の情報処理装置に表示されるWebブラウザ230のユーザインタフェース400は、タブ401aと、プレイヤーアイコン411a、411b、411cと、オーディエンス情報表示領域420と、を含んで構成される。オーディエンス情報表示領域320には、オーディエンスアイコン421a、421b、421c、421d、421eと、オーディエンスからのフィードバック情報422と、テキストボックス431と、拍手ボタン432と、笑いボタン433と、が表示される。
【0129】
プレイヤーアイコン411a、411b、411cは、各プレイヤーのマウスカーソルである。各プレイヤーが、プレイヤー側の情報処理装置で実行されるWebブラウザ130を操作すると、上述したようにリレーサーバ23経由でその操作の内容がリアルタイムにオーディエンス側の情報処理装置に反映される。これにより、オーディエンスはプレイヤー操作をリアルタイムに共有することができる。
【0130】
プレイヤーの操作に対して、オーディエンス側の情報処理装置200a〜200cを用いてオーディエンスから反応があると、その反応がオーディエンス情報表示領域420に表示される。オーディエンスからの反応としては、オーディエンスアイコン421a〜421eとともに表示される、オーディエンスアイコン421a〜421eには、コメントを返したユーザ名(図16では“user1”〜“user5”で表記)及びコメント(図16では“User Comment”で表記)が表示される。オーディエンス情報表示領域420に表示される情報は、オーディエンスがテキストボックス431に入力した文字情報であったり、後述する、オーディエンスからの拍手や笑いを意味する拍手ボタン432や笑いボタン433の押下に伴う表示であったりする。
【0131】
テキストボックス431、拍手ボタン432及び笑いボタン433は、Webブラウザ230上に一体となって表示されていてもよい。テキストボックス431、拍手ボタン432及び笑いボタン433は、当該オーディエンスが操作するWebブラウザ230にのみ表示されるものである。テキストボックス431、拍手ボタン432及び笑いボタン433は、オーディエンスがプレイヤー操作に対して反応を返すためのものであるが、オーディエンスがプレイヤー操作に対して反応を返さない場合であってもWebブラウザ230上に常時表示されていると、プレイヤー操作の閲覧の邪魔になる。従って、これらテキストボックス431、拍手ボタン432及び笑いボタン433は、画面表示を消せるようにすることが望ましい。
【0132】
図17は、オーディエンス側の情報処理装置に表示されるWebブラウザ230のユーザインタフェース400を示す説明図であり、テキストボックス431、拍手ボタン432及び笑いボタン433が画面上から消えている状態を示す説明図である。このように、オーディエンスがプレイヤー操作に対して反応を返さない場合は、テキストボックス431、拍手ボタン432及び笑いボタン433を画面上から消すことで、プレイヤー操作の閲覧の妨げとならない。
【0133】
その後、オーディエンスがマウスカーソル440を操作して、テキストボックス431、拍手ボタン432及び笑いボタン433が表示されるエリアにマウスカーソル440を移動させると、テキストボックス431、拍手ボタン432及び笑いボタン433がWebブラウザ230に表示される。図18は、オーディエンス側の情報処理装置に表示されるWebブラウザ230のユーザインタフェース400を示す説明図であり、マウスカーソル440の移動によってテキストボックス431、拍手ボタン432及び笑いボタン433がWebブラウザ230に表示された状態を示す説明図である。
【0134】
図18に示したように、オーディエンスがマウスカーソル440を操作する他に、例えば、オーディエンスがプレイヤーに対して反応を返す際にキーボードを操作すると、テキストボックス431、拍手ボタン432及び笑いボタン433がWebブラウザ230表示されるようにしてもよい。
【0135】
図19は、オーディエンス側の情報処理装置に表示されるWebブラウザ230のユーザインタフェース400を示す説明図であり、オーディエンスのキーボードの操作(例えば、スペースキーやEnterキーの押下)によってテキストボックス431、拍手ボタン432及び笑いボタン433がWebブラウザ230に表示された状態を示す説明図である。図19に示したユーザインタフェース400は、図18とは、異なり、マウスカーソル440がテキストボックス431、拍手ボタン432及び笑いボタン433が表示されるエリアに存在しないが、テキストボックス431、拍手ボタン432及び笑いボタン433がWebブラウザ230に表示されている。
【0136】
オーディエンスが、プレイヤーに対して反応を返すために、テキストボックス431に文章を入力し、入力を確定させると、その文章は、当該プレイヤーのアイコンとともにオーディエンス情報表示領域420に表示される。図20は、オーディエンス側の情報処理装置に表示されるWebブラウザ230のユーザインタフェース400を示す説明図であり、オーディエンスからの文章入力により、オーディエンス情報表示領域420にオーディエンスアイコン421aが、オーディエンスが入力した文章と共に表示されている様子を示したものである。
【0137】
このオーディエンス情報表示領域420に表示されるオーディエンスアイコン421aは、リレーサーバ23によって、他のプレイヤー及びオーディエンスのWebブラウザにも表示される。従って、プレイヤーに対するあるオーディエンスの反応は、プレイヤーのみならずオーディエンスもWebブラウザを見て確認することができる。
【0138】
オーディエンス情報表示領域420へのオーディエンスアイコン421aの表示手法は特定のものに限定されないことは言うまでもないが、例えば画面の下の方から上に向かって現れるように表示しても良く、Webブラウザ230にフェードインするように表示しても良い。
【0139】
オーディエンスによるテキストの入力が完了すると、テキストボックス431、拍手ボタン432及び笑いボタン433をWebブラウザ230から消去させるようにしてもよい。図21は、オーディエンス側の情報処理装置に表示されるWebブラウザ230のユーザインタフェース400を示す説明図であり、オーディエンスの文章入力の確定により、テキストボックス431、拍手ボタン432及び笑いボタン433をWebブラウザ230から消去させた状態を示すものである。このように、オーディエンスの文章入力の確定により、テキストボックス431、拍手ボタン432及び笑いボタン433をWebブラウザ230から消去させることで、プレイヤーによるWebページの操作の閲覧の妨げとなることを防ぐことができる。
【0140】
テキストボックス431、拍手ボタン432及び笑いボタン433の表示位置は、例えば、マウスでドラッグさせることで、Webブラウザ230の任意の場所に移動できるようにしてもよい。図22は、オーディエンス側の情報処理装置に表示されるWebブラウザ230のユーザインタフェース400を示す説明図であり、マウスでドラッグさせることで、テキストボックス431、拍手ボタン432及び笑いボタン433の表示位置を移動させている状態を示すものである。このようにテキストボックス431、拍手ボタン432及び笑いボタン433の表示位置を任意の位置に移動させることで、プレイヤーによるWebページの操作の閲覧の妨げとなることを防ぐことができる。
【0141】
続いて、オーディエンス情報表示領域420へのオーディエンス情報の表示手法の一例について説明する。図23は、オーディエンス側の情報処理装置に表示されるWebブラウザ230のユーザインタフェース400を示す説明図である。オーディエンス情報表示領域420にオーディエンスアイコン421a〜421eを表示させ、リレーサーバ23を介して、オーディエンスが入力した文章を、プレイヤーとオーディエンスとで共有することができる。
【0142】
このオーディエンス情報表示領域420へのオーディエンス情報の表示は、あるルールに基づいて行われるようにしても良い。以下では、一つのルールを例に挙げてオーディエンス情報表示領域420へのオーディエンス情報の表示について説明する。
【0143】
例えば、Webブラウザ230のユーザインタフェース400におけるオーディエンス情報表示領域420には、オーディエンスアイコンを9つ表示できるようにする。表示位置は、左から順に1〜9とする。そして、オーディエンスアイコンを、まずは奇数番の表示位置に左から順に表示させ、5番の位置にオーディエンスアイコンを表示させると、次に偶数番の表示位置に左から順に表示させる。そして8番の位置にオーディエンスアイコンを表示させると、また奇数番の表示位置に左から順に表示させる。このようにオーディエンスアイコンを表示させることで、オーディエンスアイコンの視認性を高めることができ、オーディエンスからのコメントを規則的に出現させることで、プレイヤー及びオーディエンスは、可読時間を確保しながら、より多くのユーザーコメントを同時に表示できる。また、個々の表示環境によりウィンドウサイズが異なる場合でも、オーディエンスからのコメントの出現タイミングや相対位置を変化させずに済む。
【0144】
図24は、オーディエンスから送られたコメントの表示の概要を示す説明図である。オーディエンスからのコメントは、リレーサーバ23にキューとして一旦蓄えられ、オーディエンスによって入力された順に、オーディエンス情報表示領域420へ、上述のルールに基づいて表示させる。すなわち、最初のオーディエンスアイコンは図24のオーディエンス情報表示領域420の1番に表示させ、以後3番、5番、7番、9番の順に表示させる。オーディエンスアイコンが9番に表示されると、続いて2番、4番、6番、8番の順に表示させる。オーディエンスアイコンが8番に表示されると、また1番に表示させる。
【0145】
詳しい説明は後述するが、オーディエンスアイコンは一度表示されると、徐々に表示を薄くさせてもよい。例えば、図24を用いて説明すると、1番にオーディエンスアイコンを表示させた後は、時間と共にその表示を薄くさせ、オーディエンスアイコンが2番に表示されるまでに、1番に表示させたオーディエンスアイコンは画面から完全に消去させるようにしてもよい。これにより、オーディエンスアイコン同士が同じ濃さで表示されることがなくなり、オーディエンスのコメントの可読性を高めることができる。
【0146】
なお、図24ではオーディエンス情報表示領域420への表示についてのみを図示したが、もちろん、プレイヤー側のWebブラウザ130に表示されるオーディエンス情報表示領域320にも、同じ手法を適用することは言うまでもない。
【0147】
図25は、オーディエンスから送られたコメントの表示の概要を示す説明図であり、最初のオーディエンスアイコンを、図24のオーディエンス情報表示領域420の1番に表示させた状態を模式的に示したものである。
【0148】
図26〜図34は、オーディエンス側の情報処理装置に表示されるWebブラウザ230のユーザインタフェース400の内、オーディエンス情報表示領域420を抜き出して示す説明図である。図26は、図24のオーディエンス情報表示領域420の1番に、オーディエンスアイコン421aを表示させた状態を示したものである。
【0149】
図24のオーディエンス情報表示領域420の1番に、オーディエンスアイコン421aを表示させると、続いて、オーディエンス情報表示領域420の3番に、オーディエンスアイコン421bを表示させる。図27は、図24のオーディエンス情報表示領域420の3番に、オーディエンスアイコン421bを表示させた状態を示したものである。この際に、先に表示したオーディエンスアイコン421aは徐々に濃度が薄くなるように表示させる。
【0150】
続いて、オーディエンス情報表示領域420の5番に、オーディエンスアイコン421bを表示させる。図28は、図24のオーディエンス情報表示領域420の5番に、オーディエンスアイコン421cを表示させた状態を示したものである。同様に、先に表示したオーディエンスアイコン421a、421bは徐々に濃度が薄くなるように表示させる。
【0151】
続いて、オーディエンス情報表示領域420の7番に、オーディエンスアイコン421bを表示させる。図29は、図24のオーディエンス情報表示領域420の7番に、オーディエンスアイコン421dを表示させた状態を示したものである。同様に、先に表示したオーディエンスアイコン421a、421b、421cは徐々に濃度が薄くなるように表示させる。
【0152】
続いて、オーディエンス情報表示領域420の9番に、オーディエンスアイコン421bを表示させる。図30は、図24のオーディエンス情報表示領域420の9番に、オーディエンスアイコン421eを表示させた状態を示したものである。同様に、先に表示したオーディエンスアイコン421a、421b、421c、421dは徐々に濃度が薄くなるように表示させる。
【0153】
オーディエンス情報表示領域420の9番に、オーディエンスアイコン421eが表示される頃になると、最初に表示されたオーディエンスアイコン421aの濃度がかなり薄くなっている。次にオーディエンス情報表示領域420の2番にオーディエンスアイコンが表示されると、最初に表示されたオーディエンスアイコン421aは画面から完全に消える。
【0154】
続いて、オーディエンス情報表示領域420の2番に、オーディエンスアイコン421fを表示させる。図31は、図24のオーディエンス情報表示領域420の2番に、オーディエンスアイコン421fを表示させた状態を示したものである。同様に、先に表示したオーディエンスアイコン421b、421c、421d、421eは徐々に濃度が薄くなるように表示させる。また、最初に表示されたオーディエンスアイコン421aは画面から完全に消えてしまっている。
【0155】
続いて、オーディエンス情報表示領域420の4番に、オーディエンスアイコン421gを表示させる。図31は、図24のオーディエンス情報表示領域420の4番に、オーディエンスアイコン421gを表示させた状態を示したものである。同様に、先に表示したオーディエンスアイコン421c、421d、421e、421fは徐々に濃度が薄くなるように表示させる。また、オーディエンスアイコン421bは画面から完全に消えてしまっている。
【0156】
続いて、オーディエンス情報表示領域420の6番に、オーディエンスアイコン421hを表示させる。図32は、図24のオーディエンス情報表示領域420の6番に、オーディエンスアイコン421hを表示させた状態を示したものである。同様に、先に表示したオーディエンスアイコン421d、421e、421f、421gは徐々に濃度が薄くなるように表示させる。また、オーディエンスアイコン421cは画面から完全に消えてしまっている。
【0157】
続いて、オーディエンス情報表示領域420の8番に、オーディエンスアイコン421hを表示させる。図33は、図24のオーディエンス情報表示領域420の8番に、オーディエンスアイコン421iを表示させた状態を示したものである。同様に、先に表示したオーディエンスアイコン421e、421f、421g、421hは徐々に濃度が薄くなるように表示させる。また、オーディエンスアイコン421dは画面から完全に消えてしまっている。
【0158】
図24のオーディエンス情報表示領域420の8番に、オーディエンスアイコン421iを表示させると、最初にオーディエンスアイコン421aを表示させた図24のオーディエンス情報表示領域420の1番に、再びオーディエンスアイコンを表示させる。このようにオーディエンスアイコンをサイクリックに表示させることで、プレイヤー及びオーディエンスに対して、オーディエンスからのコメントの可読時間を確保しながら、より多くのオーディエンスコメントを同時に表示することができる。
【0159】
Webブラウザのウィンドウサイズが変わっても、オーディエンスアイコンの表示の規則性は変化させない。図35は、オーディエンスからのコメント表示の概要を示す説明図であり、最初のオーディエンスアイコンを、図24のオーディエンス情報表示領域420の1番に表示させた状態を模式的に示したものである。また図35は、図25に比べてWebブラウザ230の横幅が広くなっている。以下、図36〜図44についても同様である。
【0160】
図36〜図44は、オーディエンス側の情報処理装置に表示されるWebブラウザ230のユーザインタフェース400の内、オーディエンス情報表示領域420を抜き出して示す説明図である。図36は、図24のオーディエンス情報表示領域420の1番に、オーディエンスアイコン421aを表示させた状態を示したものである。
【0161】
以下、図26〜図34に示したオーディエンス情報表示領域420へのオーディエンスアイコン421a〜421iの表示と同様に、1番→3番→5番→7番→9番→2番→4番→6番→8番の順で、オーディエンス情報表示領域420へオーディエンスアイコン421a〜421iを順次表示させる。このように、オーディエンスアイコンをサイクリックに表示させることで、プレイヤー及びオーディエンスに対して、オーディエンスからのコメントの可読時間を確保しながら、より多くのオーディエンスコメントを同時に表示することができる。また、個々の表示環境によりウィンドウサイズが異なる場合でも、オーディエンスコメントの出現タイミングや相対位置を変化させずに、オーディエンスコメントをプレイヤーとオーディエンスとの間で共有することができる。
【0162】
以上、オーディエンス情報表示領域420へのオーディエンス情報の表示手法の一例について説明した。もちろん、オーディエンス情報表示領域420へのオーディエンス情報の表示手法は上述の例に限定されないことは言うまでもない。例えば、上述の説明では左から順に規則的にオーディエンスアイコンを表示させていたが、右から順に規則的にオーディエンスアイコンを表示させるようにしても良い。
【0163】
オーディエンス情報表示領域420へのオーディエンス情報は、その他にも様々な手法を用いることができる。例えば、同一のオーディエンスからのコメントは常に同じ位置に表示するようにしてもよい。また例えば、コメントを数多く送信するオーディエンスからのオーディエンス情報は、オーディエンス情報表示領域420の固定の場所に優先的に表示するようにしてもよい。
【0164】
次に、オーディエンスからのコメントの集中による混雑を回避する処理の一例について説明する。オーディエンスの数が増加すると、一度に多数のオーディエンスからコメントが送られることが考えられる。そのオーディエンスからのコメントを全て表示させると、オーディエンスからのコメントの鮮度が失われ、コメントが画面に表示される頃には、プレイヤーは全く別の話題に移っている場合が考えられる。そのため、混雑を回避する処理として、リレーサーバ23は、オーディエンスからのコメントを表示する前の段階に、一定時間にメッセージを送り出すキューを設け、そのキューで順番待ち数を計測する。そして、計測された順番待ち数が指定した閾値を超えた場合、リレーサーバ23はオーディエンスからのコメント送信を禁止して、オーディエンスからのコメントを受け付けないようにしてもよい。
【0165】
図45は、オーディエンスからのコメントの表示処理の概要を示す説明図である。図45には、オーディエンスから送信されたコメントは、リレーサーバ23上のキューに一旦蓄えられ、送信された順に、上述の表示手法によってオーディエンス情報表示領域420に表示される。しかし、順番待ち数が所定の閾値qに達すると、リレーサーバ23は、それ以上のコメントの入力は受け付けなくする。コメントの入力を受け付けなくする手法として、例えば、オーディエンスによってテキストボックス431にコメントが入力され、コメントが確定されても、混雑中である旨のメッセージ(例えば、「混雑しているため、コメントできません。」など)を、コメントを入力したオーディエンスが操作しているWebブラウザ上に表示されるテキストボックス431に表示させる。
【0166】
図46は、オーディエンス側の情報処理装置に表示されるWebブラウザ230のユーザインタフェース400を示す説明図であり、リレーサーバ23上のキューに蓄えられている順番待ち数が所定の閾値qに達している場合に、オーディエンスがコメントをテキストボックス431に入力し、入力したコメントを確定しようとしている状態を示したものである。
【0167】
この状態で、オーディエンスがコメントをテキストボックス431に入力し、入力したコメントを確定させても、リレーサーバ23上のキューに蓄えられている順番待ち数が所定の閾値qに達しているので、リレーサーバ23はコメントの受け付けを禁止し、混雑中である旨のメッセージを、コメントを入力したオーディエンスが操作しているWebブラウザ上に表示されるテキストボックス431に表示させる。
【0168】
図47は、オーディエンス側の情報処理装置に表示されるWebブラウザ230のユーザインタフェース400を示す説明図であり、図46に示した状態から、オーディエンスがテキストボックス431に入力したコメントを確定させた状態に遷移した様子を示すものである。図47では、混雑中である旨のメッセージがテキストボックス431に表示されている。そして、エラーメッセージがテキストボックス431に表示されてから所定の時間が経過すると、エラーメッセージをテキストボックス431から消去させ、入力待機状態に戻す。これにより、オーディエンスは、多数のコメントが集中していることを把握し、所定の時間経過後に、再びコメントを入力することができる。
【0169】
プレイヤーの発言やWebページへの操作に対する、拍手や笑いなどの感情要素は、オーディエンス側のWebブラウザ230に表示される拍手ボタン432や笑いボタン433の押下により、参加者へ発信できる。また、全オーディエンス参加者の一定時間内の拍手ボタン432や笑いボタン433の押下量をフィードバック表示や、サウンド効果で表現することで、イベントの場の雰囲気の盛り上がりを参加者が知ることができる。
【0170】
オーディエンスによる拍手ボタン432や笑いボタン433の押下により、全オーディエンスのフィードバック量Fを集計する。フィードバック量Fは、全オーディエンスによるアクション数を所定の時間Tで除して集計する。すなわち、フィードバック量F=アクション数/Tである。
【0171】
そして、このように算出したフィードバックFに応じて、オーディエンス情報表示領域320、420に表示させるエフェクトの量を変化させる。例えば、エフェクトとして視覚効果を用いる場合は、視覚効果の量としてパーティクル出現頻度を変化させ、音声効果を用いる場合は、音声効果の量として、量に応じたSE(サウンドエフェクト)の種類を変化させる。
【0172】
プレイヤーの数が増えると、どのプレイヤーが発言しているのかを把握することが困難になる場合が考えられる。そのため、どのプレイヤーが発言しているのか、またどのプレイヤーがマウスを操作しているのかを、容易に判別する仕組みを設けることが望ましい。
【0173】
例えば、どのプレイヤーが話しているのかを判別するためには、プレイヤーのマイク音量を手掛かりに、プレイヤーアイコンの表現を変化させることで、どのプレイヤーが話しているかを判別できるようにしてもよい。また、どのプレイヤーが操作をしているかを半ベルするためには、プレイヤーのマウス操作(移動・クリック・ドラックなど)をトリガとして、プレイヤーアイコン表現を変化させることで、どのプレイヤーが操作をしているかを判別できるようにしてもよい。
【0174】
オーディエンス側のWebブラウザ230に表示される、プレイヤーによって提示されたWebサイトを、オーディエンスの操作によって別ウィンドウまたは別タブに表示するようにしてもよい。例えば、オーディエンス側のWebブラウザ230の、テキストボックス431、拍手ボタン432、笑いボタン433が表示されている領域以外の領域のクリックにより、表示中のWebページを別ウィンドウまたは別タブに表示するようにしてもよい。
【0175】
図48は、オーディエンス側の情報処理装置に表示されるWebブラウザ230のユーザインタフェース400を示す説明図であり、プレイヤーによって提示されたWebページが、オーディエンスのマウスカーソル440の操作により、別タブに表示されようとしている状態を示したものである。オーディエンスが、例えばマウスカーソル440を、テキストボックス431、拍手ボタン432、笑いボタン433が表示されていない領域に移動させて、マウスをクリックすると、タブ401aで表示中のWebページを、別のタブに表示させる。
【0176】
図49は、オーディエンス側の情報処理装置に表示されるWebブラウザ230のユーザインタフェース400を示す説明図であり、図48に示した状態から、プレイヤーによって提示されたWebサイトが、オーディエンスによるマウスカーソル440の操作により、タブ401aとは別のタブ401bに表示されている状態に移行した様子を示したものである。このように、プレイヤーによって提示されたWebページを、オーディエンスによるマウスカーソル440の操作により、別のウィンドウやタブに表示させることで、当該オーディエンスは、後で改めてそのプレイヤーによって提示されたWebページの内容を確認することが可能になる。
【0177】
図50は、オーディエンス側の情報処理装置に表示されるWebブラウザ230のユーザインタフェース400を示す説明図であり、プレイヤーによって提示されたWebサイトに表示されているバナーに対する、オーディエンスのマウスカーソル440の操作により、別タブに表示されようとしている状態を示したものである。オーディエンスが、プレイヤーによって提示されたWebサイト中のバナー表示領域450に表示されているバナーをクリックすることで、当該バナーのリンク先のWebページを、別のタブに表示させる。
【0178】
図51は、オーディエンス側の情報処理装置に表示されるWebブラウザ230のユーザインタフェース400を示す説明図であり、図50に示した状態から、プレイヤーによって提示されたWebページのバナーに対するオーディエンスのマウスカーソル440の操作により、当該バナーのリンク先のWebページが、タブ401aとは別のタブ401bに表示されている状態に移行したものを示したものである。このように、プレイヤーによって提示されたWebページのバナーのリンク先のWebページを別のウィンドウやタブに表示させることで、当該オーディエンスは、後で改めてそのWebページの内容を確認することが可能になる。
【0179】
このような本開示の一実施形態にかかるコンテンツ共有システム1を用いることで、インターネットを用いた様々なイベントを実現することができる。以下では、そのようなイベントの一例として、インターネットによる新製品のセミナーの実施例について説明する。
【0180】
図52は、本開示の一実施形態にかかるコンテンツ共有システム1を用いたネットイベントの一例を示す説明図であり、新商品のセミナーイベントの概要について示したものである。例えば、新製品を特集するWebページが複数開設され、それぞれのWebページの訪問者や、当該Webページの滞留時間をWebページの開設者が監視し、Webページの開設者や管理者は、あるWebページの訪問者や、当該Webページの滞留時間が所定の値に達すると、それぞれのWebページに対して、当該製品のセミナーイベントを開始する旨を通知する。図52では、新製品A、B、Cをそれぞれ特集するWebページが開設され、新製品Bを特集するWebページを5人訪問している状態が図示されている。なおWebページの訪問者や、当該Webページの滞留時間の監視方法は特定の方法に限定されないことは言うまでもない。
【0181】
図53は、本開示の一実施形態にかかるコンテンツ共有システム1を用いたネットイベントの一例を示す説明図であり、Webページの訪問者や、当該Webページの滞留時間をWebページの開設者や管理者が監視している状態を示すものである。Webページの開設者や管理者は、Webページの訪問者や、当該Webページの滞留時間が所定の値に達すると、それぞれのWebページに対して、当該製品のセミナーイベントを開始する旨を通知する。
【0182】
図54は、本開示の一実施形態にかかるコンテンツ共有システム1を用いたネットイベントの一例を示す説明図であり、Webページの開設者や管理者が、Webページの訪問者のWebブラウザに対して、セミナーイベントの開始を通知している状態を示すものである。そしてWebページの訪問者が、セミナーイベントに参加すると、Webページの開設者や管理者がプレイヤー、Webページの訪問者がオーディエンスの関係となり、プレイヤーによるWebブラウザを用いた新製品の説明を、オーディエンスが閲覧することができる。
【0183】
なお、セミナーイベントへの入り口は、他のWebページや他のネットサービスにリンクしてもよい。共有するWebページが変化しても、インターネットによるセミナーイベントのURLを固定することができる。
【0184】
本開示の一実施形態にかかるコンテンツ共有システム1を用いることで、Webページを用いた様々なイベントを提供することができる。例えば、上述したような、商品についてのセミナーイベントの開催の他に、複数のプレイヤーによる注目すべきWebページの紹介、アーティストのプロモーションイベントなどに、本開示の一実施形態にかかるコンテンツ共有システム1を活用することが出来る。
【0185】
なお、上述の説明では、共有するコンテンツとしてインターネット上のWebページを例に挙げて説明したが、共有するコンテンツは係る例に限定されない。すなわち、共有するコンテンツとしては、映像コンテンツ、画像コンテンツ、文書データなどであってもよく、これらのコンテンツをWebブラウザで表示させることで、プレイヤーとオーディエンスとの間でコンテンツを共有して表示させるようにしてもよい。
【0186】
また上述の説明では、笑いや拍手という感情的な反応をオーディエンスから返すために、拍手ボタン432や笑いボタン433をWebブラウザ230に表示させていたが、本技術はかかる例に限定されない、例えば、オーディエンスが操作する情報処理装置が携帯型の端末であり、当該端末に加速度センサや傾きセンサなどが備わっている場合に、情報処理装置を傾けたり動かしたりすることで、笑いや拍手という感情的な反応をオーディエンスから返させるようにしてもよい。
【0187】
<2.まとめ>
以上説明したように、本開示の一実施形態にかかるコンテンツ共有システム1により、話題のWebページを見ながら複数の人間でチャットをするといったコミュニケーションが、Webブラウザだけで実現可能になる。オーディエンス側は、特別なアプリケーションのインストールを必要とすることなく、Webブラウザで特定のWebページを開くだけでコミュニケーションに参加可能であり、オーディエンスを特定の機器に縛ることなく、またWebブラウザのウィンドウサイズがばらばらであっても、表示内容を他のオーディエンスやプレイヤーとの間で正しく共有できる。
【0188】
また本開示の一実施形態にかかるコンテンツ共有システム1では、オーディエンスからのコメントを上述したようにサイクリックに表示することで、文書や映像などの共有コンテンツの視認性や話題の鮮度を損なうことなく意思疎通を行うことができるとともに、より多くのコメントを同時に表示でき、個々の表示環境によりウィンドウサイズが異なる場合でも、コメントの出現タイミングや相対位置を変化させないので、円滑なコミュニケーションが図れる。また、オーディエンスが拍手や笑いといった感情的な反応を返すために、これらの感情的な反応を返すためのユーザインタフェースを設けることで、オーディエンスから発信されるメッセージの数を増やさずに、オーディエンスからのより早い意思発信が可能となる。
【0189】
なお、本明細書において説明した各装置による一連の制御処理は、ソフトウェア、ハードウェア、及びソフトウェアとハードウェアとの組合せのいずれを用いて実現されてもよい。ソフトウェアを構成するプログラムは、例えば、各装置の内部又は外部に設けられるコンピュータ読取可能な記録媒体に予め格納される。そして、各プログラムは、例えば、実行時にRAM(Random Access Memory)に読み込まれ、CPU(Central Processing Unit)などのプロセッサにより実行される。
【0190】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示はかかる例に限定されない。本開示の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【0191】
なお、本技術は以下のような構成も取ることができる。
(1)
コンテンツを直接操作するプレイヤーによって操作されるコンテンツと同一の内容を前記プレイヤー側とリアルタイムに共有して表示するコンテンツ表示部と、
前記コンテンツ表示部が前記プレイヤー側とリアルタイムに共有して表示する前記コンテンツの所定の領域に、前記プレイヤーの操作を閲覧するのみの自装置及び他装置から送信されるコメントを所定の規則に基づいて規則的に出現させる表示制御部と、
を備える、情報表示装置。
(2)
前記表示制御部は自装置及び他装置から送信されるコメントを、水平方向に1メッセージ分間隔をあけて順番に出現させる、前記(1)に記載の情報処理装置。
(3)
前記表示制御部は、前記コンテンツ表示部が表示する前記共有コンテンツのウィンドウサイズが変化しても前記規則を変化させない、前記(1)または(2)に記載の情報処理装置。
(4)
前記表示制御部は、前記コンテンツ表示部が表示する前記共有コンテンツに重ねてプレイヤーにフィードバックを返すフィードバック入力部を表示させる、前記(1)から(3)のいずれかに記載の情報処理装置。
(5)
前記表示制御部は、前記フィードバック入力部に、感情的表現をフィードバックとして返すためのものを表示させる、前記(4)に記載の情報処理装置。
(6)
前記表示制御部は、他のプレイヤーからコメントが所定数以上送信されている場合に、前記フィードバック入力部に入力されたコメントが確定された時点で、コメントが送信できない旨を前記フィードバック入力部に表示する、前記(1)から(5)のいずれかに記載の情報処理装置。
(7)
前記表示制御部は、自装置からのものを含めた感情的表現によるフィードバックの頻度を、前記所定の領域への図柄の表示頻度により制御する、前記(1)から(6)のいずれかにに記載の情報処理装置。
(8)
前記表示制御部は、所定の条件を満たすユーザが操作する装置から送信されるコメントを、前記所定の領域の決まった位置に表示させる、前記(1)から(7)のいずれかにに記載の情報処理装置。
(9)
前記所定の条件は、コメントの送信回数が所定量以上である、前記(8)のいずれかにに記載の情報処理装置。
(10)
コンテンツを直接操作するプレイヤーによって操作される共有コンテンツと同一の内容を前記プレイヤー側とリアルタイムに表示するコンテンツ表示ステップと、
前記コンテンツ表示ステップが前記プレイヤー側とリアルタイムに共有して表示する前記コンテンツの所定の領域に、前記プレイヤーの操作を閲覧するのみの自装置及び他装置から送信されるコメントを所定の規則に基づいて規則的に出現させる表示制御ステップと、
を備える、情報表示方法。
(11)
コンピュータに、
コンテンツを直接操作するプレイヤーによって操作される共有コンテンツと同一の内容を前記プレイヤー側とリアルタイムに表示するコンテンツ表示ステップと、
前記コンテンツ表示ステップが前記プレイヤー側とリアルタイムに共有して表示する前記コンテンツの所定の領域に、前記プレイヤーの操作を閲覧するのみの自装置及び他装置から送信されるコメントを所定の規則に基づいて規則的に出現させる表示制御ステップと、
を実行させる、コンピュータプログラム。
【符号の説明】
【0192】
1 コンテンツ共有システム
10 ネットワーク
20 システムサーバ
30 Webサーバ
31 管理データベース
100a、100b、200a、200b、200c 情報処理装置
110 ハードウェア
120 OS(Operating System)
130 Webブラウザ
140 ブラウザ拡張アプリ
141 スクリプト管理部
142 通信部
210 ハードウェア
220 OS(Operating System)
230 Webブラウザ
240 専用Webアプリ
260 スクリプト
261 コンテンツ更新部
262 通信部


【特許請求の範囲】
【請求項1】
コンテンツを直接操作するプレイヤーによって操作されるコンテンツと同一の内容を前記プレイヤー側とリアルタイムに共有して表示するコンテンツ表示部と、
前記コンテンツ表示部が前記プレイヤー側とリアルタイムに共有して表示する前記コンテンツの所定の領域に、前記プレイヤーの操作を閲覧するのみの自装置及び他装置から送信されるコメントを所定の規則に基づいて規則的に出現させる表示制御部と、
を備える、情報表示装置。
【請求項2】
前記表示制御部は自装置及び他装置から送信されるコメントを、水平方向に1メッセージ分間隔をあけて順番に出現させる、請求項1に記載の情報処理装置。
【請求項3】
前記表示制御部は、前記コンテンツ表示部が表示する前記共有コンテンツのウィンドウサイズが変化しても前記規則を変化させない、請求項1に記載の情報処理装置。
【請求項4】
前記表示制御部は、前記コンテンツ表示部が表示する前記共有コンテンツに重ねてプレイヤーにフィードバックを返すフィードバック入力部を表示させる、請求項1に記載の情報処理装置。
【請求項5】
前記表示制御部は、前記フィードバック入力部に、感情的表現をフィードバックとして返すためのものを表示させる、請求項4に記載の情報処理装置。
【請求項6】
前記表示制御部は、他のプレイヤーからコメントが所定数以上送信されている場合に、前記フィードバック入力部に入力されたコメントが確定された時点で、コメントが送信できない旨を前記フィードバック入力部に表示する、請求項1に記載の情報処理装置。
【請求項7】
前記表示制御部は、自装置からのものを含めた感情的表現によるフィードバックの頻度を、前記所定の領域への図柄の表示頻度により制御する、請求項1に記載の情報処理装置。
【請求項8】
前記表示制御部は、所定の条件を満たすユーザが操作する装置から送信されるコメントを、前記所定の領域の決まった位置に表示させる、請求項1に記載の情報処理装置。
【請求項9】
前記所定の条件は、コメントの送信回数が所定量以上である、請求項8に記載の情報処理装置。
【請求項10】
コンテンツを直接操作するプレイヤーによって操作される共有コンテンツと同一の内容を前記プレイヤー側とリアルタイムに表示するコンテンツ表示ステップと、
前記コンテンツ表示ステップが前記プレイヤー側とリアルタイムに共有して表示する前記コンテンツの所定の領域に、前記プレイヤーの操作を閲覧するのみの自装置及び他装置から送信されるコメントを所定の規則に基づいて規則的に出現させる表示制御ステップと、
を備える、情報表示方法。
【請求項11】
コンピュータに、
コンテンツを直接操作するプレイヤーによって操作される共有コンテンツと同一の内容を前記プレイヤー側とリアルタイムに表示するコンテンツ表示ステップと、
前記コンテンツ表示ステップが前記プレイヤー側とリアルタイムに共有して表示する前記コンテンツの所定の領域に、前記プレイヤーの操作を閲覧するのみの自装置及び他装置から送信されるコメントを所定の規則に基づいて規則的に出現させる表示制御ステップと、
を実行させる、コンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate

【図40】
image rotate

【図41】
image rotate

【図42】
image rotate

【図43】
image rotate

【図44】
image rotate

【図45】
image rotate

【図46】
image rotate

【図47】
image rotate

【図48】
image rotate

【図49】
image rotate

【図50】
image rotate

【図51】
image rotate

【図52】
image rotate

【図53】
image rotate

【図54】
image rotate


【公開番号】特開2012−238218(P2012−238218A)
【公開日】平成24年12月6日(2012.12.6)
【国際特許分類】
【出願番号】特願2011−107400(P2011−107400)
【出願日】平成23年5月12日(2011.5.12)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】