(57)【特許請求の範囲】
【請求項１】
ネットワークを介して、端末から順次送信される各操作情報を順次取得する操作情報取得手段と、
前記操作情報取得手段が前記各操作情報を取得したタイミングに応じて、該各操作情報に応じた処理を行うことにより、アプリケーションを実行する実行手段と、
前記実行手段が前記各操作情報のうち第１の操作情報に応じた処理を開始してから、該第１の操作情報の次に取得される第２の操作情報を取得せずに、第１の所定期間経過した場合には、前記実行手段に再度該第１の操作情報に応じた処理を行わせる実行制御手段と、
前記実行手段による前記アプリケーションの実行に基づく画像情報を前記端末に送信する送信手段と、
を含み、
前記実行制御手段は、前記各操作情報のうち第１の操作情報に応じた処理を開始してから、前記第１の所定期間より短い第２の所定期間内に、前記第２の操作情報を取得した場合には、該第２の操作情報に応じた前記実行手段の実行を省略する、
ことを特徴とするサーバ。
【請求項２】
前記端末から順次送信される各操作情報は、タイマにより生成される所定のタイミング毎に、該端末で順次検出され、前記ネットワークを介して前記サーバに順次送信されることを特徴とする請求項１に記載のサーバ。
【請求項３】
前記端末から順次送信される各操作情報は、該端末における該各操作情報の検出に応じたタイミングで、前記ネットワークを介して前記サーバに送信されることを特徴とする請求項１に記載のサーバ。
【請求項４】
前記実行制御手段は、前記第１及び第２の所定期間と異なる第３の所定期間内における、前記実行手段における前記各操作情報の処理の回数を制限することを特徴とする請求項１に記載のサーバ。
【請求項５】
ネットワークを介して、端末から順次送信される各操作情報を順次取得し、
実行手段により、前記各操作情報を取得したタイミングに応じて、該各操作情報に応じた処理を行うことにより、アプリケーションを実行し、
前記実行手段が前記各操作情報のうち第１の操作情報に応じた処理を開始してから、該第１の操作情報の次に取得される第２の操作情報を取得せずに、第１の所定期間経過した場合には、前記実行手段に再度該第１の操作情報に応じた処理を行わせ、
前記実行手段による前記アプリケーションの実行に基づく画像情報を前記端末に送信し、
前記各操作情報のうち第１の操作情報に応じた処理を開始してから、前記第１の所定期間より短い第２の所定期間内に、前記第２の操作情報を取得した場合には、該第２の操作情報に応じた前記実行手段の実行を省略する、
ことを特徴とする情報処理方法。
【請求項６】
ネットワークを介して、端末から順次送信される各操作情報を順次取得する操作情報取得手段、
前記操作情報取得手段が前記各操作情報を取得したタイミングに応じて、該各操作情報に応じた処理を行うことにより、アプリケーションを実行する実行手段、
前記実行手段が前記各操作情報のうち第１の操作情報に応じた処理を開始してから、該第１の操作情報の次に取得される第２の操作情報を取得せずに、第１の所定期間経過した場合には、前記実行手段に再度該第１の操作情報に応じた処理を行わせる実行制御手段、
前記実行手段による前記アプリケーションの実行に基づく画像情報を前記端末に送信する送信手段、
としてコンピュータを機能させることを特徴とする情報処理プログラムであって、
前記実行制御手段は、前記各操作情報のうち第１の操作情報に応じた処理を開始してから、前記第１の所定期間より短い第２の所定期間内に、前記第２の操作情報を取得した場合には、該第２の操作情報に応じた前記実行手段の実行を省略する、
ことを特徴とする情報処理プログラム。
【請求項７】
請求項６記載の情報処理プログラムを記憶したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ、端末、情報処理方法、情報処理プログラム、情報処理プログラムを記憶したコンピュータ読み取り可能な記録媒体に関する。
【背景技術】
【０００２】
サーバが、端末からの操作情報を受信し、当該操作情報に応じて行われた処理結果を端末に送信し、当該処理結果に応じて端末が画面表示等を行ういわゆるオンラインゲームが知られている。このようなオンラインゲームにおいては、例えば、サーバは、ネットワークを介してクライアントからの操作情報を取得する毎に、当該操作情報に基づいた画像情報の生成を行い、端末へ当該生成された画像情報を、ネットワークを介して、送信する。また、端末においては、サーバからネットワークを介して取得した画像情報を表示部に表示する。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
専用のゲーム機器においては、例えば、タイマによる所定期間毎のタイミング（例えば、垂直同期信号に基づいたタイミング）に応じて、コントローラのパッドへの入力（操作情報）が取得される。また、当該操作情報に応じたゲームプログラムの実行や当該実行に基づく画像の描写についても当該タイミングに応じて行われる。【０００４】
ここで、上記のような専用のゲーム機器で実行されるように設計されたゲームを、サーバに設けられた、当該専用のゲーム機器のエミュレータやシミュレータ等で実行し、当該ゲームをいわゆるストリーム配信することが考えられる。この場合、エミュレータやシミュレータ等が上記専用のゲーム機器と同様に、所定のタイミングに応じて、操作情報を取得するように構成すると、ネットワークに起因する遅延に加えて、端末における操作情報の取得・送信、エミュレータ等への当該操作情報の入力、エミュレータが生成した画像情報の取得・表示の際に遅延が生じる。結果として、ユーザが実際に操作情報を入力してから当該操作情報がプレイ画像に反映されるまでの応答特性が悪化する。【０００５】
そこで、エミュレータやシミュレータ等による操作情報の取得や当該操作情報に応じたゲームプログラムの実行を、サーバが操作情報を取得したタイミングに応じて行わせることが考えられる。しかしながら、この場合、端末で順次取得された操作情報は、ネットワークを介して、サーバに送信されることから、ネットワークの通信状況によっては、サーバで順次受信される各操作情報の時間間隔は一定でない場合がある。また、順次送信された各操作情報のうち一部の操作情報が失われる場合がある。このような場合、例えば、各操作情報に応じた画像の表示間隔が一定でなくなりゲーム画像の表示が不自然になったり、ゲームのプレイに支障をきたす等の問題が生じる場合がある。【０００６】
本発明は、上記課題に鑑みて、例えば、ユーザが実際に端末に操作情報を入力してから、当該操作情報に応じた画像情報がサーバで形成され当該画像情報が端末に表示されるまでに生じる遅延を抑制するとともに、画面の更新をより円滑に行うことのできるサーバ、端末、情報処理方法、情報処理プログラム、情報処理プログラムを記憶したコンピュータ読み取り可能な記録媒体を実現することを目的とする。
【課題を解決するための手段】
【０００７】
（１）本発明におけるサーバは、ネットワークを介して、端末から順次送信される各操作情報を順次取得する操作情報取得手段と、前記操作情報取得手段が前記各操作情報を取得したタイミングに応じて、該各操作情報に応じた処理を行うことにより、アプリケーションを実行する実行手段と、前記実行手段が前記各操作情報のうち第１の操作情報に応じた処理を開始してから、該第１の入力情報の次に取得される第２の操作情報を取得せずに、第１の所定期間経過した場合には、前記実行手段に再度該第１の入力情報に応じた処理を行わせる実行制御手段と、前記実行部による前記アプリケーションの実行に基づく画像情報を前記端末に送信する送信手段と、を含むことを特徴とする。【０００８】
（２）上記（１）に記載のサーバにおいて、前記実行制御手段は、前記各入力情報のうち第１の操作情報に応じた処理を開始してから、前記第１の所定期間より短い第２の所定期間内に、前記第２の操作情報を取得した場合には、該第２の操作情報に応じた前記実行手段の実行を省略することを特徴とする。【０００９】
（３）上記（１）または（２）に記載のサーバにおいて、前記端末から順次送信される各操作情報は、タイマにより生成される所定のタイミング毎に、該端末で順次検出され、前記ネットワークを介して前記サーバに順次送信されることを特徴とする。【００１０】
（４）上記（１）または（２）に記載のサーバにおいて、前記端末から順次送信される各操作情報は、該端末における該各操作情報の検出に応じたタイミングで、前記ネットワークを介して前記サーバに送信されることを特徴とする。【００１１】
（５）上記（２）に記載のサーバにおいて、前記実行制御手段は、前記第１及び第２の所定期間と異なる第３の所定期間内における、前記実行部における前記各操作情報の処理の回数を制限することを特徴とする。【００１２】
（６）本発明における端末は、操作部に順次入力された各操作情報を取得する操作情報取得手段と、前記操作情報取得手段により順次取得された操作情報を、ネットワークを介して、サーバに順次送信する操作情報送信手段と、前記操作情報送信手段から順次送信される各操作情報を順次取得する操作情報取得手段と、前記操作情報取得手段が前記各操作情報を取得したタイミングに応じて、該各操作情報に応じた処理を行うことにより、アプリケーションを実行する実行手段と、前記実行手段が前記各操作情報のうち第１の操作情報に応じた処理を開始してから、該第１の入力情報の次に取得される第２の操作情報を取得せずに、第１の所定期間経過した場合には、前記実行手段に再度該第１の入力情報に応じた処理を行わせる実行制御手段と、前記実行部による前記アプリケーションの実行に基づく画像情報を前記端末に送信する送信手段と、を含むサーバの前記送信手段から送信された各画像情報を受信する画像情報受信手段と、前記画像情報受信手段が受信した各画像情報を表示する表示手段と、を含むことを特徴とする。【００１３】
（７）上記（６）に記載の端末において、前記操作情報取得手段は、タイマにより生成される所定のタイミング毎に、前記操作部に入力された操作情報を検出し取得することを特徴とする。【００１４】
（８）上記（６）に記載の端末において、前記操作情報取得手段は、前記各操作情報が前記操作部へ入力されたタイミングに応じて、前記操作部に入力された前記各操作情報を検出し取得することを特徴とする。【００１５】
（９）上記（８）に記載の端末において、前記操作情報取得手段は、前記各操作情報のエッジを検出することにより、前記操作部に入力された前記各操作情報を検出し取得することを特徴とする。【００１６】
（１０）上記（７）に記載の端末において、前記表示手段は、前記タイマにより生成される所定の期間毎に、前記画像情報受信手段が受信した各画像情報を表示することを特徴とする。【００１７】
（１１）上記（８）または（９）に記載の端末において、前記表示手段は、前記各画像情報が前記画像情報受信手段により受信されたタイミングに応じて、該各画像情報を表示することを特徴とする。【００１８】
（１２）本発明の情報処理方法は、ネットワークを介して、端末から順次送信される各操作情報を順次取得し、実行手段により、前記各操作情報を取得したタイミングに応じて、該各操作情報に応じた処理を行うことにより、アプリケーションを実行し、前記実行手段が前記各操作情報のうち第１の操作情報に応じた処理を開始してから、該第１の入力情報の次に取得される第２の操作情報を取得せずに、第１の所定期間経過した場合には、前記実行手段に再度該第１の入力情報に応じた処理を行わせ、前記実行部による前記アプリケーションの実行に基づく画像情報を前記端末に送信する、ことを特徴とする。【００１９】
（１３）本発明の情報処理プログラムは、ネットワークを介して、端末から順次送信される各操作情報を順次取得する操作情報取得手段、前記操作情報取得手段が前記各操作情報を取得したタイミングに応じて、該各操作情報に応じた処理を行うことにより、アプリケーションを実行する実行手段、前記実行手段が前記各操作情報のうち第１の操作情報に応じた処理を開始してから、該第１の入力情報の次に取得される第２の操作情報を取得せずに、第１の所定期間経過した場合には、前記実行手段に再度該第１の入力情報に応じた処理を行わせる実行制御手段、前記実行部による前記アプリケーションの実行に基づく画像情報を前記端末に送信する送信手段、としてコンピュータを機能させることを特徴とする。【００２０】
（１４）本発明のコンピュータ読み取り可能な記録媒体は、上記（１３）に記載の情報処理プログラムを記憶したコンピュータ読み取り可能な記録媒体であることを特徴とする。
【図面の簡単な説明】
【００２１】
【図１】本発明の第１の実施形態に係る情報処理システムのハードウェア構成の概要について説明するための図である。
【図２】第１の実施形態における端末の外観の一例を示す図である。
【図３】第１の実施形態における端末の構成を機能的に説明するための図である。
【図４】第１の実施形態におけるサーバの構成を機能的に説明するための図である。
【図５】図４に示した実行制御部の機能的構成について説明するための図である。
【図６】第１の実施形態における処理のフローの一例について説明するための図である。
【図７】本発明の第２の実施形態における端末の機能的構成について説明するための図である。
【図８】第２の実施形態における処理のフローの一例について説明するための図である。
【図９】端末における操作情報の取得やサーバにおける操作情報に応じたプログラムの実行をともにタイマにより駆動した場合の例について説明するための図である。
【発明を実施するための形態】
【００２２】
以下、本発明の第１及び第２の実施形態について、図面を参照しつつ説明する。なお、図面については、同一又は同等の要素には同一の符号を付し、重複する説明は省略する。
【００２３】
［第１の実施形態］
図１は、本発明の第１の実施形態に係る情報処理システムのハードウェア構成の概要について説明するための図である。図１に示すように、情報処理システム１００は、ネットワーク１３０（例えば、インターネット）を介して接続されたサーバ１１０及び端末１２０を有する。なお、図１においては、情報処理システム１００は、１の端末１２０のみを有しているが、その他複数の端末１２０を有してもよい。
【００２４】
サーバ１１０は、制御部１１１、記憶部１１２、通信部１１３を含む。制御部１１１は、例えば、ＣＰＵ、ＭＰＵ等であって、記憶部１１２に格納されたプログラムに従って動作する。記憶部１１２は、例えば、ハードディスクやＲＯＭやＲＡＭ等の情報記録媒体で構成され、制御部１１１によって実行されるプログラムを保持する情報記録媒体である。また、記憶部１１２は、制御部１１１のワークメモリとしても動作する。通信部１１３は、ネットワークインターフェースであって、制御部１１１からの指示にしたがって、ネットワーク１３０を介して、情報を送受信する。なお、制御部１１１、記憶部１１２、通信部１１３は、それぞれ、バス１１４を介して接続される。
【００２５】
端末１２０は、制御部１２１、通信部１２２、記憶部１２３、表示部１２４、操作部１２５を含む。同様に、各部１２１乃至１２５は、バス１２６を介して接続される。上述したサーバ１１０と同様に、制御部１２１は、例えば、ＣＰＵ、ＭＰＵ等であって、記憶部１１２に格納されたプログラムに従って動作する。記憶部１２３は、例えば、ハードディスクやＲＯＭやＲＡＭ等の情報記録媒体で構成され、制御部１２１によって実行されるプログラムを保持する情報記録媒体である。また、記憶部１２３は、制御部１２１のワークメモリとしても動作する。
【００２６】
操作部１２５は、例えば、キーボード、マウス、コントローラ、ボタン等のインターフェースで構成され、ユーザの指示操作に応じて、当該指示操作の内容を制御部１２１に出力する。表示部１２４は、例えば、液晶ディスプレイ、ＣＲＴディスプレイ、または有機ＥＬディスプレイ等であって、制御部１２１からの指示に従い、情報を表示する。なお、上記制御部１１１及び１２１で処理されるプログラムは、例えば、ネットワークを介して、ダウンロードされて提供されてもよいし、または、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等のコンピュータで読み取り可能な各種の情報記録媒体によって提供されてもよい。なお、上記サーバ１１０や端末１２０の構成は一例であってこれに限定されるものではない。また、サーバ１１０及び端末１２０の機能的な構成の詳細については、後述する。
【００２７】
図２は、端末の外観の一例を示す図である。図２に示すように、端末１２０は、例えば、操作部１２５として、方向キー２０１、複数のボタン２０２、アナログ操作部２０３を有し、また、表示部１２４として表示画面２０４を有する。
【００２８】
方向キー２０１は、例えば、上方向指示キー、下方向指示キー、右方向指示キー、左方向指示キーを有する。当該方向キー２０１により、ユーザは、例えば、画面上の対象物を、上下左右に移動する等を行う。複数のボタン２０２は、所定の位置にそれぞれ配置され、ユーザが、これらのボタン２０２を押すことにより、実行されるアプリケーションによって定められるそれぞれのボタン２０２に応じた処理を実行することができる。なお、当該ボタン２０２は、ボタン２０２を押した量に比例した入力信号が検出されるようないわゆるアナログボタンであってもよい。
【００２９】
アナログ操作部２０３は、例えば、所定の基準位置からの傾倒操作が可能であり、ユーザは、当該アナログ操作部２０３の基準位置からの傾き量と傾き方向に応じた入力情報を入力する。例えば、ユーザは、当該アナログ操作部２０３を用いて、画面上に表示された対象物を、当該傾き量と傾き方向に応じて、所望の方向に所望の量だけ傾ける等を行うことができる。表示画面２０４は、表示部１２４の表示画面に相当し、例えば、アプリケーションに応じた画像等を表示する。
【００３０】
なお、図２に示した端末１２０の外観、操作部１２５及び表示部１２４の構成は、一例であって、これらに限られるものではない。例えば、操作部１２５と表示部１２４を、タッチパネルにより形成してもよい。また、表示部１２４は、ＣＲＴや液晶表示装置で形成されたモニタ等の表示画面であってもよい。更に、方向キー２０１、複数のボタン２０２、アナログ操作部２０３の数はその他の数であってもよいし、また、端末１２０は、スタートボタンやセレクトボタン（図示なし）等その他のボタンや加速度センサ等を有してもよい。
【００３１】
図３は、端末の構成を機能的に説明するための図である。図４はサーバの構成を機能的に説明するための図である。図３に示すように、端末１２０は、機能的に、操作情報取得部３０１、操作情報送信部３０２、タイマ３０３、画像情報受信部３０４、伸張部３０５、画像情報生成部３０６、画像情報出力部３０７を含む。また、図４に示すように、サーバ１１０は、操作情報受信部４０１、実行制御部４０２、実行部４０３、圧縮部４０４、送信部４０５を含む。
【００３２】
まず、端末１２０が操作情報を取得してからサーバ１１０に送信する処理における端末１２０の機能的構成について説明する。図３に示すように、操作情報取得部３０１は、操作部１２５に入力された操作情報を順次取得する。具体的には、操作情報取得部３０１は、タイマ３０３により生成される所定期間（例えば、１フレーム期間）毎に操作情報を検出、取得する。操作情報送信部３０２は、操作情報取得部３０１により取得された操作情報を、ネットワーク１３０を介して、サーバ１１０に送信する。なお、ここで、端末１１０やサーバ１２０は、例えば、所定のクロック周波数に基づいて駆動されるのであって、タイマ３０３で生成される所定期間に基づいて、端末１１０やサーバ１２０が駆動されることを意味するものではないことはいうまでもない。
【００３３】
次に、サーバ１１０の機能的構成について説明する。図４に示すように、サーバ１１０の操作情報受信部４０１は、端末１２０の操作情報送信部３０２から送信された操作情報を、ネットワーク１３０を介して、順次受信する。実行制御部４０２は、後述するように操作情報受信部４０１が操作情報を受信したタイミングに応じて、各操作情報を実行部４０３へ出力する。具体的には、図５に示すように、実行制御部４０２は、時間計数部５０１、操作情報保持部５０２、判定部５０３、期間情報保持部５０４、操作情報出力部５０５を含む。なお、図５に示した実行制御部４０２の機能的構成は一例にすぎず、これに限定されない。
【００３４】
期間情報保持部５０４は、第１の期間を示す第１の所定期間を示す情報、第２の所定期間を示す情報を保持する。具体的には、第１の所定期間は、例えば１フレーム期間より短い所定の期間であって、第２の所定期間は、例えば、１フレーム期間よりも長く、２フレーム期間よりも短い所定の期間である。
【００３５】
時間計数部５０１は、後述する操作情報出力部５０５が操作情報を出力した時点からの時間を計数する。また、時間計数部５０１は、操作情報を出力した時点から操作情報を受信せずに、計数時間が第２の所定期間に達した場合には、操作情報出力部５０５にその旨を通知する。この場合、時間計数部５０１は、新たに時間の計数を開始する。また、当該計数時間は、後述する判定部５０３からのリセット信号に応じて、計数時間をリセットし、新たに時間の計数を開始する。なお、上記第２の所定期間は期間情報保持部５０４に保持されることは上記のとおりである。
【００３６】
判定部５０３は、操作情報が出力されてから次の操作情報が受信されたタイミングに基づいて、当該操作情報を出力する。具体的には、ある操作情報が実行部４０３に出力されてから第１の所定期間内に次の操作情報を受信したと判定した場合には、当該次の操作情報の実行部４０３への出力については省略する。これにより、後述するように、例えば１フレーム期間内に複数の画像表示が行われ、いわゆる早送り再生のような表示となるような状況の発生を防止することができる。
【００３７】
また、第１の所定期間経過後、第２の所定期間内に次の操作情報を受信したと判定した場合には、判定部５０３は、操作情報出力部５０５に当該次の操作情報を出力するように指示する。そして、この場合、時間計数部５０１の計数時間をリセットさせるリセット信号を出力し、時間計数部５０１は、当該リセット信号に応じて、新たに時間の計数を開始する。また、この場合、判定部５０３は、当該出力された操作情報を操作情報保持部５０２に保持させる。
【００３８】
操作情報出力部５０５は、上記時間計数部５０１からの通知、または、判定部５０３からの出力指示に応じて、操作情報受信部４０１が受信した操作情報、または、操作情報保持部５０２が保持している操作情報を、実行部４０３に出力する。
【００３９】
具体的には、一例として、操作情報受信部４０１が第１乃至第３の操作情報を順次受信し、第１の操作情報が、実行制御部４０２の操作情報出力部５０５から実行部４０３へ出力された場合における実行制御部４０２の処理について説明する。この場合、操作情報受信部４０１は、次に、第２の操作情報を受信する。また、第１の操作情報が実行部４０３へ出力されているので、当該第１の操作情報が操作情報保持部５０２に保持され、時間計数部５０１は、第１の操作情報が出力された時点から、時間計数を開始している。
【００４０】
判定部５０３が、当該第２の操作情報が第１の操作情報が実行部４０３へ出力されてから第１の所定期間内に受信したと判定した場合には、当該第２の操作情報の実行部４０３への出力は省略される。このとき、例えば、当該第２の操作情報は、操作情報保持部５０２に上書きして保持され、これに伴い、操作情報保持部５０２に保持されている第１の操作情報が破棄されるように構成してもよい。また、判定部５０３が、当該第２の操作情報を第１の所定期間経過後第２の所定期間内に取得したと判定した場合には、当該第２の操作情報は操作情報出力部５０５から実行部４０３へ出力される。また、この場合、当該第２の操作情報は、操作情報保持部５０２に保持される。更に、このとき、時間計数部５０１により計数されている時間はリセットされ、時間計数部５０１は、当該第２の操作情報が出力された時点からの時間の計数を開始する。
【００４１】
一方、次の操作情報（上記例の場合、第２の操作情報や第３の操作情報等の第１の操作情報の次に受信されるいずれの操作情報）が受信されないまま時間計数部５０１が、第２の所定期間を時間計数部５０１が計数した場合には、時間計数部５０１からの通知に従い、操作情報出力部５０５は、操作情報保持部５０２に保持されている第１の操作情報を実行部４０３へ出力する。つまり、この場合、実行部４０３は、第１の操作情報に応じた実行処理が再度実行部４０３で実行される。そして、時間計数部５０１は、計数されていた時間をリセットするとともに、当該操作情報保持部５０２に保持されていた第１の操作情報が出力されてからの時間の計数を開始する。
【００４２】
つまり、上記例の場合、実行制御部４０２は、第１の所定期間内に操作情報（例えば第２の操作情報や第３の操作情報）を受信したような場合には、当該操作情報については実行部４０３への出力を省略する。これにより、例えば、第１の所定期間（例えば、１フレーム期間より短い期間）内に複数の操作情報を取得したような場合には最初に取得した操作情報（上記例の場合、第１の操作情報）のみの処理を行うことにより、実行部４０３が所定期間内（第１の所定期間内）に複数の操作情報に応じた実行を行うことを防止することができる。また、上記例の場合、当該第２の操作情報が第１の所定期間経過後第２の所定期間内に取得された場合には、第２の操作情報を実行部４０３に出力する。また、上記例の場合、第１の操作情報の出力後操作情報を取得しないまま第２の所定期間（例えば、１フレーム期間より長い期間）が経過した場合には、再度第１の操作情報を実行部４０３に出力する。これにより、これにより、所定期間（第２の所定期間）が経過した場合において、次の操作情報が取得されない場合には、前の操作情報を用いた実行を行わせることができる。
【００４３】
実行部４０３は、実行制御部４０２から出力された操作情報に応じたアプリケーションの実行処理を行い、当該操作情報に応じた画像情報の生成を行う。具体的には、例えば、実行部４０３は専用のゲーム機器等についてのエミュレータやシミュレータに相当する。あるいは、実行部４０３は、例えば、専用のゲーム機器自体を実装することにより構成してもよい。また、圧縮部４０４は、実行部４０３により生成された各画像情報を順次圧縮し、送信部４０５は、当該圧縮された各画像情報を端末１２０に送信する。
【００４４】
次に、端末１２０におけるサーバ１１０からの画像情報の受信から、表示部１２４に表示されるまでの処理を実現するための端末１２０の機能的構成について説明する。図３に示すように、端末１２０の画像情報受信部３０４は、サーバ１１０の送信部４０５からネットワーク１３０を介して送信された各画像情報を順次取得する。伸張部３０５は、画像情報受信部３０４が取得した圧縮された各画像情報を順次伸張し、画像情報生成部３０６は伸張された各画像情報から表示部１２４に表示するための各画像情報を順次生成する。
【００４５】
画像情報出力部３０７は、画像情報生成部３０６により順次生成された各画像情報を順次表示部１２４に出力し、これに応じて表示部１２４は、各画像情報を順次表示する。ここで、画像情報出力部３０７は、タイマ３０３により所定期間（例えば、１フレーム期間）毎に画像を出力することから、画像情報生成部３０６により画像情報が生成されてから、画像情報出力部３０７により表示部１２４に画像が出力されるまで、約０乃至１６ｍｓｅｃの遅延が生じる場合がある。
【００４６】
次に、本実施の形態におけるサーバ１１０及び端末１２０の処理のフローについて説明する。図６は、本実施の形態におけるサーバ１１０及び端末１２０の処理のフローを説明するための図である。また、図６に示すように端末１２０やサーバ１２０の各部３０１乃至３０７及び４０１乃至４０５は、例えば、各Ｔｈｒｅａｄにより実現される。なお、図６左側のＴｉｍｅｒ  Ｔｈｒｅａｄは、図３に示した操作情報取得部３０１や画像情報出力部３０７の操作情報の取得や画像情報の出力のタイミングを示す。ＮｅｔＷｏｒｋ  Ｔｈｒｅａｄは、操作情報送信部３０２や画像情報受信部３０４の操作情報のタイミングや画像情報の受信についてのタイミングを示す。Ｄｅｃｏｄｅｒ  Ｔｈｒｅａｄは、圧縮部３０５や画像情報生成部３０６の画像情報の圧縮や生成についてのタイミングを示す。また、図６右側のＮｅｔＷｏｒｋ  Ｔｈｒｅａｄは、操作情報受信部４０１や送信部４０５の操作情報の受信や画像情報の送信についてのタイミングを示し、Ｍａｉｎ  Ｔｈｒｅａｄは、実行制御部４０２、実行部４０３、圧縮部４０４の操作情報の実行処理のタイミング等を示す。なお、本実施の形態においては、上記のように、端末１２０のＴｉｍｅｒ  Ｔｈｒｅａｄについてのみ、タイマにより生成されるタイミングに応じて処理を行う構成を用いる。
【００４７】
図６に示すように、まず、端末１２０の操作部１２５に操作情報の入力が行われる（Ｓ１０１）。操作情報取得部３０１は、タイマ３０３により生成される所定期間（例えば、１フレーム期間）毎のタイミングで、操作情報を検出・取得し、操作情報送信部３０２に当該操作情報を出力する（Ｓ１０２）。よって、例えば、実際にユーザが操作情報を入力してから、操作情報取得部３０１が操作情報を取得するまで、約０乃至１６ｍｓｅｃのタイマ３０３に起因する遅延が生じる。操作情報送信部３０２は、操作情報取得部３０１が操作情報取得すると、ネットワーク１３０を介して、当該操作情報をサーバ１１０へ送信する（Ｓ１０３）。
【００４８】
サーバ１１０の操作情報受信部４０１は、ネットワーク１３０を介して端末１２０から送信された操作情報を取得し、当該制御情報を、実行制御部４０２を介して、実行部４０３に出力する（Ｓ１０４）。ここで、操作情報はネットワーク１３０を介して送受信されるため、実際に端末１２０の操作情報送信部３０２が操作情報を送信してサーバ１１０の操作情報受信部４０１が当該操作情報を受信するまでの間にはネットワーク遅延が生じる。なお、上記のように、操作情報を受信したタイミングに応じて、実行制御部４０２は、操作情報を実行部４０３へ出力しない場合もあるが、図６については、説明の簡略化のため、操作情報受信部４０１で受信された操作情報が、実行制御部４０２を介して、実行部４０３へ出力される場合を示すものとする。
【００４９】
実行部４０３は、実行制御部４０２により出力された操作情報に応じて画像情報を生成する（Ｓ１０５）。このとき、実行部４０３は、上記のようにタイマ３０３により駆動されていないことから、実行部４０３がタイマ３０３によるタイミングで操作情報を取得する場合と比較して、タイマ３０３による遅延が生じない。圧縮部４０４は、実行部４０３により生成された画像情報を圧縮する（Ｓ１０６）。送信部４０５は圧縮部４０４により圧縮された画像情報を取得し（Ｓ１０７）、ネットワーク１３０を介して端末１２０に送信する（Ｓ１０８）。端末１２０の画像情報受信部３０４は、端末１２０から送信された圧縮された画像情報を取得し、伸張部３０５に出力する（Ｓ１０９）。ここで、上記と同様に当該圧縮された画像情報はネットワーク１３０を介して送受信されるため、実際に端末１２０の操作情報送信部３０２が当該圧縮された画像情報を送信してサーバ１１０の画像情報受信部３０４が当該圧縮された画像情報を受信するまでの間にネットワーク遅延が生じる。
【００５０】
伸張部３０５は、画像情報受信部３０４が取得した圧縮された画像情報を取得・伸張し（Ｓ１１０）、画像情報生成部３０６は伸張された画像情報から表示部１２４に表示するための画像情報を生成する（Ｓ１１１）。表示部１２４は、画像情報生成部３０６が生成した画像情報を、タイマ３０３によるタイミングに応じて表示する（Ｓ１１２）。ここで、当該表示部１２４は、タイマ３０３により生成される所定期間毎に画像情報を表示することから、画像情報が生成されてから表示部１２４に表示されるまでの間には０乃至１６ｍｓｅｃのタイマ３０３に起因する遅延が生じる。なお、ここで、画像情報は、例えば、当該画像情報に設定されているフレームレートに応じて表示部１２４に表示されるように構成してもよい。また、例えば、表示されるまでの間の画像情報は、バッファ（図示なし）に保持される。
【００５１】
上記のように構成することで、サーバ１１０のＭａｉｎ  Ｔｈｒｅａｄをタイマ３０３により駆動し、タイマ３０３で生成されるタイミングに合わせて操作情報を取得し当該操作情報に応じた処理を行う場合と比べ、当該タイマ３０３に起因する遅延を防止することができる。具体的には、図９と比較して説明する。図９は、端末における操作情報の取得やサーバにおける操作情報に応じたプログラムの実行をともにタイマにより駆動した場合の例について説明するための図である。具体的には、図９は、本実施の形態におけるサーバ１１０のＭａｉｎ  Ｔｈｒｅａｄをタイマにより駆動するとともに（図９右のＴｉｍｅｒ  Ｔｈｒｅａｄ参照）、端末１２０のＴｉｍｅｒ  Ｔｈｒｅａｄを同様にタイマにより駆動する場合（図９左のＴｉｍｅｒ  Ｔｈｒｅａｄ参照）のフローを示す。本実施の形態においても、図９に示したＴｉｍｅｒ遅延８０１、８０３及びネットワーク遅延は生じるが、本実施の形態によれば、図９に示した場合と異なり、サーバ１１０のＴｉｍｅｒ遅延（図９のＴｉｍｅｒ遅延８０２）の発生を防止することができる。また、ネットワークジッタやパケットロス等が生じ、一定期間毎に操作情報がサーバ１１０に受信されない場合であっても、画像表示の更新を一定の範囲内で行うことができ、ゲームに対する影響を抑制することができる。つまり、ユーザが操作情報を端末１２０に入力してから、当該操作情報がプレイ画像に反映されるまでの応答特性を向上させることができる。
【００５２】
本発明は、上記実施の形態に限定されるものではなく、上記実施の形態で示した構成と実質的に同一の構成、同一の作用効果を奏する構成又は同一の目的を達成することができる構成で置き換えてもよい。具体的には、例えば、上記においては、実行制御部４０２は、第１の所定期間内及び第２の所定期間を用いて、操作情報の取得が一定間隔でない場合等に生じ得る早送り再生等を防止する構成について説明したが、一定の期間内に各操作情報に応じた処理を行う回数を制限するように構成してもよい。具体的には、例えば、５０ｍｓｅｃ内に５回や１ｓｅｃ内に６０回等である。また、当該回数は期間を変えて複数設けてもよい。なお、この場合、例えば、当該回数を制限する回数制限部は、例えば、実行制御部４０２に備えられる。
【００５３】
また、操作情報送信部３０２は、端末１２０の操作情報取得部３０１で取得された操作情報が変化した場合にのみ、サーバ１１０に当該変化した操作情報を送信するように構成してもよい。具体的には、例えば、端末１２０の操作部１２５がボタンを含む場合、ボタンを押している状態からボタンを離している状態に変化した場合、または、ボタンを離している状態からボタンを押している状態に変化した場合にのみ、サーバ１１０に当該変化した操作情報を送信するように構成してもよい。また、例えば、端末１２０の操作部１２５がアナログ操作部を含む場合、アナログ操作部の基準状態から所定の範囲以上操作された場合（例えば、押しボタン方式のアナログ操作部については一定距離以上押し込まれた場合、また、傾倒操作可能なアナログ操作部については、基準位置から一定角度以上傾倒操作された場合）にのみ、当該変化量を送信するように構成してもよい。言い換えれば、基準位置（または基準位置と同視できる操作）が継続するような場合には、基準位置の操作情報を一度送った後は、基準位置からの所定の範囲以上の変化が生じるまでは、サーバ１１０に操作情報を送信しないように構成してもよい。つまり、この場合、タイマ３０３で生成される所定期間毎に操作情報が取得されるが、次のタイミングにおいて同じ操作情報が取得された場合には操作情報送信部３０２は、当該操作情報を送信しない。更に、この場合、ネットワークにおける１３０におけるパケットロスに対する耐性を向上させるため、操作情報を保持しておき、タイマ３０３による１のタイミングに応じて当該操作情報を複数回送信するように構成してもよい。
【００５４】
［第２の実施形態］
図７は、本発明の第２の実施形態における端末１２０の機能的な構成について説明するための図である。上記のように、第１の実施形態においては、端末１２０における操作情報の取得や、画像情報の表示をタイマ３０３により生成されるタイミングに応じて行う。これに対し、本実施の形態においては、図７に示すように、端末１２０もタイマ３０３を含まずに、操作情報が検出・取得されるタイミングに応じて操作情報をサーバ１１０に送信し、画像情報が生成されるタイミングに応じて画像情報を表示する構成とした点が、第１の実施形態と、主に異なる。なお、下記において第１の実施形態と同様である点については説明を省略する。
【００５５】
図７に示すように、本実施の形態における端末１２０は、機能的に操作情報取得部３０１、操作情報送信部３０２、画像情報受信部３０４、伸張部３０５、画像情報生成部３０６、画像情報出力部３０７を含む。ただし、上記のように第１の実施形態と異なり、本実施の形態における端末１２０はタイマ３０３を含まない。なお、サーバ１１０の機能的構成については、上記第１の実施形態と同様であることから、説明を省略する。
【００５６】
端末１２０の操作情報取得部３０１は、操作部１２５に入力された操作情報を順次取得する。ここで、本実施の形態においては、上記のように操作情報取得部３０１は、タイマ３１３によるタイミングに応じて操作情報を取得するのではなく、操作情報の入力に応じて操作情報を取得する。具体的には、例えば、操作情報取得部３０１に、例えば、操作情報が入力された際に生じる信号のエッジを検出するエッジ検出部（図示せず）を設け、当該信号のエッジを検出するように構成してもよい。この場合、より迅速に信号を検出し、操作情報を取得することが可能となる。これにより、第１の実施の形態と異なり、実際に操作情報が入力されてから操作情報取得部３０１が取得するまでの、例えば、約０乃至１６ｍｓｅｃの遅延の発生を抑制することができる。
【００５７】
また、操作情報送信部３０２は、操作情報取得部３０１により取得された操作情報を、ネットワーク１３０を介して、サーバ１１０に送信する。画像情報受信部３０４は、サーバ１１０の送信部４０５からネットワーク１３０を介して送信された各画像情報を順次取得する。伸張部３０５は、画像情報受信部３０４が取得した圧縮された各画像情報を順次伸張し、画像情報生成部３０６は伸張された各画像情報から表示部１２４に表示するための各画像情報を順次生成する。
【００５８】
画像情報出力部３０７は、画像情報生成部３０６により順次生成された各画像情報を順次表示部１２４に出力し、これに応じて表示部１２４は、各画像情報を順次表示する。ここで、本実施の形態においては、画像情報出力部３０７は、タイマ３１３によるタイミングに応じて画像情報を出力するのではなく、画像情報が生成されたタイミングに応じて、画像情報を出力する。したがって、第１の実施の形態と異なり、画像情報出力部３０７により表示部１２４に画像が出力されるまでの約０乃至１６ｍｓｅｃの遅延の発生を抑制することができる。
【００５９】
次に、本実施の形態におけるサーバ１１０及び端末１２０の処理のフローを説明する。図８は、本実施の形態におけるサーバ１１０及び端末１２０の処理のフローを説明するための図である。図８に示すように端末１２０やサーバ１２０各部３０１乃至３０７及び４０１乃至４０５は、例えば、いわゆるＴｈｒｅａｄにより実現される。ここで、図８左側のＭａｉｎ  Ｔｈｒｅａｄは、図７に示した操作情報取得部３０１や画像情報出力部３０７の操作情報の取得や画像情報の出力のタイミングを示す。ＮｅｔＷｏｒｋ  Ｔｈｒｅａｄは、操作情報送信部３０２や画像情報受信部３０４の操作情報のタイミングや画像情報の受信についてのタイミングを示す。Ｄｅｃｏｄｅｒ  Ｔｈｒｅａｄは、圧縮部３０５や画像情報生成部３０６の画像情報の圧縮や生成についてのタイミングを示す。また、図８右側のＮｅｔＷｏｒｋ  Ｔｈｒｅａｄは、操作情報受信部４０１や送信部４０５の操作情報の受信や画像情報の送信についてのタイミングを示し、Ｍａｉｎ  Ｔｈｒｅａｄは、実行制御部４０２、実行部４０３、圧縮部４０４の操作情報の実行処理のタイミング等を示す。なお、本実施の形態においては、第１の実施形態と異なり、サーバ１１０及び端末１２０のＭａｉｎ  Ｔｈｒｅａｄはタイマにより生成されるタイミングに応じて処理を行う構成ではない。
【００６０】
図８に示すように、まず、ユーザが操作情報を入力する（Ｓ２０１）。操作情報取得部３０１は、当該操作情報の入力に応じて、操作情報を検出・取得し、操作情報送信部３０２に当該操作情報を出力する（Ｓ２０２）。よって、第１の実施形態と異なり、操作情報取得部３０１が操作情報を取得するまでの、例えば、約０乃至１６ｍｓｅｃのタイマ３０３に起因する遅延の発生を抑制することができる。操作情報送信部３０２は、操作情報取得部３０１が操作情報取得すると、ネットワーク１３０を介して、当該操作情報をサーバ１１０へ送信する（Ｓ２０３）。
【００６１】
サーバ１１０の操作情報受信部４０１は、ネットワーク１３０を介して端末１２０から送信された操作情報を取得し、当該制御情報を、実行制御部４０２を介して、実行部４０３に出力する（Ｓ２０４）。ここで、操作情報はネットワーク１３０を介して送受信させるため、実際に端末１２０の操作情報送信部３０２が操作情報を送信してサーバ１１０の操作情報受信部４０１が当該操作情報を受信するまでの間にはネットワーク１３０遅延が生じる。なお、上記のように、操作情報を受信したタイミングに応じて、実行制御部４０２は、操作情報を出力しない場合もあるが、図８は、説明の簡略化のため、操作情報受信部４０１で受信された操作情報が、実行制御部４０２を介して、実行部４０３へ出力される場合を示すものとする。
【００６２】
実行部４０３は、実行制御部４０２により出力された操作情報に応じて画像情報を生成する（Ｓ２０５）。このとき、実行部４０３は、タイマ３０３により駆動されていないことから、実行部４０３がタイマ３０３によるタイミングで操作情報を取得する場合と比較して、タイマ３０３による遅延が生じない。圧縮部４０４は、実行部４０３により生成された画像情報を圧縮する（Ｓ２０６）。送信部４０５は圧縮部４０４により圧縮された画像情報を取得し（Ｓ２０７）、ネットワーク１３０を介して端末１２０に送信する（Ｓ２０８）。
【００６３】
端末１２０の画像情報受信部３０４は、端末１２０から送信された圧縮された画像情報を取得する（Ｓ２０９）。ここで、上記と同様に当該圧縮された画像情報はネットワーク１３０を介して送受信されるため、実際に端末１２０の操作情報送信部３０２が当該圧縮された画像情報を送信してサーバ１１０の画像情報受信部３０４が当該圧縮された画像情報を受信するまでの間にはネットワーク遅延が生じる。伸張部３０５は、画像情報受信部３０４が取得した圧縮された画像情報を取得・伸張する（Ｓ２１０）、画像情報生成部３０６は、伸張された画像情報から表示部１２４に表示するための画像情報を生成する（Ｓ２１１）。表示部１２４は、画像情報生成部３０６の画像情報の生成に応じて、当該画像情報を表示する（Ｓ１１４）。ここで、当該表示部１２４は、タイマ３０３によるタイミングではなく、画像情報生成部３０６の画像情報の生成に応じて表示することから、第１の実施の形態のような約０乃至１６ｍｓｅｃのタイマ３０３に起因する遅延が生じることが防止される。具体的には、例えば、当該表示部１２４は、表示部１２４に備えられたフレームバッファ（図示なし）を、垂直同期信号（ＶＳＹＮＣ）を待たずに更新する。
【００６４】
上記のように構成することで、サーバ１１０及び端末１２０のＭａｉｎ  Ｔｈｒｅａｄをタイマで駆動する場合（図９参照）と比べ、タイマに起因する遅延を防止することができる。本実施の形態においては、第１の実施の形態と同様にサーバ１１０のタイマ遅延（図９のＴｉｍｅｒ遅延８０２）の発生を防止することができることができるのみならず、第１の実施の形態と異なり、端末１２０におけるタイマ遅延（図９のＴｉｍｅｒ遅延８０１、８０３）の発生を防止することもできる。また、ネットワークジッタやパケットロス等が生じ、一定期間毎に操作情報がサーバ１１０に受信されない場合であっても、画像表示の更新を一定の範囲内で行うことができ、ゲームに対する影響を抑制することができる。更に、本実施の形態においては、端末１２０から不定期に操作情報が送信される場合もあり得るが、この場合においても画像表示の更新を一定の範囲内で行うことができ、ゲームに対する影響を抑制することができる。つまり、ユーザが操作情報を端末１２０に入力してから、当該操作情報がプレイ画像に反映されるまでの応答特性を向上させることができる。
【００６５】
本発明は、上記第１または第２の実施形態に限定されるものではなく、種々の変形が可能である。例えば、上記第１または第２の実施形態で示した構成と実質的に同一の構成、同一の作用効果を奏する構成又は同一の目的を達成することができる構成で置き換えることができる。具体的には、例えば、上記においては、実行制御部４０２は、第１の所定期間内及び第２の所定期間を用いて、操作情報の取得が一定間隔でない場合等に生じ得る早送り再生等を防止する構成について説明したが、一定の期間内に各操作情報に応じた処理を行う回数を制限するように構成してもよい。具体的には、例えば、５０ｍｓｅｃ内に５回や１ｓｅｃ内に６０回である。また、当該回数は期間を変えて複数設けてもよい。更に、上記においては、いわゆるクライアント・サーバシステムを用いる場合について説明したが、これに限られず、例えば、いわゆる仮想サーバを用いたクラウドによって実現してもよい。更に、上記第１の実施形態及び第２の実施形態を組み合わせて、端末１２０が、タイマ３０３による所定のタイミング毎に操作情報を取得し、サーバ１１０に送信するとともに、操作情報が検出・取得されるタイミングに操作情報をサーバ１１０に送信するように構成してもよい。なお、特許請求の範囲に記載の第１及び第２の所定期間は、それぞれ、例えば、上記第２及び第１の所定期間に相当する。
【図１】
0005847852.tif 000002
【図２】
0005847852.tif 000003
【図３】
0005847852.tif 000004
【図４】
0005847852.tif 000005
【図５】
0005847852.tif 000006
【図６】
0005847852.tif 000007
【図７】
0005847852.tif 000008
【図８】
0005847852.tif 000009
【図９】
0005847852.tif 000010