(57)【要約】【課題】情報処理装置間でオブジェクトの動作について同期を取りやすくする。【解決手段】第１情報処理装置は、仮想空間に配置された第１オブジェクトを第１情報処理装置に関するユーザの入力に応じて制御し、第１オブジェクトに関するオブジェクト情報を第２情報処理装置へ送信する。第２情報処理装置は、第１情報処理装置からオブジェクト情報を受信する。第２情報処理装置は、仮想空間に配置された第２オブジェクトを第２情報処理装置に関するユーザの入力に応じて制御するとともに、オブジェクト情報に基づいて第１オブジェクトを制御する。第２情報処理装置は、少なくとも第１オブジェクトを含む画像を表示装置に表示させる。第２情報処理装置は、所定の条件が満たされた場合、オブジェクト情報に基づく第１オブジェクトによる動作の一部をスキップする。【選択図】図１０
2018196577.tif 000002
【特許請求の範囲】
【請求項１】
第１情報処理装置および当該第１情報処理装置と通信可能な第２情報処理装置を含む情報処理システムにおいて、
前記第１情報処理装置は、
仮想空間に配置された第１オブジェクトを前記第１情報処理装置に関するユーザの入力に応じて制御する第１制御手段と、
前記第１オブジェクトに関するオブジェクト情報を前記第２情報処理装置へ送信する第１送信手段とを有し、
前記第２情報処理装置は、
前記第１情報処理装置から前記オブジェクト情報を受信する受信手段と、
前記仮想空間に配置された第２オブジェクトを前記第２情報処理装置に関するユーザの入力に応じて制御するとともに、前記オブジェクト情報に基づいて前記第１オブジェクトを制御する第２制御手段と、
少なくとも前記第１オブジェクトを含む画像を表示装置に表示させる表示制御手段とを有し、
前記第２制御手段は、所定の条件が満たされた場合、前記オブジェクト情報に基づく前記第１オブジェクトによる動作の一部をスキップする、情報処理システム。
【請求項２】
前記所定の条件は、前記第１情報処理装置に関するユーザの入力に基づいて前記第１オブジェクトが所定の動作を開始したことを示す情報を前記オブジェクト情報として前記受信手段が受信したことである、請求項１に記載の情報処理システム。
【請求項３】
前記所定の動作は、前記第２オブジェクトに影響を与え得る動作である、請求項２に記載の情報処理システム。
【請求項４】
前記所定の動作は、予備動作と、当該予備動作に続いて行われる本動作とを含み、
前記第２制御手段は、前記所定の条件が満たされた場合、前記第１オブジェクトによる前記予備動作の少なくとも一部をスキップし、少なくとも当該第１オブジェクトによる前記本動作を行うよう当該第１オブジェクトを制御する、請求項２または請求項３に記載の情報処理システム。
【請求項５】
前記予備動作は、前記第２オブジェクトに影響を与えない動作であり、
前記第２情報処理装置は、
前記第１オブジェクトによる前記本動作によって前記第２オブジェクトが影響を受けたか否かを判定する判定手段をさらに有する、請求項４に記載の情報処理システム。
【請求項６】
前記第２情報処理装置は、
前記第１情報処理装置と前記第２情報処理装置との間の通信における遅延時間を特定する遅延特定手段をさらに有し、
前記第２制御手段は、前記第１オブジェクトによる動作をスキップする長さを、前記遅延時間の長さに応じて変化させる、請求項１から請求項５のいずれか１項に記載の情報処理システム。
【請求項７】
前記第２制御手段は、前記第１オブジェクトによる動作の一部をスキップした場合、スキップ後の当該第１オブジェクトの状態を予測することによって、当該スキップ後の動作の制御を開始する、請求項１から請求項６のいずれか１項に記載の情報処理システム。
【請求項８】
前記第２制御手段は、前記オブジェクト情報に含まれる前記第１オブジェクトに関する情報に基づいてスキップ後の動作を予測する、請求項７に記載の情報処理システム。
【請求項９】
前記第２制御手段は、前記第１オブジェクトがスキップ後の動作を開始する位置を予測する、請求項７または請求項８に記載の情報処理システム。
【請求項１０】
前記第２制御手段は、前記オブジェクト情報に含まれる前記第１オブジェクトに関する情報を入力とし、スキップ後の動作における前記第１オブジェクトの状態を出力とする関数であって、前記第１オブジェクトの種類毎に異なる関数を用いて予測を行う、請求項７から請求項９のいずれか１項に記載の情報処理システム。
【請求項１１】
前記第２情報処理装置は、
前記第１オブジェクトによる動作に起因して生じる結果を示す結果情報を前記第１情報処理装置へ送信する第２送信手段を有し、
前記第１情報処理装置は、
前記第２情報処理装置から前記結果情報を受信する第２受信手段と、
受信した前記結果情報に基づいて前記結果を表す画像を前記表示装置に表示させる結果表示手段とを有する、請求項１から請求項１０のいずれか１項に記載の情報処理システム。
【請求項１２】
他の情報処理装置と通信可能な情報処理装置であって、
仮想空間に配置され、前記他の情報処理装置に関するユーザの入力に応じて制御される第１オブジェクトに関するオブジェクト情報を当該他の情報処理装置から受信する受信手段と、
前記仮想空間に配置された第２オブジェクトを自機に関するユーザの入力に応じて制御するとともに、前記オブジェクト情報に基づいて前記第１オブジェクトを制御するオブジェクト制御手段と、
少なくとも前記第１オブジェクトを含む画像を表示装置に表示させる表示制御手段とを有し、
前記制御手段は、所定の条件が満たされた場合、前記オブジェクト情報に基づく前記第１オブジェクトによる動作の一部をスキップする、情報処理装置。
【請求項１３】
第１情報処理装置と通信可能な第２情報処理装置のコンピュータにおいて実行される情報処理プログラムであって、
仮想空間に配置され、前記第１情報処理装置に関するユーザの入力に応じて制御される第１オブジェクトに関するオブジェクト情報を当該第１情報処理装置から受信する受信手段と、
前記仮想空間に配置された第２オブジェクトを前記第２情報処理装置に関するユーザの入力に応じて制御するとともに、前記オブジェクト情報に基づいて前記第１オブジェクトを制御するオブジェクト制御手段と、
少なくとも前記第１オブジェクトを含む画像を表示装置に表示させる表示制御手段として前記コンピュータを機能させ、
前記制御手段は、所定の条件が満たされた場合、前記オブジェクト情報に基づく前記第１オブジェクトによる動作の一部をスキップする、情報処理プログラム。
【請求項１４】
第１情報処理装置および当該第１情報処理装置と通信可能な第２情報処理装置を含む情報処理システムにおいて実行される情報処理方法であって、
前記第１情報処理装置は、
仮想空間に配置された第１オブジェクトを前記第１情報処理装置に関するユーザの入力に応じて制御する第１制御ステップと、
前記第１オブジェクトに関するオブジェクト情報を前記第２情報処理装置へ送信する第１送信ステップとを実行し、
前記第２情報処理装置は、
前記第１情報処理装置から前記オブジェクト情報を受信する受信ステップと、
前記仮想空間に配置された第２オブジェクトを前記第２情報処理装置に関するユーザの入力に応じて制御するとともに、前記オブジェクト情報に基づいて前記第１オブジェクトを制御する第２制御ステップと、
少なくとも前記第１オブジェクトを含む画像を表示装置に表示させる表示制御ステップとを実行し、
前記第２制御ステップにおいて、前記第２情報処理装置は、所定の条件が満たされた場合、前記オブジェクト情報に基づく前記第１オブジェクトによる動作の一部をスキップする、情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置間で通信を行って情報処理を実行する情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法に関する。
【背景技術】
【０００２】
従来、複数の装置間で通信を行うことによってゲーム処理を実行する場合において、通信の遅延を考慮してゲーム処理を実行することが行われている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−０９７８３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来、ある情報処理装置において通信相手からの情報を受信して情報処理を実行する際に、通信相手からの情報に基づいてオブジェクトの動作を制御する場合において、当該オブジェクトの動作について装置間で同期を取ることが難しくなることがあった。例えば、動作を開始するタイミングが通信遅延のために装置間でずれることから、動作に起因して生じる結果のタイミングが装置間でずれるおそれがあった。
【０００５】
それ故、本発明の目的は、情報処理装置間でオブジェクトの動作について同期を取りやすくすることができる情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法を提供することである。
【課題を解決するための手段】
【０００６】
上記の課題を解決すべく、本発明は、以下の（１）〜（１１）の構成を採用した。
【０００７】
（１）
本発明の一例は、第１情報処理装置および当該第１情報処理装置と通信可能な第２情報処理装置を含む情報処理システムである。
第１情報処理装置は、第１制御手段と、第１送信手段とを有する。第１制御手段は、仮想空間に配置された第１オブジェクトを第１情報処理装置に関するユーザの入力に応じて制御する。第１送信手段は、第１オブジェクトに関するオブジェクト情報を第２情報処理装置へ送信する。
第２情報処理装置は、受信手段と、第２制御手段と、表示制御手段とを有する。受信手段は、第１情報処理装置からオブジェクト情報を受信する。第２制御手段は、仮想空間に配置された第２オブジェクトを第２情報処理装置に関するユーザの入力に応じて制御するとともに、オブジェクト情報に基づいて第１オブジェクトを制御する。表示制御手段は、少なくとも第１オブジェクトを含む画像を表示装置に表示させる。第２制御手段は、所定の条件が満たされた場合、オブジェクト情報に基づく第１オブジェクトによる動作の一部をスキップする。
【０００８】
上記（１）の構成によれば、第２情報処理装置においては、第１オブジェクトによる動作の一部をスキップすることで、当該動作に要する時間を短くすることができる。これによって、第１情報処理装置から第２情報処理装置へオブジェクト情報を送信する場合に生じる遅延による影響を緩和することができるので、第１オブジェクトの動作について情報処理装置間での同期を取りやすくすることができる。
【０００９】
（２）
所定の条件は、第１情報処理装置に関するユーザの入力に基づいて第１オブジェクトが所定の動作を開始したことを示す情報をオブジェクト情報として受信手段が受信したことであってもよい。
【００１０】
上記（２）の構成によれば、第２情報処理装置において所定の動作が開始されるタイミングから動作のスキップを行うことが可能になるので、所定の動作に要する時間を短縮しやすくなる。
【００１１】
（３）
所定の動作は、第２オブジェクトに影響を与え得る動作であってもよい。
【００１２】
上記（３）の構成によれば、第１オブジェクトが第２オブジェクトに対して影響を与える動作について、情報処理装置間での同期を取りやすくすることができる。
【００１３】
（４）
所定の動作は、予備動作と、当該予備動作に続いて行われる本動作とを含んでいてもよい。第２制御手段は、所定の条件が満たされた場合、第１オブジェクトによる予備動作の少なくとも一部をスキップし、少なくとも当該第１オブジェクトによる本動作を行うよう当該第１オブジェクトを制御する。
【００１４】
上記（４）の構成によれば、第２情報処理装置は、予備動作をスキップすることによって、所定の動作の一部がスキップされることによってユーザに与える違和感を軽減することができる。
【００１５】
（５）
予備動作は、第２オブジェクトに影響を与えない動作であってもよい。第２情報処理装置は、判定手段をさらに有してもよい。判定手段は、第１オブジェクトによる本動作によって第２オブジェクトが影響を受けたか否かを判定する。
【００１６】
上記（５）の構成によれば、所定の動作のうちで、重要性が相対的に低い部分の動作がスキップされるので、動作をスキップすることが、オブジェクトの動作に起因する結果に与える影響を軽減することができる。
【００１７】
（６）
第２情報処理装置は、遅延特定手段をさらに有していてもよい。遅延特定手段は、第１情報処理装置と第２情報処理装置との間の通信における遅延時間を特定する。第２制御手段は、第１オブジェクトによる動作をスキップする長さを、遅延時間の長さに応じて変化させてもよい。
【００１８】
上記（６）の構成によれば、第２情報処理装置は、遅延時間に応じた適切な時間で第１オブジェクトの動作を表示することができる。
【００１９】
（７）
第２制御手段は、第１オブジェクトによる動作の一部をスキップした場合、スキップ後の当該第１オブジェクトの状態を予測することによって、当該スキップ後の動作の制御を開始してもよい。
【００２０】
上記（７）の構成によれば、所定の動作の一部がスキップされた後において第１オブジェクトをより自然に動作させることができるので、スキップすることによってユーザに与える違和感を軽減することができる。
【００２１】
（８）
第２制御手段は、オブジェクト情報に含まれる第１オブジェクトに関する情報に基づいてスキップ後の動作を予測してもよい。
【００２２】
上記（８）の構成によれば、第２情報処理装置は、第１情報処理装置から送信されてくる情報に基づくことによって、予測を精度良く行うことができる。
【００２３】
（９）
第２制御手段は、第１オブジェクトがスキップ後の動作を開始する位置を予測してもよい。
【００２４】
上記（９）の構成によれば、第１オブジェクトがスキップ後の動作を開始する位置を自然な位置とすることができるので、スキップすることによってユーザに与える違和感を効果的に軽減することができる。
【００２５】
（１０）
第２制御手段は、オブジェクト情報に含まれる第１オブジェクトに関する情報を入力とし、スキップ後の動作における第１オブジェクトの状態を出力とする関数であって、第１オブジェクトの種類毎に異なる関数を用いて予測を行ってもよい。
【００２６】
上記（１０）の構成によれば、第２情報処理装置は、第１オブジェクトの種類に応じて適切な予測を行うことができる。
【００２７】
（１１）
第２情報処理装置は、第２送信手段を有してもよい。第２送信手段は、第１オブジェクトによる動作に起因して生じる結果を示す結果情報を第１情報処理装置へ送信する。第１情報処理装置は、第２受信手段と、結果表示手段とを有していてもよい。第２受信手段は、第２情報処理装置から結果情報を受信する。結果表示手段は、受信した結果情報に基づいて結果を表す画像を表示装置に表示させる。
【００２８】
上記（１１）の構成によれば、第１情報処理装置は、第２情報処理装置から受信される結果情報に基づいて結果の表示が行われるので、第１および第２情報処理装置の間で結果を一致させることができる。
【００２９】
なお、本発明の別の一例は、上記（１）〜（１１）における第１情報処理装置または第２情報処理装置であってもよい。また、本発明の別の一例は、上記（１）〜（１１）における第２情報処理装置（または第１情報処理装置）が有する各手段として、当該第２情報処理装置（または第１情報処理装置）のコンピュータを機能させる情報処理プログラムであってもよい。また、本発明の別の一例は、上記（１）〜（１１）における情報処理システムにおいて実行される情報処理方法であってもよい。
【発明の効果】
【００３０】
本発明によれば、情報処理装置間でオブジェクトの動作について同期を取りやすくすることができる。
【図面の簡単な説明】
【００３１】
【図１】本実施形態における情報処理システムの構成の一例を示すブロック図
【図２】第１情報処理装置の構成の一例を示すブロック図
【図３】第１情報処理装置に表示されるゲーム画像の一例を示す図
【図４】予備動作を行う第１オブジェクトの一例を示す図
【図５】本動作を行う第１オブジェクトの一例を示す図
【図６】第１オブジェクトによるパンチが第２オブジェクトに当たった様子の一例を示す図
【図７】パンチ動作に関して各情報処理装置において実行される処理の流れを示すタイミングチャート
【図８】送信側および受信側におけるパンチ動作の開始タイミングおよび結果の発生タイミングの一例を示す図
【図９】送信側および受信側において行われるパンチ動作の一例を示す図
【図１０】遅延時間が比較的長い場合において行われるパンチ動作の一例を示す図
【図１１】遅延時間が比較的短い場合において行われるパンチ動作の一例を示す図
【図１２】パンチ動作の開始時点と、本動作の開始時点とにおける第１オブジェクトの一例を示す図
【図１３】予測位置の算出方法の一例を示す図
【図１４】送信側および受信側におけるパンチ動作期間の一例を示す図
【図１５】情報処理装置におけるゲーム処理に用いられる情報の一例を示す図
【図１６】ゲーム情報に含まれる情報の一例を示す図
【図１７】送信側の情報処理装置によって実行されるゲーム処理の一例の流れを示すフローチャート
【図１８】受信側の情報処理装置によって実行されるゲーム処理の一例の流れを示すフローチャート
【図１９】図１８に示すステップＳ３８の予測位置算出処理の詳細な流れの一例を示すサブフローチャート
【図２０】図１８に示すステップＳ３９の動作制御処理の詳細な流れの一例を示すサブフローチャート
【発明を実施するための形態】
【００３２】
［１．情報処理システムの構成］
以下、本実施形態に係る情報処理システム、情報処理装置、ゲームプログラム、および、ゲーム処理方法について説明する。まず、本実施形態に係る情報処理システムの全体構成と、情報処理システムに含まれる情報処理装置とについて説明する。
【００３３】
図１は、本実施形態における情報処理システムの構成の一例を示すブロック図である。図１に示すように、情報処理システムは、第１情報処理装置１と、第２情報処理装置２とを含む。第１情報処理装置１および第２情報処理装置２は、ネットワーク３を介して互いに通信可能である。ネットワーク３は、例えばインターネットであるが、ＬＡＮや携帯電話通信網等の任意のネットワークであってよい。本実施形態において、各情報処理装置１および２は、自機と相手の情報処理装置との間でデータをやり取りしながら、ゲーム処理を実行する。なお、情報処理システムに含まれる情報処理装置の数は２以上の任意の数であってよい。また、情報処理装置間の通信方法は任意である（後述する［４．本実施形態の作用効果および変形例］を参照）。
【００３４】
また、以下において、第１情報処理装置と第２情報処理装置２とを区別しない場合には、第１情報処理装置および第２情報処理装置２の総称として「情報処理装置」と記載することがある。
【００３５】
図２は、第１情報処理装置１の構成の一例を示すブロック図である。図２に示すように、情報処理装置１は、処理部１１および記憶部１２を備える。処理部１１は、第１情報処理装置１の各部１２〜１５に電気的に接続される。処理部１１は、ＣＰＵおよびメモリを有する。第１情報処理装置１においては、ＣＰＵがメモリを用いて、記憶部１２に記憶されたプログラム（本実施形態においては、ゲームプログラム）を実行することによって各種の情報処理が実行される。記憶部１２は、処理部１１において実行されるプログラム、処理部１１による情報処理に用いられるデータ、および、当該情報処理によって得られたデータ等を記憶する。なお、記憶部１２は、第１情報処理装置１に対して着脱可能な記憶媒体（例えば、カード型の記憶媒体）であってもよい。
【００３６】
第１情報処理装置１は、入力部１３を備える。入力部１３は、任意の入力装置であってよい。入力部１３は、例えばボタンまたはスティック等の操作装置であってもよいし、タッチパネルまたはマウスであってもよい。また、入力部１３は、加速度センサまたはジャイロセンサといった慣性センサであってもよいし、マイクまたはカメラであってもよい。入力部１３は、処理部１１を有する本体装置とは別体の装置（例えば、ゲームコントローラ）に設けられてもよく、本体装置と無線によって通信を行う装置であってもよい。
【００３７】
第１情報処理装置１は、表示部１４を備える。表示部１４は、第１情報処理装置１の処理部１１において実行される情報処理によって生成された画像（例えば、ゲーム画像等）を表示する。表示部１４は、処理部１１を有する本体装置とは別体の装置（例えば、テレビ等のディスプレイ装置）であってもよい。
【００３８】
第１情報処理装置１は、通信部１５を備える。本実施形態において、通信部１５は、例えばＷｉ−Ｆｉの認証を受けた通信モジュールによって無線ＬＡＮに接続する機能を有する。処理部１１は、通信部１５を用いて（換言すれば、通信部１５を介して）無線ＬＡＮを介してネットワーク３に接続し、他の装置（例えば、第２情報処理装置２等）と通信を行う。なお、第１情報処理装置１が他の装置との通信を行うための通信部の構成は任意である。通信部１５は、例えばＢｌｕｅｔｏｏｔｈ（登録商標）の規格に従った通信によって近距離無線通信を行う機能を有していてもよいし、モバイル通信網（換言すれば、携帯電話通信網）に接続して通信を行う機能を有していてもよい。また、通信部１５は、上記の通信機能のうち複数の機能を有していてもよい。
【００３９】
図示しないが、第２情報処理装置２は、第１情報処理装置１と同様に、図２に示す各部を備える。ただし、第２情報処理装置２は第１情報処理装置と全く同一の構成である必要はない。また、第１情報処理装置と第２情報処理装置２は、異なる種類の装置であってもよい。例えば、第１情報処理装置がスマートフォンであって、第２情報処理装置２が携帯ゲーム機であってもよいし、第１情報処理装置が携帯ゲーム機であって、第２情報処理装置２が据置型ゲーム機であってもよい。
【００４０】
［２．ゲーム処理の概要］
次に、図３〜図１４を参照して、各情報処理装置１および２において実行されるゲーム処理の概要について説明する。本実施形態において、情報処理装置は、通信ゲームのためのゲーム処理を実行する。すなわち、情報処理装置は、自機と相手装置との間でゲーム情報の送受信を行い、受信したゲーム情報に基づいてゲーム処理を実行する。
【００４１】
本実施形態においては、各情報処理装置１および２において対戦形式の通信ゲームが行われる場合を例として、ゲーム処理を説明する。具体的には、本実施形態においては、オブジェクトが後述のパンチ動作によって相手のオブジェクトを攻撃するゲームである。ただし、他の実施形態においては、各情報処理装置１および２において行われる通信ゲームの内容は任意である（後述する［４．本実施形態の作用効果および変形例］を参照）。
【００４２】
図３は、第１情報処理装置に表示されるゲーム画像の一例を示す図である。図３に示すように、本実施形態においては、第１オブジェクト２１および第２オブジェクト２２が仮想のゲーム空間に登場し、当該ゲーム空間を表すゲーム画像が表示部１４に表示される。第１オブジェクト２１は、第１情報処理装置１のユーザによって操作されるオブジェクト（換言すれば、プレイヤキャラクタ）である。すなわち、第１オブジェクト２１は、第１情報処理装置１（より具体的には、入力部１３）に対する入力に応じて動作が制御される。第２オブジェクト２２は、第２情報処理装置２のユーザによって操作されるオブジェクトであり、第２情報処理装置２（より具体的には、入力部）に対する入力に応じて動作が制御される。
【００４３】
また、以下において、第１オブジェクト２１と第２オブジェクト２２とを区別しない場合には、情報処理装置における操作対象となるオブジェクト（具体的には、第１オブジェクト２１および第２オブジェクト２２）の総称として「操作対象オブジェクト」と記載することがある。
【００４４】
図３に示すように、第１情報処理装置１においては（対戦相手である）第２オブジェクト２２を含むゲーム画像が表示される。また、図示しないが、第２情報処理装置２においては第１オブジェクト２１を含むゲーム画像が表示される。このように、本実施形態においては、情報処理装置は、相手オブジェクト（すなわち、通信相手の情報処理装置に対する入力に応じて動作が制御される操作対象オブジェクト）を含むゲーム画像を表示部に表示する。なお、本実施形態においては、情報処理装置は、相手オブジェクトに加えて、自オブジェクト（すなわち、当該情報処理装置に対する入力に応じて動作が制御される操作対象オブジェクト）も表示する。ただし、他の実施形態において、情報処理装置は、自オブジェクトを含まないゲーム画像（例えば、１人称視点のゲーム画像）を表示してもよい。
【００４５】
［２−１．パンチ動作］
次に、図４〜図６を参照して、操作対象オブジェクトが行うパンチ動作について説明する。本実施形態において、操作対象オブジェクトは、情報処理装置に対する入力に応じて、相手オブジェクトに対してパンチ動作を行う。以下、第１オブジェクト２１が第２オブジェクト２２に対してパンチ動作を行う場合における処理を例として説明する（図７以降における説明も同様である）。なお、第２オブジェクト２２が第１オブジェクト２１に対してパンチ動作を行う場合における処理も同様である。
【００４６】
入力部１３によってパンチ入力が受け付けられたことに応じて、第１オブジェクト２１はパンチ動作を行う。ここで、パンチ入力は、任意の種類の入力でよく、例えば、入力部１３であるボタンを押下する入力であってもよい。また、入力部である入力装置をユーザが把持する場合、パンチ入力は、ユーザが当該入力装置を動かす操作（例えば、入力装置を把持した手を、パンチするように前方に動かす操作）による入力であってもよい。なお、第１情報処理装置１は、入力部である慣性センサの検出結果に基づいて、このようなパンチ入力を検知することができる。
【００４７】
なお、本実施形態においては、情報処理装置は、パンチ動作の他、当該情報処理装置に対する入力に応じて、移動動作、ジャンプ動作、および、ガード動作（すなわち、パンチをガードする動作）を操作対象オブジェクトに行わせる。なお、これらの動作を操作対象オブジェクトに行わせるための入力方法は任意である。
【００４８】
上記パンチ入力が行われたことに応じて、第１情報処理装置１は、第１オブジェクト２１にパンチ動作を開始させる。ここで、本実施形態においては、パンチ動作は、予備動作と本動作とによって構成される。したがって、上記パンチ入力が行われたことに応じて、第１オブジェクト２１は、まず予備動作を行い、予備動作の後で本動作を行う。
【００４９】
図４は、予備動作を行う第１オブジェクト２１の一例を示す図である。図４に示すように、本実施形態において、予備動作は、操作対象オブジェクトが腕を振りかぶる動作である。
【００５０】
図５は、本動作を行う第１オブジェクト２１の一例を示す図である。第１情報処理装置１は、予備動作に続いて本動作を第１オブジェクト２１に行わせる。図５に示すように、本実施形態においては、本動作は、操作対象オブジェクトの腕が伸びて操作対象オブジェクトの手が前方へ（換言すれば、相手オブジェクトの方へ）移動する動作である。
【００５１】
本実施形態においては、情報処理装置は、相手オブジェクトによるパンチ動作について、自オブジェクトとの当たり判定処理を行う。つまり、情報処理装置は、パンチ動作を行った相手オブジェクトの手が、自オブジェクトに当たったか否かを判定する処理を行う。ただし、本実施形態においては、情報処理装置は、本動作中において当たり判定処理を行い、予備動作中については当たり判定処理を行わない。したがって、予備動作は、ゲームに対する影響を与えない（あるいは、本動作に比べてゲームに与える影響が小さい）動作であると言うことができる。
【００５２】
また、本実施形態においては、操作対象オブジェクトによる本動作中において、情報処理装置は、当該情報処理装置に対する入力に応じて、当該操作対象オブジェクトの手の移動方向を変化させる。具体的には、第１情報処理装置１は、方向を指定する入力（例えば、スティックに対する入力、あるいは、入力装置を傾ける入力）を受け付け、指定された方向へ手の移動方向を変化させる。例えば、本動作中に右方向を指定する入力が行われた場合、操作対象オブジェクトの手は右方向にカーブしながら前方へ進む。なお、他の実施形態においては、情報処理装置は、本動作中において、操作対象オブジェクトの手の移動方向を変化させるための入力を受け付けなくてもよい（後述する［４．本実施形態の作用効果および変形例］を参照）。
【００５３】
図６は、第１オブジェクト２１によるパンチが第２オブジェクト２２に当たった様子の一例を示す図である。上述のように、本動作中においては、パンチが当たったか否か（すなわち、第１オブジェクト２１の手と第２オブジェクト２２とが接触したか否か）の当たり判定処理が行われる。当たり判定処理において、パンチが当たったと判定された場合、情報処理装置は、パンチが当たったことを表す結果表示を行う。具体的には、図６では図示していないが、上記の場合、第２オブジェクト２２は、パンチを受けたリアクション動作を行う（図９（ｄ）参照）。また、上記の場合、第２オブジェクト２２にパンチが当たったことを表すエフェクト画像が表示される（図６参照）。また、上記の場合、情報処理装置は、第２オブジェクトのパラメータを変化させる処理（例えば、第２オブジェクト２２の体力を減少させる処理）を実行する。
【００５４】
なお、図示しないが、第１オブジェクト２１によるパンチ動作中において、第２オブジェクト２２は、第２情報処理装置２に対する入力に応じて、ガード動作によってパンチをガードしたり、移動動作および／またはジャンプ動作によってパンチを避けたりすることができる。
【００５５】
第２オブジェクト２２がパンチをガードした場合、当たり判定処理においてはパンチはガードされたと判定される。この場合、第２オブジェクト２２はリアクション動作を行わず、パンチが当たったことを表す結果表示として、パンチがガードされたことを表すエフェクト画像が表示される。なお、パンチが当たった場合におけるエフェクト画像と、パンチがガードされた場合におけるエフェクト画像とは、同じであってもよいし、異なっていてもよい。また、第２オブジェクト２２がパンチをガードした場合、第２オブジェクトの上記パラメータを変化させる処理は実行されない。
【００５６】
なお、以下においては、パンチが当たった場合、または、パンチがガードされた場合を、総称して「パンチ動作の結果が発生した場合」と呼ぶことがある。詳細は後述するが、本実施形態においては、パンチ動作の結果が２つの情報処理装置１および２において一致するように、情報処理が実行される。
【００５７】
また、第２オブジェクト２２がパンチを避けた場合、当たり判定処理においてはパンチが当たったとは判定されず、パンチが当たったことを表す結果表示は行われない。なお、パンチ動作における操作対象オブジェクトの腕は、パンチが第２オブジェクト２２に当たった場合、または、予め定められた所定長さまで伸びた場合、元の長さに戻る。つまり、これらの場合、第１オブジェクト２１の手は、元の位置（すなわち、パンチ動作が行われる前の位置）まで戻るように移動する。
【００５８】
［２−２．パンチ動作に関する処理の流れ］
次に、図７を参照して、パンチ動作に関して各情報処理装置１および２において実行されるゲーム処理の流れを説明する。図７は、パンチ動作に関して各情報処理装置において実行される処理の流れを示すタイミングチャートである。
【００５９】
まず、パンチ入力が受け付けられると、第１情報処理装置１（換言すれば、送信側の情報処理装置）は、パンチ動作を開始するように第１オブジェクト２１の動作を制御する（ステップＳ１）。したがって、第１情報処理装置１では、ステップＳ１が実行された時点で、第１オブジェクト２１がパンチ動作を開始する様子が表示される。
【００６０】
また、上記ステップＳ１において、第１情報処理装置１は、開始情報を含むゲーム情報を第２情報処理装置へ送信する。ここで、開始情報は、送信側（ここでは、第１情報処理装置１）に対応する操作対象オブジェクト（ここでは、第１オブジェクト２１）によるパンチ動作が開始されたことを示す情報（換言すれば、データ）である。
【００６１】
また、ゲーム情報は、操作対象オブジェクトに関するオブジェクト情報を含む。具体的には、オブジェクト情報は、操作対象オブジェクトの状態（例えば、位置、速度、および／または、姿勢）を示す情報と、操作対象オブジェクトに対する入力に関する入力情報とを含む。なお、上記入力情報は、例えば、操作対象オブジェクトの動作を制御するために用いられる入力を示す。具体的には、操作対象オブジェクトがボタンおよびスティックに対する入力に基づいて制御される場合、入力情報は、ボタンおよびスティックに対する入力内容を示す。また、本実施形態においては、操作対象オブジェクトのパンチ動作中においては、オブジェクト情報は、上記の情報に加えて、操作対象オブジェクトの手の状態（例えば、手の位置、速度、および／または、姿勢）を示す情報を含む。
【００６２】
なお、本実施形態において、情報処理装置は、所定時間（例えば、１フレーム時間）に１回の割合でゲーム情報を相手装置へ繰り返し送信する。つまり、ゲーム情報は、パンチ動作中ではない期間においても送信側の装置から受信側の装置へ送信される。なお、上記開始情報および後述の結果情報は、条件が満たされた場合にのみゲーム情報に含まれるのに対して、上記オブジェクト情報は任意の期間においてゲーム情報に含まれる。
【００６３】
上記開始情報を含むゲーム情報が送信側から送信されると、第２情報処理装置２（換言すれば、受信側の情報処理装置）は、当該ゲーム情報を受信する（ステップＳ２）。さらに、ステップＳ２において、第２情報処理装置２は、開始情報を受信したことに応じて、パンチ動作を開始するように第１オブジェクト２１の動作を制御する。これによって、第１情報処理装置１に続いて第２情報処理装置２においても、第１オブジェクト２１がパンチ動作を開始する様子が表示される。
【００６４】
なお、第１情報処理装置１と第２情報処理装置２との間の通信には、遅延が発生する（換言すれば、ゲーム情報が第１情報処理装置１から送信されてから第２情報処理装置２において受信されるまでに時間を要する）。そのため、第２情報処理装置２においては、第１情報処理装置１よりも遅れて、第１オブジェクト２１によるパンチ動作が開始される。
【００６５】
一方、第１情報処理装置１においては、第１オブジェクト２１によるパンチ動作が開始された後、第１オブジェクト２１にパンチ動作を行わせる制御が継続して実行される（ステップＳ３）。さらに、ステップＳ３において、第１情報処理装置１は、上記オブジェクト情報を含むゲーム情報を第２情報処理装置２へ繰り返し送信する。なお、図７においては図示しないが、ステップＳ３の処理は、第１オブジェクト２１によるパンチ動作による結果が発生する（ステップＳ６）か、または、パンチ動作が終了する（すなわち、第１オブジェクト２１の腕が所定長さまで伸びた後で元の長さに戻る）まで、繰り返し実行される。
【００６６】
また、第２情報処理装置２は、第１オブジェクト２１によるパンチ動作を開始した後、予測位置算出処理を実行する（ステップＳ４）。詳細は後述するが、予測位置算出処理は、相手オブジェクト（ここでは、第１オブジェクト２１）のパンチ動作における手の位置を予測する処理である。本実施形態においては、第２情報処理装置２は、第１情報処理装置１から送信されてくるゲーム情報に基づいて予測位置算出処理を実行し、予測位置算出処理の結果得られる手の位置（すなわち、後述する予測位置）に基づいて、第１オブジェクト２１の動作を制御する。さらに、上記ステップＳ４において、第２情報処理装置２は、第１オブジェクト２１によるパンチが第２オブジェクト２２に当たったか否かを判定する当たり判定処理を実行する。
【００６７】
なお、図７においては図示しないが、ステップＳ４の処理は、第１オブジェクト２１によるパンチ動作による結果が発生するか、または、パンチ動作が終了するまで、繰り返し実行される。
【００６８】
ステップＳ４における当たり判定処理において、パンチが当たったと判定された場合、または、パンチがガードされたと判定された場合、第２情報処理装置２は、パンチによる結果が発生したと判定する。これらの場合、第２情報処理装置２は、パンチによる結果を表す結果表示を行う（ステップＳ６）。すなわち、パンチが当たった場合、第２情報処理装置２は、第２オブジェクト２２にリアクション動作を行わせるとともに、パンチが当たったことを表すエフェクト画像を表示する。また、パンチがガードされた場合、第２情報処理装置２は、パンチがガードされたことを表すエフェクト画像を表示する。
【００６９】
また、上記ステップＳ６において、第２情報処理装置２は、結果情報を含むゲーム情報を第１情報処理装置へ送信する。結果情報は、パンチによる結果が発生したことを示す。本実施形態においては、結果情報は、パンチが当たったこと、または、パンチがガードされたことを示す情報（換言すれば、データ）である。
【００７０】
上記結果情報を含むゲーム情報が第２情報処理装置２から送信されると、第１情報処理装置１は、当該ゲーム情報を受信する（ステップＳ６）。さらに、ステップＳ６において、第１情報処理装置１は、結果情報を受信したことに応じて、パンチによる結果を表す表示を行う（ステップＳ６）。すなわち、第１情報処理装置１は、第２情報処理装置２から受信した結果情報が示す内容に従って、パンチによる結果（すなわち、パンチが当たったこと、または、パンチがガードされたこと）を表示する。
【００７１】
上記のように、本実施形態においては、第２情報処理装置２は、自機において第１オブジェクト２１のパンチ動作に起因して所定の結果が発生した場合、結果情報を第１情報処理装置へ送信する。そして、第１情報処理装置１は、第２情報処理装置２から受信した結果情報に基づいて所定の結果を表示する。これによって、第１情報処理装置１においては、第２情報処理装置２において表示された結果と同じ結果が表示される。つまり、本実施形態においては、第１情報処理装置１と第２情報処理装置２とにおいて、パンチ動作の結果を一致させることができる。
【００７２】
なお、第２情報処理装置において第１オブジェクト２１によるパンチを第２オブジェクト２２が避けた場合は、結果情報が送信されないので、第１情報処理装置１においても第２情報処理装置２と同様に、パンチによる結果を表す表示は行われない。つまり、本実施形態においては、パンチが避けられた場合においても他の場合と同様、第１情報処理装置１と第２情報処理装置２とにおいて、パンチ動作に基づく結果を一致させることができる。
【００７３】
［２−３．送信側および受信側におけるパンチ動作の進み方］
図８は、送信側（ここでは、第１情報処理装置１）および受信側（ここでは、第２情報処理装置２）におけるパンチ動作の開始タイミングおよび結果の発生タイミングの一例を示す図である。
【００７４】
図８に示すように、第１情報処理装置１において時点ｔ０で第１オブジェクト２１によるパンチ動作が開始された場合、当該時点ｔ０で開始情報が第２情報処理装置２へ送信される。ここで、上述のように、第１情報処理装置１と第２情報処理装置２との間の通信には遅延が発生する。そのため、第２情報処理装置２においては、時点ｔ０＋ｄ（ｄは通信による遅延時間）で開始情報が受信され、当該時点ｔ０＋ｄで第１オブジェクト２１によるパンチ動作が開始される。
【００７５】
また、上述のように、本実施形態においては、各情報処理装置１および２におけるパンチ動作の結果を一致させるべく、受信側である第２情報処理装置２が、パンチ動作によって発生した結果を示す結果情報を、送信側である第１情報処理装置１へ送信するようにしている。したがって、図８に示すように、第２情報処理装置２において時点ｔ１でパンチ動作による結果が発生した場合、当該時点ｔ１で結果情報が第１情報処理装置１へ送信される。そして、第１情報処理装置１においては、時点ｔ１より遅延時間ｄだけ遅れた時点ｔ１＋ｄで結果情報が受信され、当該時点ｔ１＋ｄでパンチ動作による結果が表示される。なお、本実施形態においては、第１情報処理装置１から第２情報処理装置２へ情報を送信する場合の遅延時間と、第２情報処理装置２から第１情報処理装置１へ情報を送信する場合の遅延時間とは、同じであると仮定している。
【００７６】
図８から明らかなように、本実施形態においては、第１オブジェクト２１によってパンチ動作が行われる期間（以下、「パンチ動作期間」と呼ぶ。具体的には、パンチ動作が開始されてからパンチ動作による結果が発生するまでの期間。）は、第２情報処理装置２の方が第１情報処理装置１よりも短くなる。具体的には、パンチ動作期間は、第２情報処理装置２の方が第１情報処理装置１よりも、遅延時間ｄの２倍の長さだけ（換言すれば、往復の遅延時間の長さ）短くなる。
【００７７】
ここで、各情報処理装置１および２において同じ速さでパンチ動作が行われる（すなわち、パンチの手が同じ速さで移動する）と仮定した場合、第１情報処理装置１においては、不自然な結果表示が行われてしまう可能性がある。この理由を説明すると、上記の仮定の場合においては、パンチ動作中において、第１情報処理装置１における第１オブジェクト２１の手は、第２情報処理装置２における手の位置よりも進んだ位置にあることになる。そのため、第２情報処理装置２においてパンチ動作を行う第１オブジェクト２１の手が第２オブジェクト２２に当たったタイミングでは、第１情報処理装置１においては、第１オブジェクト２１の手が第２オブジェクト２２の位置よりも進んでいることになる。つまり、上記タイミングでは、第１オブジェクト２１によるパンチが第２オブジェクト２２を突き抜けた状態となる。このような状態で結果表示が行われると、例えば第１オブジェクト２１によるパンチが第２オブジェクト２２を突き抜けた後で第２オブジェクト２２がリアクション動作を行うことになるので、ユーザは結果表示を不自然に感じる可能性がある。
【００７８】
上記のような不自然な結果表示が行われる可能性を低減するべく、本実施形態においては、情報処理システムは、受信側（ここでは、第２情報処理装置２）におけるパンチ動作期間を、送信側（ここでは、第１情報処理装置１）におけるパンチ動作期間よりも短縮するように、受信側における第１オブジェクト２１の動作を制御する。具体的には、受信側である第２情報処理装置２は、第１情報処理装置１における第１オブジェクト２１の手の位置よりも先の位置（換言すれば、第１情報処理装置１における手の位置より進んだ位置）を予測位置算出処理によって予測し、予測した位置に第１オブジェクト２１の手を配置するようにして第１オブジェクト２１の動作を表示する。以下、図９を参照して、各情報処理装置１および２のそれぞれにおいてパンチ動作における手の位置が移動する具体例について説明する。
【００７９】
図９は、送信側および受信側において行われるパンチ動作の一例を示す図である。なお、図９において、（１）は、送信側である第１情報処理装置１において行われるパンチ動作を示し、（２）は、受信側である第２情報処理装置２において行われるパンチ動作を示す。
【００８０】
図９に示す（ａ）は、第１情報処理装置１においてパンチ動作が開始された直後の時点における状態を示す。この時点においては、第２情報処理装置２においては、第１情報処理装置１からの開始情報がまだ受信されていないので、図９に示すように、第１オブジェクト２１はパンチ動作を開始していない。
【００８１】
図９に示す（ｂ）は、第２情報処理装置２において開始情報が受信された直後の時点における状態を示す。この時点において、第１情報処理装置１においては、第１オブジェクト２１の手の位置は、（ａ）に示す状態よりも進んでいる。したがって、（ｂ）に示す状態では、第１情報処理装置１における第１オブジェクト２１の手の位置が、第２情報処理装置２における手の位置よりも先に位置している。
【００８２】
図９に示す（ｃ）は、（ｂ）に示す状態からパンチ動作がさらに進んだ状態を示す。上述のように、第２情報処理装置２においては第１オブジェクト２１の手の位置が上記予測位置算出処理によって予測される。そのため、（ｃ）に示す状態においては、第２情報処理装置２における第１オブジェクト２１の手の位置が、第１情報処理装置１における手の位置よりも先に位置する。
【００８３】
上記のように、本実施形態においては、第２情報処理装置２におけるパンチ動作の手の位置は、当該パンチ動作の始めから、第１情報処理装置１における位置よりも先に位置するのではなく、パンチ動作の途中において、第１情報処理装置１における手の位置を追い抜くように、予測位置算出処理が実行される。これは、パンチ動作の開始直後から、第２情報処理装置２における手の位置を第１情報処理装置１における手の位置よりも先の位置に配置してしまうと、パンチ動作の手が第１オブジェクト２１の胴体から急に離れて表示されることになることから、ユーザが違和感を抱く可能性があるためである。そのため、本実施形態においては、第２情報処理装置２は、当該第２情報処理装置２におけるパンチ動作の手の位置が、第１情報処理装置１における手の位置を追い抜くように、第１オブジェクト２１の動作を制御する。つまり、パンチ動作の始めの期間においては、第２情報処理装置２における手の位置は、第１情報処理装置１における手の位置に次第に追いつくように制御され（図９（ｂ））、その後、第１情報処理装置１における手の位置を追い抜いて当該位置よりも先の位置となるように制御される（（図９（ｃ））。これによって、第２情報処理装置２におけるパンチ動作を自然に表示することができる。
【００８４】
図９に示す（ｄ）は、第２情報処理装置２において第１オブジェクト２１のパンチが第２オブジェクト２２に当たった時点における状態を示す。この時点において、第２情報処理装置２においては、第２オブジェクト２２がリアクション動作を行い、エフェクト画像が表示される（図９（ｄ）参照）。また、この時点では、図９（ｄ）に示すように、第１情報処理装置１においては、第１オブジェクト２１のパンチは第２オブジェクト２２にまだ当たっていない。この後、第２情報処理装置２から結果情報が第１情報処理装置１へ送信され、第１情報処理装置１において結果情報が受信されたことに応じて、第１情報処理装置１においても第１オブジェクト２１がリアクション動作を行う。
【００８５】
このように、本実施形態においては、結果情報を送信する第２情報処理装置２において、パンチ動作による結果が先に発生し、当該結果情報を受信する第１情報処理装置１において、パンチ動作による結果が後で発生する。したがって、結果情報を送信する場合における通信遅延による影響を緩和することができ、第１情報処理装置１における結果表示と第２情報処理装置２における結果表示との同期を取りやすくすることができる。例えば、第２情報処理装置２における結果表示が、第１情報処理装置１における結果表示よりも遅延時間ｄ（あるいは、遅延時間ｄよりも長い時間）だけ前に行われる場合には、第１情報処理装置１は、第１オブジェクト２１のパンチが第２オブジェクト２２に当たったタイミングで第２オブジェクト２２にリアクション動作を行わせることができる。
【００８６】
なお、図９においては、第１オブジェクト２１のパンチが第２オブジェクト２２に当たった場合を例として説明を行ったが、第１オブジェクト２１のパンチが第２オブジェクト２２によってガードされた場合も同様である。
【００８７】
上記のように、第２情報処理装置２は、当該第２情報処理装置２においてパンチ動作が行われる時間（すなわち、パンチ動作期間）が、第１情報処理装置１においてパンチ動作が行われる時間よりも短くなるように（より具体的には、遅延時間の約２倍の時間だけ短くなるように）、当該第２情報処理装置２における第１オブジェクト２１のパンチ動作を、予測位置算出処理によって得られる位置（後述する「予測位置」）に基づいて制御する。これによって、第１情報処理装置１におけるパンチ動作による結果の表示を、（各情報処理装置において同じ速さでパンチ動作を行う場合に比べて）適切なタイミングで行うことができる。
【００８８】
［２−４．予備動作のスキップ］
上述のように、本実施形態においては、第２情報処理装置２においては、第１情報処理装置１におけるパンチ動作期間よりも短い時間で、第１オブジェクト２１によるパンチ動作が行われる。つまり、第２情報処理装置２においては、パンチ動作を行う第１オブジェクト２１の手が、第１情報処理装置１におけるパンチ動作の手よりも速く移動する（図９参照）。ここで、第１オブジェクト２１によるパンチの手が速く移動しすぎると、第２情報処理装置２のユーザが違和感を抱いたり、当該ユーザにとってゲームが難しくなりすぎたりするおそれがある。
【００８９】
そこで、本実施形態においては、第２情報処理装置２は、第１オブジェクト２１が行うパンチ動作のうちで、上記の予備動作の一部または全部をスキップする。予備動作をスキップすることによって、本動作の時間を（予備動作の全部を行う場合に比べて）長くすることができるので、本動作においてパンチの速度を上げる度合いを抑えることができる。つまり、本実施形態においては、第２情報処理装置２は、パンチ動作のうちの予備動作をスキップすることによって、本動作が行われる期間をできるだけ長くするようにしている。以下、予備動作の一部または全部をスキップする処理の詳細を説明する。
【００９０】
図１０は、遅延時間が比較的長い場合において行われるパンチ動作の一例を示す図である。図１０は、基準時点（ｔ０＋２ｄ）が、第１情報処理装置１において予備動作が終了する時点ｔ２よりも後に到来する場合を示している。なお、基準時点（ｔ０＋２ｄ）は、第１情報処理装置１においてパンチ動作（換言すれば、予備動作）が開始された時点ｔ０から、遅延時間ｄの２倍の時間が経過した時点である。
【００９１】
図１０に示すように、基準時点（ｔ０＋２ｄ）が、第１情報処理装置１における予備動作の終了時点ｔ２よりも後である場合、第２情報処理装置２は、パンチ動作のうちの予備動作（の全体）をスキップするように、第１オブジェクト２１の動作を制御する。すなわち、第１オブジェクト２１は、第２情報処理装置２において開始情報を受信した時点（ｔ０＋ｄ）から、パンチ動作のうちの本動作を開始する。
【００９２】
また、図１１は、遅延時間が比較的短い場合において行われるパンチ動作の一例を示す図である。図１１は、上記の基準時点（ｔ０＋２ｄ）が、第１情報処理装置１における予備動作の終了時点ｔ２よりも先に到来する場合を示している。この場合、図１１に示すように、第２情報処理装置２は、予備動作の一部をスキップするように（換言すれば、予備動作を短縮するように）、第１オブジェクト２１の動作を制御する。すなわち、第１オブジェクト２１は、第２情報処理装置２において開始情報を受信した時点（ｔ０＋ｄ）から、上記時点ｔ２よりも遅延時間ｄだけ前の時点（ｔ２−ｄ）までの期間で予備動作が終了するように、予備動作を短縮して行う。つまり、第２情報処理装置２における予備動作は、第１情報処理装置１における予備動作よりも、遅延時間ｄの２倍の時間だけ短縮して行われる。
【００９３】
なお、予備動作の一部をスキップするための具体的な方法は任意である。例えば、所定数のフレーム毎に第１オブジェクト２１の体勢が定められており、当該フレーム毎の体勢を順にとるように第１オブジェクト２１が動作することで予備動作が行われる場合、第２情報処理装置２は、当該所定数のフレームのいくつかのフレームについて定められた体勢をスキップして予備動作を行わせるようにしてもよい。
【００９４】
上記のように、本実施形態においては、第２情報処理装置２は、第１オブジェクトによるパンチ動作のうちの一部の動作（具体的には、予備動作）をスキップして当該第１オブジェクトにパンチ動作を行わせる。これによって、第２情報処理装置２におけるパンチ動作期間を短くすることができるので、第１情報処理装置１におけるパンチ動作による結果の表示を、（各情報処理装置においてパンチ動作期間を同じにする場合に比べて）適切なタイミングで行うことができる。
【００９５】
なお、本実施形態においては、第２情報処理装置２は、上述の当たり判定処理において、第１オブジェクト２１によるパンチ動作のうちの本動作によって第２オブジェクト２２が影響を受けたか否かを判定する。つまり、第１オブジェクト２１による予備動作は、第２オブジェクト２２に対して影響を与えない動作であると言うことができる。したがって、本実施形態においては、予備動作をスキップすることによって、ゲームに与える影響を小さくしつつ、パンチ動作を短縮することができる。なお、第１オブジェクトが第２オブジェクトに与える影響は、具体的にはゲームにおける影響であり、表示に現れる影響（例えば、第１オブジェクトのパンチ動作に応じて第２オブジェクトがリアクション動作を行う）であってもよいし、表示に現れない影響（例えば、第１オブジェクトのパンチ動作に応じて第２オブジェクトの体力パラメータの値が減少する）であってもよい。
【００９６】
また、本実施形態においては、予備動作は、通信対象オブジェクトが手を振りかぶる動作である。そのため、予備動作がスキップされても、ユーザは、比較的（すなわち、本動作がスキップされる場合に比べると）違和感を抱きにくいと考えられる。つまり、本実施形態によれば、パンチ動作のうちの予備動作をスキップすることによって、ユーザが違和感を抱く可能性を低減しつつ、パンチ動作を短縮することができる。
【００９７】
なお、他の実施形態においては、スキップする対象となる動作は、予備動作に限らない。例えば、第１オブジェクト２１が行う一連の動作（本実施形態においては、パンチ動作）に、当該一連の動作の途中に省略可能な所定の動作が含まれる場合、第２情報処理装置２は、当該所定の動作の一部または全部をスキップするようにしてもよい。上記所定の動作は、例えば、第１オブジェクト２１が弾を連射する一連の動作を行う場合において、途中で弾を再装填（すなわち、リロード）する動作であってもよい。なお、上記所定の動作は、ゲーム開発者が省略可能と判断した任意の動作であってもよく、ゲームに与える影響がない（または少ない）動作であってもよい。
【００９８】
上記のように、本実施形態においては、第２情報処理装置２は、第１オブジェクト２１による動作（具体的には、予備動作）をスキップする長さを、遅延時間の長さに応じて変化させる（図１０および図１１参照）。すなわち、第２情報処理装置２においては、遅延時間が比較的長い場合（図１０）においては予備動作の全体がスキップされ、遅延時間が比較的短い場合（図１１）においては予備動作の一部がスキップされる。また、遅延時間が比較的短い場合（図１１）においては、スキップされる予備動作の長さが遅延事件に応じて変化する。このように、動作をスキップする長さを遅延時間に応じて変化させることによって、第２情報処理装置２は、必要以上に動作がスキップされる可能性を低減することができ、ユーザに与える違和感の軽減を図ることができる。
【００９９】
なお、本実施形態においては、第２情報処理装置２は、予備動作の全部をスキップするか、それとも、一部をスキップするかの判定処理を、上記の基準時点（ｔ０＋２ｄ）が、第１情報処理装置１における予備動作の終了時点ｔ２よりも後に到来するか、それとも、先に到来するかによって行っている。ここで、第１情報処理装置１において予備動作が行われる時間の長さ（すなわち、図１０に示す時点ｔ０から時点ｔ２までの長さ）は、予め定められている。また、第２情報処理装置２は、第１情報処理装置１と第２情報処理装置２との間の通信における遅延時間を特定する処理を実行する（後述するステップＳ３２）。したがって、第２情報処理装置２は、予め定められた予備動作の時間と、特定された遅延時間とに基づいて、上記基準時点および終了時点を特定することができ、上記の判定処理を実行することができる。
【０１００】
なお、本実施形態においては、上記判定処理において用いられる基準時点は、時点（ｔ０＋ｄ）ではなく、時点（ｔ０＋２ｄ）である。これは、本実施形態では、第２情報処理装置２におけるパンチ動作期間を、第１情報処理装置１におけるパンチ動作期間よりも２ｄだけ短縮することを目標としているためである。
【０１０１】
以上における図８〜図１１の説明においては、本実施形態における処理の理解を容易にする目的で、第２情報処理装置２は、第１情報処理装置１におけるパンチ動作期間に比べて、遅延時間ｄの２倍の時間（２ｄ）だけパンチ動作期間を短縮するものとして説明した。ここで、詳細は後述するが、本実施形態においては、第２の情報処理装置２においてパンチ動作期間が短縮される長さは、遅延時間ｄの２倍の時間である必要はなく、当該時間よりも短くてもよいし、長くてもよい。なお、第２情報処理装置２におけるパンチ動作期間を短縮することができれば、第１情報処理装置１におけるパンチ動作による結果の表示をユーザが不自然に感じることを軽減することができるという、上述の効果と同様の効果を奏することができる。
【０１０２】
［２−５．パンチ開始位置の特定］
上述のように、第２情報処理装置２において予備動作がスキップされる場合（図１０）、第２情報処理装置２は、本動作を開始する時点における第１オブジェクト２１のパンチの手の位置（「パンチ開始位置」と呼ぶ）を特定する。以下、パンチ開始位置を特定する処理について詳細を説明する。
【０１０３】
図１２は、パンチ動作の開始時点と、本動作の開始時点とにおける第１オブジェクトの一例を示す図である。図１２に示すように、第１オブジェクト２１は、予備動作中において移動等の動作を行っている可能性がある。そのため、パンチ動作開始時における第１オブジェクト２１（図１２に示す実線で表されるオブジェクト）における手の位置と、本動作開始時における第１オブジェクト２１（図１２に示す点線で表されるオブジェクト）における手の位置とは、異なる可能性がある。そこで、本実施形態においては、第２情報処理装置２は、第１オブジェクト２１の予備動作をスキップした場合、パンチ動作開始時（換言すれば、本動作開始時）における第１オブジェクト２１の手の位置を特定する。そして、第２情報処理装置２は、特定した位置に手が配置された状態から第１オブジェクト２１によるパンチ動作の制御を開始する。
【０１０４】
ここで、第２情報処理装置２におけるパンチ動作の開始時点で第１情報処理装置１から受信されるゲーム情報は、第１情報処理装置１におけるパンチ動作開始時の第１オブジェクト２１に関するオブジェクト情報を含む（図８参照）。したがって、第２情報処理装置２は、当該オブジェクト情報に基づいて、すなわち、第１情報処理装置１におけるパンチ動作開始時の第１オブジェクト２１に関する情報（具体的には、位置および速度等に関する情報）に基づいて、パンチ開始位置を特定する。
【０１０５】
パンチ開始位置を特定する具体的な方法は任意である。例えば、パンチ開始位置は、上記のオブジェクト情報に基づいて、第１情報処理装置１において本動作を開始する時点における第１オブジェクト２１の手の位置を予測することによって、特定することができる。例えば、パンチ開始位置は、パンチ動作開始時における第１オブジェクト２１の手の位置を、パンチ動作開始時における第１オブジェクト２１の速度の向きに応じた方向へ、当該速度および予備動作が行われる時間に応じた距離だけ移動させた位置として予測されてもよい。また、パンチ開始位置は、パンチ動作開始時における入力情報（すなわち、第１オブジェクト２１に対する操作入力の内容を示す情報）を考慮して算出されてもよい。例えば、パンチ動作開始時において第１オブジェクト２１を右方向へ移動させる入力が行われていた場合、第２情報処理装置２は、パンチ動作開始時における第１オブジェクト２１の手の位置を右方向へ移動させた位置をパンチ開始位置として算出してもよい。なお、パンチ開始位置を予測する方法は、従来から用いられている予測方法であってもよい。
【０１０６】
なお、第２情報処理装置２は、パンチ動作開始時における第１オブジェクト２１の位置を、特定されたパンチ開始位置に応じた適切な位置となるように設定する。これによって、第１オブジェクト２１の胴体と手とが不自然な位置関係となる可能性を低減することができる。
【０１０７】
上記のように、本実施形態においては、第２情報処理装置２は、第１オブジェクト２１による動作の一部（具体的には、予備動作）をスキップした場合、スキップ後の当該第１オブジェクトの状態（具体的には、パンチ開始位置）を予測することによって、当該スキップ後の動作の制御を開始する。これによって、予備動作がスキップされた場合であっても、スキップ後における第１オブジェクトの動作を自然に表現することができる。すなわち、第２情報処理装置２におけるパンチ開始位置を、本動作開始時における第１オブジェクト２１の位置に応じた位置とすることができるので、第２情報処理装置２における本動作を、第１情報処理装置１における本動作により近い（換言すれば、より正確な）ものとすることができる。
【０１０８】
また、操作対象オブジェクトとして複数種類のオブジェクトが用意される場合、第２情報処理装置２は、第１オブジェクト２１の種類に応じて異なる方法によってパンチ開始位置を算出するようにしてもよい。具体的には、第２情報処理装置２は、予測関数を用いてパンチ開始位置を算出してもよく、このとき、第１オブジェクト２１の種類に応じて異なる関数（具体的には、第１オブジェクト２１の種類に応じて係数の値が異なる関数）を用いてもよい。この予測関数は、上記オブジェクト情報に含まれる情報の少なくともいくつか（具体的には、第１オブジェクト２１の位置、速度、および、入力情報等）を入力とし、パンチ開始位置を出力とする関数である。予測関数は、任意の方法で作成されてよく、例えば実験やシミュレーションによって作成されてもよい。
【０１０９】
例えば、オブジェクトの大きさ、予備動作の動き方、および／または、予備動作を行う時間の長さ等が、操作対象オブジェクトの種類に応じて異なる場合がある。このような場合、パンチ動作開始時における操作対象オブジェクトの状態が同じであっても、実際のパンチ開始位置は操作対象オブジェクトの種類に応じて異なる結果となる。したがって、上記の場合、第２情報処理装置２は、操作対象オブジェクトの種類毎に予測関数を用意しておく。例えば、予測関数が、操作対象オブジェクトの肩の位置に関する係数（例えば、操作対象オブジェクトの中心位置から肩の位置までの距離を表す係数）を含む場合、大きさが異なる２つの操作対象オブジェクトについて、当該係数が異なる予測関数が用意されてもよい。第２情報処理装置２は、第１オブジェクト２１として選択された操作対象オブジェクトの種類に応じた予測関数を用いてパンチ開始位置を算出する。これによれば、第２情報処理装置２は、パンチ開始位置をより精度良く予測することができる。
【０１１０】
［２−６．予測位置の算出方法］
図１３を参照して、予測位置算出処理において予測位置を算出する具体例について説明する。第２情報処理装置２は、第１オブジェクト２１に本動作を行わせる制御を行う期間において、予測位置算出処理を繰り返し実行する。具体的には、予測位置算出処理は、１フレーム処理（すなわち、後述するステップＳ３１〜Ｓ４２の処理ループ）の間に１回、実行される。予測位置算出処理において、第２情報処理装置２は、第１オブジェクト２１がパンチ動作を行う手について予測位置を算出する。第２情報処理装置２は、算出された予測位置に手を配置するように、第１オブジェクト２１の動作を制御する。
【０１１１】
なお、上記予測位置算出処理においては、第１情報処理装置１から受信したゲーム情報に含まれるオブジェクト情報に基づいて、当該オブジェクト情報により示される位置よりも先の位置（換言すれば、未来の位置）を予測することから、本明細書においては、上記予測位置算出処理によって算出される位置を「予測位置」と呼ぶ。なお、第２情報処理装置２においては上記予測位置に実際に第１オブジェクト２１の手が配置されて表示が行われる。
【０１１２】
図１３は、予測位置の算出方法の一例を示す図である。図１３において、現在位置Ｐ２（ｔ）は、現在の第１オブジェクト２１の手の位置であり、換言すれば、前回の予測位置算出処理によって得られた位置である。また、第１補正ベクトルＷ１および第２補正ベクトルＷ２はそれぞれ、現在位置Ｐ２（ｔ）を補正するために用いられる。本実施形態においては、第２情報処理装置２は、第１補正ベクトルＷ１および第２補正ベクトルＷ２を用いて現在位置Ｐ２（ｔ）を補正することによって、新たな予測位置Ｐ２（ｔ＋１）を算出する。なお、図１３の説明においては、第１情報処理装置における第１オブジェクト２１の手の位置をＰ１と表し、第２情報処理装置における第１オブジェクト２１の手の位置をＰ２と表す。
【０１１３】
第１補正ベクトルＷ１は、現在位置Ｐ２（ｔ）と、仮予測位置Ｐ１’（ｔ＋ｄ１）とに基づいて算出される。仮予測位置Ｐ１’（ｔ＋ｄ１）は、第１情報処理装置１における第１オブジェクト２１の手の現在位置から第１遅延値ｄ１だけ後の（換言すれば、未来の）位置と予測される位置である。本実施形態においては、この仮予測位置Ｐ１’（ｔ＋ｄ１）をそのまま予測位置（換言すれば、第２情報処理装置２における手の位置）とするのではなく、他の要素（例えば、補正ベクトルＷ２）を考慮して予測位置を算出する。そのため、位置Ｐ１’（ｔ＋ｄ１）を「仮予測位置」と呼ぶ。
【０１１４】
上記第１遅延値ｄ１は、遅延時間ｄに基づいて算出される。本実施形態においては、第１遅延値ｄ１は、遅延時間ｄに所定の係数を乗算した値である。第１遅延値ｄ１は、仮予測位置としてどれだけ先の時間における位置を予測するかの度合いを示す。ここで、第１遅延値ｄ１が大きすぎると、予測を正確に行うことが困難になる結果、予測位置に基づく手の挙動が不自然になるおそれがある。そのため、本実施形態においては、第１遅延値ｄ１には上限値が予め設定される。つまり、遅延時間ｄが長すぎる場合には、第１遅延値ｄ１は上限値となる。
【０１１５】
仮予測位置Ｐ１’（ｔ＋ｄ１）は、第１情報処理装置１から受信されるオブジェクト情報により示される実際の位置Ｐ１（ｔ−ｄ）に基づいて予測を行うことによって算出される（図１３参照）。ここで、時点ｔにおいて第２情報処理装置２が第１情報処理装置１から受信したオブジェクト情報により示される手の位置は、現時点ｔよりも遅延時間ｄだけ過去の時点における位置である。つまり、第２情報処理装置２は、遅延時間ｄだけ過去の位置を示すオブジェクト情報を第１情報処理装置１から受信する。したがって、上記の実際の位置Ｐ１（ｔ−ｄ）は、現時点ｔより遅延時間ｄだけ過去の時点における、第１情報処理装置１における手の位置であり、時点（ｔ−ｄ）における実際の手の位置と言うことができる。本実施形態においては、上記実際の手の位置Ｐ１（ｔ−ｄ）から、時間（ｄ＋ｄ１）だけ先を予測することによって、仮予測位置Ｐ１’（ｔ＋ｄ１）を算出する。
【０１１６】
なお、仮予測位置を算出（換言すれば、予測）する方法は任意である。例えば、第２情報処理装置２は、手の実際の位置Ｐ１（ｔ−ｄ）と、当該実際の位置における手の速度（換言すれば、上記オブジェクト情報により示される速度）とに基づいて仮予測位置を算出してもよい。具体的には、仮予測位置は、手の実際の位置を、手の速度の向きに応じた方向へ、当該速度および第１遅延値ｄ１に応じた距離だけ移動させた位置として算出されてもよい。また例えば、第２情報処理装置２は、手の位置および速度に加えて、第１情報処理装置１から受信したゲーム情報に含まれる入力情報（すなわち、第１オブジェクト２１に対する操作入力の内容を示す情報）に基づいて仮予測位置を算出してもよい。例えば、パンチ動作中の手を右方向へ移動させる入力を示す入力情報が受信された場合、第２情報処理装置２は、手の実際の位置を、前進しながら右方向へカーブするように移動させた位置を仮予測位置として算出してもよい。また、第２情報処理装置２は、入力情報により示される入力値を用いることに加えて、入力値の微分値および／または２階微分値を用いて仮予測位置を算出するようにしてもよい。なお、仮予測位置を予測する方法は、従来から用いられている予測方法であってもよい。
【０１１７】
なお、本実施形態においては、第２情報処理装置２は、予め用意された位置算出関数ｆを用いて、現在位置Ｐ２（ｔ）等に基づいて次の位置Ｐ２（ｔ＋１）を算出する。詳細は後述するが、位置算出関数ｆは、現在位置等を入力とし、次の位置（すなわち、次のフレームにおける手の位置）を出力とする関数である。ここで、第２情報処理装置２は、上記位置算出関数ｆを用いて仮予測位置を算出してもよい。具体的には、第２情報処理装置２は、位置算出関数ｆに現在位置等を入力することによって次の位置を算出する処理を、予測する時間の長さ（ここでは、ｄ＋ｄ１）に対応する回数、繰り返し実行することによって、仮予測位置を算出する。なお、このとき、第２情報処理装置２は、ｎ回目（なお、ｎは１以上の整数である）の上記処理における位置算出関数ｆの出力（換言すれば予測位置）を、ｎ＋１回目の上記処理における位置算出関数ｆの入力として用いる。なお、１回目の上記処理において入力される位置は、上記実際の位置Ｐ１（ｔ−ｄ）である。そして、上記処理を（ｄ＋ｄ１）回繰り返し実行することによって、第２情報処理装置２は、時間（ｔ＋ｄ１）における位置（すなわち、仮予測位置Ｐ１’（ｔ＋ｄ１））を予測することができる。また、上記入力情報により示される入力値が位置算出関数ｆの入力として用いられる場合、第２情報処理装置２は、複数回の上記処理において、位置算出関数ｆに入力する入力値を、当該入力値の微分値および／または２階微分値に基づいて変化させて位置算出関数ｆに入力するようにしてもよい。
【０１１８】
図１３に示すように、第１補正ベクトルは、現在位置Ｐ２（ｔ）を始点とし、仮予測位置Ｐ１’（ｔ＋ｄ１）を終点とするベクトルとして算出される。つまり、補正ベクトルＷ１は、現在位置Ｐ２（ｔ）を仮予測位置Ｐ１’（ｔ＋ｄ１）へと補正するベクトルであり、現時点から時間ｄ１後の位置を予測するための補正を行うベクトルである。ここで、本実施形態においては、上述のように、第２情報処理装置２では、第１情報処理装置１における現時点での手の位置よりも遅延時間ｄだけ先の位置を予測することを目標としている（図８参照）。そのため、第２情報処理装置２は、遅延時間ｄに応じた第１遅延値ｄ１に基づく上記第１補正ベクトルＷ１を用いて仮予測位置を算出することとしている。
【０１１９】
また、図１３に示すように、第２補正ベクトルＷ２は、第１情報処理装置１における実際の位置Ｐ１（ｔ−ｄ）と、第２情報処理装置における過去の予測位置Ｐ２（ｔ−２×ｄ２）とに基づいて算出される。詳細は後述するが、第２補正ベクトルＷ２は、第１情報処理装置１における実際の手の位置と、過去に第２情報処理装置２において算出された予測位置とのずれを示す。つまり、第２補正ベクトルＷ２は、過去に算出された予測位置に関する上記ずれを修正するために用いられる。
【０１２０】
上記過去の予測位置Ｐ２（ｔ−２×ｄ２）は、現時点ｔより第２遅延値ｄ２の２倍の時間だけ過去の予測位置である。なお、本実施形態においては、第２情報処理装置２は、第１オブジェクト２１の本動作中において繰り返し算出された予測位置を保存しておく。
【０１２１】
なお、上記第２遅延値ｄ２は、遅延時間ｄに基づいて算出される。第２遅延値ｄ２は、上記実際の位置Ｐ１（ｔ−ｄ）を、現在位置Ｐ２（ｔ）よりどれだけ過去の時点における位置として取り扱うかの度合いを示す。第２遅延値ｄ２は、第１遅延値ｄ１と同様、遅延時間ｄに所定の係数を乗算した値であって、かつ、上限値が設定される。このように、第２遅延値ｄ２は、第１遅延値ｄ１と同様の方法で算出されるが、実際の数値は第１遅延値ｄ１とは異なっていてもよい。すなわち、第２遅延値ｄ２を算出するために用いられる係数および上限値は、第１遅延値ｄ１を算出するために用いられる係数および上限値と異なっていてもよい。
【０１２２】
上述のように、本実施形態においては、第２情報処理装置２では、第１情報処理装置１における現時点での手の位置よりも遅延時間ｄだけ先の位置を予測することを目標としている。つまり、現在位置Ｐ２（ｔ）は、理想的には、第１情報処理装置１における現時点ｔでの手の位置より遅延時間ｄだけ先の予測位置であり、第１情報処理装置１における時間（ｔ＋ｄ）の位置Ｐ（ｔ＋ｄ）に対応すると言える。したがって、本実施形態においては、第２情報処理装置２は、理想的には現時点より遅延時間ｄだけ先の位置である現在位置Ｐ２（ｔ）と、現時点より遅延時間ｄだけ過去の位置である上記実際の位置Ｐ１（ｔ−ｄ）との時間差を、遅延時間ｄの２倍であると想定している。すなわち、第２情報処理装置２は、上記のずれを修正するための第２補正ベクトルＷ２を算出するために、上記実際の位置Ｐ１（ｔ−ｄ）と、過去の予測位置Ｐ２（ｔ−２×ｄ２）とを用いるようにしている。
【０１２３】
具体的には、図１３に示すように、第２補正ベクトルＷ２は、上記過去の予測位置Ｐ２（ｔ−２×ｄ２）を始点とし、上記実際の位置Ｐ１（ｔ−ｄ）を終点とするベクトルとして算出される。つまり、第２補正ベクトルＷ２は、時点（ｔ−ｄ）での第１情報処理装置１における手の位置と第２情報処理装置２における手の位置とのずれを修正するように現在位置Ｐ２（ｔ）を補正するベクトルである。
【０１２４】
なお、第２情報処理装置２において本動作が開始された直後においては、（ｔ−２×ｄ２）の値が負になる場合がある。この場合、第２情報処理装置２は、第２補正ベクトルＷ２を０とする。この場合、第２補正ベクトルによる補正は行われない。
【０１２５】
上記のように算出された各補正ベクトルＷ１およびＷ２を用いて、第２情報処理装置２は、現在位置Ｐ２（ｔ）を補正する。すなわち、第２情報処理装置２は、第１補正ベクトルＷ１によって、遅延時間ｄに応じた分だけ先の位置となるように予測位置を補正するとともに、第２補正ベクトルＷ２によって、過去のずれに基づいてずれを修正するように予測位置を補正する。以下、本実施形態における予測位置の具体的な算出方法について説明する。
【０１２６】
第２情報処理装置２は、まず、上述の各補正ベクトルＷ１およびＷ２を算出し、次に、各補正ベクトルＷ１およびＷ２による補正を行うための補正計算ベクトルＷを算出する。補正計算ベクトルＷは、前回の予測位置を移動させる移動量および移動方向を示すベクトルであると言える。補正計算ベクトルＷは、各補正ベクトルＷ１およびＷ２を合成することによって得られ、具体的には、下記の式（１）に基づいて算出される。
Ｗ＝ａ×Ｗ１＋ｂ×Ｗ２  …（１）
上式（１）において、係数ａおよびｂは、それぞれ、予め定められた定数である。なお、本実施形態においては、上式（１）によって得られた補正計算ベクトルＷの大きさについては上限値が設定される。すなわち、補正計算ベクトルＷの大きさが、予め定められた上限値よりも大きい場合、第２情報処理装置２は、補正計算ベクトルＷの大きさを当該上限値に修正する。上限値を設定することによって、予測位置の急激な変化を抑制することができ、予測位置に基づく手の挙動が不自然になる可能性を低減することができる。なお、他の実施形態においては、補正計算ベクトルＷについて上限値が設定されなくてもよい。
【０１２７】
本実施形態においては、上記によって得られた補正計算ベクトルＷについて線形補間が行われる。具体的には、第２情報処理装置２は、下記の式（２）に基づいて、時点ｔにおける予測位置算出処理において用いられる補正計算ベクトルＷ（ｔ）を算出する。
Ｗ（ｔ）＝ｃ×Ｗ＋（１−ｃ）×Ｗ（ｔ−１）  …（２）
上式（２）において、係数ｃは、予め定められた定数である。上式（２）に示すように、本実施形態においては、補正計算ベクトルＷ（ｔ）は、前回の予測位置算出処理における補正計算ベクトルＷ（ｔ−１）と、今回の予測位置算出処理において算出された補正計算ベクトルＷとを所定の割合で合成することによって得られる。これによって、補正計算ベクトルの急激な変化を抑制することができるので、予測位置の急激な変化を抑制することができる。なお、他の実施形態においては、第２情報処理装置２は、時点ｔにおける予測位置算出処理において用いられる補正計算ベクトルＷ（ｔ）として、上式（１）によって得られる補正計算ベクトルＷをそのまま用いてもよい。
【０１２８】
上記のように、本実施形態においては、第１オブジェクト２１の手の位置についての予測位置を算出するべく、補正計算ベクトルＷ（ｔ）が算出される。ここで、本実施形態においては、第２情報処理装置２は、第１オブジェクト２１の手の速度についても手の位置と同様に、予測速度Ｖを算出するべく、補正計算用のベクトルＸ（ｔ）を算出する。ここで、予測速度Ｖは、予測位置Ｐ２と同様に３次元の値である。そのため、第２情報処理装置２は、予測速度Ｖに関する補正計算用のベクトルＸ（ｔ）を、予測位置Ｐ２に関する補正計算ベクトルＷ（ｔ）と同様にして算出することができる。なお、ベクトルＸ（ｔ）は、上式（１）および（２）と同様の式に基づいて算出されることができる。ただし、上式（１）および（２）における係数ａ，ｂ，およびｃは、ベクトルＸ（ｔ）を算出する場合とベクトルＷ（ｔ）を算出する場合とで異なる値であってよい。
【０１２９】
第２情報処理装置２は、現在位置Ｐ２（ｔ）を補正計算ベクトルＷ（ｔ）によって補正した値と、現在速度Ｖ（ｔ）を補正計算用のベクトルＸ（ｔ）によって補正した値とに基づいて、今回の予測位置Ｐ２（ｔ＋１）を算出する。
【０１３０】
ここで、第２情報処理装置２は、第２オブジェクト２２がパンチ動作を行う際における手の位置を算出するために、予め用意された位置算出関数ｆ｛Ｐ２，Ｖ，・・・｝を用いる。そのため、本実施形態においては、第１オブジェクト２１についての予測位置を算出する場合においても、上記位置算出関数ｆを用いる。なお、位置算出関数ｆ｛Ｐ２，Ｖ，・・・｝は、現在の位置Ｐ２および現在の速度Ｖを少なくとも入力とし、新たな位置を出力とする関数である。なお、位置算出関数ｆは、従来から用いられる関数と同様であってもよい。
【０１３１】
具体的には、今回の予測位置Ｐ２（ｔ＋１）は、下記の式（３）に基づいて算出される。
Ｐ２（ｔ＋１）＝ｆ｛Ｐ２（ｔ）＋Ｗ（ｔ），Ｖ（ｔ）＋Ｘ（ｔ），・・・｝  …（３）
上式（３）より明らかなように、第１オブジェクト２１についての予測位置Ｐ２（ｔ＋１）は、補正計算ベクトルＷ（ｔ）によって現在位置Ｐ２（ｔ）を補正した位置（Ｐ２（ｔ）＋Ｗ（ｔ））と、ベクトルＸ（ｔ）によって現在速度Ｖ（ｔ）を補正した速度（Ｖ（ｔ）＋Ｘ（ｔ））とを、位置算出関数ｆの入力とすることによって得られる。このように、本実施形態においては、第２オブジェクト２２によるパンチ動作における手の位置を算出する方法と同様の方法で、第１オブジェクト２１に関する予測位置を算出することができる。なお、他の実施形態においては、第２情報処理装置２は、上記位置算出関数ｆを用いない方法で（すなわち、第２オブジェクト２２によるパンチ動作における手の位置を算出する方法とは異なる方法で）、第１オブジェクト２１に関する予測位置を算出してもよい。
【０１３２】
なお、上記より明らかなように、本実施形態では、予測位置を算出するために、第１補正ベクトルＷ１がそのまま用いられるわけではなく、補正計算ベクトルＷ（ｔ）が用いられる。補正計算ベクトルＷ（ｔ）は、現在位置Ｐ２（ｔ）を、遅延時間ｄだけ先の位置（すなわち、仮予測位置Ｐ１’（ｔ＋ｄ１））へ補正するとは限らない。具体的には、１回の予測位置算出処理においては、予測位置Ｐ２（ｔ＋１）は、現在位置Ｐ２（ｔ）を基準として、仮予測位置よりも手前の位置として算出される。ただし、本実施形態においては、予測位置算出処理が第１オブジェクト２１による本動作中において繰り返し実行されるので、予測位置算出処理が繰り返し実行されることに応じて、予測位置は次第に先の位置となっていく。つまり、図９に示したように、本動作の開始直後においては、予測位置はあまり先の位置とはならず、第１情報処理装置１における手の位置が、第２情報処理装置２における予測位置よりも先行する（図９（ｂ））。一方、本動作の開始からある程度時間が経過すると、予測位置は次第に先の位置となるので、第２情報処理装置２における予測位置は、第１情報処理装置１における手の位置を追い抜き、第１情報処理装置１における手の位置よりも先行するようになる（図９（ｃ））。
【０１３３】
以上のように、本実施形態においては、第２情報処理装置２は、予測位置算出処理を繰り返し実行する。そして、第２情報処理装置２は、予測位置算出処理において、遅延時間に基づく所定時間（ｄ１）分先の位置（すなわち、仮予測位置）を算出し、当該算出された位置と、前回の予測位置（すなわち、現在位置Ｐ２（ｔ））とに基づいて新たな予測位置（Ｐ２（ｔ＋１））を算出する。これによれば、第２の情報処理装置２は、遅延時間に応じた分だけ先の仮予測位置を算出し、当該仮予測位置に基づいて新たな予測位置を算出するので、遅延時間を考慮して精度良く予測位置を算出することができる。
【０１３４】
また、第２情報処理装置２は、新たにオブジェクト情報を受信した場合、当該受信したオブジェクト情報により特定される位置（すなわち、実際の位置Ｐ１（ｔ−ｄ））と、遅延時間に基づく所定時間（２×ｄ２）分前の予測位置（すなわち、過去の予測位置Ｐ２（ｔ−２×ｄ２））との差（すなわち、第２補正ベクトルＷ２）に基づいて新たな予測位置（Ｐ２（ｔ＋１））を算出する。これによれば、第２情報処理装置２は、第２情報処理装置２において算出される予測位置と、第１情報処理装置１における実際の位置とのずれを考慮して予測位置を算出することができるので、予測位置をより正確に算出することができる。ここで、本実施形態においては、パンチ動作は、動作開始後における挙動が入力によって制御されることが可能な動作であるので、動作開始後の位置を予測することが難しい場合がある。しかし、このような場合であっても、上記差に基づくことによって予測位置をより正確に算出することができる。
【０１３５】
また、本実施形態においては、第２情報処理装置２は、まず仮予測位置を予測し、仮予測位置を第２補正ベクトルＷ２に基づいて補正することによって予測位置を算出しているということができる。つまり、第２情報処理装置２は、遅延時間に基づく第１遅延値（ｄ１）に基づいて算出される仮予測位置を、遅延時間に基づく第２遅延値（ｄ２）と、第１情報処理装置１から受信したオブジェクト情報により特定される位置（すなわち、実際の位置Ｐ１（ｔ−ｄ））とに基づいて補正することによって新たな予測位置を得る。これによれば、遅延時間を考慮して予測位置を算出することができるとともに、第２遅延値とオブジェクト情報とに基づく補正を行うことによって、予測位置をより正確に算出することができる。
【０１３６】
なお、他の実施形態においては、予測位置は、第２補正ベクトルＷ２を用いずに算出されてもよい。第２補正ベクトルＷ２を用いずに予測位置を算出する場合であっても本実施形態と同様に、第１補正ベクトルＷ１によって、第２情報処理装置２における第１オブジェクト２１の手の位置を、第１情報処理装置１における手の位置よりも先行させることができる。これによって、第１情報処理装置１において結果表示をより適切なタイミングで行うことができる。
【０１３７】
［２−７．送信側におけるパンチ動作の制御］
上述のように、本実施形態においては、第２情報処理装置２におけるパンチ動作期間が第１情報処理装置１におけるパンチ動作期間よりも短くなるように、第２情報処理装置２におけるパンチ動作が制御される。ここで、遅延時間が大きくなりすぎると、第２情報処理装置２におけるパンチ動作期間を短縮する度合いが大きくなることから、第２情報処理装置２におけるパンチ動作が速くなりすぎるおそれがある。このとき、第２情報処理装置２のユーザがパンチ動作に違和感を抱いたり、当該ユーザにとってゲームが難しくなりすぎたりするおそれがある。
【０１３８】
そこで、本実施形態においては、遅延時間が大きすぎる場合には、第１情報処理装置１における第１オブジェクト２１のパンチ動作を遅くする（つまり、パンチ動作期間を長くする）。これによって、第２情報処理装置２におけるパンチ動作期間を短縮する度合いを小さくすることができるので、第２情報処理装置２のユーザが抱く違和感を軽減することができる。以下、図１４を参照して、詳細を説明する。
【０１３９】
図１４は、送信側および受信側におけるパンチ動作期間の一例を示す図である。図１４（ａ）は、遅延時間ｄが小さい場合（すなわち、遅延時間ｄが基準時間Ｄ以下である場合）におけるパンチ動作期間を示し、図１４（ｂ）は、遅延時間ｄが大きい場合（すなわち、遅延時間ｄが基準時間Ｄより大きい場合）におけるパンチ動作期間を示す。
【０１４０】
図１４（ａ）に示すように、遅延時間ｄが基準時間Ｄ以下である場合、第１情報処理装置１は、予め定められた第１速度（換言すれば、通常の速度）で第１オブジェクト２１にパンチ動作を行わせる。これに対して、図１４（ｂ）に示すように、遅延時間ｄが基準時間Ｄより大きい場合、第１情報処理装置１は、第１速度よりも遅い第２速度で第１オブジェクト２１にパンチ動作を行わせる。その結果、遅延時間ｄが基準時間Ｄより大きい場合における第１情報処理装置１でのパンチ動作期間は、遅延時間ｄが基準時間Ｄ以下である場合における第１情報処理装置１でのパンチ動作期間よりも長くなる（図１４参照）。したがって、本実施形態によれば、遅延時間ｄが基準時間Ｄより大きい場合において、第２情報処理装置２におけるパンチ動作期間を短縮する度合いを軽減することができる。例えば、図１４に示す例においては、図１４（ａ）に示す場合と図１４（ｂ）に示す場合とで、第２情報処理装置２におけるパンチ動作期間を同程度にすることができる。
【０１４１】
［３．ゲーム処理の具体例］
図１５〜図２０を参照して、上記において概要を説明したゲーム処理が情報処理システムにおいて実行される場合の具体例について説明する。なお、図１５〜図２０における説明も図３〜図１４における説明と同様、第１情報処理装置１が送信側の装置となる場合（すなわち、第１情報処理装置１において第１オブジェクト２１がパンチ動作を行い、当該パンチ動作に関する結果情報が第２情報処理装置２へ送信される場合）の処理を例として説明する。ただし、第２情報処理装置２が送信側の装置となる場合の処理も、第１情報処理装置１が送信側の装置となる場合の処理と同様であり、これら２つの処理が連続して実行されたり、並行して実行されたりしてもよい。
【０１４２】
［３−１．データ］
図１５を参照して、情報処理システムにおけるゲーム処理に用いられるデータの具体例について説明する。図１５は、情報処理装置におけるゲーム処理に用いられる情報の一例を示す図である。図１５に示す情報（換言すれば、データ）は、情報処理装置の記憶装置（具体的には、処理部１１のメモリ、および／または、記憶部１２）に記憶される。
【０１４３】
情報処理装置は、第１オブジェクト情報および第２オブジェクト情報を記憶する。第１オブジェクト情報は、第１オブジェクト２１に関するオブジェクト情報である。第２オブジェクト情報は、第２オブジェクト２２に関するオブジェクト情報である。なお、送信側である第１情報処理装置１は、入力部１３に対する入力に基づいて第１オブジェクト情報を生成し、第２情報処理装置２から受信されるゲーム情報に含まれるオブジェクト情報を第２オブジェクト情報として取得する。
【０１４４】
情報処理装置は、遅延時間情報を記憶する。遅延時間情報は、各情報処理装置間の通信に関する遅延時間を示す。なお、本実施形態においては、各情報処理装置１および２は、それぞれ、遅延時間を特定する処理（後述するステップＳ１２またはＳ３２）を実行することによって、遅延時間情報を得る。
【０１４５】
情報処理装置は、ゲーム情報を記憶する。ゲーム情報は、ゲームに関する情報であって、通信相手の情報処理装置へ送信する情報である。図１６は、ゲーム情報に含まれる情報の一例を示す図である。図１６に示すように、本実施形態においては、ゲーム情報は、時刻情報、上記オブジェクト情報、上記開始情報、および、上記結果情報を含む。時刻情報は、当該ゲーム情報が送信される時の時刻を示す。また、本実施形態においては、ゲーム情報は、時刻情報およびオブジェクト情報を常に含むように生成される。これに対して、開始情報および結果情報は、所定の条件が満たされた場合にゲーム情報に含まれ（後述するステップＳ１４またはＳ６７）、それ以外の場合にはゲーム情報に含まれない。
【０１４６】
図１５に示すように、情報処理装置は、動作速度情報を記憶する。動作速度情報は、パンチ動作を行うべき速度を示し、本実施形態においては、上述の第１速度または第２速度を示す。動作速度情報は、送信側の情報処理装置において記憶される。送信側の情報処理装置は、動作速度情報により示される速度に従って操作対象オブジェクトにパンチ動作を行わせる。
【０１４７】
また、受信側の情報処理装置は、第１補正ベクトル情報、第２補正ベクトル情報、予測位置情報、および、開始位置情報を記憶する。第１補正ベクトル情報は、上記第１補正ベクトルを示す。第２補正ベクトル情報は、上記第２補正ベクトルを示す。予測位置情報は、上記予測位置を示す。なお、情報処理装置は、１回のパンチ動作中において算出される各予測位置を、予測位置の履歴として保存しておく。開始位置情報は、上記パンチ開始位置を示す。
【０１４８】
［３−２．送信側の情報処理装置における処理］
図１７は、送信側の情報処理装置（ここでは、第１情報処理装置１）によって実行されるゲーム処理（「送信側ゲーム処理」と記載する。）の一例の流れを示すフローチャートである。なお、図１７に示す一連の処理は、記憶部１２に記憶されるゲームプログラムの起動後、ゲームの開始に応じて開始される。
【０１４９】
なお、本実施形態では、情報処理装置の処理部のＣＰＵ（換言すればプロセッサ）が、記憶部１２に記憶されているゲームプログラムを実行することによって、図１７（または、後述する図１８〜図２０）に示す各ステップの処理を実行するものとして説明する。ただし、他の実施形態においては、上記各ステップの処理のうちの一部の処理を、ＣＰＵとは別のプロセッサ（例えば、専用回路等）が実行するようにしてもよい。また、図１７〜図２０に示す各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて（または代えて）別の処理が実行されてもよい。
【０１５０】
また、情報処理装置の処理部は、図１７〜図２０に示す各ステップの処理を、メモリを用いて実行する。すなわち、処理部のＣＰＵは、各処理ステップによって得られる情報（換言すれば、データ）をメモリに記憶し、それ以降の処理ステップにおいて当該情報を用いる場合には、メモリから当該情報を読み出して利用する。
【０１５１】
図１７に示すステップＳ１１において、処理部１１は、第２情報処理装置２から送信されてくるゲーム情報を受信する。すなわち、処理部１１は、第２情報処理装置２から通信部１５を介してゲーム情報を取得する。ステップＳ１１の次に、ステップＳ１２の処理が実行される。
【０１５２】
ステップＳ１２において、処理部１１は、第１情報処理装置１と第２情報処理装置との間における遅延時間を算出する。遅延時間の算出方法は任意であり、従来の算出方法が用いられてもよい。例えば、処理部１１は、ステップＳ１１で受信されるゲーム情報に含まれる時刻情報に基づいて、遅延時間を算出する。すなわち、処理部１１は、上記時刻情報が示す時刻と、現在時刻との差分に基づいて遅延時間を算出する。このとき、算出された遅延時間を示す遅延時間情報が記憶部１２に記憶される。ステップＳ１２の次に、ステップＳ１３の処理が実行される。
【０１５３】
なお、第１情報処理装置１と第２情報処理装置との間における通信状況によっては、上記ステップＳ１１の処理においてゲーム情報が受信されない場合もある。この場合、処理部１１は、ステップＳ１２の処理を実行せず、最後に算出した遅延時間を用いてステップＳ１３以降における処理を実行する。
【０１５４】
ステップＳ１３において、処理部１１は、入力部１３に対する入力を受け付ける。すなわち、処理部１１は、入力部１３に対した行われた入力を示す情報を取得し、メモリに記憶する。ステップＳ１３の次に、ステップＳ１４の処理が実行される。
【０１５５】
ステップＳ１４において、処理部１１は、ステップＳ１３で取得された情報に基づいて、入力部１３に対してパンチ入力が行われたか否かを判定する。ステップＳ１４の判定結果が肯定である場合、ステップＳ１５の処理が実行される。一方、ステップＳ１４の判定結果が否定である場合、ステップＳ１５〜Ｓ１８の処理がスキップされて、後述するステップＳ１９の処理が実行される。
【０１５６】
ステップＳ１５において、処理部１１は、開始情報を含むゲーム情報を生成する。これによって、後述するステップＳ２２において、開始情報を含むゲーム情報が第２情報処理装置２へ送信されることとなる。ステップＳ１５の次に、ステップＳ１６の処理が実行される。
【０１５７】
ステップＳ１６において、処理部１１は、現時点（すなわち、パンチ入力が行われた時点）における遅延時間が小さいか否かを判定する。すなわち、処理部１１は、ステップＳ１５で算出された遅延時間が、予め記憶部１２に記憶されている基準時間Ｄ以下であるか否かを判定する。ステップＳ１６の判定結果が肯定である場合、ステップＳ１７の処理が実行される。一方、ステップＳ１６の判定結果が否定である場合、ステップＳ１８の処理が実行される。
【０１５８】
ステップＳ１７において、処理部１１は、第１オブジェクト２１によるパンチ動作の速度を上述の第１速度に設定する。すなわち、処理部１１は、第１速度を示す動作速度情報を記憶部１２に記憶する。これによって、後述するステップＳ２０またはＳ２１の処理においては、動作速度情報により示される第１動作速度に従って、第１オブジェクト２１によるパンチ動作が制御される。ステップＳ１７の次に、ステップＳ１９の処理が実行される。
【０１５９】
一方、ステップＳ１８において、処理部１１は、第１オブジェクト２１によるパンチ動作の速度を上述の第２速度に設定する。すなわち、処理部１１は、第２速度を示す動作速度情報を記憶部１２に記憶する。これによって、後述するステップＳ２０またはＳ２１の処理においては、動作速度情報により示される第２動作速度に従って、第１オブジェクト２１によるパンチ動作が制御される。ステップＳ１８の次に、ステップＳ１９の処理が実行される。
【０１６０】
ステップＳ１９において、処理部１１は、第２情報処理装置２から結果情報を受信したか否かを判定する。すなわち、処理部１１は、ステップＳ１１で受信したゲーム情報に結果情報が含まれているか否かを判定する。ステップＳ１９の判定結果が肯定である場合、ステップＳ２０の処理が実行される。一方、ステップＳ１９の判定結果が否定である場合、ステップＳ２１の処理が実行される。
【０１６１】
ステップＳ２０において、処理部１１は、通常の場合（すなわち、パンチ動作の結果が発生していない場合）におけるオブジェクトの動作制御を行う。すなわち、処理部１１は、ステップＳ１において受け付けた入力に基づいて第１オブジェクト２１の動作を制御する。また、処理部１１は、ステップＳ４で受信したゲーム情報に含まれるオブジェクト情報に基づいて第２オブジェクト２２の動作を制御する。また、ステップＳ２０において、動作が制御された各オブジェクト２１および２２の状態（位置および速度等）を示す第１オブジェクト情報および第２オブジェクト情報が、記憶部１２に記憶される。ステップＳ２０の次に、ステップＳ２２の処理が実行される。
【０１６２】
ステップＳ２１において、処理部１１は、パンチ動作の結果が発生した場合におけるオブジェクトの動作制御を行う。すなわち、処理部１１は、ステップＳ１において受け付けた入力に基づいて第１オブジェクト２１の動作を制御する。また、処理部１１は、ステップＳ４で受信したゲーム情報に含まれる結果情報に基づいて第２オブジェクト２２の動作を制御する。具体的には、処理部１１は、第２オブジェクト２２に上述のリアクション動作を行わせる。なお、リアクション動作が複数フレームにわたって行われる場合、処理部１１は、リアクション動作が終了するまでの期間については、ステップＳ２０に代えてステップＳ２１の処理を実行する。また、ステップＳ２１において、動作が制御された各オブジェクト２１および２２の状態（位置および速度等）を示す第１オブジェクト情報および第２オブジェクト情報が、記憶部１２に記憶される。ステップＳ２１の次に、ステップＳ２２の処理が実行される。
【０１６３】
ステップＳ２２において、処理部１１は、通信部１５を用いて（換言すれば、通信部１５を介して）、第２情報処理装置２へゲーム情報を送信する。このゲーム情報には、ステップＳ２０またはＳ２１において動作が制御された後の第１オブジェクト２１に関するオブジェクト情報が含まれる。ステップＳ２１の次に、ステップＳ２２の処理が実行される。
【０１６４】
ステップＳ２３において、処理部１１は、ゲーム画像を生成して表示部１４に表示する。処理部１１は、記憶部１２に記憶される第１および第２オブジェクト情報に基づいて、ステップＳ２０またはＳ２１によって動作が制御された後のゲーム空間を表すゲーム画像を生成し、生成されたゲーム画像を表示部１４に表示する。なお、パンチ動作の結果が発生した場合（すなわち、上記ステップＳ２１の処理が実行される場合）には、処理部１１は、ゲーム空間を表す画像に加えて、当該結果を表すエフェクト画像を表示する。ステップＳ２３の次に、ステップＳ２４の処理が実行される。
【０１６５】
ステップＳ２４において、処理部１１は、ゲームを終了するか否かを判定する。処理部１１は、例えば、予め定められた終了条件（例えば、いずれかのオブジェクトの体力が０になったこと）が満たされた場合、または、終了指示を示す入力がユーザによって行われた場合、ゲームを終了すると判定する。ステップＳ２４の判定結果が否定である場合、ステップＳ１の処理が再度実行される。処理部１１は、ステップＳ２４においてゲームを終了すると判定されるまで、ステップＳ１〜Ｓ２４の処理ループを繰り返し実行する。一方、ステップＳ２４の判定結果が肯定である場合、処理部１１は、図１７に示す送信側ゲーム処理を終了する。
【０１６６】
［３−３．受信側の情報処理装置における処理］
図１８〜図２０は、受信側の情報処理装置（ここでは、第２情報処理装置２）によって実行されるゲーム処理（「受信側ゲーム処理」と記載する。）の一例の流れを示すフローチャートである。なお、図１８〜図２０に示す一連の処理は、第２の情報処理装置の記憶部（以下、図１８〜図２０の説明において、単に「記憶部」と記載する）に記憶されるゲームプログラムの起動後、ゲームの開始に応じて開始される。
【０１６７】
図１８に示すステップＳ３１において、第２情報処理装置２の処理部（以下、図１８〜図２０の説明において、単に「処理部」と記載する）は、第１情報処理装置１から送信されてくるゲーム情報を受信する。ステップＳ３１の処理は、上述のステップＳ１１の処理と同様である。ステップＳ３１の次に、ステップＳ３２の処理が実行される。
【０１６８】
ステップＳ３２において、処理部は、第１情報処理装置１と第２情報処理装置との間における遅延時間を算出する。ステップＳ３２の処理は、上述のステップＳ１２の処理と同様である。ステップＳ３２の次に、ステップＳ３３の処理が実行される。
【０１６９】
ステップＳ３３において、処理部は、第２情報処理装置２の入力部に対する入力を受け付ける。ステップＳ３３の処理は、上述のステップＳ１３の処理と同様である。ステップＳ３３の次に、ステップＳ３４の処理が実行される。
【０１７０】
ステップＳ３４において、処理部は、第１情報処理装置１から開始情報を受信したか否かを判定する。すなわち、処理部は、ステップＳ３１で受信したゲーム情報に開始情報が含まれているか否かを判定する。ステップＳ３４の判定結果が肯定である場合、ステップＳ３５の処理が実行される。一方、ステップＳ３４の判定結果が否定である場合、ステップＳ３５の処理がスキップされて、後述するステップＳ３６の処理が実行される。
【０１７１】
ステップＳ３５において、処理部は、第１オブジェクト２１によるパンチ動作における予備動作の態様を特定する。すなわち、処理部は、上記“［２−４．予備動作のスキップ］”で説明した方法に従って、予備動作の少なくとも一部を行うか、それとも、予備動作の全体をスキップするかを特定する。さらに、予備動作の少なくとも一部を行う場合には、処理部は、予備動作を行う時間（換言すれば、予備動作をどの程度短縮して行うか）を特定する。ステップＳ３５の次に、ステップＳ３６の処理が実行される。
【０１７２】
ステップＳ３６において、処理部は、上記“［２−５．パンチ開始位置の特定］”で説明した方法に従って、第１オブジェクト２１によるパンチ動作におけるパンチ開始位置を特定する。このとき、特定されたパンチ開始位置を示す開始位置情報が記憶部に記憶される。ステップＳ３６の次に、ステップＳ３７の処理が実行される。
【０１７３】
ステップＳ３７において、処理部は、第１オブジェクト２１による本動作を行う期間であるか否かを判定する。ステップＳ３７の判定は、現時点が、第１オブジェクト２１がパンチ動作を行う期間内であり、かつ、予備動作を行う期間でないか否かによって行うことができる。ここで、処理部は、第１オブジェクト２１がパンチ動作を行う期間を、第１情報処理装置１から開始情報を受信してから、第１情報処理装置１へ結果情報を送信するまでの期間として特定することができる。また、処理部は、予備動作を行う期間を、上記ステップＳ３５の処理に基づいて特定することができる。ステップＳ３７の判定結果が肯定である場合、ステップＳ３８の処理が実行される。一方、ステップＳ３７の判定結果が否定である場合、ステップＳ３８の処理がスキップされて、後述するステップＳ３９の処理が実行される。
【０１７４】
ステップＳ３８において、処理部は、上述の予測位置算出処理を実行する。以下、図１９を参照して、予測位置算出処理における処理の詳細について説明する。
【０１７５】
図１９は、図１８に示すステップＳ３８の予測位置算出処理の詳細な流れの一例を示すサブフローチャートである。予測位置算出処理においては、まずステップＳ５１において、処理部は、上記“［２−６．予測位置の算出方法］”で説明した方法に従って、上述の第１補正ベクトルを算出する。なお、第１オブジェクト２１による１回の本動作中において最初に予測位置算出処理が実行される場合には、上記ステップＳ３６で算出されるパンチ開始位置が、上述の現在位置として用いられる。したがって、予備動作がスキップされる場合、スキップ後の動作（すなわち、本動作）は、パンチ開始位置に手が配置された状態から開始される。ステップＳ５１においては、算出された第１補正ベクトルを示す第１補正ベクトル情報が記憶部に記憶される。ステップＳ５１の次に、ステップＳ５２の処理が実行される。
【０１７６】
ステップＳ５２において、処理部は、上記“［２−６．予測位置の算出方法］”で説明した方法に従って、上述の第２補正ベクトルを算出する。このとき、算出された第２補正ベクトルを示す第２補正ベクトル情報が記憶部に記憶される。ステップＳ５２の次に、ステップＳ５３の処理が実行される。
【０１７７】
ステップＳ５３において、処理部は、上記“［２−６．予測位置の算出方法］”で説明した方法に従って、第１補正ベクトルおよび第２補正ベクトルに基づいて、予測位置を算出する。このとき、算出された予測位置を示す予測位置情報が記憶部に記憶される。ステップＳ５３の後、処理部は予測位置算出処理を終了する。
【０１７８】
図１８の説明に戻り、ステップＳ３８の予測位置算出処理の次に、ステップＳ３９の処理が実行される。ステップＳ３９において、処理部は、動作制御処理を実行する。動作制御処理は、第１オブジェクト２１および第２オブジェクト２２の動作を制御する処理である。以下、図２０を参照して、動作制御処理における処理の詳細について説明する。
【０１７９】
図２０は、図１８に示すステップＳ３９の動作制御処理の詳細な流れの一例を示すサブフローチャートである。動作制御処理においては、まずステップＳ６１において、処理部は、第１オブジェクト２１が予備動作を行う期間であるか否かを判定する。ステップＳ６１の判定は、現時点が、第１オブジェクト２１がパンチ動作を行う期間内であり、かつ、予備動作を行う期間であるか否かによって行うことができる。ステップＳ６１の判定結果が肯定である場合、ステップＳ６２の処理が実行される。一方、ステップＳ６１の判定結果が否定である場合、後述するステップＳ６３の処理が実行される。
【０１８０】
ステップＳ６２において、処理部は、パンチ動作における予備動作を行うように第１オブジェクトを制御する。なお、ステップＳ６２の処理における予備動作に関する動作制御は、上記ステップＳ３５の処理によって特定された動作態様に従って行われる。また、処理部は、第１情報処理装置１から受信したゲーム情報に含まれるオブジェクト情報に基づいて、必要に応じてパンチ動作以外の動作を第１オブジェクトに行わせる。ステップＳ６２の次に、後述するステップＳ６６の処理が実行される。
【０１８１】
ステップＳ６３において、処理部は、第１オブジェクト２１による本動作を行う期間であるか否かを判定する。ステップＳ６３の判定は、上記ステップＳ３７の判定と同じである。ステップＳ６３の判定結果が肯定である場合、ステップＳ６４の処理が実行される。一方、ステップＳ６３の判定結果が否定である場合、後述するステップＳ６５の処理が実行される。
【０１８２】
ステップＳ６４において、処理部は、パンチ動作における本動作を行うように第１オブジェクトを制御する。すなわち、処理部は、記憶部に記憶されている予測位置情報に基づいて、第１オブジェクト２１にパンチ動作を行わせる。このとき、第１オブジェクト２１は、予測位置に手が配置されるように制御される。また、処理部は、第１情報処理装置１から受信したゲーム情報に含まれるオブジェクト情報に基づいて、必要に応じてパンチ動作以外の動作を第１オブジェクトに行わせる。ステップＳ６４の次に、後述するステップＳ６６の処理が実行される。
【０１８３】
ステップＳ６５において、処理部は、第１情報処理装置１から受信したゲーム情報に含まれるオブジェクト情報に基づいて第１オブジェクト２１の動作を制御する。このとき、第１オブジェクト２１は、パンチ動作以外の動作を行う。ステップＳ６５の次に、ステップＳ６６の処理が実行される。
【０１８４】
なお、上記ステップＳ６２，Ｓ６４，またはＳ６５においては、動作が制御された第１オブジェクト２１の状態を示す第１オブジェクト情報が、記憶部に記憶される。
【０１８５】
ステップＳ６６において、処理部は、ステップＳ３３において受け付けた入力に基づいて第２オブジェクト２２の動作を制御する。このとき、動作が制御された第２オブジェクト２２の状態を示す第２オブジェクト情報が、記憶部に記憶される。ステップＳ６６の次に、ステップＳ６７の処理が実行される。
【０１８６】
ステップＳ６７において、処理部は、第１オブジェクト２１のパンチ動作による結果が発生したか否かを判定する。具体的には、処理部は、第１オブジェクト２１によるパンチ動作について第２オブジェクト２２との当たり判定処理を実行し、第１オブジェクト２１の手が、第２オブジェクト２２に当たったか否かを判定する。ステップＳ６７の判定結果が肯定である場合、ステップＳ６８の処理が実行される。一方、ステップＳ６７の判定結果が否定である場合、ステップＳ６８の処理がスキップされ、処理部は動作制御処理を終了する。
【０１８７】
ステップＳ６８において、処理部は、結果情報を含むゲーム情報を生成する。なお、現時点（すなわち、第１オブジェクト２１の手が、第２オブジェクト２２に当たった時点）で第２オブジェクト２２がガード動作を行っていない場合、処理部は、パンチが当たったことを示す結果情報を含むゲーム情報を生成する。また、現時点で第２オブジェクト２２がガード動作を行っている場合、処理部は、パンチがガードされたことを示す結果情報を含むゲーム情報を生成する。ステップＳ６８の処理によって、後述するステップＳ４０において、開始情報を含むゲーム情報が第２情報処理装置２へ送信されることとなる。ステップＳ６８の後、処理部は動作制御処理を終了する。
【０１８８】
図１８の説明に戻り、ステップＳ３９の動作制御処理の次に、ステップＳ４０の処理が実行される。ステップＳ４０において、処理部は、第２情報処理装置２の通信部を用いて、第１情報処理装置１へゲーム情報を送信する。このゲーム情報には、ステップＳ３９において動作が制御された後の第２オブジェクト２２に関するオブジェクト情報が含まれる。ステップＳ４０の次に、ステップＳ４１の処理が実行される。
【０１８９】
ステップＳ４１において、処理部は、ゲーム画像を生成して第２情報処理装置２の表示部に表示する。処理部は、記憶部に記憶される第１および第２オブジェクト情報に基づいて、ステップＳ３７によって動作が制御された後のゲーム空間を表すゲーム画像を生成し、生成されたゲーム画像を表示部に表示する。なお、パンチ動作の結果が発生した場合（すなわち、上記ステップＳ６８の処理が実行される場合）には、処理部は、ゲーム空間を表す画像に加えて、当該結果を表すエフェクト画像を表示する。ステップＳ４１の次に、ステップＳ４２の処理が実行される。
【０１９０】
ステップＳ４２において、処理部１１は、ゲームを終了するか否かを判定する。ステップＳ４２の処理は、上記ステップＳ２４の処理と同様である。ステップＳ４２の判定結果が否定である場合、ステップＳ３１の処理が再度実行される。処理部は、ステップＳ４２においてゲームを終了すると判定されるまで、ステップＳ３１〜Ｓ４２の処理ループを繰り返し実行する。一方、ステップＳ４２の判定結果が肯定である場合、処理部は、図１８に示す受信側ゲーム処理を終了する。
【０１９１】
［４．本実施形態の作用効果および変形例］
以上に説明した実施形態によれば、第１情報処理装置１は、次の構成を有する。
・仮想空間に配置された第１オブジェクト２１を第１情報処理装置１に関するユーザの入力に応じて制御する第１制御手段（ステップＳ２０，Ｓ２１）
・第１オブジェクト２１に関するオブジェクト情報を第２情報処理装置へ送信する第１送信手段（ステップＳ２２）
また、第２情報処理装置２は、次の構成を有する。
・第１情報処理装置１からオブジェクト情報を受信する第１受信手段（ステップＳ３１）
・受信したオブジェクト情報と、第１情報処理装置１と第２情報処理装置２との通信における遅延時間とに基づいて、第１情報処理装置１における第１オブジェクト２１の現在位置よりも先の予測位置を算出する予測手段（ステップＳ３８）
・予測位置に基づいて所定のゲーム処理（例えば、オブジェクトの動作を制御する処理、および／または、パンチ動作の結果が発生したか否かを判定する処理）を実行する処理手段（ステップＳ３９および／またはＳ６７）
・所定のゲーム処理の結果を示す結果情報を第１情報処理装置１へ送信する第２送信手段（ステップＳ４０，Ｓ６８）
【０１９２】
上記「第１情報処理装置１と第２情報処理装置２との通信における遅延時間」は、第１情報処理装置１から第２情報処理装置２へ情報を送信した場合の遅延時間であってもよいし、第２情報処理装置２から第１情報処理装置１へ情報を送信した場合の遅延時間であってもよいし、これらの遅延時間に基づいて算出される遅延時間であってもよい。
【０１９３】
また、以上に説明した実施形態によれば、第１情報処理装置１は、上記の第１制御手段および第１送信手段を有し、第２情報処理装置２は、次の構成を有する。
・第１情報処理装置１からオブジェクト情報を受信する受信手段（ステップＳ３１）
・仮想空間に配置された第２オブジェクト２２を第２情報処理装置２に関するユーザの入力に応じて制御するとともに、オブジェクト情報に基づいて第１オブジェクトを制御する第２制御手段（ステップＳ３９）
・少なくとも第１オブジェクトを含む画像を表示装置に表示させる表示制御手段（ステップＳ４１）
また、第２制御手段は、所定の条件が満たされた場合、オブジェクト情報に基づく第１オブジェクト２１による動作（すなわち、パンチ動作）の一部をスキップする（ステップＳ３５）。
【０１９４】
上記所定の条件は、例えば、第１情報処理装置１に対する入力に基づいて第１オブジェクト２１が所定の動作（例えば、パンチ動作）を開始したことを示す情報を受信手段が受信したことである。
また、上記「スキップする」とは、第１情報処理装置１における第１オブジェクト２１による動作の少なくとも一部が、第２情報処理装置２における第１オブジェクト２１の動作としては行われないことを意味する。例えば、第１情報処理装置１において、所定数の画像からなるアニメーションを再生することによって上記所定の動作が表示される場合、第２情報処理装置２において、当該所定数の画像のうち少なくとも１つを飛ばしてアニメーションを再生することは、飛ばした画像に対応する動作をスキップしていると言うことができる。
【０１９５】
（ゲーム内容に関する変形例）
他の実施形態においては、情報処理システムにおいて実行されるゲームの内容は任意である。例えば、他の実施形態においては、ユーザによって操作されるプレイヤキャラクタが射撃を行うゲームが実行されてもよい。このとき、受信側の情報処理装置は、送信側の情報処理装置に対応するキャラクタが発射した弾のオブジェクトについて予測位置を算出することによって、弾のオブジェクトの動作時間（すなわち、弾のオブジェクトが発射されてから、受信側の情報処理装置に対応するキャラクタに当たるまでの時間）を、送信側よりも短くすることができる。
【０１９６】
なお、受信側の情報処理装置において動作時間を短縮する処理の対象となる動作は、上記実施形態におけるパンチ動作や上記射撃動作の他、ある程度の時間をかけて行われる任意の動作であってよい。例えば、上記処理の対象となる動作は、キャラクタが剣のオブジェクトを振る動作であってもよく、このとき、受信側の情報処理装置は、剣のオブジェクトについて予測位置を算出することによって、剣のオブジェクトの動作時間を送信側よりも短くすることができる。
【０１９７】
なお、受信側の情報処理装置において動作時間を短縮する処理の対象となる動作は、上記実施形態におけるパンチ動作のように、動作開始後における挙動が入力によって制御されることが可能な動作であってもよいし、動作開始後における挙動が入力によって制御されない動作であってもよい。
【０１９８】
（情報処理装置間の通信に関する変形例）
なお、情報処理装置間の通信方法は任意である。例えば、他の実施形態において、各情報処理装置１および２は、ネットワーク３を介さずに通信を行ってもよく、例えば近距離無線通信によって直接的に通信を行ってもよい。また例えば、各情報処理装置１および２は、サーバを介して通信を行ってもよい。また、情報処理装置は、ネットワーク３を介した通信を行う機能と、近距離無線通信を行う機能との両方を有していてもよい。
【０１９９】
他の実施形態においては、情報処理システムは、３つ以上の情報処理装置を含んでいてもよい。このとき、各情報処理装置がピアツーピアで通信を行う形態と、１つの送信側の情報処理装置が複数の受信側の情報処理装置へゲーム情報を送信する形態とのいずれであっても、上記実施形態における処理を適用することによって、上記実施形態と同様の効果を得ることができる。
【０２００】
（情報処理を実行する主体に関する変形例）
他の実施形態においては、上記実施形態において送信側の情報処理装置によって実行された処理の一部は、受信側の情報処理装置によって実行されてもよい。また、上記実施形態において受信側の情報処理装置によって実行された処理の一部は、送信側の情報処理装置によって実行されてもよい。例えば、遅延時間を算出する処理は、各情報処理装置１および２のうちの一方の装置によって実行されてもよく、このとき、他方の装置は、当該一方の装置から遅延時間の情報を取得するようにしてもよい。
【０２０１】
また、他の実施形態においては、各情報処理装置１および２がサーバと通信可能である場合において、各情報処理装置１または２において実行された処理は、情報処理装置とサーバとの協働によって実行されてもよい。すなわち、図１７〜図２０に示す各ステップの処理のうちの一部の処理（例えば、遅延時間を算出する処理）は、サーバによって実行されてもよい。
【産業上の利用可能性】
【０２０２】
上記実施形態は、情報処理装置間でオブジェクトの動作について同期を取りやすくすること等を目的として、例えばゲームシステム、ゲーム装置、ゲームプログラム等に利用することができる。
【符号の説明】
【０２０３】
１  第１情報処理装置
２  第２情報処理装置
１１  処理部
１２  記憶部
１３  入力部
１４  表示部
１５  通信部
２１  第１オブジェクト
２２  第２オブジェクト
【図１】
2018196577.tif 000003
【図２】
2018196577.tif 000004
【図３】
2018196577.tif 000005
【図４】
2018196577.tif 000006
【図５】
2018196577.tif 000007
【図６】
2018196577.tif 000008
【図７】
2018196577.tif 000009
【図８】
2018196577.tif 000010
【図９】
2018196577.tif 000011
【図１０】
2018196577.tif 000012
【図１１】
2018196577.tif 000013
【図１２】
2018196577.tif 000014
【図１３】
2018196577.tif 000015
【図１４】
2018196577.tif 000016
【図１５】
2018196577.tif 000017
【図１６】
2018196577.tif 000018
【図１７】
2018196577.tif 000019
【図１８】
2018196577.tif 000020
【図１９】
2018196577.tif 000021
【図２０】
2018196577.tif 000022