(57)【要約】【課題】ユーザーの実際の操作を契機とせずにユーザーの操作内容を比較的精度よく再現することのできる情報処理システムを提供する。【解決手段】ユーザーの操作に応じた処理を実行するターゲット装置４０に接続される入力装置１０と、入力装置１０に接続される制御装置３０と、を含み、制御装置３０は、それぞれユーザーの操作内容を示す、予め用意された複数個の操作データを、１個ずつ順に入力装置１０に対して送信し、入力装置１０は、ターゲット装置４０がユーザーの操作に応じた処理を実行する場合において当該操作の内容を受け付ける時間間隔と対応する時間間隔で、制御装置３０から送信される操作データを１個ずつ順にターゲット装置４０に送信する情報処理システムである。【選択図】図１
2020201706.tif 000002
【特許請求の範囲】
【請求項１】
ユーザーの操作に応じた処理を実行するターゲット装置に接続される入力装置と、前記入力装置に接続される制御装置と、を含む情報処理システムであって、
前記制御装置は、それぞれユーザーの操作内容を示す、予め用意された複数個の操作データを、１個ずつ順に前記入力装置に対して送信し、
前記入力装置は、前記ターゲット装置がユーザーの操作に応じた処理を実行する場合において当該操作の内容を受け付ける時間間隔と対応する時間間隔で、前記制御装置から送信される操作データを１個ずつ順に前記ターゲット装置に送信する
ことを特徴とする情報処理システム。
【請求項２】
請求項１に記載の情報処理システムにおいて、
前記入力装置は、前記ターゲット装置が定期的に送信する取得要求を受け付けて、当該取得要求を受け付けるごとに、前記制御装置から送信される１個の操作データを前記ターゲット装置に送信する
ことを特徴とする情報処理システム。
【請求項３】
請求項１又は２に記載の情報処理システムにおいて、
前記入力装置は、
ユーザーによる操作の対象となる操作部材を備え、
前記操作部材に対するユーザーの操作を受け付けて、当該操作の内容を示す操作データを前記ターゲット装置及び前記制御装置の双方に送信する操作記録モード、及び、前記制御装置から送信される操作データを前記ターゲット装置に送信する記録再現モードを少なくとも含む複数の動作モードのいずれかで動作する
ことを特徴とする情報処理システム。
【請求項４】
請求項３に記載の情報処理システムにおいて、
前記制御装置は、前記操作記録モードにおいて前記入力装置から受信した複数個の操作データを記録し、前記記録再現モードでは、前記操作記録モードにおいて記録された複数個の操作データを、受信した順に１個ずつ前記入力装置に対して送信する
ことを特徴とする情報処理システム。
【請求項５】
請求項１から４のいずれか一項に記載の情報処理システムにおいて、
前記制御装置、及び前記入力装置と接続され、前記制御装置と前記入力装置との間のデータの送受信を中継する中継装置をさらに含み、
前記中継装置は、前記制御装置が送信する操作データを一時的に複数個格納し、前記入力装置に対して格納された操作データを１個ずつ順に送信する
ことを特徴とする情報処理システム。
【請求項６】
請求項１から５のいずれか一項に記載の情報処理システムにおいて、
前記制御装置は、前記ターゲット装置が実行する処理の進行に応じて決まるタイミングで、前記予め記録された複数個の操作データを前記入力装置に対して送信する処理を開始する
ことを特徴とする情報処理システム。
【請求項７】
請求項６に記載の情報処理システムにおいて、
前記制御装置は、前記ターゲット装置が表示する映像を取得し、当該取得した映像を解析した結果に基づいて前記タイミングを決定する
ことを特徴とする情報処理システム。
【請求項８】
ユーザーの操作に応じた処理を実行するターゲット装置、及び制御装置と接続される入力装置であって、
それぞれユーザーの操作内容を示す、予め用意された複数個の操作データを、１個ずつ順に前記制御装置から受信し、
前記ターゲット装置がユーザーの操作に応じた処理を実行する場合において当該操作の内容を受け付ける時間間隔と対応する時間間隔で、前記制御装置から送信される操作データを１個ずつ順に前記ターゲット装置に送信する
ことを特徴とする入力装置。
【請求項９】
ユーザーの操作に応じた処理を実行するターゲット装置に接続される入力装置と接続される制御装置であって、
それぞれユーザーの操作内容を示す、予め用意された複数個の操作データを、１個ずつ順に前記入力装置に対して送信する送信手段を備え、
前記送信手段は、前記ターゲット装置がユーザーの操作に応じた処理を実行する場合において当該操作の内容を受け付ける時間間隔と対応する時間間隔で、前記複数個の操作データを順に送信する
ことを特徴とする制御装置。
【請求項１０】
ユーザーの操作に応じた処理を実行するターゲット装置に接続される入力装置と接続されるコンピュータが、それぞれユーザーの操作内容を示す、予め用意された複数個の操作データを、１個ずつ順に前記入力装置に対して送信する送信ステップを含み、
前記送信ステップでは、前記ターゲット装置がユーザーの操作に応じた処理を実行する場合において当該操作の内容を受け付ける時間間隔と対応する時間間隔で、前記複数個の操作データを順に送信する
ことを特徴とする情報処理方法。
【請求項１１】
ユーザーの操作に応じた処理を実行するターゲット装置に接続される入力装置と接続されるコンピュータに、
それぞれユーザーの操作内容を示す、予め用意された複数個の操作データを、１個ずつ順に前記入力装置に対して送信する送信ステップを実行させるためのプログラムであって、
前記送信ステップでは、前記ターゲット装置がユーザーの操作に応じた処理を実行する場合において当該操作の内容を受け付ける時間間隔と対応する時間間隔で、前記複数個の操作データを順に送信する
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザーによる操作の内容を再現する情報処理システム、入力装置、制御装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
一般的に、情報処理装置を使用するユーザーは、その情報処理装置に接続された操作デバイスに対して各種の操作を行うことによって、情報処理装置に所望の処理を実行させる。例えばコンピュータゲームなどの分野では、動作テストなどの目的で、ユーザーが操作デバイスに対して行った操作の内容を記録しておき、後からその操作内容に応じた処理を情報処理装置に実行させたい場合がある。また、ユーザーがある操作を行った場合に実行すべき処理を、そのような操作をユーザーに実際に行わせることなく情報処理装置に実行させたい場合がある。このようにユーザーの実際の操作を契機とせずにユーザーの操作内容に応じた処理を実行させたい場合、その情報処理装置内に、操作デバイスに対して行われた（あるいは行われると想定される）操作の内容を示すデータを記録しておき、記録されたデータを読み出して処理を実行することが考えられる。これにより、ユーザーの実際の操作を契機とせずにユーザーの操作内容を再現することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
上述したように、情報処理装置内に記録されたデータを用いてユーザーの操作内容を再現することとすると、直接操作デバイスが受け付けた操作内容に応じて処理を実行する場合と比較して、操作内容の再現のために情報処理装置内部で追加的な処理を実行する必要が生じる。そのため、このような追加的な処理を行わない場合と動作環境等に差異が生じ、正確な操作内容の再現が困難になる場合がある。
【０００４】
本発明は上述の実情を考慮してなされたものであって、その目的の一つは、ユーザーの実際の操作を契機とせずにユーザーの操作内容を比較的精度よく再現することのできる情報処理システム、入力装置、制御装置、情報処理方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００５】
本発明に係る情報処理システムは、ユーザーの操作に応じた処理を実行するターゲット装置に接続される入力装置と、前記入力装置に接続される制御装置と、を含む情報処理システムであって、前記制御装置は、それぞれユーザーの操作内容を示す、予め用意された複数個の操作データを、１個ずつ順に前記入力装置に対して送信し、前記入力装置は、前記ターゲット装置がユーザーの操作に応じた処理を実行する場合において当該操作の内容を受け付ける時間間隔と対応する時間間隔で、前記制御装置から送信される操作データを１個ずつ順に前記ターゲット装置に送信することを特徴とする。
【０００６】
本発明に係る入力装置は、ユーザーの操作に応じた処理を実行するターゲット装置、及び制御装置と接続される入力装置であって、それぞれユーザーの操作内容を示す、予め用意された複数個の操作データを、１個ずつ順に前記制御装置から受信し、前記ターゲット装置がユーザーの操作に応じた処理を実行する場合において当該操作の内容を受け付ける時間間隔と対応する時間間隔で、前記制御装置から送信される操作データを１個ずつ順に前記ターゲット装置に送信することを特徴とする。
【０００７】
本発明に係る制御装置は、ユーザーの操作に応じた処理を実行するターゲット装置に接続される入力装置と接続される制御装置であって、それぞれユーザーの操作内容を示す、予め用意された複数個の操作データを、１個ずつ順に前記入力装置に対して送信する送信手段を備え、前記送信手段は、前記ターゲット装置がユーザーの操作に応じた処理を実行する場合において当該操作の内容を受け付ける時間間隔と対応する時間間隔で、前記複数個の操作データを順に送信することを特徴とする。
【０００８】
本発明に係る情報処理方法は、ユーザーの操作に応じた処理を実行するターゲット装置に接続される入力装置と接続されるコンピュータが、それぞれユーザーの操作内容を示す、予め用意された複数個の操作データを、１個ずつ順に前記入力装置に対して送信する送信ステップを含み、前記送信ステップでは、前記ターゲット装置がユーザーの操作に応じた処理を実行する場合において当該操作の内容を受け付ける時間間隔と対応する時間間隔で、前記複数個の操作データを順に送信することを特徴とする。
【０００９】
本発明に係るプログラムは、ユーザーの操作に応じた処理を実行するターゲット装置に接続される入力装置と接続されるコンピュータに、それぞれユーザーの操作内容を示す、予め用意された複数個の操作データを、１個ずつ順に前記入力装置に対して送信する送信ステップを実行させるためのプログラムであって、前記送信ステップでは、前記ターゲット装置がユーザーの操作に応じた処理を実行する場合において当該操作の内容を受け付ける時間間隔と対応する時間間隔で、前記複数個の操作データを順に送信するプログラムである。このプログラムは、コンピュータ読み取り可能で非一時的な情報記憶媒体に格納されて提供されてよい。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態に係る情報処理システムの全体構成を示す構成ブロック図である。
【図２】操作記録モードにおける処理の流れを示すシーケンス図である。
【図３】操作記録モードにおいて記録される操作データセットの構成を示す図である。
【図４】記録再現モードにおける処理の流れを示すシーケンス図である。
【図５】所定操作再現モードにおける処理の流れを示すシーケンス図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について、図面に基づき詳細に説明する。
【００１２】
図１は、本発明の実施形態に係る情報処理システム１の全体構成を示す構成ブロック図である。同図に示されるように、情報処理システム１は、入力装置１０と、中継装置２０と、制御装置３０と、を含んで構成されている。また、情報処理システム１はターゲット装置４０と接続されている。ターゲット装置４０は、例えば家庭用ゲーム機やパーソナルコンピュータ等の情報処理装置であって、表示装置４１が接続されている。表示装置４１は、例えば液晶ディスプレイ等であって、ターゲット装置４０が実行した処理の結果に応じた画面を表示する。
【００１３】
本実施形態に係る情報処理システム１は、ユーザーの操作を契機とせずに、ユーザーの操作内容に応じた処理をターゲット装置４０に実行させるために用いられる。具体的にターゲット装置４０は、通常時には所定の種類の操作デバイス（以下、ターゲット操作デバイスという）を接続して使用することが想定されており、ターゲット装置４０のユーザーは、ターゲット操作デバイスに対して各種の操作を行うことによって、ターゲット装置４０に所望の処理を実行させることになる。ターゲット操作デバイスは、例えば家庭用ゲーム機の専用コントローラなどであってよい。本実施形態に係る情報処理システム１は、ターゲット操作デバイスに対してユーザーが何らかの操作（以下では、再現対象操作という）を行った場合にターゲット装置４０が実行すべき処理を、ユーザーの実際の操作を契機とせずに実行させることによって、ユーザーの操作内容を再現するために用いられる。
【００１４】
入力装置１０は、再現対象操作をユーザーから実際に受け付けたり、再現対象操作の内容を示すデータをターゲット装置４０に対して入力したりするために用いられる。具体的に入力装置１０は、１又は複数の操作部材１１と、制御回路１２と、メモリ１３と、通信インタフェース１４と、を含んで構成されている。また、入力装置１０は、その内部に入力装置１０の状態を検出するための各種のセンサーを備えてもよい。
【００１５】
操作部材１１は、ユーザーの操作を受け付けるための部材であって、ボタンやタッチパッド、また傾けて操作する傾倒操作部材など各種のものを含んでよい。なお、入力装置１０は、ターゲット操作デバイスと同様の操作部材を備えることとする。また、入力装置１０自体が、ターゲット操作デバイスと同様の形状や構造を有し、ターゲット操作デバイスと同じ位置に操作部材１１が配置されてよい。これによりユーザーは、ターゲット操作デバイスと同様の操作感で操作部材１１を操作することができる。さらに、ターゲット操作デバイスが後述する通信インタフェース１４に相当するインタフェースを備えていれば、入力装置１０はターゲット操作デバイスと同一のハードウェア構成を有していてもよい。
【００１６】
制御回路１２は、集積回路等であって、予め用意されたファームウェアプログラム等に従って入力装置１０全体の動作を制御するための処理を実行する。特に本実施形態において制御回路１２は、ユーザーが操作部材１１に対して実行した操作の内容を示すデータ（以下、操作データＤという）を処理する。本実施形態において制御回路１２が実行する制御の内容については、後述する。メモリ１３は、ＲＡＭ等であって、操作データＤ等を一時的に格納する。なお、メモリ１３は制御回路１２内に内蔵されてもよい。
【００１７】
通信インタフェース１４は、ターゲット装置４０、及び中継装置２０のそれぞれとの間でデータを送受信するためのインタフェースである。入力装置１０は、ターゲット操作デバイスをターゲット装置４０に接続するためのインタフェースと同じ規格のインタフェースによってターゲット装置４０と接続される。具体的に、例えば入力装置１０は、有線でターゲット装置４０と接続され、通信インタフェース１４を介してＵＳＢ（Universal Serial Bus）等の規格で操作データＤをターゲット装置４０に送信する。あるいは入力装置１０は、無線でターゲット装置４０と接続されてもよい。入力装置１０がターゲット操作デバイスと同様のインタフェースでターゲット装置４０に接続されることにより、ターゲット装置４０はターゲット操作デバイスが接続されている場合と同じように入力装置１０から操作データＤを受け付けることができる。
【００１８】
さらに入力装置１０は、通信インタフェース１４を介して中継装置２０と接続されている。入力装置１０と中継装置２０との間の通信は、入力装置１０とターゲット装置４０との間の通信と同じ規格で行われてもよいが、異なる規格で行われてもよい。ただし、入力装置１０−中継装置２０間のデータ伝送速度は、少なくとも入力装置１０―ターゲット装置４０間のデータ伝送速度以上であることが望ましい。具体的に、例えば通信インタフェース１４は、ＵＡＲＴ（Universal Asynchronous Receiver/Transmitter）などの通信回路を含み、これによって中継装置２０との間でデータの送受信を行ってもよい。
【００１９】
中継装置２０は、入力装置１０と制御装置３０との間でデータを中継する装置であって、制御回路２１と、メモリ２２と、通信インタフェース２３と、を含んで構成されている。
【００２０】
制御回路２１は、集積回路等であって、予め用意されたファームウェアプログラム等に従って中継装置２０全体の動作を制御するための処理を実行する。特に本実施形態において制御回路２１は、入力装置１０と制御装置３０との間でデータを中継する処理を行う。本実施形態において制御回路２１が実行する制御の内容については、後述する。メモリ２２は、ＲＡＭ等であって、中継対象となるデータ等を一時的に格納する。なお、メモリ２２は制御回路２１内に内蔵されてもよい。
【００２１】
通信インタフェース２３は、入力装置１０、及び制御装置３０のそれぞれとの間でデータを送受信するためのインタフェースである。中継装置２０と制御装置３０との間でデータを送受信するためのインタフェースは、任意のものであってよい。ただし、中継装置２０と制御装置３０との間のインタフェースを、入力装置１０とターゲット装置４０との間のインタフェースと同じものにすることで、入力装置１０が備える通信インタフェース１４と中継装置２０が備える通信インタフェース２３を同様の構成とすることができる。こうすれば、入力装置１０と類似のハードウェア構成を備えるデバイスを中継装置２０として機能させることができる。
【００２２】
制御装置３０は、例えばパーソナルコンピュータ等の情報処理装置であって、制御部３１と、記憶部３２と、インタフェース部３３と、を備えている。また、制御装置３０には、操作デバイス３４、表示装置３５、及びカメラ３６が接続される。
【００２３】
制御部３１は、ＣＰＵ等のプロセッサを少なくとも一つ含み、記憶部３２に格納されているプログラムに従って各種の情報処理を実行する。本実施形態において制御部３１が実行する処理の内容については、後述する。記憶部３２は、ＲＡＭ等のメモリデバイスを少なくとも一つ含み、制御部３１が実行するプログラムやその処理対象となるデータを格納する。
【００２４】
インタフェース部３３は、中継装置２０との間でデータを送受信するためのインタフェースであって、例えばＵＳＢ等によって中継装置２０とデータを送受信するための通信回路を含んでよい。また、インタフェース部３３は、操作デバイス３４、表示装置３５、及びカメラ３６との間でデータの送受信を行う。
【００２５】
操作デバイス３４はキーボード等を含み、制御装置３０に対する操作入力を受け付ける。表示装置３５は、液晶ディスプレイ等であって、制御装置３０が実行する処理結果を表示する。また、カメラ３６は動画像を撮像するデバイスであって、ターゲット装置４０に接続された表示装置４１の画面を撮像する。
【００２６】
以下、本実施形態に係る情報処理システム１が実現する機能について、説明する。情報処理システム１は、操作記録モード、記録再現モード、及び所定操作再現モードという複数の動作モードのいずれかで動作する。これらの動作モードのそれぞれにおいて各装置が実行する処理の流れについて、以下順に説明する。
【００２７】
まず、操作記録モードにおける処理の流れについて、図２のシーケンス図を用いて説明する。操作記録モードは、入力装置１０に対してユーザーが実際に行った操作の内容を、制御装置３０が操作データＤとして記録するための動作モードである。
【００２８】
ターゲット装置４０は、動作モードにかかわらず、所定時間おきにその時点の最新の操作データＤを取得するための取得要求Ｒ１を入力装置１０に対して送信する（Ｓ１）。以下では、ターゲット装置４０が入力装置１０に対して取得要求Ｒ１を送信する時間間隔を、取得間隔Ｔと表記する。
【００２９】
ターゲット装置４０からの取得要求Ｒ１を受け付けると、入力装置１０の制御回路１２は、その時点でメモリ１３に格納されている最新の操作データＤを、取得要求Ｒ１に対する応答Ｒ２としてターゲット装置４０に対して送信する（Ｓ２）。このとき入力装置１０は、操作データＤをターゲット装置４０に対して送信するのと同じタイミングで、同一の内容の操作データＤを中継装置２０に対して送信する。つまり、入力装置１０は、取得要求Ｒ１に対する応答Ｒ２として、同一の操作データＤをターゲット装置４０と中継装置２０の双方に並列して送信することとなる。
【００３０】
さらにその後、入力装置１０は、現時点での各操作部材１１の状態を走査して新たな操作データＤを生成し、メモリ１３内に格納する（Ｓ３）。Ｓ３で生成された操作データＤは、次に取得要求Ｒ１が受け付けられた際に応答Ｒ２としてターゲット装置４０に送信される。なお、このＳ３の記録処理は、取得間隔Ｔよりも短い時間で完了するものとしている。つまり、応答Ｒ２が送信されるごとにメモリ１３内の操作データＤは最新の状態を反映した内容に更新されることになる。
【００３１】
以上説明したＳ１〜Ｓ３の処理は、取得間隔Ｔごとに繰り返し実行される。このＳ１〜Ｓ３の処理は、ターゲット操作デバイスがターゲット装置４０に接続されている場合、すなわちターゲット装置４０が本来想定される構成で使用されている場合と同様の処理である。また、入力装置１０がターゲット装置４０に送信する操作データＤは、ターゲット操作デバイスがターゲット装置４０に対して送信する操作データＤと同一フォーマットのデータである。そのためターゲット装置４０は、内部で追加的な処理を実行したり特別なインタフェースを備えたりする必要なく、ターゲット操作デバイスが接続されている場合と同様に、入力装置１０から操作データＤを受信して、受信した操作データＤによって示されるユーザーの操作内容に応じた処理を実行することができる。
【００３２】
Ｓ２で送信される操作データＤを受信した中継装置２０は、所定の個数（２以上であってよい）に到達するまで受信した操作データＤを受信順にメモリ２２に格納しておく（Ｓ４）。所定の数に到達した後は、受信タイミングが古いデータから順に削除する。すなわち、中継装置２０は、入力装置１０から受信した操作データＤを先入れ先出し方式で所定の個数までメモリ２２内にバッファリングする。
【００３３】
以上説明した入力装置１０及び中継装置２０の処理は、デフォルトの状態で自動的に実行されるものとする。その処理の流れとは独立に、制御装置３０は、ユーザーからの指示に応じて、操作内容の記録を開始する（Ｓ５）。操作内容の記録を開始すると、制御装置３０は、ターゲット装置４０と同様に、取得間隔Ｔごとに中継装置２０に対して操作データＤの取得要求Ｒ３を送信する（Ｓ６）。
【００３４】
制御装置３０からの取得要求Ｒ３を受け付けると、中継装置２０の制御回路２１は、その時点でバッファリングされている操作データＤのうち、最も古い操作データＤを取得要求Ｒ３に対する応答Ｒ４として制御装置３０に対して送信する（Ｓ７）。なお、中継装置２０は、応答Ｒ４として制御装置３０に送信された操作データＤをメモリ２２内から削除することとする。
【００３５】
制御装置３０は、Ｓ７で送信された操作データＤを記憶部３２内に格納する（Ｓ８）。ユーザーが制御装置３０に対して記録終了の指示を行うまで、以上説明したＳ６〜Ｓ８の処理が取得間隔Ｔごとに繰り返し実行されることにより、制御装置３０は、複数個の操作データＤを入力装置１０が送信した順に記録することができる。このデータは、入力装置１０がターゲット装置４０に順に送信した操作データＤと完全に同一のものになっている。なお、中継装置２０が複数個の操作データＤをバッファリングするために、入力装置１０が送信した操作データＤが制御装置３０に到達するタイミングはターゲット装置４０が同じ操作データＤを受信するタイミングより遅くなると想定される。しかしながら、中継装置２０が複数個の操作データＤをバッファリングしておき、ターゲット装置４０が取得要求Ｒ１を送信する取得間隔Ｔと対応する時間間隔で制御装置３０が中継装置２０から操作データＤを順次取得することで、受信タイミングは遅延したとしても、ある時点以降にターゲット装置４０に送信された操作データＤを制御装置３０がもれなく同じ順序で受信し、記録することができる。特に中継装置２０が複数個の操作データＤを常にバッファリングするようにすることで、中継装置２０と制御装置３０との間の通信に遅延が生じたりした場合であっても、操作データＤの取得漏れが生じないようにすることができる。
【００３６】
再現対象操作の操作データＤを記録する場合、まずユーザーは、制御装置３０に対して操作記録モードの開始を指示した後、実際にターゲット装置４０を動作させながら入力装置１０に対して記録したい操作（すなわち、再現対象操作）を行う。再現対象操作を行った後、ユーザーは制御装置３０に対して操作記録モードの終了を指示する。これにより、一連の再現対象操作の内容を含んだ複数個の操作データＤが制御装置３０に記録される。以下では、一回の操作記録モードの動作によって記録された、一連の再現対象操作の内容を含んだ複数個の操作データＤの集合を、操作データセットＤＳと表記する。
【００３７】
図３は、操作記録モードで制御装置３０に記録される操作データセットＤＳの構成を示している。同図に示されるように、操作データセットＤＳは、記録開始から記録終了までの期間に取得間隔Ｔごとに制御装置３０が受信した複数個の操作データＤを、時系列に沿って順に含んでいる。図３の例では操作データＤ（１）から操作データＤ（Ｎ）まで全部でＮ個の操作データＤが記録されたこととしている。個々の操作データＤは、その操作データＤが入力装置１０内で生成された時点における各操作部材１１に対するユーザーの操作内容を示すデータを含んでいる。ここでは一例として、入力装置１０の筐体表面に配置された複数の操作ボタンのそれぞれが押下されているか否かを示す情報、傾倒操作部材がどの方向にどの程度傾けられているかを示す情報、またタッチパッドが検出した座標値などが操作データＤに含まれることとしている。さらに、操作データＤには、操作部材１１に対するユーザーの操作内容だけでなく、入力装置１０が備える加速度センサーなどのセンサーの検出値を示す情報や、入力装置１０内部の状態に関する情報（例えば充電池の残量や外部機器の接続の有無を示す情報）が含まれてもよい。
【００３８】
次に、記録再現モードにおいて情報処理システム１が実行する処理の流れについて、図４のシーケンス図を用いて説明する。記録再現モードは、操作記録モードで制御装置３０に記録された操作データセットＤＳを用いて、再現対象操作の内容を再現するための動作モードである。この記録再現モードにおいて、制御装置３０は、操作記録モードで記録された操作データセットＤＳに含まれる複数個の操作データＤを、１個ずつ順に中継装置２０経由で入力装置１０に対して送信する。入力装置１０は、制御装置３０から送信される操作データＤを、制御装置３０が送信した順に１個ずつターゲット装置４０に送信する。これにより、操作記録モードにおいてユーザーが実際に行った操作の内容を再現し、ターゲット装置４０にその操作内容に応じた処理を実行させることができる。
【００３９】
具体的に、ユーザーが制御装置３０に対して記録再現モードの動作開始を指示すると、制御装置３０は、記録再現モードでの動作開始を中継装置２０に対して指示する制御命令を送信する（Ｓ２１）。このとき制御装置３０は、併せて操作データセットＤＳに含まれる複数個の操作データＤのうち、最初の操作データＤ（１）を制御命令とともに送信する。その後、制御装置３０は、記録されている操作データセットＤＳに含まれる複数個の操作データＤを順に中継装置２０に対して送信する送信処理Ｒ５を実行する（Ｓ２２）。ここで制御装置３０は、送信処理Ｒ５を取得間隔Ｔと対応する時間間隔で実行するものとする。
【００４０】
制御装置３０は、記録再現モード終了の指示をユーザーから受け付けるか、あるいは操作データセットＤＳに含まれる全ての操作データＤを送信し終えるまでこの操作データセットＤＳの送信処理を繰り返し実行する。なお、制御装置３０は、一連の操作データＤを全て送り終えた後、記録再現モードを終了するのではなく、１個目の操作データＤ（１）に戻って記録再現モード終了の指示が受け付けられるまで操作データセットＤＳの送信処理を繰り返し実行し続けてもよい。あるいは、予め指定された回数だけ操作データセットＤＳの送信処理を繰り返したり、予め指定された時間が経過するまで操作データセットＤＳの送信処理を繰り返したりするなど、所定の終了条件を満たすまで操作データセットＤＳの送信処理を継続してもよい。
【００４１】
中継装置２０は、制御装置３０から送信された操作データＤが所定の個数に到達するまで、受信した複数個の操作データＤをメモリ２２内に一時的に格納してバッファリングする（Ｓ２３）。図４の例では、３個の操作データＤをバッファリングすることとしている。なお、中継装置２０は、制御装置３０から送信される操作データＤを、メモリ２２内に確保された所定の領域に格納する。
【００４２】
上述したＳ２１〜Ｓ２３の処理が行われている間、ターゲット装置４０は本情報処理システム１の動作モードの影響は受けないため、操作記録モードの場合と同様に、取得間隔Ｔで操作データＤの取得要求Ｒ１を入力装置１０に対して送信し続けている（Ｓ１）。デフォルトの状態において入力装置１０は、前述したように、ターゲット装置４０の取得要求Ｒ１に対して、自身の状態を走査してＳ３で生成される操作データＤを応答Ｒ２としてターゲット装置４０及び中継装置２０に対して送信する（Ｓ２）。中継装置２０は、この応答Ｒ２によって入力装置１０から送信される操作データＤを、メモリ２２内の、前述した制御装置３０から送信される操作データＤを格納する領域とは別の領域に格納している。ここで中継装置２０は、Ｓ２１で記録再現モード開始の指示を受け付けた後は、Ｓ２で入力装置１０から送信される操作データＤのメモリ２２内への格納は中断する。そして、Ｓ２３で所定個数の操作データＤをメモリ２２内に格納し終えると、その後にＳ２で送信される操作データＤを受け付けたタイミングで、Ｓ２の送信に対する応答Ｒ６として、記録再現モードへの切り替えを指示する制御命令を入力装置１０に対して送信する（Ｓ２４）。この制御命令を受信した入力装置１０は、記録再現モードでの動作を開始する。
【００４３】
記録再現モードにおいて入力装置１０は、操作記録モードのときのような自身での操作データＤの生成処理（Ｓ３）は実行せず、ターゲット装置４０からの取得要求Ｒ１に対する応答Ｒ２として、中継装置２０から受信した操作データＤを送信することとする。具体的に入力装置１０は、取得要求Ｒ１を受け付けると、デフォルトの場合と同様に、メモリ１３に格納している操作データＤを応答Ｒ２として送信する（Ｓ２）。この応答Ｒ２は、中継装置２０にも送信されている。中継装置２０は、この入力装置１０からの送信に対する応答Ｒ６として、Ｓ２３でバッファリングされた複数個の操作データＤのうち、最も古い操作データＤを送信する（Ｓ２５）。このとき中継装置２０は、送信した操作データＤをメモリ２２から削除する。
【００４４】
入力装置１０は、Ｓ２５の応答Ｒ６に含まれる操作データＤを、次にターゲット装置４０に送信すべき操作データＤとしてメモリ１３に格納する（Ｓ２６）。なお、このＳ２５及びＳ２６の処理は、取得間隔Ｔと比較して短い時間で完了するものとする。
【００４５】
以上説明した処理によれば、入力装置１０は、記録再現モードに切り替わった後は、中継装置２０を経由して制御装置３０から受信した操作データＤを、取得要求Ｒ１を受け付けるごとに１個ずつターゲット装置４０に送信することになる。これによりターゲット装置４０は、操作記録モードにおいてユーザーが再現対象操作を行ったときと同様の動作環境で、再現対象操作が行われた際に入力装置１０から受け付けた一連の操作データセットＤＳと同一の操作データセットＤＳを、同じ順序、及び時間間隔で受け取ることができる。そのため、記録再現モードではユーザーは入力装置１０に対して何の操作も行っていないにもかかわらず、再現対象操作が行われたものとしてターゲット装置４０にその操作内容に応じた処理を実行させることができる。この記録再現モードにより、例えば同じ操作を複数回繰り返した場合のターゲット装置４０の挙動を確認する動作テストを、実際の操作を複数回繰り返すことなく実現することができる。
【００４６】
また、記録再現モードでも操作記録モードと同様に中継装置２０が複数個の操作データＤをバッファリングしながら中継を行うことで、ターゲット装置４０に入力される操作データＤに漏れが生じないようにして、操作記録時と同様に操作データＤが継続的にターゲット装置４０に送信されるようにすることができる。
【００４７】
次に、所定操作再現モードにおいて制御装置３０が実行する処理の内容について、説明する。この所定操作再現モードでは、記録再現モードと同様に、外部から供給される操作データＤをターゲット装置４０に入力して、ユーザーが入力装置１０に対する操作を行うことなくターゲット装置４０に所望の処理を実行させる。しかしながら記録再現モードと異なり、制御装置３０は操作記録モードで記録された操作データＤを順次送信するのではなく、予め用意された複数個の操作データＤを送信する処理を、ターゲット装置４０が実行する処理の進行に応じて決まるタイミングで開始する。これにより、ターゲット装置４０が実行する処理の進行に合わせたユーザーの操作を再現することができる。
【００４８】
具体的に、この所定操作再現モードでは、複数の操作データセットＤＳが予め作成され、制御装置３０内に記録されているものとする。これら複数の操作データセットＤＳには、送信すべき順序が定められている。各操作データセットＤＳは、１又は複数の操作データＤによって構成される。具体的に、一つの操作データセットＤＳは、繰り返し送信すべき１又は複数の操作データＤによって構成されてもよい。また、１度だけ送信すべき操作データＤと繰り返し送信すべき操作データＤの組み合わせによって構成されてもよい。繰り返し送信すべき操作データＤを含むことによって、一つの操作データセットＤＳに基づく操作データＤの送信を、次の操作データセットＤＳの送信処理を開始すべきタイミングが到来するまで継続して実行することができる。
【００４９】
各操作データセットＤＳに対しては、その送信を開始すべきタイミングを決定する条件（以下、操作開始条件という）が設定されている。この操作開始条件は、ターゲット装置４０が実行する処理の進行に関する条件である。特に以下では、操作開始条件は、ターゲット装置４０が表示装置４１の画面に表示する映像の内容に関する条件であるものとする。例えば操作開始条件は、所定形状のカーソルが所定の領域内に進入することや、カーソルが所定のオブジェクトと重なったことなど、映像内に表示されるカーソル等のオブジェクトの位置に関する条件であってもよい。あるいは、所定のオブジェクトが映像内に登場することや、映像内から消去されることなど、所定のオブジェクトの有無に関する条件であってもよい。
【００５０】
制御装置３０は、操作開始条件が成立したか否かを、カメラ３６の撮像画像を解析することによって判定するものとする。すなわち、所定操作再現モードにおいては、制御装置３０に接続されたカメラ３６が表示装置４１の画面を撮像して得られる映像を、制御装置３０に対して入力し続けることとする。制御装置３０は、その撮像画像を解析した結果、操作開始条件を満たしたと判定した場合、その操作開始条件に関連づけられた操作データセットＤＳに含まれる一連の操作データＤの送信を開始する。
【００５１】
以下、所定操作再現モードにおいて制御装置３０が実行する処理の流れについて、図５のフロー図を用いて説明する。まず制御装置３０は、所定操作再現モードの開始指示をユーザーから受け付けると（Ｓ４１）、記録再現モードと同様に、モード切り替えを指示する制御命令を中継装置２０に対して送信する（Ｓ４２）。
【００５２】
その後、制御装置３０は、最初に送信対象とすべき操作データセットＤＳを読み出す（Ｓ４３）。この最初の操作データセットＤＳは、操作開始条件が設定されておらず、無条件で送信を開始すべき操作データセットＤＳである。最初の操作データセットＤＳは、ユーザーが何の操作も行っていないことを示す操作データＤだけを含むものであってもよい。また、例えば画面上に登場するカーソルやキャラクターなどを所定方向に移動させるために、その方向を指示する内容の操作データＤを含むものであってもよい。
【００５３】
最初の操作データセットＤＳを読み出すと、制御装置３０はその内容に従って操作データＤの送信を開始する（Ｓ４４）。記録再現モードと同様、操作データＤの送信は取得間隔Ｔごとに実行される。
【００５４】
制御装置３０は、操作データＤの送信と並行して、カメラ３６から入力される映像の解析を開始する。具体的に制御装置３０は、カメラ３６から入力される映像を構成する個々のフレーム画像を解析することによって、次に送信すべき操作データセットＤＳに関連づけられた操作開始条件が満たされたか否かを判定する（Ｓ４５）。操作開始条件が満たされていない間、制御装置３０はＳ４４に戻って現在の操作データセットＤＳに基づく操作データＤの送信を継続する。一方、操作開始条件が満たされた場合、その操作開始条件に対応する次の操作データセットＤＳを読み出し（Ｓ４６）、その操作データセットＤＳに基づく送信処理を開始する。例えばカーソルが所定領域に進入するという操作開始条件に対して、決定ボタンを押下して画面の変化を待つ、といった操作内容を再現する操作データセットＤＳが関連づけられていた場合、制御装置３０は、カメラ３６の撮像画像を解析してカーソルが実際に所定領域に進入したと判定したタイミングで、この操作データセットＤＳの送信処理を開始する。これにより、ユーザーがカーソルを所定領域に移動させて決定ボタンを押下するという再現対象操作の内容を再現することができる。
【００５５】
制御装置３０は、以上説明した処理を予め定められた終了条件が満たされるまで繰り返す。ここでの終了条件は、例えば操作開始条件と同様にカメラ３６の撮像画像が満たすべき条件であってもよい。あるいは、予め用意された全ての操作データセットＤＳに基づく送信処理が完了した段階で、所定操作再現モードの動作を終了してもよい。
【００５６】
所定操作再現モードにおいて、入力装置１０は記録再現モードと同様に動作する。すなわち、中継装置２０からモード変更の指示が受け付けられた場合、それ以降入力装置１０は、自身で操作データＤを生成する代わりに中継装置２０経由で制御装置３０から送信される操作データＤをメモリ１３に一時的に格納し、ターゲット装置４０からの取得要求Ｒ１に対してその操作データＤを送信する。すなわち、入力装置１０は記録再現モードと所定操作再現モードを区別する必要はなく、どちらのモードであっても中継装置２０経由で制御装置３０から送信される操作データＤを１個ずつターゲット装置４０に送信する機能を実現する。
【００５７】
中継装置２０についても、所定操作再現モードにおいて基本的には記録再現モードと同様に動作する。すなわち、所定操作再現モードでの動作開始を制御装置３０から指示された場合、中継装置２０は入力装置１０に対してモード変更を指示する制御命令を送信し、その後は応答Ｒ２に対する応答Ｒ６として、制御装置３０から受信した操作データＤを順に入力装置１０に対して送信することになる。
【００５８】
ただし、記録再現モードの場合と異なり、所定操作再現モードにおいて中継装置２０は、制御装置３０から受信した操作データＤを所定数までバッファリングする必要はない。なぜなら、記録再現モードにおいては記録された操作データＤの全てをもれなく記録時と同様の順序で送信することが重要であるが、所定操作再現モードにおいては操作開始条件が満たされた後遅滞なくその条件に対応する操作データＤが送信されることが重視されるためである。中継装置２０が複数個の操作データＤをバッファリングすることとすると、バッファリングされた操作データＤが順次送出されるまでの時間の分だけ、操作開始条件が満たされてからその条件に対応する操作データＤがターゲット装置４０に入力されるまでの時間に遅延が生じることになる。そのため中継装置２０は、所定操作再現モードにおいては操作データＤのバッファリングをせずに、所定操作再現モードの開始を指示された際には次のタイミングですぐに入力装置１０に対してモード切り替えの指示を行い、その後は制御装置３０から受信した操作データＤを順に入力装置１０に対して転送することとする。こうすれば、操作開始条件が満たされた場合に、遅滞なくその状況に対応した操作内容をターゲット装置４０に入力することができる。
【００５９】
以上説明したように、所定操作再現モードでは、表示装置４１に表示される映像を解析し、その結果に応じて決まるタイミングで予め用意した操作データＤを送信することによって、ターゲット装置４０が実行する実際の処理の進行に合わせたタイミングで各種の操作を再現することができる。より具体的に、所定操作再現モードによれば、所定のメニュー項目が表示されている位置までカーソルを移動させ、その後そのメニュー項目の選択操作を行い、画面が切り替わった後は別のメニュー項目を選択する、といったような一連の操作を、ユーザーの実際の操作によらずに再現することができる。
【００６０】
なお、ここではカメラ３６の撮像画像を解析して操作開始条件が満たされたか否かを判定することとしたが、操作開始条件が満たされたことを判定する方法はこのようなものに限られない。例えば制御装置３０は、ターゲット装置４０が表示装置４１に供給するものと同じ映像信号を受け付けて、その内容を解析してもよい。いずれにせよ、ターゲット装置４０が処理の結果として表示装置４１の画面に表示される映像を取得し、取得した映像を解析した結果に基づいて操作開始条件が満たされたか否かを判定することで、ターゲット装置４０に追加的な処理を実行させることなく、制御装置３０はターゲット装置４０による処理の実行結果に応じて対応する操作データセットＤＳの送信処理を開始することができる。
【００６１】
以上説明した本発明の実施形態に係る情報処理システム１によれば、ターゲット装置４０の動作環境には影響を与えずに、ユーザーの操作を再現した場合の処理をターゲット装置４０に実行させることができる。
【００６２】
なお、本発明の実施の形態は、以上説明したものに限られない。例えば以上の説明では、情報処理システム１は記録再現モード、及び所定操作再現モードのどちらでも動作可能であることとしたが、いずれか一方の機能のみ実現可能に構成されてもよい。なお、所定操作再現モードでのみ動作する場合、情報処理システム１は操作記録モードで動作する必要もない。
【００６３】
また、以上の説明では入力装置１０と制御装置３０とは中継装置２０を経由して接続され、中継装置２０経由で操作データＤの送受信を行うこととした。しかしながらこれに限らず、入力装置１０と制御装置３０とは直接接続されることとしてもよい。この場合、中継装置２０は不要となり、以上の説明において中継装置２０が実行することとした処理の少なくとも一部は、制御装置３０が実行することとなる。
【００６４】
また、以上の説明ではターゲット装置４０は単独でゲームなどの処理を実行する情報処理装置であることとしたが、これに限らずターゲット装置４０は互いに通信接続されるサーバ装置とクライアント装置の組み合わせによって構成されてもよい。具体例として、サーバ装置とクライアント装置はインターネット等の通信ネットワークを介して接続され、サーバ装置はクラウドゲーム等のサービスを提供してもよい。この場合、入力装置１０が直接接続されるクライアント装置は、入力装置１０から受け付けた操作データＤの内容に応じた処理要求をサーバ装置に送信し、その処理要求に応じてサーバ装置が実行した処理の結果を示す画像データ等を受信し、表示装置４１に表示してユーザーに提示する。この場合にも、本実施形態に係る情報処理システム１によれば、クライアント装置の負荷やクライアント装置とサーバ装置との間の通信等には影響を与えることなく、ユーザーの操作を再現することができる。
【符号の説明】
【００６５】
１  情報処理システム、１０  入力装置、１１  操作部材、１２  制御回路、１３  メモリ、１４  通信インタフェース、２０  中継装置、２１  制御回路、２２  メモリ、２３  通信インタフェース、３０  制御装置、３１  制御部、３２  記憶部、３３  インタフェース部、３４  操作デバイス、３５  表示装置、３６  カメラ、４０  ターゲット装置、４１  表示装置。
【図１】
2020201706.tif 000003
【図２】
2020201706.tif 000004
【図３】
2020201706.tif 000005
【図４】
2020201706.tif 000006
【図５】
2020201706.tif 000007