[第1の実施形態]
本発明を実施するための第1の実施形態について、図面を参照して説明する。
図1は、本発明の第1の実施形態に係るアプリケーションシステム1の構成の一例を示す構成図である。このアプリケーションシステム1とは、出力タイミング制御システムの一例である。アプリケーションシステム1は、複数のユーザ端末10(ユーザ端末10−1、ユーザ端末10−2、・・・)と、複数のユーザ端末10にネットワーク5を介して接続されたアプリケーションサーバ30とを備えている。このユーザ端末10とは、端末装置の一例である。また、アプリケーションサーバ30とは、出力タイミング制御装置の一例である。ここで、複数のユーザ端末10は同様の構成であるため、特に区別しない場合には「−1」、「−2」等の記載を省略してユーザ端末10として説明する。本実施形態では、2台のユーザ端末10を示して説明するが、任意の台数のユーザ端末10がネットワーク5に接続されていてもよい。
ネットワーク5は、インターネット、WAN(Wide Area Network)、LAN(Local Area Network)、専用回線、またはこれらの組み合わせによって構成される情報通信ネットワークである。
また本実施形態においては、アプリケーションサーバ30と各ユーザ端末10とは、図示しない時刻情報提供サーバからの信号を受信することにより、時刻の同期がされている。
ユーザ端末10は、ユーザが利用するコンピュータ装置であり、例えばPC(Personal Computer)、タブレットPC、スマートフォン、ゲーム機器等が適用できる。ユーザ端末10は、表示部11と、音声出力部12と、出力制御部13と、操作受付部14とを備えている。このうち、表示部11および音声出力部12とは、出力部の一例である。ここで、ユーザ端末10−1(第1端末装置の一例)は、表示部11−1(第1出力部の一例)と、音声出力部12−1(第1出力部の一例)と、出力制御部13−1(第1出力制御部の一例)と、操作受付部14−1(第1操作受付部の一例)とを備えている。同様に、ユーザ端末10−2(第2端末装置の一例)は、表示部11−2(第2出力部の一例)と、音声出力部12−2(第2出力部の一例)と、出力制御部13−2(第2出力制御部の一例)と、操作受付部14−2(第2操作受付部の一例)とを備えている。
表示部11は、情報を表示するディスプレイを含んでおり、ネットワーク5を介してアプリケーションサーバ30から供給される画像情報に基づいて、画像を出力する。より具体的には、後述するように出力制御部13は、ネットワーク5を介してアプリケーションサーバ30から供給された画像情報に基づいて、画像信号を生成する。表示部11は、出力制御部13が生成した画像信号に基づいて、画像を出力する。
音声出力部12は、音声を出力するスピーカーを含んでおり、ネットワーク5を介してアプリケーションサーバ30から供給される音声情報に基づいて、音声を出力する。より具体的には、後述するように出力制御部13は、ネットワーク5を介してアプリケーションサーバ30から供給された音声情報に基づいて、音声信号を生成する。音声出力部12は、出力制御部13が生成した音声信号に基づいて、音声を出力する。
上述したように、表示部11と、音声出力部12とはいずれも出力部の一例であるが、本実施形態では、表示部11を出力部の一例として、ユーザ端末10−1の表示部11−1と、ユーザ端末10−2の表示部11−2とが表示する画像を同期させる例を、以下説明する。
ここで、図面を参照して本発明の概要を説明する。
図2は、ユーザ端末10の出力タイミングの一例を示すタイミング図である。ユーザ端末10は、ユーザ端末10の種類に応じた表示部11を備えている。ユーザ端末10の出力制御部13が表示部11への画像信号の供給を開始してから、表示部11において画像として出力されるまで、所定の経過時間がかかる。この経過時間を、本実施形態では出力遅延時間Tdと称する。図2に示すように、ユーザ端末10−1が備える表示部11−1の出力遅延時間Tdは出力遅延時間Td1と称し、ユーザ端末10−2が備える表示部11−2の出力遅延時間Tdは出力遅延時間Td2と称する。この出力遅延時間Tdは、ユーザ端末10の種類、出力制御部13から表示部11まで画像信号を伝達する伝達ケーブルの種類や長さ、伝達経路、表示部11において画像信号を画像に変換するのに用いる変換基板(図示省略)の種類、表示部11の種類(ブラウン管ディスプレイ、液晶ディスプレイ、プラズマディスプレイ等)やメーカー、付属品の有無(プロジェクタや外部モニタの有無等)などの諸々の条件によって異なるものであり、かつ、ユーザ端末10単体では出力遅延時間Tdの計測は困難なものである。また、出力遅延時間Tdは各ユーザ端末毎に異なり得るものである。本実施形態では、例えば、ユーザ端末10−1の表示部11−1は、出力制御部13−1から入力される画像信号に対して画像を出力する速度(応答速度)が比較的速いディスプレイ(例えば、ブラウン管ディスプレイ)を備えているものとする。一方、ユーザ端末10−2の表示部11−2は、出力制御部13−2から入力される画像信号に対して画像を出力する速度(応答速度)が比較的遅いディスプレイ(例えば、液晶ディスプレイ)を備えているものとする。なお、出力制御部13についての説明は後述する。
上述したように、ユーザ端末10毎に出力遅延時間Tdが異なり得るものであるため、各ユーザ端末10の出力制御部13から同一のタイミングで表示部11に対する画像信号の供給を開始しても、表示部11に画像が出力される出力タイミングToに差異が生じる。ここで、出力タイミングToとは、例えば何時何分何秒に画像信号が表示部11に画像として出力されたのかを示す情報である。したがって、図2に示すように、ユーザ端末10−1の出力制御部13−1とユーザ端末10−2の出力制御部13−2とが、アプリケーションサーバ30からそれぞれ供給された画像情報に基づいた画像信号を、それぞれ同時に表示部11−1と表示部11−2とに供給を開始した場合には、出力遅延時間Td1と出力遅延時間Td2との差(ずれ)に基づき、表示部11−1の出力タイミングTo1と、表示部11−2の出力タイミングTo2とに差(ずれ)、すなわち出力タイミングの差ΔToが生じる。そこで、本実施形態では、図3に示すように供給タイミングを設定する。
図3は、ユーザ端末10間の出力タイミングの差ΔToを低減させた場合の出力タイミングToの一例を示すタイミング図である。本実施形態では、表示部11−1の出力タイミングTo1が、表示部11−2の出力タイミングTo2と同期するように、ユーザ端末10−2の供給タイミングTf2を供給タイミングTf2’にしてタイミングを設定する。これにより、ユーザ端末10間において出力タイミングToの差ΔToを低減することができる。以下、このような制御について詳細に説明する。
出力制御部13は、出力部に対して出力信号を供給する。例えば、出力制御部13は、出力部としての表示部11に対しては、出力信号としての画像信号を供給する。この供給される画像信号には、出力制御部13が表示部11に画像信号の供給を開始するタイミング(供給タイミングTf)を示す供給タイミング情報が付与されている。ここで、供給タイミング情報とは、例えば何時何分何秒にその画像信号を出力制御部13から表示部11に対して供給を開始する、という情報である。したがって出力制御部13は、ネットワーク5を介して入力される画像情報に基づく画像信号を、その画像情報に付与されて入力される供給タイミング情報に基づいて、表示部11に供給する。
操作受付部14(検出部の一例)は、キーボード、マウス、タッチパネル等の入力デバイスを備えており、ユーザからの指示情報の入力を受け付ける。ここで、指示情報とは、ユーザがユーザ端末10に与える指示を示す情報である。この指示情報には、アプリケーションサーバ30へのログイン要求を示す情報や、ユーザが表示部11をタップする操作を示す情報などが含まれる。具体的には、操作受付部14は、ユーザから指示情報が入力されると、入力された指示情報を受け付けて操作情報を生成するとともに、当該指示情報を受け付けたタイミングを示す操作タイミング情報を生成する。ここで、操作情報とは、ユーザから入力された指示情報を受け付けた操作受付部14が当該指示情報に基づいて生成する、ユーザの操作を示す情報である。例えば、操作受付部14は、ユーザが表示部11をタップする操作を示す指示情報が入力されると、このタップ操作を示す指示情報を受け付けて、タップ操作を示す操作情報を生成する。このとき操作受付部14は、タップ操作を受け付けたタイミング(例えば、何時何分何秒にそのタップ操作を受け付けたか)を示す操作タイミング情報を生成する。
なお、本実施形態では一例として、操作受付部14はタッチパネルであり、表示部11と一体となっている場合について説明する。したがって上述のタップ操作とは、本実施形態においては、ユーザが表示部11に触れる操作を指す。
また、図示しないが、ユーザ端末10は、ネットワーク5を介してアプリケーションサーバ30と通信する通信部や、各種情報を記憶する記憶部等を備えている。
このユーザ端末10は、ネットワーク5を介して接続されたアプリケーションサーバ30によって提供されるアプリケーションサービスを、当該ユーザ端末10を利用するユーザに提供する。本実施形態では、ユーザ端末10は、ユーザから入力される指示情報に応じた操作情報をアプリケーションサーバ30に送信し、この送信した操作情報に応じてアプリケーションサーバ30によってアプリケーションの演算処理が行われた結果を反映した画面を、ストリーミング形式による動画としてアプリケーションサーバ30から受信し、ディスプレイに表示する。ユーザ端末10がアプリケーションサーバ30に送信する操作情報とは、例えばアプリケーションサーバ30へのログイン要求、アプリケーションの開始要求、またはアプリケーションの各種機能に応じた操作を示す情報である。このように、ユーザ端末10にアプリケーションプログラムをインストールすることなく、ユーザはアプリケーションを利用することができる。
また、ユーザは、1または複数のユーザ端末10をユーザ端末群Gとして利用することができる。このユーザ端末群Gとは、同一のユーザが利用するユーザ端末10の群である。本実施形態では、ユーザU1は、ユーザ端末10−1、およびユーザ端末10−2を利用するものとして説明する。この場合、ユーザ端末10−1、−2が、ユーザU1が利用するユーザ端末群Gである。
なお、本実施形態においては、ユーザがユーザ端末10を操作して端末IDとユーザIDとに基づいてログイン要求を行うと、アプリケーションサーバ30は、端末ID及びこれに対応するアプリケーション(AP)処理部IDを、記憶部31に記憶させる処理を行う。AP処理部35および記憶部31については後述する。一例として、同一のユーザ端末群Gに含まれる複数のユーザ端末10は、ログインを行ったユーザ端末10の順番に基づいて端末IDが付与され、同一のユーザ端末群Gに含まれるユーザ端末10の中で端末IDの値が最も小さいユーザ端末10が、その中で一番早くログインを行ったユーザ端末10になる。そして端末IDの値が最も小さいユーザ端末10がユーザの正面に、ユーザ正面のユーザ端末10の次に端末IDの値が小さいユーザ端末10がユーザの左側に、それぞれ配置されることを前提として、各ユーザ端末10の配置情報が設定される。具体的には、ユーザ端末10−1がユーザの正面に、ユーザ端末10−2がユーザの左側(左手側)に、それぞれ配置されることを前提に、ユーザ端末10の配置情報が設定される。なお、ユーザ端末10の配置情報は、このように同一のユーザ端末群Gに含まれる複数のユーザ端末10の端末IDの値に基づいて予め定められる場合に限られず、ユーザが設定したり、ユーザ端末10の位置を自動的に検出することによって動的に配置情報を設定したりしてもよい。ここで、配置情報とは、ユーザ端末10が配置されているユーザ端末10間の順序や位置関係を示す情報である。
次に、アプリケーションサーバ30の構成について説明する。
アプリケーションサーバ30は、ネットワーク5を介してユーザ端末10にアプリケーションを利用させるアプリケーションサービスを提供するコンピュータ装置であり、記憶部31と、取得部32と、受信部33と、アプリケーション制御部34と、送信部37と、同期部38と、設定部39(出力タイミング制御部)とを備えている。
記憶部31は、アプリケーションサーバ30が動作するために参照する各種情報を記憶する。例えば、記憶部31は、アプリケーションを実行するためのアプリケーションプログラムを予め記憶している。また、記憶部31は、本実施形態では図4に示すように、ユーザ端末10を識別する端末IDと、ユーザ端末群Gに属する複数のユーザ端末10にそれぞれ対応付けられているAP処理部35の識別情報(AP処理部ID)と、供給タイミングTf(供給タイミング情報の一例)とを、ユーザ端末情報として記憶する。なお、AP処理部35については、後述する。
例えば、図4(a)に示すように、記憶部31は、ユーザ端末10−1の端末ID(T001)と、ユーザ端末10−1の表示部11−1に表示する画像を生成するAP処理部35−1のAP処理部ID(AP01)と、ユーザ端末10−1の表示部11−1の供給タイミングTf(供給タイミングTf1−1等)とを関連付けて、ユーザ端末情報として記憶する。同様に、図4(b)に示すように、記憶部31は、ユーザ端末10−2の端末ID(T002)と、ユーザ端末10−2の表示部11−2に表示する画像を生成するAP処理部35−2のAP処理部ID(AP02)と、AP処理部35により生成される画像情報(コマ画像)の画像ID(Fg01等)と、ユーザ端末10−2の表示部11−2の供給タイミング(供給タイミングTf2−1等)とを関連付けて記憶する。
図5は、本実施形態の記憶部31が記憶する出力タイミング情報の一例を示す表である。同図に示すように、記憶部31は、本実施形態ではユーザ端末10を識別する端末IDと、AP処理部35のAP処理部IDと、各ユーザ端末10間の出力タイミングの差ΔToとを関連付けて記憶する。出力タイミングの差ΔToは、ユーザ端末10間で同時に各出力制御部13から画像信号を表示部11に対して出力したときに生じる、各表示部11に表示されるまでの時間の差を示す情報である。この出力タイミングの差ΔToの詳細な算出方法は後述するが、概略として、ユーザ端末10−1の出力タイミングTo1と、ユーザ端末10−2の出力タイミングTo2との差分である各ユーザ端末間の出力タイミングの差ΔToを算出する。
例えばユーザ端末10−1を基準とする場合は、図5に示すように、記憶部31には、ユーザ端末10−1の端末ID(T001)と出力タイミングの差ΔToとを関連付けて、出力タイミング情報として記憶する。但しこの場合、ユーザ端末10−1を基準とするため、出力タイミングの差ΔToは0(ゼロ)と記憶している。また、ユーザ端末10−2の端末ID(T002)と、ユーザ端末10−1を基準とした出力タイミングの差ΔTo2とを関連付けて、出力タイミング情報として記憶する。
再び、図1を参照して、アプリケーションサーバ30の構成について説明を続ける。
受信部33は、ユーザ端末10から送信される操作情報を受信する。具体的には、受信部33は、アプリケーションサーバ30へのログイン時にユーザ端末10からネットワーク5を介して送信されるログイン要求を示す操作情報を受信する。また、受信部33は、ユーザ端末10の操作受付部14が受け付けた、ユーザが表示部11をタップする操作を示す操作情報を受信する。
アプリケーション制御部34は、複数のユーザ端末10のそれぞれから送信される操作情報に基づいて所定の演算処理を行い、演算結果に基づく動画を生成する、各ユーザ端末10のそれぞれに対応した複数のアプリケーション(AP)処理部35(AP処理部35−1、AP処理部35−2、・・・)を備えている。ここで、複数のAP処理部35は同様の構成であるため、特に区別しない場合には「−1」、「−2」等の記載を省略してAP処理部35として説明する。アプリケーション制御部34は、ユーザ端末10から、アプリケーションの利用要求である指示情報を、受信部33を介して受信すると、予め記憶部31に記憶されているアプリケーションプログラムを読み出して、アプリケーションの実行インスタンスであるAP処理部35を自身の記憶領域に生成する。アプリケーション制御部34は、アプリケーションを利用するひとつのユーザ端末10に対してひとつのAP処理部35を生成するため、ユーザ端末10と同数のAP処理部35を生成する。すなわち、アプリケーション制御部34は、各ユーザ端末10に対応した各AP処理部35を生成する。本実施形態では、ユーザ端末10−1に対応するAP処理部35はAP処理部35−1とし、ユーザ端末10−2に対応するAP処理部35はAP処理部35−2としている。
アプリケーション(AP)処理部35は、自身に対応するユーザ端末10から送信される指示情報に基づいて所定の演算処理を行い、演算結果に基づく動画を生成する。AP処理部35が行う演算処理は、例えば、ゲームやデスクトップサービス等のアプリケーションを提供するための処理である。このゲームには、例えばレースゲーム等のスポーツゲーム、格闘ゲーム等のアクションゲーム、FPS(First Person shooter)等のシューティングゲーム、ロールプレイングゲーム、パズルゲーム、タイミングゲーム、シミュレーションゲームなどが適用できる。あるいは、AP処理部35は、ワープロソフト、表計算ソフト、プレゼンテーションソフト等のオフィスソフト等のアプリケーションを実行するものであってもよい。
このAP処理部35は、ユーザ端末群Gに含まれるユーザ端末10のそれぞれから送信される指示情報に基づいて所定の演算処理を行い、演算結果に基づく画像情報を生成する。次に、AP処理部35が生成する画像情報の一例を、図6を参照して説明する。
図6は、本実施形態のAP処理部35が生成する出力情報の一例を示す図である。ここでは、タイミングゲームを一例に説明する。このタイミングゲームとは、音声出力部12が出力する音楽に合わせて表示部11の下(+Y)方向に移動するオブジェクトOBによって示される操作位置および操作タイミングの指示と、ユーザによる操作との一致度に基づいて算出されるスコアを競うゲームである。ここでの出力情報とは、ゲーム画面におけるオブジェクトOBを示す画像情報である。
ここで、表示部11に表示されるオブジェクトOBについて説明する。オブジェクトOBとは、ユーザによる操作の操作位置および操作タイミングの指示を示す画像である。このオブジェクトOBには、一例として、オブジェクトOB1〜OB3が含まれる。以下、これらオブジェクトOBのうちの、オブジェクトOB1について説明する。このオブジェクトOB1とは、“○”の画像である。表示部11には、オブジェクトOB1が表示される位置としての線分L1が設定されている。オブジェクトOB1は、この線分L1の上端(−Y側端)において出現し、時間の経過とともに表示部11の下(+Y)方向に移動して、線分L1と交差する基準線SLを通過し、表示部11の下端(+Y側端)において消滅するように表示される。また、操作位置とは、各オブジェクトOBに対してユーザが操作をすべき表示部11上の位置である。この操作位置には、一例として、オブジェクトOB1〜OB3にそれぞれ対応する第1操作位置P1と、第2操作位置P2と、第3操作位置P3とが含まれる。この第1操作位置P1とは、線分L1と基準線SLとの交点の位置である。ユーザは、表示部11にオブジェクトOB1が表示されている場合には、第1操作位置P1をタップする。また、操作タイミングとは、各オブジェクトOBに対してユーザが操作をすべきタイミングである。具体的には、オブジェクトOB1に対してユーザが操作すべきタイミングとは、時間の経過とともに表示部11の下(+Y)方向に移動して表示されるオブジェクトOB1が、線分L1と基準線SLとの交点(すなわち、第1操作位置P1)に表示されたタイミングである。つまり、オブジェクトOB1が示す操作タイミングとは、オブジェクトOB1が第1操作位置P1に表示されたタイミングである。ユーザは、表示部11に表示されたオブジェクトOB1が、時間の経過とともに表示部11の下(+Y)方向に移動して線分L1と基準線SLとの交点(すなわち、第1操作位置P1)に表示されたタイミングにおいて、第1操作位置P1をタップする。
ここまで、オブジェクトOB1について説明したが、オブジェクトOB2およびオブジェクトOB3についてもオブジェクトOB1と同様である。具体的には、オブジェクトOB2とは、“△”の画像であり、オブジェクトOB3とは、“□”の画像である。表示部11には、オブジェクトOB2が表示される位置としての線分L2が設定されている。オブジェクトOB2は、この線分L2の上端(−Y側端)において出現し、時間の経過とともに表示部11の下(+Y)方向に移動して、線分L2と交差する基準線SLを通過し、表示部11の下端(+Y側端)において消滅するように表示される。同様に、表示部11には、オブジェクトOB3が表示される位置としての線分L3が設定されている。オブジェクトOB3は、この線分L3の上端(−Y側端)において出現し、時間の経過とともに表示部11の下(+Y)方向に移動して、線分L3と交差する基準線SLを通過し、表示部11の下端(+Y側端)において消滅するように表示される。また、第2操作位置P2とは、線分L2と基準線SLとの交点の位置である。第3操作位置P3とは、線分L3と基準線SLとの交点の位置である。ユーザは、表示部11にオブジェクトOB2が表示されている場合には、第2操作位置P2をタップする。同様に、ユーザは、表示部11にオブジェクトOB3が表示されている場合には、第3操作位置P3をタップする。また、オブジェクトOB2に対してユーザが操作すべきタイミングとは、オブジェクトOB2が示す操作タイミングとは、オブジェクトOB2が第2操作位置P2に表示されたタイミングである。同様に、オブジェクトOB3に対してユーザが操作すべきタイミングとは、オブジェクトOB3が第3操作位置P3に表示されたタイミングである。以下、オブジェクトOB1〜OB3を区別しない場合には、オブジェクトOBと総称して説明する。
上述したように、オブジェクトOBの画像は、表示部11の上端(−Y側端)において出現し、時間の経過とともに表示部11の下(+Y)方向に移動して基準線SLを通過し、表示部11の下端(+Y側端)において消滅するように表示される。このとき、オブジェクトOBの画像は、表示部11の上端(−Y側端)において出現してから表示部11の下端(+Y側端)において消滅するまでの時間が、時間(a+b)となる表示部11上の移動速度(例えば、単位時間当たりの移動画素数)によって(+Y)方向に移動するように表示される。ここで、時間aとは、オブジェクトOBの画像が基準線SLに達してから表示部11の下端(+Y側端)において消滅するまでの時間である。また、時間bとは、オブジェクトOBの画像が表示部11の上端(−Y側端)において出現してから基準線SLに達するまでの時間である。この時間a及び時間bは、例えばゲーム中に音声出力部12が出力する音楽のテンポに基づいて、予め設定されている。このゲームをプレイするユーザは、表示部11の下(+Y)方向に移動するオブジェクトOBの画像が基準線SLを通過するタイミングと、操作のタイミングとが一致するようにして、表示部11に対する操作(例えば、タップ)を行う。
ここで、AP処理部35は、それぞれ対応するユーザ端末10が備える表示部11に表示されるオブジェクトOBの画像情報を生成する。具体的には、AP処理部35−1は、ユーザ端末10−1が備える表示部11−1に表示されるオブジェクトOBの画像情報を生成する。同様に、AP処理部35−2は、ユーザ端末10−2が備える表示部11−2に表示されるオブジェクトOBの画像情報を生成する。このとき、各AP処理部35は、同期部38によって同期された画像情報の生成処理の進行度合いによって、オブジェクトOBの画像情報を生成する。この同期部38が、AP処理部35の処理進行度合いを同期する具体的な構成については後述する。
このように、AP処理部35は、アプリケーションサーバ30が備えるGPU(Graphics Processing Unit)等を用いてアプリケーション画面のレンダリングを行い、時系列とともに変化するコマ画像を生成する。そして、AP処理部35は、同期部38によって同期されて生成したコマ画像と、自身のAP処理部IDとを関連付けて、送信部37に出力する。AP処理部35は、このコマ画像の生成と、生成したコマ画像の設定部39への送信を連続して行うことにより、コマ画像の連続である動画を生成する。
再び、図1を参照して、アプリケーションサーバ30の構成について説明を続ける。
本実施形態における設定部39は、各AP処理部35のAP処理部ID等と関連付けて、供給タイミング情報を予め記憶部31に記憶する機能と、AP処理部ID等に関連付けて記憶部31が記憶している供給タイミング情報Tfを取得し、AP処理部が生成した画像情報に付加する機能を有する。さらに、後述のように供給タイミング情報を設定するための演算を行う機能を有するとともに、この演算の結果に応じて記憶部31に供給タイミング情報を設定する機能を有する。さらに、設定された供給タイミング情報を取得し、AP処理部が生成した画像情報に付加する機能をも有する。供給タイミング情報を設定するための演算を行う機能については後述する。ここで、供給タイミング情報の設定とは、供給タイミングを決定する際、出力タイミングの差ΔToを考慮して決定することを意味する。
AP処理部35によって生成された画像情報に、設定部39が所定の供給タイミング情報(供給タイミングTf)を付加する機能について説明する。例えばAP処理部35−1により生成された画像情報であるコマ画像に、記憶部31から取得部32を介して取得した、AP処理部35−1に関連付けられている供給タイミング情報(供給タイミングTf1)を付加し、送信部37に受け渡す。同様に、AP処理部35−2により生成された画像情報であるコマ画像に、記憶部31から取得した、AP処理部35−2に関連付けられている供給タイミング情報(供給タイミングTf2)を付加し、送信部37に受け渡す。
送信部37は、AP処理部35によってユーザ端末群Gに含まれるユーザ端末10のそれぞれに応じて生成され、設定部39により供給タイミング情報が付加された画像情報を、ユーザ端末群Gに含まれるユーザ端末10のそれぞれに送信する。具体的には、送信部37は、AP処理部35が生成したコマ画像を送信する。ここで、送信部37は、例えばストリーミング形式により動画を送信する。ストリーミングとは、時系列に応じた動画のデータを受信しながら順次再生させる転送、再生方式である。これにより、指示情報に応じて変化する画面をユーザ端末10に表示させることができる。上述したように、この送信部37がユーザ端末10に対して送信する画像情報には、ユーザ端末10の出力制御部13が表示部11に画像信号を供給するタイミングを示す供給タイミング情報が含まれている。一例として、送信部37がユーザ端末10−1に対して送信する画像情報には、ユーザ端末10−1の出力制御部13−1が表示部11−1に対してこの画像情報に基づく画像信号を供給する供給タイミングTf1を示す供給タイミング情報が含まれている。この供給タイミングTf1を示す供給タイミング情報とは、ユーザ端末10−1の端末ID(T001)に関連付けてユーザ端末情報として記憶部31が記憶する供給タイミング情報である。
取得部32は、ユーザ端末10の表示部11が画像情報を出力したタイミングを示す出力タイミング情報を取得する。すなわち、上述したように、ユーザ端末10の出力制御部13は、アプリケーションサーバ30から供給される供給タイミング情報が示す供給タイミングTfによって、画像信号を表示部11に供給する。ここで、ユーザ端末10を利用するユーザが、上述した図6に示す基準線SLに達したオブジェクトOBの画像が表示されたタイミングによって、操作(例えば、タップ)を行った場合には、この操作タイミング情報は、表示部11の基準線SLにオブジェクトOBが表示されたタイミングを示しているといえる。つまり、取得部32は、表示部11の基準線SLにオブジェクトOBが表示されたタイミングを示す操作タイミング情報を、出力タイミング情報として取得する。ここで、出力タイミング情報とは、表示部11が画像情報を出力した出力タイミングToを示す情報である。具体的には、取得部32は、受信部33がユーザ端末10からネットワーク5を介して受信した操作タイミング情報を、ユーザ端末10の表示部11の出力タイミングToを示す出力タイミング情報として取得する。一例として、取得部32は、表示部11−1の出力タイミングTo1を示す出力タイミング情報と、表示部11−2の出力タイミングTo2を示す出力タイミング情報とを取得する。
同期部38は、AP処理部35の処理進行度合いを相互に同期させる。すなわち、同期部38は、AP処理部35から入力される同期信号に基づいて、各AP処理部35の処理進行度合いを同期させる。ここで同期信号とは、AP処理部35の処理進行度合いを同期させる信号である。具体的には、AP処理部35は、ユーザ端末群Gに含まれるユーザ端末10が送信した指示情報を取得した場合に、同期部38に対して同期信号を出力する。この同期信号は、ユーザ端末10が送信した指示情報であってもよく、ユーザ端末10が送信した指示情報を取得したことを示す情報であってもよい。同期部38は、AP処理部35が出力した同期信号が入力されると、同一のユーザ端末群Gに含まれるユーザ端末10に対応するAP処理部35(つまり、同一のユーザ端末群Gに含まれるAP処理部35)のうち、他のAP処理部35に、指示情報を出力する。上述したように、AP処理部35は、ユーザ端末群Gに含まれるユーザ端末10のそれぞれから送信される指示情報に基づいて所定の演算処理を行い、演算結果に基づく画像情報を生成する。このようにして同期部38は、各AP処理部35の処理進行度合いを同期させる。
なお、同期部38は、アプリケーション制御部34内に、AP処理部35とは別に備えることとしても良いし、AP処理部35自身が備えていてもよい。例えば、AP処理部35は、上述した同期部38の構成を有しており、指示情報が入力された場合に、同一のユーザ端末群Gに含まれる他のAP処理部に指示情報を出力することによって、互いに同期して画像情報を生成する構成であってもよい。
次に、設定部39が供給タイミング情報を設定する構成について詳細に説明する。ここでは、一例として、ユーザ端末10−2についての供給タイミングTf2を設定する場合について説明する。
まず、設定部39は、ユーザ端末10−1の出力制御部13−1が表示部11−1に画像信号を供給する供給タイミングTf1を示す供給タイミング情報を、記憶部31から取得部32を介して取得する。また、設定部39は、ユーザ端末10−2の出力制御部13−2が表示部11−2に画像信号を供給する供給タイミングTf2を示す供給タイミング情報を、記憶部31から取得部32を介して取得する。
次に、設定部39は、各ユーザ端末10についての出力タイミング情報を取得部32から取得する。具体的には、設定部39は、ユーザ端末10−1の表示部11−1の出力タイミングTo1を示す出力タイミング情報と、ユーザ端末10−2の表示部11−2の出力タイミングTo2を示す出力タイミング情報とを、取得部32から取得する。この出力タイミング情報とは、取得した供給タイミングTfによって、出力制御部13が表示部11に画像信号を供給したことにより表示部11が画像情報を出力した出力タイミングToを示す出力タイミング情報である。
次に、設定部39は、取得した出力タイミング情報が示す、各ユーザ端末10間の出力タイミングの差(ずれ)を算出する。
一例としてユーザ端末10−1の出力タイミングTo1を基準とすると、出力タイミングTo2から出力タイミングTo1を減算する演算を行い、出力タイミングの差ΔToを算出する。かかる演算を行うことにより、各ユーザ端末10間における出力タイミングの差、すなわちユーザ端末10−1とユーザ端末10−2とで同時に画像情報(コマ画像)に基づく画像信号を出力制御部13から表示部11に対して出力した場合に、ユーザ端末10−1を基準としてユーザ端末10−2は画像情報が表示部11に表示されるのがどの程度早いか(または遅いか)を算出することができる。
次に、設定部39は、算出した出力タイミングの差ΔToをユーザ端末10の端末IDと関連付けて記憶部31に記憶させる。具体的には、設定部39は、ユーザ端末10−1の出力タイミングTo1を基準にしたユーザ端末10−2についての出力タイミングの差ΔTo2を算出し、算出した出力タイミングの差ΔTo2をユーザ端末10−2の端末ID(T002)と関連付けて記憶部31に記憶させる。なお、例えば、ユーザ端末10−2の出力タイミングTo2を基準にしたユーザ端末10−1についての出力タイミングの差ΔTo1を算出してもよい。
次に、設定部39は、記憶部31が記憶する出力タイミングの差に基づいて、供給タイミング情報を算出する。具体的には、設定部39は、ユーザ端末10の端末IDと関連付けて記憶部31が記憶する出力タイミングの差ΔToを取得する。次に、設定部39は、既に取得しているユーザ端末10−2の供給タイミングTf2と、取得した出力タイミングの差ΔToとに基づいて、供給タイミングTf2’を算出する。より具体的には、設定部39は(式1)によって供給タイミングTf2’を算出する。
供給タイミングTf2’=供給タイミングTf2+出力タイミングの差ΔTo…(式1)
上述したように、この出力タイミングの差ΔToの一例が、ユーザ端末10−1の出力タイミングTo1を基準にしたユーザ端末10−2についての出力タイミングの差ΔTo2である。
次に、設定部39は、算出した供給タイミングTf2’を、ユーザ端末10−2についての新たな供給タイミング情報として、ユーザ端末10−2の端末ID(T002)と関連付けて記憶部31に記憶させる。そして、設定部39は、設定された供給タイミング情報と、AP処理部35が生成した画像情報とを関連付けて、送信部37に受け渡し、送信部37は受け渡された情報をユーザ端末10に供給する。ユーザ端末10の出力制御部13は、アプリケーションサーバ30から供給された画像情報に付与された供給タイミング情報に応じたタイミングによって、表示部11に画像信号を出力する。このようにして設定部39が供給タイミングを設定することにより、出力遅延時間Tdに差異があるユーザ端末10間において、画像情報が出力される出力タイミングToの差異を低減する。
次に、設定部39が供給タイミング情報を設定して、各ユーザ端末10の出力タイミングを一致させる構成を、図7および図8を参照して説明する。以下、一例として、複数のAP処理部35(AP処理部35−1、およびAP処理部35−2)が生成した画像情報に基づいて、各AP処理部35に対応する複数のユーザ端末10(ユーザ端末10−1、およびユーザ端末10−2)が画像を表示する構成を説明する。
図7は、本実施形態による設定前の供給タイミングTfの一例を示すタイミング図である。ここで、設定部39は、ユーザ端末10−1の出力制御部13−1が表示部11−1に画像信号を供給する供給タイミングTf1と、ユーザ端末10−2の出力制御部13−2が表示部11−2に画像信号を供給する供給タイミングTf2とが一致するタイミングになるように、供給タイミングTf1と、供給タイミングTf2とを予め設定している。具体的には、設定部39は、供給タイミングTf1および供給タイミングTf2をいずれも時刻t7に設定している。設定部39は、設定した供給タイミングTf1および供給タイミングTf2を、記憶部31に供給タイミング情報として予め記憶させている。また、ユーザ端末10−1、−2の出力遅延時間Tdをそれぞれ、出力遅延時間Td1、出力遅延時間Td2として、以下説明する。また、一例として、出力遅延時間Td1は、出力遅延時間Td2に比して相対的に短い時間であるとして、以下説明する。
まずユーザ端末10−1の表示部11−1に画像を表示させるまでの動作について説明すると、AP処理部35−1は、時刻t0から時刻t1において、自身に対応するユーザ端末10−1から送信される操作情報に基づいて所定の演算処理を行う。次に、AP処理部35−1は、時刻t1から時刻t2において、演算結果に基づく動画情報を画像情報として生成する。そして生成した画像情報を設定部39に受け渡す。次に設定部39は、予め設定している供給タイミング情報を記憶部31から取得する。具体的には、設定部39は、AP処理部ID(AP01)に関連付けて記憶部31が供給タイミング情報として予め記憶している供給タイミングTf1を取得する。この供給タイミングTf1とは、ユーザ端末10−1の出力制御部13−1が出力部(表示部11−1)に動画情報を供給するタイミングが、時刻t7であることを示す情報である。そして取得した供給タイミングTf1を、AP処理部35−1から受け取った画像情報に付加して送信部37に受け渡す。次に、送信部37は、時刻t2から時刻t3において、生成された動画情報をストリーミング形式にエンコードする。次に、送信部37は、時刻t3から時刻t4において、エンコードした動画情報をユーザ端末10−1に送信する。
次に、ユーザ端末10−1は、時刻t4から時刻t5において、エンコードされた動画情報を受信する。次に、ユーザ端末10−1の出力制御部13−1は、受信した動画情報に含まれる供給タイミング情報に基づいて、受信した動画情報を出力するタイミングに達するまで表示待ちを行う。具体的には、出力制御部13−1は、出力するタイミングが時刻t7であることを示す供給タイミング情報に基づいて、時刻t5から時刻t7において、表示待ちを行う。次に、出力制御部13−1は、受信した動画情報に基づく画像(動画)を、時刻t7において、出力部(表示部11−1)に供給する。ユーザ端末10−1の出力部(表示部11−1)は、時刻t7において供給された動画情報に基づく画像(動画)を表示する。ここで、表示部11−1は、供給タイミングTf1から出力遅延時間Tdだけ遅延したタイミング、つまり時刻t8−1において、供給された動画情報に基づく画像(動画)を表示する。
また、AP処理部35−1およびユーザ端末10−1と同様にして、AP処理部35−2およびユーザ端末10−2は図7に示すように画像(動画)を生成し、生成した画像(動画)を表示する。ここで、AP処理部35−2が生成する画像情報にも、設定部39によって付加された、時刻t7を出力タイミングとして設定された供給タイミング情報が含まれている。これにより、ユーザ端末10−2の出力部(表示部11−2)は、時刻t7において供給された動画情報に基づく画像(動画)を表示する。ここで、表示部11−2は、供給タイミングTf2から出力遅延時間Td2だけ遅延したタイミング、つまり時刻t8−2において、供給された動画情報に基づく画像(動画)を表示する。すなわち、供給タイミングの設定前では、ユーザ端末10−1とユーザ端末10−2とでは、時刻t8−1と時刻t8−2との時間差(=出力タイミングの差ΔTo)だけ、表示部11−1、11−2に表示されるタイミングにずれが生じ得る。
この出力部(表示部11)への表示がされたことに応じて、ユーザからの操作、具体的には図6に示すような画像において、第1操作位置P1乃至第3操作位置P3での操作(タップ)を受け付ける。この操作を受け付けると、ユーザ端末10の操作受付部14は、操作タイミング情報を生成し、アプリケーションサーバ30に送信する。アプリケーションサーバ30の取得部32は、操作タイミング情報を出力タイミング情報として、ユーザ端末10から、受信部33を介して取得する。
そして設定部39は、上述したように、記憶部31から取得部32を介して取得した供給タイミング情報と、取得部32が取得した出力タイミング情報とに基づいて、供給タイミング情報を設定する。具体的には、設定部39は、各ユーザ端末10について、記憶部31から取得した供給タイミング情報(供給タイミングTf)と、取得部32が取得した出力タイミング情報(出力タイミングTo)とに基づいて、各ユーザ端末10間の出力遅延時間Tdの差分(出力タイミングの差ΔTo)を算出する。本実施形態では上述の通り、設定前の供給タイミングTfをユーザ端末10−1とユーザ端末10−2とで同時に設定しているため、ユーザ端末10−1の出力タイミングTo1とユーザ端末10−2との差分を求めることにより、出力タイミングの差ΔToを算出する。ここでは、ユーザ端末10−1を基準として、ユーザ端末10−2の出力タイミングの差ΔTo2を算出する。
さらに、算出した出力タイミングの差ΔToに応じたタイミングだけ、供給タイミングTfを早いタイミングに設定する。本実施形態に沿って説明すると、設定部39は、図4に示すように記憶部31に記憶している供給タイミングTf2(供給タイミングTf2−1等)のうち、まだ画像情報に付加していないものを、設定前の供給タイミングTf2から、出力タイミングの差ΔTo2だけ早い供給タイミングTf2’に更新する。図8を用いて説明すると、設定部39は、時刻t7に設定されている供給タイミングTf2を、時刻t7から出力タイミングの差ΔToだけ早い時刻t7−2に設定する。この場合、供給タイミングTf2’とは、時刻t7−2である。
図8は、本実施形態による設定後の供給タイミングTfの一例を示すタイミング図である。同図が示す各動作のうち、時刻t0から時刻t6までは、図7を参照して説明した設定前の動作と同一である。上述したように、設定部39が供給タイミングTf2を供給タイミングTf2’に設定した後においては、ユーザ端末10−2の出力部(表示部11−2)は、時刻t7−2において供給された動画情報に基づく画像(動画)を表示する。これにより、ユーザ端末10−1、およびユーザ端末10−2は、いずれも、受信した動画情報に基づく画像(動画)を時刻t8において表示する。このようにして、本実施形態のアプリケーションシステム1は、各ユーザ端末10が備える表示部11の出力遅延時間Tdについて、各表示部11間の差異があっても、各ユーザ端末10において同じタイミングで画像(動画)を表示させることができる。
なお、図7及び図8において、AP処理部35−1とAP処理部35−2との処理タイミング(例えば演算処理の開始タイミングt0)を異ならせているのは、同期部38によってAP処理部35−1とAP処理部35−2とを同期させても、僅かに処理開始のタイミングがずれる場合があり得ることを示している。かかる場合であっても、各AP処理部35が生成した画像(動画)が表示されるタイミング(例えば、時刻t8)がそれぞれ一致していればよく、これによりユーザ端末10毎の動画や音声の出力タイミングを同期させることができる。
次に、図9を参照して、本実施形態によるアプリケーションシステム1の動作例を説明する。図9は、本実施形態によるアプリケーションシステム1の動作例を示す図である。本実施形態のアプリケーションシステム1は、設定モードと通常動作モードとの2種類の動作モードを有している。このうち、設定モードにおいては、アプリケーションシステム1は、供給タイミング情報を設定する。また、通常動作モードにおいては、アプリケーションシステム1は、設定モードにおいて設定した供給タイミング情報を含む出力情報をユーザ端末10に供給する。この2つの動作モードのうち、まず設定モードについて説明する。
[設定モードの動作]
ユーザによるユーザ端末10−1、−2の操作と、図示しないログインサーバにおける処理とで、所定のログイン処理に成功すると、ユーザのログイン情報はアプリケーションサーバ30に受け渡される。そしてアプリケーションサーバ30の受信部33が、ユーザ端末10−1、−2から送信された利用開始要求を受信すると(ステップS10−1、−2)、アプリケーション制御部34は、ユーザ端末10−1、−2に対応するAP処理部35−1、−2を生成する(ステップS30−1、−2)。
AP処理部35−1、−2は、ユーザ端末10−1、−2から送信される指示情報に応じた所定の演算処理を行い、演算結果に基づくコマ画像を生成し、送信部37に出力する処理を開始する(ステップS40−1、−2)。このとき、ユーザ端末10−1に送信される動画には、設定部39によって供給タイミング情報が付加される。具体的には、ユーザ端末10−1に送信される動画の各コマ画像には、図4に示すような供給タイミングTf1−1、Tf1−2…を示す供給タイミング情報が設定部39によってそれぞれ付加される。ユーザ端末10−2に送信される動画の各コマ画像についても、ユーザ端末10−2に送信される動画の各コマ画像と同様にして、設定部39によって供給タイミング情報がそれぞれ付加される。
送信部37は、AP処理部35−1、−2から出力されるコマ画像をバッファリングし、動画配信に適したビットレートにエンコードしてストリーミング形式の動画を生成する処理を開始する(ステップS50)。
送信部37は、動画をストリーミング形式によって、ユーザ端末10−1、−2に動画を送信する(ステップS60−1、−2)。上述したように、この動画には、供給タイミング情報が付加されている。
ユーザ端末10−1の出力制御部13−1は、供給された画像情報に付加されている供給タイミング情報に応じたタイミングによって、表示部11−1に対して、この画像情報に基づく画像信号を出力する。表示部11−1は、出力制御部13−1から画像信号が入力されると、画像信号が入力されたタイミングから出力遅延時間Td(例えば、出力遅延時間Td1)だけ遅延したタイミングにおいて、供給された動画情報に基づく画像(動画)を表示する。ユーザ端末10−2の出力制御部13−2も、出力制御部13−1と同様にして、供給された画像情報に付加されている供給タイミング情報に応じたタイミングによって、表示部11−2に対して、この画像情報に基づく画像信号を出力する。表示部11−2は、出力制御部13−2から画像信号が入力されると、画像信号が入力されたタイミングから出力遅延時間Td(例えば、出力遅延時間Td2)だけ遅延したタイミングにおいて、供給された動画情報に基づく画像(動画)を表示する。
次に、ユーザ端末10−1は、操作受付部14−1によってユーザからの操作を受け付ける。この操作を受け付けると、操作受付部14−1は、操作タイミング情報を生成し、アプリケーションサーバ30に送信する(ステップS70−1)。ユーザ端末10−2においても、ユーザ端末10−1と同様に、操作受付部14−2によってユーザからの操作を受け付ける。この操作を受け付けると、操作受付部14−2は、操作タイミング情報を生成し、アプリケーションサーバ30に送信する(ステップS70−2)。
アプリケーションサーバ30は、取得部32によって、受信部33がステップS70−1、−2において受信した操作タイミング情報を出力タイミング情報として取得する。そしてアプリケーションサーバ30は、設定部39によって、上述したように、記憶部31から取得した供給タイミング情報と、取得部32が取得した出力タイミング情報とに基づいて供給タイミング情報を算出し、設定する。すなわち、設定部39は、予め設定されている供給タイミング情報を設定する。このように供給タイミング情報を設定することにより、設定部39は、ユーザ端末10間における出力タイミングの差ΔToの差異を低減することができる。
[通常モードの動作]
通常動作モードにおいて、アプリケーションサーバ30は、上述した各ステップのうち、ステップS10−1、−2からステップS60−1、−2までの動作を繰り返し行う。これら各ステップのうち、ステップS40−1、−2において、AP処理部35−1、−2は、ユーザ端末10−1、−2から送信される指示情報に応じた所定の演算処理を行い、演算結果に基づくコマ画像を生成し、送信部37に出力する処理を開始する。このとき、ユーザ端末10−1に送信される動画には、不図示の設定部39によって供給タイミング情報が付加される。ここで、設定部39によって動画に負荷される供給タイミング情報とは、上述した設定モードにおいて設定された供給タイミング情報である。したがって、いったん設定モードで供給タイミング情報を設定すれば、アプリケーションサーバ30は、ユーザ端末10−1、−2間における出力タイミングの差ΔToの差異を低減した状態でアプリケーションをユーザ端末10に提供することができる。
以上説明したように、本実施形態のアプリケーションシステム1は、取得部32と、設定部39とを備えている。この取得部32は、所定の画像情報を出力する表示部11(出力部)に対して画像信号を供給する出力制御部13が、表示部11(出力部)に画像信号を供給するタイミングを示す供給タイミング情報と、表示部11(出力部)が画像情報を出力したタイミングを示す出力タイミング情報とを取得する。また、設定部39は、取得部32が取得した供給タイミング情報と出力タイミング情報とに基づいて、供給タイミング情報を設定し、設定した当該供給タイミング情報に基づいて、出力制御部13に画像情報を供給させる。
これにより、本実施形態のアプリケーションシステム1は、供給タイミング情報と、出力タイミング情報とに基づいて、供給タイミング情報を設定することができる。したがって、アプリケーションシステム1は、ユーザ端末10の出力部(例えば、表示部11)の出力遅延時間Tdに、ユーザ端末10間において互いに差異が生じていても、出力部から画像情報が出力されるタイミングを揃えることができる。つまり、アプリケーションシステム1は、複数のユーザ端末10を用いてゲームを提供する場合に、ユーザ端末10間における出力タイミングのずれを低減することができる。
なお、アプリケーションシステム1は、算出した各ユーザ端末10間における出力タイミングの差ΔToを記憶部31に記憶させるとともに、記憶部31が記憶している出力タイミングの差ΔToに基づいて、供給タイミング情報を設定する。これにより、アプリケーションシステム1は、1回だけ出力タイミングの差ΔToを算出すれば、その後に出力タイミングの差ΔToを算出することなく、供給タイミング情報を設定することができる。したがって、例えば、アプリケーションシステム1は、出力遅延時間Tdが未知のユーザ端末10を新たにユーザ端末群Gに追加する際の初期設定において、出力タイミングの差ΔToを算出することにより、その後に出力タイミングの差ΔToを算出することなく、供給タイミング情報を設定することができる。つまり、アプリケーションシステム1は、ユーザ端末10間における出力タイミングのずれを低減するための手間を省力化することができる。
また、本実施形態のアプリケーションシステム1において、出力タイミング情報とは、出力制御部13と、表示部11(出力部)とを備えるユーザ端末10の操作受付部14によって検出された情報であり、取得部32は、供給タイミング情報と、操作受付部14が検出した出力タイミング情報とを取得する。これにより、アプリケーションシステム1は、出力タイミングの検出を、ユーザ端末10が予め備える操作受付部14を利用して行うことができる。つまり、アプリケーションシステム1は、出力タイミングを検出するための専用装置を備える必要がないため、構成を簡略化することができる。
また、本実施形態のアプリケーションシステム1において、設定部39(出力タイミング制御部)は、取得部32が取得した第1供給タイミング情報と、第2供給タイミング情報と、第1出力タイミング情報と、第2出力タイミング情報とに基づいて、第1供給タイミング情報を設定し、設定した当該第1供給タイミング情報に基づいて、出力制御部13に画像情報を供給させるように構成してもよい。この場合には、設定部39は、第1供給タイミング情報と、第2供給タイミング情報と、第1出力タイミング情報と、第2出力タイミング情報とを取得する。ここで、第1供給タイミング情報とは、ユーザ端末10−1が備える出力制御部13−1が出力部(例えば、表示部11−1)に画像情報(第1出力情報)に基づく画像信号を供給するタイミングを示す情報である。同様に、第2供給タイミング情報とは、ユーザ端末10−2が備える出力制御部13−2が出力部(例えば、表示部11−2)に画像情報(第2出力情報)に基づく画像信号を供給するタイミングを示す情報である。また、第1出力タイミング情報とは、ユーザ端末10−1の表示部11−1の出力タイミングに応じて、ユーザ端末10−1が備える操作受付部14−1(第1検出部)が受け付けた操作のタイミングが示す出力タイミング情報である。すなわち、第1出力タイミング情報とは、ユーザ端末10−1の表示部11−1が表示する画像情報に応じて、ユーザが操作受付部14−1を操作したタイミングを示す情報である。また、第2出力タイミング情報とは、ユーザ端末10−2の表示部11−2の出力タイミングに応じて、ユーザ端末10−1が備える操作受付部14−1が受け付けた操作のタイミングが示す出力タイミング情報である。すなわち、第2出力タイミング情報とは、ユーザ端末10−2の表示部11−2が表示する画像情報に応じて、ユーザがユーザ端末10−1の備える操作受付部14−1を操作したタイミングを示す情報である。これにより、アプリケーションシステム1は、ユーザ端末群Gに含まれる複数のユーザ端末10のうち、少なくとも、ユーザ端末10−1が操作受付部14−1を備えていれば、各ユーザ端末10間の出力タイミングの差ΔToを算出することができる。つまり、アプリケーションシステム1は、各ユーザ端末10が操作受付部14−1を備えていなくても、各ユーザ端末10間の出力タイミングの差ΔToを算出することができるため、ユーザ端末10の構成を簡素化することができる。
また、本実施形態のアプリケーションシステム1において、設定部39(出力タイミング制御部)は、取得部32が取得した第1供給タイミング情報と、第2供給タイミング情報と、第1出力タイミング情報と、第2出力タイミング情報と、第3出力タイミング情報とに基づいて、第1供給タイミング情報を設定し、設定した当該第1供給タイミング情報に基づいて、出力制御部13に画像情報を供給させるように構成してもよい。この場合には、取得部32は、第1供給タイミング情報と、第2供給タイミング情報と、第1出力タイミング情報と、第2出力タイミング情報と、第3出力タイミング情報とを取得する。ここで、第3出力タイミング情報とは、ユーザ端末10−1の表示部11−1の出力タイミングに応じて、ユーザ端末10−2が備える操作受付部14−2(第2検出部)が受け付けた操作のタイミングが示す出力タイミング情報である。すなわち、第3出力タイミング情報とは、ユーザ端末10−1の表示部11−1が表示する画像情報に応じて、ユーザが操作受付部14−2を操作したタイミングを示す情報である。これにより、アプリケーションシステム1は、ユーザ端末群Gに含まれる複数のユーザ端末10のうち、ユーザ端末10−1とユーザ端末10−2との出力タイミングの差に加え、操作受付部14の受付遅延時間の差をも算出することができる。ここで、操作受付部14の受付遅延時間とは、ユーザが操作受付部14に対して操作を行ってから、操作受付部14が操作を検出して操作情報として受け付けるまでの遅延時間である。これにより、アプリケーションシステム1は、ユーザ端末10間における受付遅延時間の差異に応じて、各ユーザ端末10間の出力タイミングの差ΔToを算出することができる。つまり、アプリケーションシステム1は、上述した構成に比して、より精密に供給タイミング情報を設定することができる。
また、本実施形態のアプリケーションシステム1において、同期部38(出力タイミング制御部)は、取得部32が取得した複数の出力タイミング情報に基づいて、供給タイミング情報を設定し、設定した当該供給タイミング情報に基づいて、出力制御部13に画像情報を供給させるように構成してもよい。この場合には、取得部32は、操作受付部14がユーザからの複数回の入力を検出した複数の出力タイミング情報を取得する。これにより、アプリケーションシステム1は、操作受付部14が受け付けた複数回の操作タイミングに基づいて(例えば、操作タイミングの平均値に基づいて)、ユーザ端末10の各ユーザ端末10間の出力タイミングの差ΔToを算出することができる。この操作タイミングは、表示部11が表示する画面に応じて、ユーザが操作するタイミングであるため、表示部11が画像情報を表示してから、操作を行うまでの操作時間に差異が生じることがある。このアプリケーションシステム1によれば、この操作時間の差異を低減させることができるため、上述した構成に比して、より精密に供給タイミング情報を設定することができる。
なお、ここでは一例として、設定部39は、複数のユーザ端末10(例えば、ユーザ端末10−1とユーザ端末10−2)について供給タイミング情報を同時に設定する場合を説明したが、これに限られない。設定部39は、ユーザ端末10毎に異なる時刻において、供給タイミング情報を設定してもよい。例えば、設定部39は、取得部32がユーザ端末10−1の出力タイミング情報を取得した後、ユーザ端末10−2の出力タイミング情報を取得した時刻において、ユーザ端末10−1の供給タイミング情報を基準にしたユーザ端末10−2の供給タイミング情報を設定する。また、設定部39は、取得部32がユーザ端末10−1の出力タイミング情報を取得した後、ユーザ端末10−3の出力タイミング情報を取得した時刻において、ユーザ端末10−1の供給タイミング情報を基準にしたユーザ端末10−3の供給タイミング情報を設定する。このように、設定部39は、基準になるユーザ端末10(例えば、ユーザ端末10−1)の出力タイミング情報と、供給タイミング情報の設定の対象になるユーザ端末10−nの出力タイミング情報とが取得された時刻において、順次、供給タイミング情報を設定する。このように構成しても、設定部39は、ユーザ端末10間における出力タイミングの差ΔToの差異を低減することができる。また、ユーザ端末10が3台以上ある場合であっても対応可能となる。
[第2の実施形態]
本発明を実施するための第2の実施形態について、図面を参照して説明する。
図10は、本発明の第2の実施形態に係るアプリケーションシステム1aの構成の一例を示す構成図である。このアプリケーションシステム1aとは、出力タイミング制御システムの一例である。アプリケーションシステム1aは、アプリケーションサーバ30aが設定部39a(出力タイミング制御部)を備える点において、上述したアプリケーションシステム1と相違する。なお、上述した実施形態における各構成と同一の構成については、同一の符号を付して説明を省略する。
アプリケーションシステム1aは、アプリケーションサーバ30aを備えている。このアプリケーションサーバ30aは、設定部39aを備えている。この設定部39aが、供給タイミング情報を設定する構成について詳細に説明する。ここでは、一例として、ユーザ端末10−2についての供給タイミングTf2を設定する場合について説明する。
まず、設定部39aは、ユーザ端末10−1の出力制御部13−1が表示部11−1に出力情報を供給する供給タイミングTf1を示す供給タイミング情報を、記憶部31から取得部32を介して取得する。また、設定部39aは、ユーザ端末10−2の出力制御部13−2が表示部11−2に出力情報を供給する供給タイミングTf2を示す供給タイミング情報を、記憶部31から取得部32を介して取得する。ここでは、一例として出力情報が画像情報である場合について説明する。
次に、設定部39aは、各ユーザ端末10についての出力タイミング情報を取得部32から取得する。具体的には、設定部39aは、ユーザ端末10−1の表示部11−1の出力タイミングTo1を示す出力タイミング情報と、ユーザ端末10−2の表示部11−2の出力タイミングTo2を示す出力タイミング情報とを、取得部32から取得する。この出力タイミング情報とは、取得した供給タイミングTfによって、出力制御部13が表示部11に画像信号を供給したことにより表示部11が画像を出力した出力タイミングToを示す出力タイミング情報である。
次に、設定部39aは、取得した出力タイミング情報が示す、各ユーザ端末10間の出力タイミングの差(ずれ)を算出する。具体的には、設定部39aは、取得したユーザ端末10−1の供給タイミングTf1と出力タイミングTo1との差分(出力遅延時間Td1)を算出する。また、ユーザ端末10−2の供給タイミングTf2と出力タイミングTo2との差分(出力遅延時間Td2)を算出する。これにより、ユーザ端末10−1、−2のそれぞれにおける、供給タイミングTfから出力タイミングToまでに要する時間(出力遅延時間)が算出できる。さらに設定部39aは、出力遅延時間Td1と出力遅延時間Td2との差分である出力タイミングの差ΔToを更に算出する。
一例としてユーザ端末10−1の出力タイミングTo1を基準とすると、出力遅延時間Td1から出力遅延時間Td2を減算する演算を行い、出力タイミングの差ΔTo2を算出する。かかる演算を行うことにより、各ユーザ端末10間における出力タイミングの差、すなわちユーザ端末10−1とユーザ端末10−2とで同時に画像情報(コマ画像)に基づく画像信号を出力制御部13から表示部11に対して出力した場合に、ユーザ端末10−1を基準としてユーザ端末10−2は画像情報が表示部11に表示されるのがどの程度早いか(または遅いか)を算出することができる。
次に、設定部39aは、算出した出力タイミングの差ΔTo2をユーザ端末10−2の端末ID(T002)と関連付けて記憶部31に記憶させる。なお、ここでは一例として、設定部39aは、ユーザ端末10−1の出力タイミングTo1を基準にしたユーザ端末10−2についての出力タイミングの差ΔTo2を算出するとして説明したが、これに限られない。例えば、ユーザ端末10−2の出力タイミングTo2を基準にしたユーザ端末10−1についての出力タイミングの差ΔTo1を算出してもよい。
次に、設定部39aは、記憶部31が記憶する出力タイミングの差に基づいて、供給タイミング情報を算出する。具体的には、設定部39aは、ユーザ端末10−2の端末ID(T002)と関連付けて記憶部31が記憶する出力タイミングの差ΔTo2を取得する。次に、設定部39aは、既に取得しているユーザ端末10−2の供給タイミングTf2と、取得した出力タイミングの差ΔTo2とに基づいて、供給タイミングTf2’を算出する。より具体的には、設定部39aは上述した(式1)によって供給タイミングTf2’を算出する。
次に、設定部39aは、算出した供給タイミングTf2’を、ユーザ端末10−2についての新たな供給タイミング情報として、ユーザ端末10−2の端末ID(T002)と関連付けて記憶部31に記憶させることにより、供給タイミングを設定する。これにより、AP処理部35は、設定された供給タイミング情報と、生成した画像情報とを関連付けて、ユーザ端末10に供給する。具体的には、AP処理部35は、設定された供給タイミング情報と、生成した画像情報とを関連付けて、送信部37およびネットワーク5を介してユーザ端末10に供給する。ユーザ端末10の出力制御部13は、供給された画像情報に付与された供給タイミング情報に応じたタイミングによって、表示部11に対して、この画像情報に基づく画像信号を出力する。このようにして同期部38は、供給タイミングを設定することにより、出力遅延時間Tdに差異があるユーザ端末10間において、画像情報が出力される出力タイミングToの差異を低減する。
以上説明したように、本実施形態のアプリケーションシステム1aが備える設定部39aは、ユーザ端末10−1の出力遅延時間Td1と、ユーザ端末10−2の出力遅延時間Td2とをそれぞれ算出するとともに、算出した出力遅延時間Td1と、出力遅延時間Td2との差分である出力タイミングの差ΔToを算出する。
このように構成しても、アプリケーションシステム1aは、上述した実施形態と同様に、各ユーザ端末10間における出力タイミングの差ΔToを算出することができる。これにより、アプリケーションシステム1aは、複数のユーザ端末10を用いてゲームを提供する場合に、ユーザ端末10間における出力タイミングのずれを低減することができる。さらに、アプリケーションシステム1aによれば、ユーザ端末10の出力遅延時間Tdをユーザ端末10毎に算出することができる。これにより、ユーザ端末10−1の供給タイミングTf1と、ユーザ端末10−2の供給タイミングTf2とが、互いに異なるタイミングであっても、各ユーザ端末10間における出力タイミングの差ΔToを算出することができる。したがって、例えば、先にユーザ端末10−1の出力遅延時間Td1を算出しておき、後にユーザ端末10−2の出力遅延時間Td2を算出するようにしても、各ユーザ端末10間における出力タイミングの差ΔToを算出することができる。
[第3の実施形態]
本発明を実施するための第3の実施形態について、図面を参照して説明する。
図11は、本発明の第3の実施形態に係るアプリケーションシステム1bの構成の一例を示す構成図である。このアプリケーションシステム1bとは、出力タイミング制御システムの一例である。アプリケーションシステム1bは、アプリケーションサーバ30bが設定部39b(出力タイミング制御部)を備える点において、上述した各アプリケーションシステムと相違する。なお、上述した実施形態における各構成と同一の構成については、同一の符号を付して説明を省略する。
アプリケーションシステム1bは、アプリケーションサーバ30bを備えている。このアプリケーションサーバ30bは、設定部39bを備えている。この設定部39bの概要について説明する。上述の図6を参照して説明したように、取得部32は、ユーザがユーザ端末10を操作(例えば、タップ)するタイミングを示す操作タイミング情報を、出力タイミング情報として取得する。ここで、ユーザは、表示部11の上側(−Y側)から下側(+Y側)に移動するように表示されるオブジェクトOBの画像を見ながらユーザ端末10を操作する。このときユーザは、表示されるオブジェクトOBの位置が基準線SLに表示されたタイミングにおいてユーザ端末10を操作するのであるが、この操作のタイミングには時間的な誤差が生じる場合がある。例えば、オブジェクトOBの位置が基準線SLに表示されたタイミングが基準タイミングであるとすると、オブジェクトOBが基準線SLよりも上側(−Y側)の位置に表示されているタイミングにおいて操作された場合には、操作のタイミングが基準タイミングよりも早くなる。逆に、オブジェクトOBが基準線SLよりも下側(+Y側)の位置に表示されたタイミングにおいて操作された場合には、操作のタイミングが基準タイミングよりも遅くなる。このようにして、操作のタイミングと基準タイミングとに時間的な誤差が生じる場合があり、この場合には、出力タイミング情報にも時間的な誤差が生じる。本実施形態の設定部39bは、上述したユーザが操作するタイミングの時間的な誤差の影響を低減させつつ、供給タイミングTfを設定する。
また、取得部32は、上述のように、ユーザが操作するタイミングを、出力タイミング情報として取得する。このとき、ユーザが操作を行ってから、操作のタイミングを取得部32が出力タイミング情報として取得するまでには遅延時間(操作受付遅延時間Te)が発生する。この操作受付遅延時間Teは、ユーザ端末10の構成に依存する。例えば、この操作受付遅延時間Teは、ユーザ端末10の操作受付部14の操作受付感度、操作受付処理の処理周期や演算性能などに依存する。したがって、ユーザ端末10間において、この遅延時間が互いに異なる値になる場合があり、この場合には出力タイミング情報にもユーザ端末10間の誤差が生じる。本実施形態の設定部39bは、この操作受付遅延時間Teのユーザ端末10間の誤差の影響を低減させつつ、供給タイミングTfを設定する。
まず、設定部39bが、出力タイミング情報の時間的な誤差の影響を低減させる構成について説明する。ここでは、一例として、ユーザが、ユーザ端末10−1の表示部11−1に表示されるオブジェクトOBの画像を見ながら、ユーザ端末10−1を操作する場合について説明する。
上述の図7を参照して説明したように、ユーザ端末10−1の出力制御部13−1は、受信した動画情報に基づく画像(動画)を、図7の時刻t7において、表示部11−1に供給する。ユーザ端末10−1の表示部11−1は、時刻t7において供給された動画情報に基づく画像(動画)を表示する。ここで、表示部11−1は、供給タイミングTf1から出力遅延時間Td1だけ遅延したタイミング、つまり時刻t8−1において、供給された動画情報に基づく画像(動画)を表示する。この表示部11−1への表示がされたことに応じて、ユーザからの操作、具体的には図6に示すような画像において、第1操作位置P1乃至第3操作位置P3での操作(タップ)を受け付ける。この操作を受け付けると、ユーザ端末10−1の操作受付部14−1は、操作タイミング情報を生成し、アプリケーションサーバ30bに送信する。この操作タイミング情報は、上述したように、操作(タップ)の基準タイミングとの時間的な誤差である操作タイミング誤差ΔTc11を含んでいる。また、この操作タイミング情報は、上述したように、操作受付部14−1の操作受付遅延時間Te1を含んでいる。したがって、ユーザ端末10−1の表示部11−1が画像を表示する供給タイミングTfから、操作受付部14−1が操作タイミング情報を生成するまでの時間を遅延時間X11とすると、遅延時間X11は、次の(式2)によって表すことができる。
遅延時間X11=出力遅延時間Td1+操作タイミング誤差ΔTc11+操作受付遅延時間Te1…(式2)
アプリケーションサーバ30bの取得部32は、この遅延時間X11を示す操作タイミング情報を出力タイミング情報として、ユーザ端末10−1から、受信部33を介して取得する。
ここで、アプリケーションサーバ30bは、ユーザ端末10−1に対して繰り返し動画情報を供給する。ユーザ端末10−1は、繰り返し供給される動画情報に基づいて、上述した操作タイミング情報を生成する手順を繰り返す。取得部32は、操作受付部14−1が操作タイミング情報を生成する毎に、生成される操作タイミング情報を出力タイミング情報として受信部33を介して取得する。
設定部39bは、取得部32が取得した複数の出力タイミング情報が示す遅延時間X11を平均化する。この遅延時間X11には、上述したように操作タイミング誤差ΔTc11が含まれている。この操作タイミング誤差ΔTc11とは、ユーザによる操作のタイミングと基準タイミングとの時間的な誤差であるため、平均化することにより、そのばらつきが低減される。ここでは、設定部39bが遅延時間X11を平均化したことにより、操作タイミング誤差ΔTc11が無視できる程度に小さくなった場合、例えば本実施形態では0(ゼロ)になった場合について説明する。この場合には、平均化後の遅延時間X11’は、次の(式3)によって表すことができる。
平均化後の遅延時間X11’=出力遅延時間Td1+操作受付遅延時間Te1…(式3)
そして設定部39bは、記憶部31から取得部32を介して取得した供給タイミング情報と、(式3)による平均化後の遅延時間X11’とに基づいて、上述した構成と同様にして供給タイミング情報を設定する。このようにして、設定部39bは、操作タイミングのばらつきによるこの出力タイミング情報の時間的な誤差の影響を低減させる。
次に、ユーザが、ユーザ端末10−2の表示部11−2に表示されるオブジェクトOBの画像を見ながら、ユーザ端末10−1を操作する場合について説明する。なお、以下の説明においては、設定部39bが遅延時間を平均化したことにより、操作タイミング誤差ΔTcが0(ゼロ)になっている場合について、それぞれ説明する。
上述したように、ユーザ端末10−2の表示部11−2は、供給タイミングTf2から出力遅延時間Td2だけ遅延したタイミングにおいて、供給された動画情報に基づく画像(動画)を表示する。この表示部11−2への表示がされたことに応じて、ユーザは、ユーザ端末10−1を操作(タップ)する。ユーザ端末10−1の操作受付部14−1は、この操作を受け付ける。この操作を受け付けると、ユーザ端末10−1の操作受付部14−1は、操作タイミング情報を生成し、アプリケーションサーバ30bに送信する。この操作タイミング情報は、上述したように、操作(タップ)の基準タイミングとの時間的な誤差である操作タイミング誤差ΔTc21を含んでいる。また、この操作タイミング情報は、上述したように、操作受付部14−1の操作受付遅延時間Te1を含んでいる。したがって、ユーザ端末10−2の表示部11−2の供給タイミングTfから、ユーザ端末10−1の操作受付部14−1が操作タイミング情報を生成するまでの時間を遅延時間X21とすると、平均化後の遅延時間X21’は、次の(式4)によって表すことができる。
平均化後の遅延時間X21’=出力遅延時間Td2+操作受付遅延時間Te1…(式4)
ここで、設定部39bは、(式3)と(式4)との差に基づいて、(式5)に示すようにして、ユーザ端末10−1の出力遅延時間Td1と、ユーザ端末10−2の出力遅延時間Td2との差を算出する。
(平均化後の遅延時間X21’)−(平均化後の遅延時間X11’)
=(出力遅延時間Td2)−(出力遅延時間Td1)
+(操作受付遅延時間Te1)−(操作受付遅延時間Te1)
=(出力遅延時間Td2)−(出力遅延時間Td1)…(式5)
ここで、(式5)の左辺が示す平均化後の遅延時間X11’と平均化後の遅延時間X21’との差とは、ユーザ端末10−1の出力タイミングTo1を基準にしたユーザ端末10−2についての出力タイミングの差ΔTo2である。この出力タイミングの差ΔTo2とは、出力タイミングの差ΔToの一例である。設定部39bは、上述した各設定部と同様にして、ユーザ端末10−1の出力タイミングTo1を基準にしたユーザ端末10−2についての出力タイミングの差ΔTo2を算出する。これにより、(式5)から(式6)が導かれる。
出力タイミングの差ΔTo2=(出力遅延時間Td2)−(出力遅延時間Td1)…(式6)
ここで、(式6)の右辺が示す出力遅延時間Td2と、出力遅延時間Td1との差は、ユーザ端末10−1とユーザ端末10−2との出力遅延時間Tdの差異を示す。したがって、設定部39bは、出力タイミングの差ΔTo2を低減するように、供給タイミングTfを設定することにより、ユーザ端末10−1とユーザ端末10−2との出力遅延時間Tdのばらつき(誤差)による影響を低減することができる。
また、設定部39bは、算出した出力タイミングの差ΔTo2を、例えば、アプリケーションサーバ30bが備える不図示のタイミング判定部に対して供給することもできる。このタイミング判定部は、設定部39bから供給される出力タイミングの差ΔTo2に基づいて、各ユーザ端末10による操作のタイミングを判定する。具体的には、このタイミング判定部は、出力タイミングの差ΔTo2に基づいて、ユーザ端末10−1の操作のタイミングを基準にした、ユーザ端末10−2についての操作のタイミングを判定する。これにより、このタイミング判定部は、ユーザ端末10間の操作受付遅延時間Teの差異を低減して、各ユーザ端末10による操作のタイミングを判定することができる。
次に、設定部39bが、ユーザ端末10間における操作受付遅延時間Teの誤差(ばらつき)の影響を低減させる構成について説明する。ここでは、一例として、ユーザが、ユーザ端末10−1の表示部11−1に表示されるオブジェクトOBの画像を見ながら、ユーザ端末10−2を操作する場合について説明する。
上述したように、ユーザ端末10−1の表示部11−1は、供給タイミングTf1から出力遅延時間Td1だけ遅延したタイミングにおいて、供給された動画情報に基づく画像(動画)を表示する。この表示部11−1への表示がされたことに応じて、ユーザは、ユーザ端末10−2を操作(タップ)する。ユーザ端末10−2の操作受付部14−2は、この操作を受け付ける。この操作を受け付けると、ユーザ端末10−2の操作受付部14−2は、操作タイミング情報を生成し、アプリケーションサーバ30bに送信する。この操作タイミング情報は、上述したように、操作(タップ)の基準タイミングとの時間的な誤差である操作タイミング誤差ΔTc12を含んでいる。また、この操作タイミング情報は、上述したように、操作受付部14−2の操作受付遅延時間Te2を含んでいる。したがって、ユーザ端末10−1の表示部11−1の供給タイミングTfから、ユーザ端末10−2の操作受付部14−2が操作タイミング情報を生成するまでの時間を遅延時間X12とすると、平均化後の遅延時間X12’は、次の(式7)によって表すことができる。
平均化後の遅延時間X12’=出力遅延時間Td1+操作受付遅延時間Te2…(式7)
取得部32は、上述した(式3)による平均化後の遅延時間X11’と、(式7)による平均化後の遅延時間X12’と、(式4)による平均化後の遅延時間X21’とを出力タイミング情報として、それぞれ取得する。
ここで、(式3)と(式7)との差を、(式8)に示すよう求めると、ユーザ端末10−1の操作受付遅延時間Te1と、ユーザ端末10−2の操作受付遅延時間Te2との差を算出することができる。
(平均化後の遅延時間X12’)−(平均化後の遅延時間X11’)
=(出力遅延時間Td1)−(出力遅延時間Td1)
+(操作受付遅延時間Te2)−(操作受付遅延時間Te1)
=(操作受付遅延時間Te2)−(操作受付遅延時間Te1)…(式8)
ここで、(式8)の左辺が示す平均化後の遅延時間X11’と平均化後の遅延時間X12’との差は、ユーザ端末10−1の操作受付遅延時間Te1を基準にしたユーザ端末10−2についての操作受付遅延時間の差ΔTe2を示す。設定部39bは、上述した各設定部と同様にして、ユーザ端末10−1の出力タイミングTo1を基準にしたユーザ端末10−2についての操作受付遅延時間の差ΔTe2を算出する。これにより、(式8)から(式9)が導かれる。
操作受付遅延時間の差ΔTe2=(操作受付遅延時間Te2)−(操作受付遅延時間Te1)…(式9)
ここで、(式9)の右辺が示す操作受付遅延時間Te2と、操作受付遅延時間Te1との差は、ユーザ端末10−1とユーザ端末10−2との操作受付遅延時間Teの差異を示す。したがって、設定部39bは、ユーザ端末10−1とユーザ端末10−2との操作受付遅延時間の差ΔTe2を低減するように供給タイミングTfを設定することによって、操作受付遅延時間Teの差異による影響を低減することできる。
[第4の実施形態]
本発明を実施するための第4の実施形態について、図面を参照して説明する。
図12は、本発明の第4の実施形態に係るアプリケーションシステム1cの構成の一例を示す構成図である。このアプリケーションシステム1cとは、出力タイミング制御システムの一例である。アプリケーションシステム1cは、アプリケーションサーバ30cが操作(タップ)すべきタイミングに表示される画像を示す情報(タップ画像フラグ)をユーザ端末10に通知する点において、上述した各アプリケーションシステムと相違する。なお、上述した実施形態における各構成と同一の構成については、同一の符号を付して説明を省略する。
アプリケーションシステム1cは、アプリケーションサーバ30cを備えている。このアプリケーションサーバ30cは、記憶部31cと、アプリケーション制御部34cと、設定部39cを備えている。このアプリケーション制御部34cは、AP処理部35cとしてのAP処理部35c−1、−2を備えている。
図13は、本実施形態のAP処理部35cが生成する出力情報の一例を示す図である。AP処理部35c−1はオブジェクトOB1の画像が表示部11の上端(−Y側端)から下端(+Y側端)の間の各位置に表示されるように、供給タイミングTf毎にコマ画像を生成する。なお、同図には、供給タイミングTf毎に生成される各コマ画像を同時に表示した状態を示している。具体的には、AP処理部35c−1は、オブジェクトOB1の画像がY方向の位置Y1に表示されるコマ画像(画像ID:Fg01)を生成する。同様にして、AP処理部35c−1は、オブジェクトOB1の画像がY方向の位置Y2〜Y5に表示されるコマ画像(画像ID:Fg02〜Fg05)をそれぞれ生成する。また、AP処理部35c−1は、オブジェクトOB1の画像が基準線SLの位置に表示されるコマ画像(画像ID:Fg06)を生成する。AP処理部35c−1、以下、同様にしてコマ画像を順次生成する。ユーザ端末10の表示部11は、このようにして生成されるコマ画像を順次表示する。これにより、オブジェクトOB1の画像が上端(−Y側端)から下端(+Y側端)に移動するように表示される。
AP処理部35c−1は、コマ画像を生成する際に、各コマ画像にタップ画像フラグ(0または1)を設定する。ここで、タップ画像フラグとは、ユーザが操作(タップ)をすべきタイミングにおいて表示されるコマ画像を1とし、ユーザが操作(タップ)をすべきでないタイミングにおいて表示されるコマ画像を0とする情報である。また、ユーザが操作(タップ)をすべきタイミングにおいて表示される画像とは、上述のコマ画像の場合においては、オブジェクトOB1の画像が基準線SLの位置に表示されるコマ画像(画像ID:Fg06)である。AP処理部35c−1は、オブジェクトOB1の画像が基準線SLの位置に表示されるコマ画像(画像ID:Fg06)について、タップ画像フラグを1に設定し、他のコマ画像(画像ID:Fg01〜Fg05等)について、タップ画像フラグを0に設定する。
図14は、本実施形態の記憶部31cが記憶する情報の一例を示す図である。
記憶部31cは、図14に示すように、ユーザ端末10−1の端末ID(T001)と、ユーザ端末10−1の表示部11−1に表示する画像を生成するAP処理部35−1のAP処理部ID(AP01)と、画像ID(Fg01〜Fg06等)と、ユーザ端末10−1の表示部11−1の供給タイミングTf(供給タイミングTf1−1等)と、AP処理部35c−1が設定したタップ画像フラグ(0または1)とを関連付けて記憶する。
再び図12を参照して、アプリケーションシステム1cの構成の説明を続ける。
設定部39cは、上述した各実施形態と同様にして、AP処理部35cによって生成された画像情報に、所定の供給タイミング情報(供給タイミングTf)を付加する。具体的には、設定部39cは、例えばAP処理部35c−1により生成された画像情報であるコマ画像に、記憶部31cから取得部32を介して取得した、AP処理部35c−1に関連付けられている供給タイミング情報(供給タイミングTf1)を付加し、送信部37に受け渡す。
さらに、設定部39cは、記憶部31cから取得部32を介して取得した、各コマ画像の画像IDに関連付けられているタップ画像フラグ(0または1)を、送信部37に受け渡す。
送信部37は、上述した各実施形態と同様にして、AP処理部35c−1によってユーザ端末群Gに含まれるユーザ端末10のそれぞれに応じて生成され、設定部39cにより供給タイミング情報が付加された画像情報を、ユーザ端末群Gに含まれるユーザ端末10のそれぞれに送信する。ここでは、送信部37は、上述の画像情報を、ユーザ端末10−1に送信する。
さらに、送信部37は、各コマ画像の画像IDに関連付けられているタップ画像フラグを、ユーザ端末群Gに含まれるユーザ端末10のそれぞれに送信する。ここでは、送信部37は、タップ画像フラグを、ユーザ端末10−1に送信する。
なお、送信部37は、タップ画像フラグを、画像情報に付加してユーザ端末10のそれぞれに送信してもよく、画像情報とは別にユーザ端末10のそれぞれに送信してもよい。このようにタップ画像フラグを画像情報とは別にユーザ端末10のそれぞれに送信する場合には、送信部37は、記憶部31cが関連付けて記憶するタップ画像フラグと供給タイミングTfとを、ユーザ端末10のそれぞれに送信する。
このように構成しても、アプリケーションシステム1cは、各ユーザ端末10間の出力タイミングの差ΔToを算出することができる。さらに、アプリケーションシステム1cによれば、各ユーザ端末10において、タップ画像フラグを出力遅延時間Tdの測定開始タイミングを示す情報として利用することができる。具体的には、各ユーザ端末10において、値が1であるタップ画像フラグが付与されたコマ画像(すなわち、ユーザが操作(タップ)をすべきタイミングにおいて表示されるコマ画像)を表示するタイミングを、出力遅延時間Tdの測定開始タイミングにする。このアプリケーションシステム1cによれば、各ユーザ端末10において、出力遅延時間Tdを測定することができる。
[第5の実施形態]
次に、本発明を実施するための第5の実施形態について、図面を参照して説明する。なお、上述した各実施形態における各構成と同一の構成については、同一の符号を付して説明を省略する。
図15は、本発明の第5の実施形態に係るアプリケーションシステム1dの構成の一例を示す構成図である。上述した第1の実施形態においては、アプリケーションサーバ30が、記憶部31から同期部38の各構成を備える例を示したが、アプリケーションシステム1dが備える各構成は、クラウド環境やネットワーク環境、ユーザ数の規模、アプリケーションシステム1dを構成するために用意されたハードウェアの数やスペック等に応じて、任意の台数のコンピュータ装置に分散または集約して配置することができる。本実施形態のアプリケーションシステム1dは、アプリケーションシステム1と同様の構成であるが、アプリケーションサーバ30d(アプリケーション制御システム)として、記憶サーバ31dと、取得サーバ32dと、受信サーバ33dと、複数のアプリケーション制御サーバ34d(アプリケーション制御サーバ34d−1、アプリケーション制御サーバ34d−2、・・・)と、送信サーバ37dと、同期サーバ38dと、設定サーバ39d(出力タイミング制御サーバ)とを備えている。なお、本実施形態では、アプリケーションサーバ30dがアプリケーション管理装置の一例である。
記憶サーバ31dは、第1の実施形態における記憶部31と同様の構成である。取得サーバ32dは、第1の実施形態における取得部32と同様の構成である。受信サーバ33dは、第1の実施形態における受信部33と同様の構成である。アプリケーション制御サーバ34dは、第1の実施形態におけるアプリケーション制御部34と同様の構成である。送信サーバ37dは、第1の実施形態における送信部37と同様の構成である。同期サーバ38dは、第1の実施形態における同期部38と同様の構成である。設定サーバ39dは、第1の実施形態における設定部39と同様の構成である。このような構成によっても、上述した第1の実施形態と同様のアプリケーションを提供することができる。
[第6の実施形態]
次に、本発明を実施するための第6の実施形態について、図面を参照して説明する。なお、上述した各実施形態における各構成と同一の構成については、同一の符号を付して説明を省略する。
図16は、本発明の第6の実施形態に係るアプリケーションシステム1eの構成の一例を示す構成図である。このアプリケーションシステム1eとは、出力タイミング制御システムの一例である。アプリケーションシステム1eは、アプリケーションサーバ30eが、ネットワーク5を介してユーザ端末10eと接続される点において、上述した各アプリケーションシステムと相違する。
ユーザ端末10eは、上述したユーザ端末10に相当する。このユーザ端末10eは、上述した表示部11と、音声出力部12と、出力制御部13とに加えて、検出部15を備えている。ここで、ユーザ端末10e−1は、上述した表示部11−1と、音声出力部12−1と、出力制御部13−1とに加えて、検出部15−1を備えている。同様に、ユーザ端末10e−2は、上述した表示部11−2と、音声出力部12−2と、出力制御部13−2とに加えて、検出部15−2を備えている。これら検出部15−1および検出部15−2とは、検出部15の一例である。
ユーザ端末10eの検出部15は、カメラ等の検出デバイスを備えており、表示部11によって画像情報が出力される出力タイミングを検出する。また、検出部15は、アプリケーションサーバ30eからネットワーク5を介してユーザ端末10eに送信される動画情報に含まれる供給タイミング情報を取得する。この供給タイミング情報とは、上述した各実施形態における供給タイミング情報に相当する。
次に、検出部15は、検出した出力タイミングと、取得した供給タイミング情報が示すタイミングとに基づいて、検出タイミング情報を生成する。この検出タイミング情報とは、表示部11によって出力情報が出力される出力タイミングを示す情報である。すなわち、検出タイミング情報は、上述した各実施形態における操作タイミング情報に相当する。以下、一例として、出力情報が画像情報である場合について説明する。
検出部15は、供給タイミング情報が示すタイミングを基準にして、表示部11によって画像情報が出力される出力タイミングを検出し、検出したタイミングを示す検出タイミング情報を生成する。より具体的には、検出部15は、表示部11が、上述した図6に示す基準線SLに達したオブジェクトOBの画像を表示したタイミングを検出して、検出したタイミングを示す検出タイミング情報を生成する。この検出タイミング情報は、表示部11の基準線SLにオブジェクトOBが表示されたタイミングを示している。
上述した各実施形態においては、ユーザ端末10の操作受付部14は、ユーザから指示情報が入力されると、入力された指示情報を受け付けて操作情報を生成するとともに、当該指示情報を受け付けたタイミングを示す操作タイミング情報を生成する。一方、本実施形態のユーザ端末10eは、検出部15を備えることにより、ユーザから指示情報が操作受付部14に入力されるタイミングを検出することに代えて、表示部11によって画像情報が出力される出力タイミングを検出することができる。すなわち、ユーザ端末10eは、ユーザの操作によらずに、表示部11によって画像情報が出力される出力タイミングを検出することができる。
アプリケーションサーバ30eの受信部33eは、ユーザ端末10eの検出部15が検出した検出タイミング情報を、ネットワーク5を介して受信する。また、アプリケーションサーバ30eの取得部32eは、受信部33eがユーザ端末10eからネットワーク5を介して受信した検出タイミング情報を、ユーザ端末10eの表示部11の出力タイミングToを示す出力タイミング情報として取得する。すなわち、取得部32eは、上述した各実施形態の取得部が取得する操作タイミング情報に代えて、検出部15が検出した検出タイミング情報を取得する。上述した具体例においては、取得部32eは、表示部11の基準線SLにオブジェクトOBが表示されたタイミングを示す検出タイミング情報を、ユーザ端末10eの表示部11の出力タイミングToを示す出力タイミング情報として取得する。
アプリケーションサーバ30eの設定部39は、上述した各実施形態と同様にして、取得部32eが取得した出力タイミング情報が示す、各ユーザ端末10間の出力タイミングの差(ずれ)を算出する。例えば、検出部15がカメラを備えている場合に、設定部39は、あるユーザ端末10の検出部15が備えるカメラが、他のユーザ端末10の表示部11に表示される画像を撮像することにより生成される検出タイミング情報に基づいて、各ユーザ端末10間の出力タイミングの差(ずれ)を算出する。具体的には、ユーザ端末10e−1の検出部15−1は、ユーザ端末10e−2の表示部11−2に表示される画像をカメラによって撮像することにより、ユーザ端末10e−2についての検出タイミング情報を生成する。設定部39は、ユーザ端末10e−2の表示部11−2の基準線SLにオブジェクトOBが表示されたタイミングを示す検出タイミング情報を、表示部11−2の出力タイミングTo2を示す出力タイミング情報として取得する。また、ユーザ端末10e−2の検出部15−2は、ユーザ端末10e−1の表示部11−1に表示される画像をカメラによって撮像することにより、ユーザ端末10e−1についての検出タイミング情報を生成する。設定部39は、ユーザ端末10e−1の表示部11−1の基準線SLにオブジェクトOBが表示されたタイミングを示す検出タイミング情報を、表示部11−1の出力タイミングTo1を示す出力タイミング情報として取得する。設定部39は、取得したユーザ端末10e−1の出力タイミングTo1と、取得したユーザ端末10e−2の出力タイミングTo2との差分である出力タイミングの差ΔToを算出する。
このように構成することによっても、アプリケーションシステム1eの設定部39は、各ユーザ端末10e間における出力タイミングの差、すなわちユーザ端末10e−1とユーザ端末10e−2とで同時に画像情報(コマ画像)に基づく画像信号を出力制御部13から表示部11に対して出力した場合に、ユーザ端末10e−1を基準としてユーザ端末10e−2は画像情報が表示部11に表示されるのがどの程度早いか(または遅いか)を算出することができる。
この検出部15についての検出遅延時間が、各ユーザ端末10eについて既知であれば、ユーザ端末10e毎に既知である検出遅延時間に基づいて、出力タイミングの差ΔToを算出することができる。ここで検出遅延時間とは、表示部11によって画像情報が出力されてから、出力されたことを検出して検出タイミング情報を生成するまでの時間である。すなわち、アプリケーションシステム1eは、ユーザ端末10e間における検出遅延時間の差異に応じて、各ユーザ端末10間の出力タイミングの差ΔToを算出することができる。ここで、検出部15は、カメラ等の検出デバイスであり、タイミングの検出においては上述した各実施形態のようにユーザの操作が介在しないため、操作タイミングの誤差が生じない。したがって、アプリケーションシステム1eは、上述した各実施形態の構成に比して、より精密に供給タイミング情報を設定することができる。
さらに、アプリケーションシステム1eによれば、アプリケーションサーバ30eの取得部32eは、ユーザの操作を介さずに出力タイミング情報を取得することができるため、供給タイミング情報の設定を自動化することができる。
なお、表示部11が表示する画像情報とは、所定の周期(例えば、1秒に1回)明滅する画像、所定の周期で白黒が反転する画像、または所定の周期で模様が変わる画像であってもよい。また、表示部11が表示する画像情報とは、明滅、白黒反転、または模様が変わる周期が可変であってもよい。
また、検出部15は、上述したカメラ等の検出デバイスに代えて、マイク等の検出デバイスを備え、音声出力部12によって音声情報が出力される出力タイミングを検出してもよい。このように構成することで、複数のユーザ端末10e間における、音声情報が出力される出力タイミングの差を検出することができる。さらに、検出部15は、画像情報の出力タイミングの差ΔTogを出力タイミングの差ΔToとして検出するカメラ等の検出デバイスを備え、音声情報の出力タイミングの差ΔTosを出力タイミングの差ΔToとして検出するマイク等の検出デバイスを備え、画像情報の出力タイミングの差と音声情報の出力タイミングの差の両方を検出可能としていてもよい。
以上、本発明の実施の形態について図面を参照して詳述したが、具体的な構成はその実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計等も含まれる。また、各実施形態は、上記の各実施形態を組み合せて実施してもよい。
なお、上記各実施形態においては、アプリケーションサーバ30、30a〜30d(以下、単に「アプリケーションサーバ」と記載する。)とユーザ端末10とは、図示しない時刻情報提供サーバからの信号を受信して時刻の同期を行っていることとしたが、これに限られるものではなく、時刻を同期できるものであればいかなる構成を用いてもよい。さらに、時刻の同期は、少なくともユーザ端末10間で行われていればよい。
また、供給タイミング情報の設定は、各ユーザ端末10で行う構成としてもよい。すなわち、アプリケーションサーバの設定部39により、上記実施形態で説明したように出力タイミングの差ΔTo(ΔTo2等)を算出する。また、当該算出した出力タイミングの差ΔToを各ユーザ端末10に送信し、記憶させる。そしてAP処理部35により生成される画像情報については、設定を行う前の供給タイミング情報を付加して、各ユーザ端末10に送信する。画像情報を受信したユーザ端末10は、記憶した出力タイミングの差ΔToに基づき、画像情報に付加された供給タイミング情報の設定を行い、この設定された供給タイミングTf’に基づいて、出力制御部13から表示部11に対して、この画像情報に基づく画像信号を供給する。
なお、上記各実施形態においては、ユーザ端末10が2台である場合を例に説明したが、これに限られるものではなく、ユーザ端末が3台以上であっても適用できるものである。すなわち、例えばユーザ端末が3台の場合は、特定のユーザ端末を基準端末とし、他の2台のユーザ端末のそれぞれが基準端末とどの程度の出力遅延時間Tdの差があるかどうかを算出する。
なお、アプリケーションサーバが備える各部は、他の装置から各部の機能を実現するためのプログラムをダウンロードすることにより機能が実現されるものであってもよく、他の装置が有するプログラムによって機能が実現されるものであってもよい。
なお、上記の各実施形態におけるユーザ端末10は、他の装置からこれらのユーザ端末10の各部の機能を実現するためのプログラムをダウンロードすることにより機能が実現されるものであってもよく、他の装置が有するプログラムによって機能が実現されるものであってもよい。
なお、このアプリケーションサーバが備える各部は、専用のハードウェアにより実現されるものであってもよく、また、このサーバが備える各部はメモリおよびCPU(中央演算装置)により構成され、アプリケーションサーバが備える各部の機能を実現するためのプログラムをメモリにロードして実行することによりその機能を実現させるものであってもよい。
また、アプリケーションサーバが備える各部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、サーバが備える各部による処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、マークアップ言語で記述されたいわゆるウェブページの形態によって情報を提供する機能およびその情報をブラウザで表示する機能を含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。