特許第6927750号(P6927750)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 任天堂株式会社の特許一覧

特許6927750情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法
<>
  • 特許6927750-情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法 図000002
  • 特許6927750-情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法 図000003
  • 特許6927750-情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法 図000004
  • 特許6927750-情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法 図000005
  • 特許6927750-情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法 図000006
  • 特許6927750-情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法 図000007
  • 特許6927750-情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法 図000008
  • 特許6927750-情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法 図000009
  • 特許6927750-情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法 図000010
  • 特許6927750-情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法 図000011
  • 特許6927750-情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法 図000012
  • 特許6927750-情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法 図000013
  • 特許6927750-情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法 図000014
  • 特許6927750-情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法 図000015
  • 特許6927750-情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法 図000016
  • 特許6927750-情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法 図000017
  • 特許6927750-情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法 図000018
  • 特許6927750-情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法 図000019
  • 特許6927750-情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法 図000020
  • 特許6927750-情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法 図000021
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6927750
(24)【登録日】2021年8月10日
(45)【発行日】2021年9月1日
(54)【発明の名称】情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法
(51)【国際特許分類】
   A63F 13/358 20140101AFI20210823BHJP
   A63F 13/53 20140101ALI20210823BHJP
   A63F 13/55 20140101ALI20210823BHJP
   G06F 13/00 20060101ALI20210823BHJP
   G06T 19/00 20110101ALI20210823BHJP
【FI】
   A63F13/358
   A63F13/53
   A63F13/55
   G06F13/00 650R
   G06T19/00 300A
【請求項の数】12
【全頁数】39
(21)【出願番号】特願2017-102546(P2017-102546)
(22)【出願日】2017年5月24日
(65)【公開番号】特開2018-196577(P2018-196577A)
(43)【公開日】2018年12月13日
【審査請求日】2020年3月12日
(73)【特許権者】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】100158780
【弁理士】
【氏名又は名称】寺本 亮
(74)【代理人】
【識別番号】100121359
【弁理士】
【氏名又は名称】小沢 昌弘
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】小倉 佑太
(72)【発明者】
【氏名】日下 航
(72)【発明者】
【氏名】須藤 郁弥
【審査官】 前地 純一郎
(56)【参考文献】
【文献】 特開2015−082180(JP,A)
【文献】 特表2016−511018(JP,A)
【文献】 特開2007−097837(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
A63F 13/00−13/98
A63F 9/24
G06F 13/00
G06T 19/00
(57)【特許請求の範囲】
【請求項1】
第1情報処理装置および当該第1情報処理装置と通信可能な第2情報処理装置を含む情報処理システムにおいて、
前記第1情報処理装置は、
仮想空間に配置された第1オブジェクトを前記第1情報処理装置に関するユーザの入力に応じて制御する第1制御手段と、
前記第1オブジェクトに関するオブジェクト情報を前記第2情報処理装置へ送信する第1送信手段とを有し、
前記第2情報処理装置は、
前記第1情報処理装置から前記オブジェクト情報を受信する受信手段と、
前記仮想空間に配置された第2オブジェクトを前記第2情報処理装置に関するユーザの入力に応じて制御するとともに、前記オブジェクト情報に基づいて前記第1オブジェクトを制御する第2制御手段と、
少なくとも前記第1オブジェクトを含む画像を表示装置に表示させる表示制御手段とを有し、
前記第2制御手段は、所定の条件が満たされた場合、前記オブジェクト情報に基づく前記第1オブジェクトによる動作の一部をスキップし、
前記所定の条件は、前記第1情報処理装置に関するユーザの入力に基づいて前記第1オブジェクトが所定の動作を開始したことを示す情報を前記オブジェクト情報として前記受信手段が受信したことであり、
前記所定の動作は、予備動作と、当該予備動作に続いて行われる本動作とを含み、
前記第2制御手段は、前記所定の条件が満たされた場合、前記第1オブジェクトによる前記予備動作の少なくとも一部をスキップし、少なくとも当該第1オブジェクトによる前記本動作を行うよう当該第1オブジェクトを制御する、情報処理システム。
【請求項2】
前記所定の動作は、前記第2オブジェクトに影響を与え得る動作である、請求項に記載の情報処理システム。
【請求項3】
前記予備動作は、前記第2オブジェクトに影響を与えない動作であり、
前記第2情報処理装置は、
前記第1オブジェクトによる前記本動作によって前記第2オブジェクトが影響を受けたか否かを判定する判定手段をさらに有する、請求項1または請求項2に記載の情報処理システム。
【請求項4】
前記第2情報処理装置は、
前記第1情報処理装置と前記第2情報処理装置との間の通信における遅延時間を特定する遅延特定手段をさらに有し、
前記第2制御手段は、前記第1オブジェクトによる動作をスキップする長さを、前記遅延時間の長さに応じて変化させる、請求項1から請求項のいずれか1項に記載の情報処理システム。
【請求項5】
前記第2制御手段は、前記第1オブジェクトによる動作の一部をスキップした場合、スキップ後の当該第1オブジェクトの状態を予測することによって、当該スキップ後の動作の制御を開始する、請求項1から請求項のいずれか1項に記載の情報処理システム。
【請求項6】
前記第2制御手段は、前記オブジェクト情報に含まれる前記第1オブジェクトに関する情報に基づいてスキップ後の動作を予測する、請求項に記載の情報処理システム。
【請求項7】
前記第2制御手段は、前記第1オブジェクトがスキップ後の動作を開始する位置を予測する、請求項または請求項に記載の情報処理システム。
【請求項8】
前記第2制御手段は、前記オブジェクト情報に含まれる前記第1オブジェクトに関する情報を入力とし、スキップ後の動作における前記第1オブジェクトの状態を出力とする関数であって、前記第1オブジェクトの種類毎に異なる関数を用いて予測を行う、請求項から請求項のいずれか1項に記載の情報処理システム。
【請求項9】
前記第2情報処理装置は、
前記第1オブジェクトによる動作に起因して生じる結果を示す結果情報を前記第1情報処理装置へ送信する第2送信手段を有し、
前記第1情報処理装置は、
前記第2情報処理装置から前記結果情報を受信する第2受信手段と、
受信した前記結果情報に基づいて前記結果を表す画像を前記表示装置に表示させる結果表示手段とを有する、請求項1から請求項のいずれか1項に記載の情報処理システム。
【請求項10】
他の情報処理装置と通信可能な情報処理装置であって、
仮想空間に配置され、前記他の情報処理装置に関するユーザの入力に応じて制御される第1オブジェクトに関するオブジェクト情報を当該他の情報処理装置から受信する受信手段と、
前記仮想空間に配置された第2オブジェクトを自機に関するユーザの入力に応じて制御するとともに、前記オブジェクト情報に基づいて前記第1オブジェクトを制御するオブジェクト制御手段と、
少なくとも前記第1オブジェクトを含む画像を表示装置に表示させる表示制御手段とを有し、
前記オブジェクト制御手段は、所定の条件が満たされた場合、前記オブジェクト情報に基づく前記第1オブジェクトによる動作の一部をスキップし、
前記所定の条件は、前記第1情報処理装置に関するユーザの入力に基づいて前記第1オブジェクトが所定の動作を開始したことを示す情報を前記オブジェクト情報として前記受信手段が受信したことであり、
前記所定の動作は、予備動作と、当該予備動作に続いて行われる本動作とを含み、
前記オブジェクト制御手段は、前記所定の条件が満たされた場合、前記第1オブジェクトによる前記予備動作の少なくとも一部をスキップし、少なくとも当該第1オブジェクトによる前記本動作を行うよう当該第1オブジェクトを制御する、情報処理装置。
【請求項11】
第1情報処理装置と通信可能な第2情報処理装置のコンピュータにおいて実行される情報処理プログラムであって、
仮想空間に配置され、前記第1情報処理装置に関するユーザの入力に応じて制御される第1オブジェクトに関するオブジェクト情報を当該第1情報処理装置から受信する受信手段と、
前記仮想空間に配置された第2オブジェクトを前記第2情報処理装置に関するユーザの入力に応じて制御するとともに、前記オブジェクト情報に基づいて前記第1オブジェクトを制御するオブジェクト制御手段と、
少なくとも前記第1オブジェクトを含む画像を表示装置に表示させる表示制御手段として前記コンピュータを機能させ、
前記オブジェクト制御手段は、所定の条件が満たされた場合、前記オブジェクト情報に基づく前記第1オブジェクトによる動作の一部をスキップし、
前記所定の条件は、前記第1情報処理装置に関するユーザの入力に基づいて前記第1オブジェクトが所定の動作を開始したことを示す情報を前記オブジェクト情報として前記受信手段が受信したことであり、
前記所定の動作は、予備動作と、当該予備動作に続いて行われる本動作とを含み、
前記オブジェクト制御手段は、前記所定の条件が満たされた場合、前記第1オブジェクトによる前記予備動作の少なくとも一部をスキップし、少なくとも当該第1オブジェクトによる前記本動作を行うよう当該第1オブジェクトを制御する、情報処理プログラム。
【請求項12】
第1情報処理装置および当該第1情報処理装置と通信可能な第2情報処理装置を含む情報処理システムにおいて実行される情報処理方法であって、
前記第1情報処理装置は、
仮想空間に配置された第1オブジェクトを前記第1情報処理装置に関するユーザの入力に応じて制御する第1制御ステップと、
前記第1オブジェクトに関するオブジェクト情報を前記第2情報処理装置へ送信する第1送信ステップとを実行し、
前記第2情報処理装置は、
前記第1情報処理装置から前記オブジェクト情報を受信する受信ステップと、
前記仮想空間に配置された第2オブジェクトを前記第2情報処理装置に関するユーザの入力に応じて制御するとともに、前記オブジェクト情報に基づいて前記第1オブジェクトを制御する第2制御ステップと、
少なくとも前記第1オブジェクトを含む画像を表示装置に表示させる表示制御ステップとを実行し、
前記第2制御ステップにおいて、前記第2情報処理装置は、所定の条件が満たされた場合、前記オブジェクト情報に基づく前記第1オブジェクトによる動作の一部をスキップし、
前記所定の条件は、前記第1情報処理装置に関するユーザの入力に基づいて前記第1オブジェクトが所定の動作を開始したことを示す情報を前記オブジェクト情報として前記受信手段が受信したことであり、
前記所定の動作は、予備動作と、当該予備動作に続いて行われる本動作とを含み、
前記第2制御ステップにおいて、前記所定の条件が満たされた場合、前記第1オブジェクトによる前記予備動作の少なくとも一部をスキップし、少なくとも当該第1オブジェクトによる前記本動作を行うよう当該第1オブジェクトを制御する、情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置間で通信を行って情報処理を実行する情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法に関する。
【背景技術】
【0002】
従来、複数の装置間で通信を行うことによってゲーム処理を実行する場合において、通信の遅延を考慮してゲーム処理を実行することが行われている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2007−097837号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来、ある情報処理装置において通信相手からの情報を受信して情報処理を実行する際に、通信相手からの情報に基づいてオブジェクトの動作を制御する場合において、当該オブジェクトの動作について装置間で同期を取ることが難しくなることがあった。例えば、動作を開始するタイミングが通信遅延のために装置間でずれることから、動作に起因して生じる結果のタイミングが装置間でずれるおそれがあった。
【0005】
それ故、本発明の目的は、情報処理装置間でオブジェクトの動作について同期を取りやすくすることができる情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法を提供することである。
【課題を解決するための手段】
【0006】
上記の課題を解決すべく、本発明は、以下の(1)〜(11)の構成を採用した。
【0007】
(1)
本発明の一例は、第1情報処理装置および当該第1情報処理装置と通信可能な第2情報処理装置を含む情報処理システムである。
第1情報処理装置は、第1制御手段と、第1送信手段とを有する。第1制御手段は、仮想空間に配置された第1オブジェクトを第1情報処理装置に関するユーザの入力に応じて制御する。第1送信手段は、第1オブジェクトに関するオブジェクト情報を第2情報処理装置へ送信する。
第2情報処理装置は、受信手段と、第2制御手段と、表示制御手段とを有する。受信手段は、第1情報処理装置からオブジェクト情報を受信する。第2制御手段は、仮想空間に配置された第2オブジェクトを第2情報処理装置に関するユーザの入力に応じて制御するとともに、オブジェクト情報に基づいて第1オブジェクトを制御する。表示制御手段は、少なくとも第1オブジェクトを含む画像を表示装置に表示させる。第2制御手段は、所定の条件が満たされた場合、オブジェクト情報に基づく第1オブジェクトによる動作の一部をスキップする。
【0008】
上記(1)の構成によれば、第2情報処理装置においては、第1オブジェクトによる動作の一部をスキップすることで、当該動作に要する時間を短くすることができる。これによって、第1情報処理装置から第2情報処理装置へオブジェクト情報を送信する場合に生じる遅延による影響を緩和することができるので、第1オブジェクトの動作について情報処理装置間での同期を取りやすくすることができる。
【0009】
(2)
所定の条件は、第1情報処理装置に関するユーザの入力に基づいて第1オブジェクトが所定の動作を開始したことを示す情報をオブジェクト情報として受信手段が受信したことであってもよい。
【0010】
上記(2)の構成によれば、第2情報処理装置において所定の動作が開始されるタイミングから動作のスキップを行うことが可能になるので、所定の動作に要する時間を短縮しやすくなる。
【0011】
(3)
所定の動作は、第2オブジェクトに影響を与え得る動作であってもよい。
【0012】
上記(3)の構成によれば、第1オブジェクトが第2オブジェクトに対して影響を与える動作について、情報処理装置間での同期を取りやすくすることができる。
【0013】
(4)
所定の動作は、予備動作と、当該予備動作に続いて行われる本動作とを含んでいてもよい。第2制御手段は、所定の条件が満たされた場合、第1オブジェクトによる予備動作の少なくとも一部をスキップし、少なくとも当該第1オブジェクトによる本動作を行うよう当該第1オブジェクトを制御する。
【0014】
上記(4)の構成によれば、第2情報処理装置は、予備動作をスキップすることによって、所定の動作の一部がスキップされることによってユーザに与える違和感を軽減することができる。
【0015】
(5)
予備動作は、第2オブジェクトに影響を与えない動作であってもよい。第2情報処理装置は、判定手段をさらに有してもよい。判定手段は、第1オブジェクトによる本動作によって第2オブジェクトが影響を受けたか否かを判定する。
【0016】
上記(5)の構成によれば、所定の動作のうちで、重要性が相対的に低い部分の動作がスキップされるので、動作をスキップすることが、オブジェクトの動作に起因する結果に与える影響を軽減することができる。
【0017】
(6)
第2情報処理装置は、遅延特定手段をさらに有していてもよい。遅延特定手段は、第1情報処理装置と第2情報処理装置との間の通信における遅延時間を特定する。第2制御手段は、第1オブジェクトによる動作をスキップする長さを、遅延時間の長さに応じて変化させてもよい。
【0018】
上記(6)の構成によれば、第2情報処理装置は、遅延時間に応じた適切な時間で第1オブジェクトの動作を表示することができる。
【0019】
(7)
第2制御手段は、第1オブジェクトによる動作の一部をスキップした場合、スキップ後の当該第1オブジェクトの状態を予測することによって、当該スキップ後の動作の制御を開始してもよい。
【0020】
上記(7)の構成によれば、所定の動作の一部がスキップされた後において第1オブジェクトをより自然に動作させることができるので、スキップすることによってユーザに与える違和感を軽減することができる。
【0021】
(8)
第2制御手段は、オブジェクト情報に含まれる第1オブジェクトに関する情報に基づいてスキップ後の動作を予測してもよい。
【0022】
上記(8)の構成によれば、第2情報処理装置は、第1情報処理装置から送信されてくる情報に基づくことによって、予測を精度良く行うことができる。
【0023】
(9)
第2制御手段は、第1オブジェクトがスキップ後の動作を開始する位置を予測してもよい。
【0024】
上記(9)の構成によれば、第1オブジェクトがスキップ後の動作を開始する位置を自然な位置とすることができるので、スキップすることによってユーザに与える違和感を効果的に軽減することができる。
【0025】
(10)
第2制御手段は、オブジェクト情報に含まれる第1オブジェクトに関する情報を入力とし、スキップ後の動作における第1オブジェクトの状態を出力とする関数であって、第1オブジェクトの種類毎に異なる関数を用いて予測を行ってもよい。
【0026】
上記(10)の構成によれば、第2情報処理装置は、第1オブジェクトの種類に応じて適切な予測を行うことができる。
【0027】
(11)
第2情報処理装置は、第2送信手段を有してもよい。第2送信手段は、第1オブジェクトによる動作に起因して生じる結果を示す結果情報を第1情報処理装置へ送信する。第1情報処理装置は、第2受信手段と、結果表示手段とを有していてもよい。第2受信手段は、第2情報処理装置から結果情報を受信する。結果表示手段は、受信した結果情報に基づいて結果を表す画像を表示装置に表示させる。
【0028】
上記(11)の構成によれば、第1情報処理装置は、第2情報処理装置から受信される結果情報に基づいて結果の表示が行われるので、第1および第2情報処理装置の間で結果を一致させることができる。
【0029】
なお、本発明の別の一例は、上記(1)〜(11)における第1情報処理装置または第2情報処理装置であってもよい。また、本発明の別の一例は、上記(1)〜(11)における第2情報処理装置(または第1情報処理装置)が有する各手段として、当該第2情報処理装置(または第1情報処理装置)のコンピュータを機能させる情報処理プログラムであってもよい。また、本発明の別の一例は、上記(1)〜(11)における情報処理システムにおいて実行される情報処理方法であってもよい。
【発明の効果】
【0030】
本発明によれば、情報処理装置間でオブジェクトの動作について同期を取りやすくすることができる。
【図面の簡単な説明】
【0031】
図1】本実施形態における情報処理システムの構成の一例を示すブロック図
図2】第1情報処理装置の構成の一例を示すブロック図
図3】第1情報処理装置に表示されるゲーム画像の一例を示す図
図4】予備動作を行う第1オブジェクトの一例を示す図
図5】本動作を行う第1オブジェクトの一例を示す図
図6】第1オブジェクトによるパンチが第2オブジェクトに当たった様子の一例を示す図
図7】パンチ動作に関して各情報処理装置において実行される処理の流れを示すタイミングチャート
図8】送信側および受信側におけるパンチ動作の開始タイミングおよび結果の発生タイミングの一例を示す図
図9】送信側および受信側において行われるパンチ動作の一例を示す図
図10】遅延時間が比較的長い場合において行われるパンチ動作の一例を示す図
図11】遅延時間が比較的短い場合において行われるパンチ動作の一例を示す図
図12】パンチ動作の開始時点と、本動作の開始時点とにおける第1オブジェクトの一例を示す図
図13】予測位置の算出方法の一例を示す図
図14】送信側および受信側におけるパンチ動作期間の一例を示す図
図15】情報処理装置におけるゲーム処理に用いられる情報の一例を示す図
図16】ゲーム情報に含まれる情報の一例を示す図
図17】送信側の情報処理装置によって実行されるゲーム処理の一例の流れを示すフローチャート
図18】受信側の情報処理装置によって実行されるゲーム処理の一例の流れを示すフローチャート
図19図18に示すステップS38の予測位置算出処理の詳細な流れの一例を示すサブフローチャート
図20図18に示すステップS39の動作制御処理の詳細な流れの一例を示すサブフローチャート
【発明を実施するための形態】
【0032】
[1.情報処理システムの構成]
以下、本実施形態に係る情報処理システム、情報処理装置、ゲームプログラム、および、ゲーム処理方法について説明する。まず、本実施形態に係る情報処理システムの全体構成と、情報処理システムに含まれる情報処理装置とについて説明する。
【0033】
図1は、本実施形態における情報処理システムの構成の一例を示すブロック図である。図1に示すように、情報処理システムは、第1情報処理装置1と、第2情報処理装置2とを含む。第1情報処理装置1および第2情報処理装置2は、ネットワーク3を介して互いに通信可能である。ネットワーク3は、例えばインターネットであるが、LANや携帯電話通信網等の任意のネットワークであってよい。本実施形態において、各情報処理装置1および2は、自機と相手の情報処理装置との間でデータをやり取りしながら、ゲーム処理を実行する。なお、情報処理システムに含まれる情報処理装置の数は2以上の任意の数であってよい。また、情報処理装置間の通信方法は任意である(後述する[4.本実施形態の作用効果および変形例]を参照)。
【0034】
また、以下において、第1情報処理装置と第2情報処理装置2とを区別しない場合には、第1情報処理装置および第2情報処理装置2の総称として「情報処理装置」と記載することがある。
【0035】
図2は、第1情報処理装置1の構成の一例を示すブロック図である。図2に示すように、情報処理装置1は、処理部11および記憶部12を備える。処理部11は、第1情報処理装置1の各部12〜15に電気的に接続される。処理部11は、CPUおよびメモリを有する。第1情報処理装置1においては、CPUがメモリを用いて、記憶部12に記憶されたプログラム(本実施形態においては、ゲームプログラム)を実行することによって各種の情報処理が実行される。記憶部12は、処理部11において実行されるプログラム、処理部11による情報処理に用いられるデータ、および、当該情報処理によって得られたデータ等を記憶する。なお、記憶部12は、第1情報処理装置1に対して着脱可能な記憶媒体(例えば、カード型の記憶媒体)であってもよい。
【0036】
第1情報処理装置1は、入力部13を備える。入力部13は、任意の入力装置であってよい。入力部13は、例えばボタンまたはスティック等の操作装置であってもよいし、タッチパネルまたはマウスであってもよい。また、入力部13は、加速度センサまたはジャイロセンサといった慣性センサであってもよいし、マイクまたはカメラであってもよい。入力部13は、処理部11を有する本体装置とは別体の装置(例えば、ゲームコントローラ)に設けられてもよく、本体装置と無線によって通信を行う装置であってもよい。
【0037】
第1情報処理装置1は、表示部14を備える。表示部14は、第1情報処理装置1の処理部11において実行される情報処理によって生成された画像(例えば、ゲーム画像等)を表示する。表示部14は、処理部11を有する本体装置とは別体の装置(例えば、テレビ等のディスプレイ装置)であってもよい。
【0038】
第1情報処理装置1は、通信部15を備える。本実施形態において、通信部15は、例えばWi−Fiの認証を受けた通信モジュールによって無線LANに接続する機能を有する。処理部11は、通信部15を用いて(換言すれば、通信部15を介して)無線LANを介してネットワーク3に接続し、他の装置(例えば、第2情報処理装置2等)と通信を行う。なお、第1情報処理装置1が他の装置との通信を行うための通信部の構成は任意である。通信部15は、例えばBluetooth(登録商標)の規格に従った通信によって近距離無線通信を行う機能を有していてもよいし、モバイル通信網(換言すれば、携帯電話通信網)に接続して通信を行う機能を有していてもよい。また、通信部15は、上記の通信機能のうち複数の機能を有していてもよい。
【0039】
図示しないが、第2情報処理装置2は、第1情報処理装置1と同様に、図2に示す各部を備える。ただし、第2情報処理装置2は第1情報処理装置と全く同一の構成である必要はない。また、第1情報処理装置と第2情報処理装置2は、異なる種類の装置であってもよい。例えば、第1情報処理装置がスマートフォンであって、第2情報処理装置2が携帯ゲーム機であってもよいし、第1情報処理装置が携帯ゲーム機であって、第2情報処理装置2が据置型ゲーム機であってもよい。
【0040】
[2.ゲーム処理の概要]
次に、図3図14を参照して、各情報処理装置1および2において実行されるゲーム処理の概要について説明する。本実施形態において、情報処理装置は、通信ゲームのためのゲーム処理を実行する。すなわち、情報処理装置は、自機と相手装置との間でゲーム情報の送受信を行い、受信したゲーム情報に基づいてゲーム処理を実行する。
【0041】
本実施形態においては、各情報処理装置1および2において対戦形式の通信ゲームが行われる場合を例として、ゲーム処理を説明する。具体的には、本実施形態においては、オブジェクトが後述のパンチ動作によって相手のオブジェクトを攻撃するゲームである。ただし、他の実施形態においては、各情報処理装置1および2において行われる通信ゲームの内容は任意である(後述する[4.本実施形態の作用効果および変形例]を参照)。
【0042】
図3は、第1情報処理装置に表示されるゲーム画像の一例を示す図である。図3に示すように、本実施形態においては、第1オブジェクト21および第2オブジェクト22が仮想のゲーム空間に登場し、当該ゲーム空間を表すゲーム画像が表示部14に表示される。第1オブジェクト21は、第1情報処理装置1のユーザによって操作されるオブジェクト(換言すれば、プレイヤキャラクタ)である。すなわち、第1オブジェクト21は、第1情報処理装置1(より具体的には、入力部13)に対する入力に応じて動作が制御される。第2オブジェクト22は、第2情報処理装置2のユーザによって操作されるオブジェクトであり、第2情報処理装置2(より具体的には、入力部)に対する入力に応じて動作が制御される。
【0043】
また、以下において、第1オブジェクト21と第2オブジェクト22とを区別しない場合には、情報処理装置における操作対象となるオブジェクト(具体的には、第1オブジェクト21および第2オブジェクト22)の総称として「操作対象オブジェクト」と記載することがある。
【0044】
図3に示すように、第1情報処理装置1においては(対戦相手である)第2オブジェクト22を含むゲーム画像が表示される。また、図示しないが、第2情報処理装置2においては第1オブジェクト21を含むゲーム画像が表示される。このように、本実施形態においては、情報処理装置は、相手オブジェクト(すなわち、通信相手の情報処理装置に対する入力に応じて動作が制御される操作対象オブジェクト)を含むゲーム画像を表示部に表示する。なお、本実施形態においては、情報処理装置は、相手オブジェクトに加えて、自オブジェクト(すなわち、当該情報処理装置に対する入力に応じて動作が制御される操作対象オブジェクト)も表示する。ただし、他の実施形態において、情報処理装置は、自オブジェクトを含まないゲーム画像(例えば、1人称視点のゲーム画像)を表示してもよい。
【0045】
[2−1.パンチ動作]
次に、図4図6を参照して、操作対象オブジェクトが行うパンチ動作について説明する。本実施形態において、操作対象オブジェクトは、情報処理装置に対する入力に応じて、相手オブジェクトに対してパンチ動作を行う。以下、第1オブジェクト21が第2オブジェクト22に対してパンチ動作を行う場合における処理を例として説明する(図7以降における説明も同様である)。なお、第2オブジェクト22が第1オブジェクト21に対してパンチ動作を行う場合における処理も同様である。
【0046】
入力部13によってパンチ入力が受け付けられたことに応じて、第1オブジェクト21はパンチ動作を行う。ここで、パンチ入力は、任意の種類の入力でよく、例えば、入力部13であるボタンを押下する入力であってもよい。また、入力部である入力装置をユーザが把持する場合、パンチ入力は、ユーザが当該入力装置を動かす操作(例えば、入力装置を把持した手を、パンチするように前方に動かす操作)による入力であってもよい。なお、第1情報処理装置1は、入力部である慣性センサの検出結果に基づいて、このようなパンチ入力を検知することができる。
【0047】
なお、本実施形態においては、情報処理装置は、パンチ動作の他、当該情報処理装置に対する入力に応じて、移動動作、ジャンプ動作、および、ガード動作(すなわち、パンチをガードする動作)を操作対象オブジェクトに行わせる。なお、これらの動作を操作対象オブジェクトに行わせるための入力方法は任意である。
【0048】
上記パンチ入力が行われたことに応じて、第1情報処理装置1は、第1オブジェクト21にパンチ動作を開始させる。ここで、本実施形態においては、パンチ動作は、予備動作と本動作とによって構成される。したがって、上記パンチ入力が行われたことに応じて、第1オブジェクト21は、まず予備動作を行い、予備動作の後で本動作を行う。
【0049】
図4は、予備動作を行う第1オブジェクト21の一例を示す図である。図4に示すように、本実施形態において、予備動作は、操作対象オブジェクトが腕を振りかぶる動作である。
【0050】
図5は、本動作を行う第1オブジェクト21の一例を示す図である。第1情報処理装置1は、予備動作に続いて本動作を第1オブジェクト21に行わせる。図5に示すように、本実施形態においては、本動作は、操作対象オブジェクトの腕が伸びて操作対象オブジェクトの手が前方へ(換言すれば、相手オブジェクトの方へ)移動する動作である。
【0051】
本実施形態においては、情報処理装置は、相手オブジェクトによるパンチ動作について、自オブジェクトとの当たり判定処理を行う。つまり、情報処理装置は、パンチ動作を行った相手オブジェクトの手が、自オブジェクトに当たったか否かを判定する処理を行う。ただし、本実施形態においては、情報処理装置は、本動作中において当たり判定処理を行い、予備動作中については当たり判定処理を行わない。したがって、予備動作は、ゲームに対する影響を与えない(あるいは、本動作に比べてゲームに与える影響が小さい)動作であると言うことができる。
【0052】
また、本実施形態においては、操作対象オブジェクトによる本動作中において、情報処理装置は、当該情報処理装置に対する入力に応じて、当該操作対象オブジェクトの手の移動方向を変化させる。具体的には、第1情報処理装置1は、方向を指定する入力(例えば、スティックに対する入力、あるいは、入力装置を傾ける入力)を受け付け、指定された方向へ手の移動方向を変化させる。例えば、本動作中に右方向を指定する入力が行われた場合、操作対象オブジェクトの手は右方向にカーブしながら前方へ進む。なお、他の実施形態においては、情報処理装置は、本動作中において、操作対象オブジェクトの手の移動方向を変化させるための入力を受け付けなくてもよい(後述する[4.本実施形態の作用効果および変形例]を参照)。
【0053】
図6は、第1オブジェクト21によるパンチが第2オブジェクト22に当たった様子の一例を示す図である。上述のように、本動作中においては、パンチが当たったか否か(すなわち、第1オブジェクト21の手と第2オブジェクト22とが接触したか否か)の当たり判定処理が行われる。当たり判定処理において、パンチが当たったと判定された場合、情報処理装置は、パンチが当たったことを表す結果表示を行う。具体的には、図6では図示していないが、上記の場合、第2オブジェクト22は、パンチを受けたリアクション動作を行う(図9(d)参照)。また、上記の場合、第2オブジェクト22にパンチが当たったことを表すエフェクト画像が表示される(図6参照)。また、上記の場合、情報処理装置は、第2オブジェクトのパラメータを変化させる処理(例えば、第2オブジェクト22の体力を減少させる処理)を実行する。
【0054】
なお、図示しないが、第1オブジェクト21によるパンチ動作中において、第2オブジェクト22は、第2情報処理装置2に対する入力に応じて、ガード動作によってパンチをガードしたり、移動動作および/またはジャンプ動作によってパンチを避けたりすることができる。
【0055】
第2オブジェクト22がパンチをガードした場合、当たり判定処理においてはパンチはガードされたと判定される。この場合、第2オブジェクト22はリアクション動作を行わず、パンチが当たったことを表す結果表示として、パンチがガードされたことを表すエフェクト画像が表示される。なお、パンチが当たった場合におけるエフェクト画像と、パンチがガードされた場合におけるエフェクト画像とは、同じであってもよいし、異なっていてもよい。また、第2オブジェクト22がパンチをガードした場合、第2オブジェクトの上記パラメータを変化させる処理は実行されない。
【0056】
なお、以下においては、パンチが当たった場合、または、パンチがガードされた場合を、総称して「パンチ動作の結果が発生した場合」と呼ぶことがある。詳細は後述するが、本実施形態においては、パンチ動作の結果が2つの情報処理装置1および2において一致するように、情報処理が実行される。
【0057】
また、第2オブジェクト22がパンチを避けた場合、当たり判定処理においてはパンチが当たったとは判定されず、パンチが当たったことを表す結果表示は行われない。なお、パンチ動作における操作対象オブジェクトの腕は、パンチが第2オブジェクト22に当たった場合、または、予め定められた所定長さまで伸びた場合、元の長さに戻る。つまり、これらの場合、第1オブジェクト21の手は、元の位置(すなわち、パンチ動作が行われる前の位置)まで戻るように移動する。
【0058】
[2−2.パンチ動作に関する処理の流れ]
次に、図7を参照して、パンチ動作に関して各情報処理装置1および2において実行されるゲーム処理の流れを説明する。図7は、パンチ動作に関して各情報処理装置において実行される処理の流れを示すタイミングチャートである。
【0059】
まず、パンチ入力が受け付けられると、第1情報処理装置1(換言すれば、送信側の情報処理装置)は、パンチ動作を開始するように第1オブジェクト21の動作を制御する(ステップS1)。したがって、第1情報処理装置1では、ステップS1が実行された時点で、第1オブジェクト21がパンチ動作を開始する様子が表示される。
【0060】
また、上記ステップS1において、第1情報処理装置1は、開始情報を含むゲーム情報を第2情報処理装置へ送信する。ここで、開始情報は、送信側(ここでは、第1情報処理装置1)に対応する操作対象オブジェクト(ここでは、第1オブジェクト21)によるパンチ動作が開始されたことを示す情報(換言すれば、データ)である。
【0061】
また、ゲーム情報は、操作対象オブジェクトに関するオブジェクト情報を含む。具体的には、オブジェクト情報は、操作対象オブジェクトの状態(例えば、位置、速度、および/または、姿勢)を示す情報と、操作対象オブジェクトに対する入力に関する入力情報とを含む。なお、上記入力情報は、例えば、操作対象オブジェクトの動作を制御するために用いられる入力を示す。具体的には、操作対象オブジェクトがボタンおよびスティックに対する入力に基づいて制御される場合、入力情報は、ボタンおよびスティックに対する入力内容を示す。また、本実施形態においては、操作対象オブジェクトのパンチ動作中においては、オブジェクト情報は、上記の情報に加えて、操作対象オブジェクトの手の状態(例えば、手の位置、速度、および/または、姿勢)を示す情報を含む。
【0062】
なお、本実施形態において、情報処理装置は、所定時間(例えば、1フレーム時間)に1回の割合でゲーム情報を相手装置へ繰り返し送信する。つまり、ゲーム情報は、パンチ動作中ではない期間においても送信側の装置から受信側の装置へ送信される。なお、上記開始情報および後述の結果情報は、条件が満たされた場合にのみゲーム情報に含まれるのに対して、上記オブジェクト情報は任意の期間においてゲーム情報に含まれる。
【0063】
上記開始情報を含むゲーム情報が送信側から送信されると、第2情報処理装置2(換言すれば、受信側の情報処理装置)は、当該ゲーム情報を受信する(ステップS2)。さらに、ステップS2において、第2情報処理装置2は、開始情報を受信したことに応じて、パンチ動作を開始するように第1オブジェクト21の動作を制御する。これによって、第1情報処理装置1に続いて第2情報処理装置2においても、第1オブジェクト21がパンチ動作を開始する様子が表示される。
【0064】
なお、第1情報処理装置1と第2情報処理装置2との間の通信には、遅延が発生する(換言すれば、ゲーム情報が第1情報処理装置1から送信されてから第2情報処理装置2において受信されるまでに時間を要する)。そのため、第2情報処理装置2においては、第1情報処理装置1よりも遅れて、第1オブジェクト21によるパンチ動作が開始される。
【0065】
一方、第1情報処理装置1においては、第1オブジェクト21によるパンチ動作が開始された後、第1オブジェクト21にパンチ動作を行わせる制御が継続して実行される(ステップS3)。さらに、ステップS3において、第1情報処理装置1は、上記オブジェクト情報を含むゲーム情報を第2情報処理装置2へ繰り返し送信する。なお、図7においては図示しないが、ステップS3の処理は、第1オブジェクト21によるパンチ動作による結果が発生する(ステップS6)か、または、パンチ動作が終了する(すなわち、第1オブジェクト21の腕が所定長さまで伸びた後で元の長さに戻る)まで、繰り返し実行される。
【0066】
また、第2情報処理装置2は、第1オブジェクト21によるパンチ動作を開始した後、予測位置算出処理を実行する(ステップS4)。詳細は後述するが、予測位置算出処理は、相手オブジェクト(ここでは、第1オブジェクト21)のパンチ動作における手の位置を予測する処理である。本実施形態においては、第2情報処理装置2は、第1情報処理装置1から送信されてくるゲーム情報に基づいて予測位置算出処理を実行し、予測位置算出処理の結果得られる手の位置(すなわち、後述する予測位置)に基づいて、第1オブジェクト21の動作を制御する。さらに、上記ステップS4において、第2情報処理装置2は、第1オブジェクト21によるパンチが第2オブジェクト22に当たったか否かを判定する当たり判定処理を実行する。
【0067】
なお、図7においては図示しないが、ステップS4の処理は、第1オブジェクト21によるパンチ動作による結果が発生するか、または、パンチ動作が終了するまで、繰り返し実行される。
【0068】
ステップS4における当たり判定処理において、パンチが当たったと判定された場合、または、パンチがガードされたと判定された場合、第2情報処理装置2は、パンチによる結果が発生したと判定する。これらの場合、第2情報処理装置2は、パンチによる結果を表す結果表示を行う(ステップS6)。すなわち、パンチが当たった場合、第2情報処理装置2は、第2オブジェクト22にリアクション動作を行わせるとともに、パンチが当たったことを表すエフェクト画像を表示する。また、パンチがガードされた場合、第2情報処理装置2は、パンチがガードされたことを表すエフェクト画像を表示する。
【0069】
また、上記ステップS6において、第2情報処理装置2は、結果情報を含むゲーム情報を第1情報処理装置へ送信する。結果情報は、パンチによる結果が発生したことを示す。本実施形態においては、結果情報は、パンチが当たったこと、または、パンチがガードされたことを示す情報(換言すれば、データ)である。
【0070】
上記結果情報を含むゲーム情報が第2情報処理装置2から送信されると、第1情報処理装置1は、当該ゲーム情報を受信する(ステップS6)。さらに、ステップS6において、第1情報処理装置1は、結果情報を受信したことに応じて、パンチによる結果を表す表示を行う(ステップS6)。すなわち、第1情報処理装置1は、第2情報処理装置2から受信した結果情報が示す内容に従って、パンチによる結果(すなわち、パンチが当たったこと、または、パンチがガードされたこと)を表示する。
【0071】
上記のように、本実施形態においては、第2情報処理装置2は、自機において第1オブジェクト21のパンチ動作に起因して所定の結果が発生した場合、結果情報を第1情報処理装置へ送信する。そして、第1情報処理装置1は、第2情報処理装置2から受信した結果情報に基づいて所定の結果を表示する。これによって、第1情報処理装置1においては、第2情報処理装置2において表示された結果と同じ結果が表示される。つまり、本実施形態においては、第1情報処理装置1と第2情報処理装置2とにおいて、パンチ動作の結果を一致させることができる。
【0072】
なお、第2情報処理装置において第1オブジェクト21によるパンチを第2オブジェクト22が避けた場合は、結果情報が送信されないので、第1情報処理装置1においても第2情報処理装置2と同様に、パンチによる結果を表す表示は行われない。つまり、本実施形態においては、パンチが避けられた場合においても他の場合と同様、第1情報処理装置1と第2情報処理装置2とにおいて、パンチ動作に基づく結果を一致させることができる。
【0073】
[2−3.送信側および受信側におけるパンチ動作の進み方]
図8は、送信側(ここでは、第1情報処理装置1)および受信側(ここでは、第2情報処理装置2)におけるパンチ動作の開始タイミングおよび結果の発生タイミングの一例を示す図である。
【0074】
図8に示すように、第1情報処理装置1において時点t0で第1オブジェクト21によるパンチ動作が開始された場合、当該時点t0で開始情報が第2情報処理装置2へ送信される。ここで、上述のように、第1情報処理装置1と第2情報処理装置2との間の通信には遅延が発生する。そのため、第2情報処理装置2においては、時点t0+d(dは通信による遅延時間)で開始情報が受信され、当該時点t0+dで第1オブジェクト21によるパンチ動作が開始される。
【0075】
また、上述のように、本実施形態においては、各情報処理装置1および2におけるパンチ動作の結果を一致させるべく、受信側である第2情報処理装置2が、パンチ動作によって発生した結果を示す結果情報を、送信側である第1情報処理装置1へ送信するようにしている。したがって、図8に示すように、第2情報処理装置2において時点t1でパンチ動作による結果が発生した場合、当該時点t1で結果情報が第1情報処理装置1へ送信される。そして、第1情報処理装置1においては、時点t1より遅延時間dだけ遅れた時点t1+dで結果情報が受信され、当該時点t1+dでパンチ動作による結果が表示される。なお、本実施形態においては、第1情報処理装置1から第2情報処理装置2へ情報を送信する場合の遅延時間と、第2情報処理装置2から第1情報処理装置1へ情報を送信する場合の遅延時間とは、同じであると仮定している。
【0076】
図8から明らかなように、本実施形態においては、第1オブジェクト21によってパンチ動作が行われる期間(以下、「パンチ動作期間」と呼ぶ。具体的には、パンチ動作が開始されてからパンチ動作による結果が発生するまでの期間。)は、第2情報処理装置2の方が第1情報処理装置1よりも短くなる。具体的には、パンチ動作期間は、第2情報処理装置2の方が第1情報処理装置1よりも、遅延時間dの2倍の長さだけ(換言すれば、往復の遅延時間の長さ)短くなる。
【0077】
ここで、各情報処理装置1および2において同じ速さでパンチ動作が行われる(すなわち、パンチの手が同じ速さで移動する)と仮定した場合、第1情報処理装置1においては、不自然な結果表示が行われてしまう可能性がある。この理由を説明すると、上記の仮定の場合においては、パンチ動作中において、第1情報処理装置1における第1オブジェクト21の手は、第2情報処理装置2における手の位置よりも進んだ位置にあることになる。そのため、第2情報処理装置2においてパンチ動作を行う第1オブジェクト21の手が第2オブジェクト22に当たったタイミングでは、第1情報処理装置1においては、第1オブジェクト21の手が第2オブジェクト22の位置よりも進んでいることになる。つまり、上記タイミングでは、第1オブジェクト21によるパンチが第2オブジェクト22を突き抜けた状態となる。このような状態で結果表示が行われると、例えば第1オブジェクト21によるパンチが第2オブジェクト22を突き抜けた後で第2オブジェクト22がリアクション動作を行うことになるので、ユーザは結果表示を不自然に感じる可能性がある。
【0078】
上記のような不自然な結果表示が行われる可能性を低減するべく、本実施形態においては、情報処理システムは、受信側(ここでは、第2情報処理装置2)におけるパンチ動作期間を、送信側(ここでは、第1情報処理装置1)におけるパンチ動作期間よりも短縮するように、受信側における第1オブジェクト21の動作を制御する。具体的には、受信側である第2情報処理装置2は、第1情報処理装置1における第1オブジェクト21の手の位置よりも先の位置(換言すれば、第1情報処理装置1における手の位置より進んだ位置)を予測位置算出処理によって予測し、予測した位置に第1オブジェクト21の手を配置するようにして第1オブジェクト21の動作を表示する。以下、図9を参照して、各情報処理装置1および2のそれぞれにおいてパンチ動作における手の位置が移動する具体例について説明する。
【0079】
図9は、送信側および受信側において行われるパンチ動作の一例を示す図である。なお、図9において、(1)は、送信側である第1情報処理装置1において行われるパンチ動作を示し、(2)は、受信側である第2情報処理装置2において行われるパンチ動作を示す。
【0080】
図9に示す(a)は、第1情報処理装置1においてパンチ動作が開始された直後の時点における状態を示す。この時点においては、第2情報処理装置2においては、第1情報処理装置1からの開始情報がまだ受信されていないので、図9に示すように、第1オブジェクト21はパンチ動作を開始していない。
【0081】
図9に示す(b)は、第2情報処理装置2において開始情報が受信された直後の時点における状態を示す。この時点において、第1情報処理装置1においては、第1オブジェクト21の手の位置は、(a)に示す状態よりも進んでいる。したがって、(b)に示す状態では、第1情報処理装置1における第1オブジェクト21の手の位置が、第2情報処理装置2における手の位置よりも先に位置している。
【0082】
図9に示す(c)は、(b)に示す状態からパンチ動作がさらに進んだ状態を示す。上述のように、第2情報処理装置2においては第1オブジェクト21の手の位置が上記予測位置算出処理によって予測される。そのため、(c)に示す状態においては、第2情報処理装置2における第1オブジェクト21の手の位置が、第1情報処理装置1における手の位置よりも先に位置する。
【0083】
上記のように、本実施形態においては、第2情報処理装置2におけるパンチ動作の手の位置は、当該パンチ動作の始めから、第1情報処理装置1における位置よりも先に位置するのではなく、パンチ動作の途中において、第1情報処理装置1における手の位置を追い抜くように、予測位置算出処理が実行される。これは、パンチ動作の開始直後から、第2情報処理装置2における手の位置を第1情報処理装置1における手の位置よりも先の位置に配置してしまうと、パンチ動作の手が第1オブジェクト21の胴体から急に離れて表示されることになることから、ユーザが違和感を抱く可能性があるためである。そのため、本実施形態においては、第2情報処理装置2は、当該第2情報処理装置2におけるパンチ動作の手の位置が、第1情報処理装置1における手の位置を追い抜くように、第1オブジェクト21の動作を制御する。つまり、パンチ動作の始めの期間においては、第2情報処理装置2における手の位置は、第1情報処理装置1における手の位置に次第に追いつくように制御され(図9(b))、その後、第1情報処理装置1における手の位置を追い抜いて当該位置よりも先の位置となるように制御される((図9(c))。これによって、第2情報処理装置2におけるパンチ動作を自然に表示することができる。
【0084】
図9に示す(d)は、第2情報処理装置2において第1オブジェクト21のパンチが第2オブジェクト22に当たった時点における状態を示す。この時点において、第2情報処理装置2においては、第2オブジェクト22がリアクション動作を行い、エフェクト画像が表示される(図9(d)参照)。また、この時点では、図9(d)に示すように、第1情報処理装置1においては、第1オブジェクト21のパンチは第2オブジェクト22にまだ当たっていない。この後、第2情報処理装置2から結果情報が第1情報処理装置1へ送信され、第1情報処理装置1において結果情報が受信されたことに応じて、第1情報処理装置1においても第1オブジェクト21がリアクション動作を行う。
【0085】
このように、本実施形態においては、結果情報を送信する第2情報処理装置2において、パンチ動作による結果が先に発生し、当該結果情報を受信する第1情報処理装置1において、パンチ動作による結果が後で発生する。したがって、結果情報を送信する場合における通信遅延による影響を緩和することができ、第1情報処理装置1における結果表示と第2情報処理装置2における結果表示との同期を取りやすくすることができる。例えば、第2情報処理装置2における結果表示が、第1情報処理装置1における結果表示よりも遅延時間d(あるいは、遅延時間dよりも長い時間)だけ前に行われる場合には、第1情報処理装置1は、第1オブジェクト21のパンチが第2オブジェクト22に当たったタイミングで第2オブジェクト22にリアクション動作を行わせることができる。
【0086】
なお、図9においては、第1オブジェクト21のパンチが第2オブジェクト22に当たった場合を例として説明を行ったが、第1オブジェクト21のパンチが第2オブジェクト22によってガードされた場合も同様である。
【0087】
上記のように、第2情報処理装置2は、当該第2情報処理装置2においてパンチ動作が行われる時間(すなわち、パンチ動作期間)が、第1情報処理装置1においてパンチ動作が行われる時間よりも短くなるように(より具体的には、遅延時間の約2倍の時間だけ短くなるように)、当該第2情報処理装置2における第1オブジェクト21のパンチ動作を、予測位置算出処理によって得られる位置(後述する「予測位置」)に基づいて制御する。これによって、第1情報処理装置1におけるパンチ動作による結果の表示を、(各情報処理装置において同じ速さでパンチ動作を行う場合に比べて)適切なタイミングで行うことができる。
【0088】
[2−4.予備動作のスキップ]
上述のように、本実施形態においては、第2情報処理装置2においては、第1情報処理装置1におけるパンチ動作期間よりも短い時間で、第1オブジェクト21によるパンチ動作が行われる。つまり、第2情報処理装置2においては、パンチ動作を行う第1オブジェクト21の手が、第1情報処理装置1におけるパンチ動作の手よりも速く移動する(図9参照)。ここで、第1オブジェクト21によるパンチの手が速く移動しすぎると、第2情報処理装置2のユーザが違和感を抱いたり、当該ユーザにとってゲームが難しくなりすぎたりするおそれがある。
【0089】
そこで、本実施形態においては、第2情報処理装置2は、第1オブジェクト21が行うパンチ動作のうちで、上記の予備動作の一部または全部をスキップする。予備動作をスキップすることによって、本動作の時間を(予備動作の全部を行う場合に比べて)長くすることができるので、本動作においてパンチの速度を上げる度合いを抑えることができる。つまり、本実施形態においては、第2情報処理装置2は、パンチ動作のうちの予備動作をスキップすることによって、本動作が行われる期間をできるだけ長くするようにしている。以下、予備動作の一部または全部をスキップする処理の詳細を説明する。
【0090】
図10は、遅延時間が比較的長い場合において行われるパンチ動作の一例を示す図である。図10は、基準時点(t0+2d)が、第1情報処理装置1において予備動作が終了する時点t2よりも後に到来する場合を示している。なお、基準時点(t0+2d)は、第1情報処理装置1においてパンチ動作(換言すれば、予備動作)が開始された時点t0から、遅延時間dの2倍の時間が経過した時点である。
【0091】
図10に示すように、基準時点(t0+2d)が、第1情報処理装置1における予備動作の終了時点t2よりも後である場合、第2情報処理装置2は、パンチ動作のうちの予備動作(の全体)をスキップするように、第1オブジェクト21の動作を制御する。すなわち、第1オブジェクト21は、第2情報処理装置2において開始情報を受信した時点(t0+d)から、パンチ動作のうちの本動作を開始する。
【0092】
また、図11は、遅延時間が比較的短い場合において行われるパンチ動作の一例を示す図である。図11は、上記の基準時点(t0+2d)が、第1情報処理装置1における予備動作の終了時点t2よりも先に到来する場合を示している。この場合、図11に示すように、第2情報処理装置2は、予備動作の一部をスキップするように(換言すれば、予備動作を短縮するように)、第1オブジェクト21の動作を制御する。すなわち、第1オブジェクト21は、第2情報処理装置2において開始情報を受信した時点(t0+d)から、上記時点t2よりも遅延時間dだけ前の時点(t2−d)までの期間で予備動作が終了するように、予備動作を短縮して行う。つまり、第2情報処理装置2における予備動作は、第1情報処理装置1における予備動作よりも、遅延時間dの2倍の時間だけ短縮して行われる。
【0093】
なお、予備動作の一部をスキップするための具体的な方法は任意である。例えば、所定数のフレーム毎に第1オブジェクト21の体勢が定められており、当該フレーム毎の体勢を順にとるように第1オブジェクト21が動作することで予備動作が行われる場合、第2情報処理装置2は、当該所定数のフレームのいくつかのフレームについて定められた体勢をスキップして予備動作を行わせるようにしてもよい。
【0094】
上記のように、本実施形態においては、第2情報処理装置2は、第1オブジェクトによるパンチ動作のうちの一部の動作(具体的には、予備動作)をスキップして当該第1オブジェクトにパンチ動作を行わせる。これによって、第2情報処理装置2におけるパンチ動作期間を短くすることができるので、第1情報処理装置1におけるパンチ動作による結果の表示を、(各情報処理装置においてパンチ動作期間を同じにする場合に比べて)適切なタイミングで行うことができる。
【0095】
なお、本実施形態においては、第2情報処理装置2は、上述の当たり判定処理において、第1オブジェクト21によるパンチ動作のうちの本動作によって第2オブジェクト22が影響を受けたか否かを判定する。つまり、第1オブジェクト21による予備動作は、第2オブジェクト22に対して影響を与えない動作であると言うことができる。したがって、本実施形態においては、予備動作をスキップすることによって、ゲームに与える影響を小さくしつつ、パンチ動作を短縮することができる。なお、第1オブジェクトが第2オブジェクトに与える影響は、具体的にはゲームにおける影響であり、表示に現れる影響(例えば、第1オブジェクトのパンチ動作に応じて第2オブジェクトがリアクション動作を行う)であってもよいし、表示に現れない影響(例えば、第1オブジェクトのパンチ動作に応じて第2オブジェクトの体力パラメータの値が減少する)であってもよい。
【0096】
また、本実施形態においては、予備動作は、通信対象オブジェクトが手を振りかぶる動作である。そのため、予備動作がスキップされても、ユーザは、比較的(すなわち、本動作がスキップされる場合に比べると)違和感を抱きにくいと考えられる。つまり、本実施形態によれば、パンチ動作のうちの予備動作をスキップすることによって、ユーザが違和感を抱く可能性を低減しつつ、パンチ動作を短縮することができる。
【0097】
なお、他の実施形態においては、スキップする対象となる動作は、予備動作に限らない。例えば、第1オブジェクト21が行う一連の動作(本実施形態においては、パンチ動作)に、当該一連の動作の途中に省略可能な所定の動作が含まれる場合、第2情報処理装置2は、当該所定の動作の一部または全部をスキップするようにしてもよい。上記所定の動作は、例えば、第1オブジェクト21が弾を連射する一連の動作を行う場合において、途中で弾を再装填(すなわち、リロード)する動作であってもよい。なお、上記所定の動作は、ゲーム開発者が省略可能と判断した任意の動作であってもよく、ゲームに与える影響がない(または少ない)動作であってもよい。
【0098】
上記のように、本実施形態においては、第2情報処理装置2は、第1オブジェクト21による動作(具体的には、予備動作)をスキップする長さを、遅延時間の長さに応じて変化させる(図10および図11参照)。すなわち、第2情報処理装置2においては、遅延時間が比較的長い場合(図10)においては予備動作の全体がスキップされ、遅延時間が比較的短い場合(図11)においては予備動作の一部がスキップされる。また、遅延時間が比較的短い場合(図11)においては、スキップされる予備動作の長さが遅延事件に応じて変化する。このように、動作をスキップする長さを遅延時間に応じて変化させることによって、第2情報処理装置2は、必要以上に動作がスキップされる可能性を低減することができ、ユーザに与える違和感の軽減を図ることができる。
【0099】
なお、本実施形態においては、第2情報処理装置2は、予備動作の全部をスキップするか、それとも、一部をスキップするかの判定処理を、上記の基準時点(t0+2d)が、第1情報処理装置1における予備動作の終了時点t2よりも後に到来するか、それとも、先に到来するかによって行っている。ここで、第1情報処理装置1において予備動作が行われる時間の長さ(すなわち、図10に示す時点t0から時点t2までの長さ)は、予め定められている。また、第2情報処理装置2は、第1情報処理装置1と第2情報処理装置2との間の通信における遅延時間を特定する処理を実行する(後述するステップS32)。したがって、第2情報処理装置2は、予め定められた予備動作の時間と、特定された遅延時間とに基づいて、上記基準時点および終了時点を特定することができ、上記の判定処理を実行することができる。
【0100】
なお、本実施形態においては、上記判定処理において用いられる基準時点は、時点(t0+d)ではなく、時点(t0+2d)である。これは、本実施形態では、第2情報処理装置2におけるパンチ動作期間を、第1情報処理装置1におけるパンチ動作期間よりも2dだけ短縮することを目標としているためである。
【0101】
以上における図8図11の説明においては、本実施形態における処理の理解を容易にする目的で、第2情報処理装置2は、第1情報処理装置1におけるパンチ動作期間に比べて、遅延時間dの2倍の時間(2d)だけパンチ動作期間を短縮するものとして説明した。ここで、詳細は後述するが、本実施形態においては、第2の情報処理装置2においてパンチ動作期間が短縮される長さは、遅延時間dの2倍の時間である必要はなく、当該時間よりも短くてもよいし、長くてもよい。なお、第2情報処理装置2におけるパンチ動作期間を短縮することができれば、第1情報処理装置1におけるパンチ動作による結果の表示をユーザが不自然に感じることを軽減することができるという、上述の効果と同様の効果を奏することができる。
【0102】
[2−5.パンチ開始位置の特定]
上述のように、第2情報処理装置2において予備動作がスキップされる場合(図10)、第2情報処理装置2は、本動作を開始する時点における第1オブジェクト21のパンチの手の位置(「パンチ開始位置」と呼ぶ)を特定する。以下、パンチ開始位置を特定する処理について詳細を説明する。
【0103】
図12は、パンチ動作の開始時点と、本動作の開始時点とにおける第1オブジェクトの一例を示す図である。図12に示すように、第1オブジェクト21は、予備動作中において移動等の動作を行っている可能性がある。そのため、パンチ動作開始時における第1オブジェクト21(図12に示す実線で表されるオブジェクト)における手の位置と、本動作開始時における第1オブジェクト21(図12に示す点線で表されるオブジェクト)における手の位置とは、異なる可能性がある。そこで、本実施形態においては、第2情報処理装置2は、第1オブジェクト21の予備動作をスキップした場合、パンチ動作開始時(換言すれば、本動作開始時)における第1オブジェクト21の手の位置を特定する。そして、第2情報処理装置2は、特定した位置に手が配置された状態から第1オブジェクト21によるパンチ動作の制御を開始する。
【0104】
ここで、第2情報処理装置2におけるパンチ動作の開始時点で第1情報処理装置1から受信されるゲーム情報は、第1情報処理装置1におけるパンチ動作開始時の第1オブジェクト21に関するオブジェクト情報を含む(図8参照)。したがって、第2情報処理装置2は、当該オブジェクト情報に基づいて、すなわち、第1情報処理装置1におけるパンチ動作開始時の第1オブジェクト21に関する情報(具体的には、位置および速度等に関する情報)に基づいて、パンチ開始位置を特定する。
【0105】
パンチ開始位置を特定する具体的な方法は任意である。例えば、パンチ開始位置は、上記のオブジェクト情報に基づいて、第1情報処理装置1において本動作を開始する時点における第1オブジェクト21の手の位置を予測することによって、特定することができる。例えば、パンチ開始位置は、パンチ動作開始時における第1オブジェクト21の手の位置を、パンチ動作開始時における第1オブジェクト21の速度の向きに応じた方向へ、当該速度および予備動作が行われる時間に応じた距離だけ移動させた位置として予測されてもよい。また、パンチ開始位置は、パンチ動作開始時における入力情報(すなわち、第1オブジェクト21に対する操作入力の内容を示す情報)を考慮して算出されてもよい。例えば、パンチ動作開始時において第1オブジェクト21を右方向へ移動させる入力が行われていた場合、第2情報処理装置2は、パンチ動作開始時における第1オブジェクト21の手の位置を右方向へ移動させた位置をパンチ開始位置として算出してもよい。なお、パンチ開始位置を予測する方法は、従来から用いられている予測方法であってもよい。
【0106】
なお、第2情報処理装置2は、パンチ動作開始時における第1オブジェクト21の位置を、特定されたパンチ開始位置に応じた適切な位置となるように設定する。これによって、第1オブジェクト21の胴体と手とが不自然な位置関係となる可能性を低減することができる。
【0107】
上記のように、本実施形態においては、第2情報処理装置2は、第1オブジェクト21による動作の一部(具体的には、予備動作)をスキップした場合、スキップ後の当該第1オブジェクトの状態(具体的には、パンチ開始位置)を予測することによって、当該スキップ後の動作の制御を開始する。これによって、予備動作がスキップされた場合であっても、スキップ後における第1オブジェクトの動作を自然に表現することができる。すなわち、第2情報処理装置2におけるパンチ開始位置を、本動作開始時における第1オブジェクト21の位置に応じた位置とすることができるので、第2情報処理装置2における本動作を、第1情報処理装置1における本動作により近い(換言すれば、より正確な)ものとすることができる。
【0108】
また、操作対象オブジェクトとして複数種類のオブジェクトが用意される場合、第2情報処理装置2は、第1オブジェクト21の種類に応じて異なる方法によってパンチ開始位置を算出するようにしてもよい。具体的には、第2情報処理装置2は、予測関数を用いてパンチ開始位置を算出してもよく、このとき、第1オブジェクト21の種類に応じて異なる関数(具体的には、第1オブジェクト21の種類に応じて係数の値が異なる関数)を用いてもよい。この予測関数は、上記オブジェクト情報に含まれる情報の少なくともいくつか(具体的には、第1オブジェクト21の位置、速度、および、入力情報等)を入力とし、パンチ開始位置を出力とする関数である。予測関数は、任意の方法で作成されてよく、例えば実験やシミュレーションによって作成されてもよい。
【0109】
例えば、オブジェクトの大きさ、予備動作の動き方、および/または、予備動作を行う時間の長さ等が、操作対象オブジェクトの種類に応じて異なる場合がある。このような場合、パンチ動作開始時における操作対象オブジェクトの状態が同じであっても、実際のパンチ開始位置は操作対象オブジェクトの種類に応じて異なる結果となる。したがって、上記の場合、第2情報処理装置2は、操作対象オブジェクトの種類毎に予測関数を用意しておく。例えば、予測関数が、操作対象オブジェクトの肩の位置に関する係数(例えば、操作対象オブジェクトの中心位置から肩の位置までの距離を表す係数)を含む場合、大きさが異なる2つの操作対象オブジェクトについて、当該係数が異なる予測関数が用意されてもよい。第2情報処理装置2は、第1オブジェクト21として選択された操作対象オブジェクトの種類に応じた予測関数を用いてパンチ開始位置を算出する。これによれば、第2情報処理装置2は、パンチ開始位置をより精度良く予測することができる。
【0110】
[2−6.予測位置の算出方法]
図13を参照して、予測位置算出処理において予測位置を算出する具体例について説明する。第2情報処理装置2は、第1オブジェクト21に本動作を行わせる制御を行う期間において、予測位置算出処理を繰り返し実行する。具体的には、予測位置算出処理は、1フレーム処理(すなわち、後述するステップS31〜S42の処理ループ)の間に1回、実行される。予測位置算出処理において、第2情報処理装置2は、第1オブジェクト21がパンチ動作を行う手について予測位置を算出する。第2情報処理装置2は、算出された予測位置に手を配置するように、第1オブジェクト21の動作を制御する。
【0111】
なお、上記予測位置算出処理においては、第1情報処理装置1から受信したゲーム情報に含まれるオブジェクト情報に基づいて、当該オブジェクト情報により示される位置よりも先の位置(換言すれば、未来の位置)を予測することから、本明細書においては、上記予測位置算出処理によって算出される位置を「予測位置」と呼ぶ。なお、第2情報処理装置2においては上記予測位置に実際に第1オブジェクト21の手が配置されて表示が行われる。
【0112】
図13は、予測位置の算出方法の一例を示す図である。図13において、現在位置P2(t)は、現在の第1オブジェクト21の手の位置であり、換言すれば、前回の予測位置算出処理によって得られた位置である。また、第1補正ベクトルW1および第2補正ベクトルW2はそれぞれ、現在位置P2(t)を補正するために用いられる。本実施形態においては、第2情報処理装置2は、第1補正ベクトルW1および第2補正ベクトルW2を用いて現在位置P2(t)を補正することによって、新たな予測位置P2(t+1)を算出する。なお、図13の説明においては、第1情報処理装置における第1オブジェクト21の手の位置をP1と表し、第2情報処理装置における第1オブジェクト21の手の位置をP2と表す。
【0113】
第1補正ベクトルW1は、現在位置P2(t)と、仮予測位置P1’(t+d1)とに基づいて算出される。仮予測位置P1’(t+d1)は、第1情報処理装置1における第1オブジェクト21の手の現在位置から第1遅延値d1だけ後の(換言すれば、未来の)位置と予測される位置である。本実施形態においては、この仮予測位置P1’(t+d1)をそのまま予測位置(換言すれば、第2情報処理装置2における手の位置)とするのではなく、他の要素(例えば、補正ベクトルW2)を考慮して予測位置を算出する。そのため、位置P1’(t+d1)を「仮予測位置」と呼ぶ。
【0114】
上記第1遅延値d1は、遅延時間dに基づいて算出される。本実施形態においては、第1遅延値d1は、遅延時間dに所定の係数を乗算した値である。第1遅延値d1は、仮予測位置としてどれだけ先の時間における位置を予測するかの度合いを示す。ここで、第1遅延値d1が大きすぎると、予測を正確に行うことが困難になる結果、予測位置に基づく手の挙動が不自然になるおそれがある。そのため、本実施形態においては、第1遅延値d1には上限値が予め設定される。つまり、遅延時間dが長すぎる場合には、第1遅延値d1は上限値となる。
【0115】
仮予測位置P1’(t+d1)は、第1情報処理装置1から受信されるオブジェクト情報により示される実際の位置P1(t−d)に基づいて予測を行うことによって算出される(図13参照)。ここで、時点tにおいて第2情報処理装置2が第1情報処理装置1から受信したオブジェクト情報により示される手の位置は、現時点tよりも遅延時間dだけ過去の時点における位置である。つまり、第2情報処理装置2は、遅延時間dだけ過去の位置を示すオブジェクト情報を第1情報処理装置1から受信する。したがって、上記の実際の位置P1(t−d)は、現時点tより遅延時間dだけ過去の時点における、第1情報処理装置1における手の位置であり、時点(t−d)における実際の手の位置と言うことができる。本実施形態においては、上記実際の手の位置P1(t−d)から、時間(d+d1)だけ先を予測することによって、仮予測位置P1’(t+d1)を算出する。
【0116】
なお、仮予測位置を算出(換言すれば、予測)する方法は任意である。例えば、第2情報処理装置2は、手の実際の位置P1(t−d)と、当該実際の位置における手の速度(換言すれば、上記オブジェクト情報により示される速度)とに基づいて仮予測位置を算出してもよい。具体的には、仮予測位置は、手の実際の位置を、手の速度の向きに応じた方向へ、当該速度および第1遅延値d1に応じた距離だけ移動させた位置として算出されてもよい。また例えば、第2情報処理装置2は、手の位置および速度に加えて、第1情報処理装置1から受信したゲーム情報に含まれる入力情報(すなわち、第1オブジェクト21に対する操作入力の内容を示す情報)に基づいて仮予測位置を算出してもよい。例えば、パンチ動作中の手を右方向へ移動させる入力を示す入力情報が受信された場合、第2情報処理装置2は、手の実際の位置を、前進しながら右方向へカーブするように移動させた位置を仮予測位置として算出してもよい。また、第2情報処理装置2は、入力情報により示される入力値を用いることに加えて、入力値の微分値および/または2階微分値を用いて仮予測位置を算出するようにしてもよい。なお、仮予測位置を予測する方法は、従来から用いられている予測方法であってもよい。
【0117】
なお、本実施形態においては、第2情報処理装置2は、予め用意された位置算出関数fを用いて、現在位置P2(t)等に基づいて次の位置P2(t+1)を算出する。詳細は後述するが、位置算出関数fは、現在位置等を入力とし、次の位置(すなわち、次のフレームにおける手の位置)を出力とする関数である。ここで、第2情報処理装置2は、上記位置算出関数fを用いて仮予測位置を算出してもよい。具体的には、第2情報処理装置2は、位置算出関数fに現在位置等を入力することによって次の位置を算出する処理を、予測する時間の長さ(ここでは、d+d1)に対応する回数、繰り返し実行することによって、仮予測位置を算出する。なお、このとき、第2情報処理装置2は、n回目(なお、nは1以上の整数である)の上記処理における位置算出関数fの出力(換言すれば予測位置)を、n+1回目の上記処理における位置算出関数fの入力として用いる。なお、1回目の上記処理において入力される位置は、上記実際の位置P1(t−d)である。そして、上記処理を(d+d1)回繰り返し実行することによって、第2情報処理装置2は、時間(t+d1)における位置(すなわち、仮予測位置P1’(t+d1))を予測することができる。また、上記入力情報により示される入力値が位置算出関数fの入力として用いられる場合、第2情報処理装置2は、複数回の上記処理において、位置算出関数fに入力する入力値を、当該入力値の微分値および/または2階微分値に基づいて変化させて位置算出関数fに入力するようにしてもよい。
【0118】
図13に示すように、第1補正ベクトルは、現在位置P2(t)を始点とし、仮予測位置P1’(t+d1)を終点とするベクトルとして算出される。つまり、補正ベクトルW1は、現在位置P2(t)を仮予測位置P1’(t+d1)へと補正するベクトルであり、現時点から時間d1後の位置を予測するための補正を行うベクトルである。ここで、本実施形態においては、上述のように、第2情報処理装置2では、第1情報処理装置1における現時点での手の位置よりも遅延時間dだけ先の位置を予測することを目標としている(図8参照)。そのため、第2情報処理装置2は、遅延時間dに応じた第1遅延値d1に基づく上記第1補正ベクトルW1を用いて仮予測位置を算出することとしている。
【0119】
また、図13に示すように、第2補正ベクトルW2は、第1情報処理装置1における実際の位置P1(t−d)と、第2情報処理装置における過去の予測位置P2(t−2×d2)とに基づいて算出される。詳細は後述するが、第2補正ベクトルW2は、第1情報処理装置1における実際の手の位置と、過去に第2情報処理装置2において算出された予測位置とのずれを示す。つまり、第2補正ベクトルW2は、過去に算出された予測位置に関する上記ずれを修正するために用いられる。
【0120】
上記過去の予測位置P2(t−2×d2)は、現時点tより第2遅延値d2の2倍の時間だけ過去の予測位置である。なお、本実施形態においては、第2情報処理装置2は、第1オブジェクト21の本動作中において繰り返し算出された予測位置を保存しておく。
【0121】
なお、上記第2遅延値d2は、遅延時間dに基づいて算出される。第2遅延値d2は、上記実際の位置P1(t−d)を、現在位置P2(t)よりどれだけ過去の時点における位置として取り扱うかの度合いを示す。第2遅延値d2は、第1遅延値d1と同様、遅延時間dに所定の係数を乗算した値であって、かつ、上限値が設定される。このように、第2遅延値d2は、第1遅延値d1と同様の方法で算出されるが、実際の数値は第1遅延値d1とは異なっていてもよい。すなわち、第2遅延値d2を算出するために用いられる係数および上限値は、第1遅延値d1を算出するために用いられる係数および上限値と異なっていてもよい。
【0122】
上述のように、本実施形態においては、第2情報処理装置2では、第1情報処理装置1における現時点での手の位置よりも遅延時間dだけ先の位置を予測することを目標としている。つまり、現在位置P2(t)は、理想的には、第1情報処理装置1における現時点tでの手の位置より遅延時間dだけ先の予測位置であり、第1情報処理装置1における時間(t+d)の位置P(t+d)に対応すると言える。したがって、本実施形態においては、第2情報処理装置2は、理想的には現時点より遅延時間dだけ先の位置である現在位置P2(t)と、現時点より遅延時間dだけ過去の位置である上記実際の位置P1(t−d)との時間差を、遅延時間dの2倍であると想定している。すなわち、第2情報処理装置2は、上記のずれを修正するための第2補正ベクトルW2を算出するために、上記実際の位置P1(t−d)と、過去の予測位置P2(t−2×d2)とを用いるようにしている。
【0123】
具体的には、図13に示すように、第2補正ベクトルW2は、上記過去の予測位置P2(t−2×d2)を始点とし、上記実際の位置P1(t−d)を終点とするベクトルとして算出される。つまり、第2補正ベクトルW2は、時点(t−d)での第1情報処理装置1における手の位置と第2情報処理装置2における手の位置とのずれを修正するように現在位置P2(t)を補正するベクトルである。
【0124】
なお、第2情報処理装置2において本動作が開始された直後においては、(t−2×d2)の値が負になる場合がある。この場合、第2情報処理装置2は、第2補正ベクトルW2を0とする。この場合、第2補正ベクトルによる補正は行われない。
【0125】
上記のように算出された各補正ベクトルW1およびW2を用いて、第2情報処理装置2は、現在位置P2(t)を補正する。すなわち、第2情報処理装置2は、第1補正ベクトルW1によって、遅延時間dに応じた分だけ先の位置となるように予測位置を補正するとともに、第2補正ベクトルW2によって、過去のずれに基づいてずれを修正するように予測位置を補正する。以下、本実施形態における予測位置の具体的な算出方法について説明する。
【0126】
第2情報処理装置2は、まず、上述の各補正ベクトルW1およびW2を算出し、次に、各補正ベクトルW1およびW2による補正を行うための補正計算ベクトルWを算出する。補正計算ベクトルWは、前回の予測位置を移動させる移動量および移動方向を示すベクトルであると言える。補正計算ベクトルWは、各補正ベクトルW1およびW2を合成することによって得られ、具体的には、下記の式(1)に基づいて算出される。
W=a×W1+b×W2 …(1)
上式(1)において、係数aおよびbは、それぞれ、予め定められた定数である。なお、本実施形態においては、上式(1)によって得られた補正計算ベクトルWの大きさについては上限値が設定される。すなわち、補正計算ベクトルWの大きさが、予め定められた上限値よりも大きい場合、第2情報処理装置2は、補正計算ベクトルWの大きさを当該上限値に修正する。上限値を設定することによって、予測位置の急激な変化を抑制することができ、予測位置に基づく手の挙動が不自然になる可能性を低減することができる。なお、他の実施形態においては、補正計算ベクトルWについて上限値が設定されなくてもよい。
【0127】
本実施形態においては、上記によって得られた補正計算ベクトルWについて線形補間が行われる。具体的には、第2情報処理装置2は、下記の式(2)に基づいて、時点tにおける予測位置算出処理において用いられる補正計算ベクトルW(t)を算出する。
W(t)=c×W+(1−c)×W(t−1) …(2)
上式(2)において、係数cは、予め定められた定数である。上式(2)に示すように、本実施形態においては、補正計算ベクトルW(t)は、前回の予測位置算出処理における補正計算ベクトルW(t−1)と、今回の予測位置算出処理において算出された補正計算ベクトルWとを所定の割合で合成することによって得られる。これによって、補正計算ベクトルの急激な変化を抑制することができるので、予測位置の急激な変化を抑制することができる。なお、他の実施形態においては、第2情報処理装置2は、時点tにおける予測位置算出処理において用いられる補正計算ベクトルW(t)として、上式(1)によって得られる補正計算ベクトルWをそのまま用いてもよい。
【0128】
上記のように、本実施形態においては、第1オブジェクト21の手の位置についての予測位置を算出するべく、補正計算ベクトルW(t)が算出される。ここで、本実施形態においては、第2情報処理装置2は、第1オブジェクト21の手の速度についても手の位置と同様に、予測速度Vを算出するべく、補正計算用のベクトルX(t)を算出する。ここで、予測速度Vは、予測位置P2と同様に3次元の値である。そのため、第2情報処理装置2は、予測速度Vに関する補正計算用のベクトルX(t)を、予測位置P2に関する補正計算ベクトルW(t)と同様にして算出することができる。なお、ベクトルX(t)は、上式(1)および(2)と同様の式に基づいて算出されることができる。ただし、上式(1)および(2)における係数a,b,およびcは、ベクトルX(t)を算出する場合とベクトルW(t)を算出する場合とで異なる値であってよい。
【0129】
第2情報処理装置2は、現在位置P2(t)を補正計算ベクトルW(t)によって補正した値と、現在速度V(t)を補正計算用のベクトルX(t)によって補正した値とに基づいて、今回の予測位置P2(t+1)を算出する。
【0130】
ここで、第2情報処理装置2は、第2オブジェクト22がパンチ動作を行う際における手の位置を算出するために、予め用意された位置算出関数f{P2,V,・・・}を用いる。そのため、本実施形態においては、第1オブジェクト21についての予測位置を算出する場合においても、上記位置算出関数fを用いる。なお、位置算出関数f{P2,V,・・・}は、現在の位置P2および現在の速度Vを少なくとも入力とし、新たな位置を出力とする関数である。なお、位置算出関数fは、従来から用いられる関数と同様であってもよい。
【0131】
具体的には、今回の予測位置P2(t+1)は、下記の式(3)に基づいて算出される。
P2(t+1)=f{P2(t)+W(t),V(t)+X(t),・・・} …(3)
上式(3)より明らかなように、第1オブジェクト21についての予測位置P2(t+1)は、補正計算ベクトルW(t)によって現在位置P2(t)を補正した位置(P2(t)+W(t))と、ベクトルX(t)によって現在速度V(t)を補正した速度(V(t)+X(t))とを、位置算出関数fの入力とすることによって得られる。このように、本実施形態においては、第2オブジェクト22によるパンチ動作における手の位置を算出する方法と同様の方法で、第1オブジェクト21に関する予測位置を算出することができる。なお、他の実施形態においては、第2情報処理装置2は、上記位置算出関数fを用いない方法で(すなわち、第2オブジェクト22によるパンチ動作における手の位置を算出する方法とは異なる方法で)、第1オブジェクト21に関する予測位置を算出してもよい。
【0132】
なお、上記より明らかなように、本実施形態では、予測位置を算出するために、第1補正ベクトルW1がそのまま用いられるわけではなく、補正計算ベクトルW(t)が用いられる。補正計算ベクトルW(t)は、現在位置P2(t)を、遅延時間dだけ先の位置(すなわち、仮予測位置P1’(t+d1))へ補正するとは限らない。具体的には、1回の予測位置算出処理においては、予測位置P2(t+1)は、現在位置P2(t)を基準として、仮予測位置よりも手前の位置として算出される。ただし、本実施形態においては、予測位置算出処理が第1オブジェクト21による本動作中において繰り返し実行されるので、予測位置算出処理が繰り返し実行されることに応じて、予測位置は次第に先の位置となっていく。つまり、図9に示したように、本動作の開始直後においては、予測位置はあまり先の位置とはならず、第1情報処理装置1における手の位置が、第2情報処理装置2における予測位置よりも先行する(図9(b))。一方、本動作の開始からある程度時間が経過すると、予測位置は次第に先の位置となるので、第2情報処理装置2における予測位置は、第1情報処理装置1における手の位置を追い抜き、第1情報処理装置1における手の位置よりも先行するようになる(図9(c))。
【0133】
以上のように、本実施形態においては、第2情報処理装置2は、予測位置算出処理を繰り返し実行する。そして、第2情報処理装置2は、予測位置算出処理において、遅延時間に基づく所定時間(d1)分先の位置(すなわち、仮予測位置)を算出し、当該算出された位置と、前回の予測位置(すなわち、現在位置P2(t))とに基づいて新たな予測位置(P2(t+1))を算出する。これによれば、第2の情報処理装置2は、遅延時間に応じた分だけ先の仮予測位置を算出し、当該仮予測位置に基づいて新たな予測位置を算出するので、遅延時間を考慮して精度良く予測位置を算出することができる。
【0134】
また、第2情報処理装置2は、新たにオブジェクト情報を受信した場合、当該受信したオブジェクト情報により特定される位置(すなわち、実際の位置P1(t−d))と、遅延時間に基づく所定時間(2×d2)分前の予測位置(すなわち、過去の予測位置P2(t−2×d2))との差(すなわち、第2補正ベクトルW2)に基づいて新たな予測位置(P2(t+1))を算出する。これによれば、第2情報処理装置2は、第2情報処理装置2において算出される予測位置と、第1情報処理装置1における実際の位置とのずれを考慮して予測位置を算出することができるので、予測位置をより正確に算出することができる。ここで、本実施形態においては、パンチ動作は、動作開始後における挙動が入力によって制御されることが可能な動作であるので、動作開始後の位置を予測することが難しい場合がある。しかし、このような場合であっても、上記差に基づくことによって予測位置をより正確に算出することができる。
【0135】
また、本実施形態においては、第2情報処理装置2は、まず仮予測位置を予測し、仮予測位置を第2補正ベクトルW2に基づいて補正することによって予測位置を算出しているということができる。つまり、第2情報処理装置2は、遅延時間に基づく第1遅延値(d1)に基づいて算出される仮予測位置を、遅延時間に基づく第2遅延値(d2)と、第1情報処理装置1から受信したオブジェクト情報により特定される位置(すなわち、実際の位置P1(t−d))とに基づいて補正することによって新たな予測位置を得る。これによれば、遅延時間を考慮して予測位置を算出することができるとともに、第2遅延値とオブジェクト情報とに基づく補正を行うことによって、予測位置をより正確に算出することができる。
【0136】
なお、他の実施形態においては、予測位置は、第2補正ベクトルW2を用いずに算出されてもよい。第2補正ベクトルW2を用いずに予測位置を算出する場合であっても本実施形態と同様に、第1補正ベクトルW1によって、第2情報処理装置2における第1オブジェクト21の手の位置を、第1情報処理装置1における手の位置よりも先行させることができる。これによって、第1情報処理装置1において結果表示をより適切なタイミングで行うことができる。
【0137】
[2−7.送信側におけるパンチ動作の制御]
上述のように、本実施形態においては、第2情報処理装置2におけるパンチ動作期間が第1情報処理装置1におけるパンチ動作期間よりも短くなるように、第2情報処理装置2におけるパンチ動作が制御される。ここで、遅延時間が大きくなりすぎると、第2情報処理装置2におけるパンチ動作期間を短縮する度合いが大きくなることから、第2情報処理装置2におけるパンチ動作が速くなりすぎるおそれがある。このとき、第2情報処理装置2のユーザがパンチ動作に違和感を抱いたり、当該ユーザにとってゲームが難しくなりすぎたりするおそれがある。
【0138】
そこで、本実施形態においては、遅延時間が大きすぎる場合には、第1情報処理装置1における第1オブジェクト21のパンチ動作を遅くする(つまり、パンチ動作期間を長くする)。これによって、第2情報処理装置2におけるパンチ動作期間を短縮する度合いを小さくすることができるので、第2情報処理装置2のユーザが抱く違和感を軽減することができる。以下、図14を参照して、詳細を説明する。
【0139】
図14は、送信側および受信側におけるパンチ動作期間の一例を示す図である。図14(a)は、遅延時間dが小さい場合(すなわち、遅延時間dが基準時間D以下である場合)におけるパンチ動作期間を示し、図14(b)は、遅延時間dが大きい場合(すなわち、遅延時間dが基準時間Dより大きい場合)におけるパンチ動作期間を示す。
【0140】
図14(a)に示すように、遅延時間dが基準時間D以下である場合、第1情報処理装置1は、予め定められた第1速度(換言すれば、通常の速度)で第1オブジェクト21にパンチ動作を行わせる。これに対して、図14(b)に示すように、遅延時間dが基準時間Dより大きい場合、第1情報処理装置1は、第1速度よりも遅い第2速度で第1オブジェクト21にパンチ動作を行わせる。その結果、遅延時間dが基準時間Dより大きい場合における第1情報処理装置1でのパンチ動作期間は、遅延時間dが基準時間D以下である場合における第1情報処理装置1でのパンチ動作期間よりも長くなる(図14参照)。したがって、本実施形態によれば、遅延時間dが基準時間Dより大きい場合において、第2情報処理装置2におけるパンチ動作期間を短縮する度合いを軽減することができる。例えば、図14に示す例においては、図14(a)に示す場合と図14(b)に示す場合とで、第2情報処理装置2におけるパンチ動作期間を同程度にすることができる。
【0141】
[3.ゲーム処理の具体例]
図15図20を参照して、上記において概要を説明したゲーム処理が情報処理システムにおいて実行される場合の具体例について説明する。なお、図15図20における説明も図3図14における説明と同様、第1情報処理装置1が送信側の装置となる場合(すなわち、第1情報処理装置1において第1オブジェクト21がパンチ動作を行い、当該パンチ動作に関する結果情報が第2情報処理装置2へ送信される場合)の処理を例として説明する。ただし、第2情報処理装置2が送信側の装置となる場合の処理も、第1情報処理装置1が送信側の装置となる場合の処理と同様であり、これら2つの処理が連続して実行されたり、並行して実行されたりしてもよい。
【0142】
[3−1.データ]
図15を参照して、情報処理システムにおけるゲーム処理に用いられるデータの具体例について説明する。図15は、情報処理装置におけるゲーム処理に用いられる情報の一例を示す図である。図15に示す情報(換言すれば、データ)は、情報処理装置の記憶装置(具体的には、処理部11のメモリ、および/または、記憶部12)に記憶される。
【0143】
情報処理装置は、第1オブジェクト情報および第2オブジェクト情報を記憶する。第1オブジェクト情報は、第1オブジェクト21に関するオブジェクト情報である。第2オブジェクト情報は、第2オブジェクト22に関するオブジェクト情報である。なお、送信側である第1情報処理装置1は、入力部13に対する入力に基づいて第1オブジェクト情報を生成し、第2情報処理装置2から受信されるゲーム情報に含まれるオブジェクト情報を第2オブジェクト情報として取得する。
【0144】
情報処理装置は、遅延時間情報を記憶する。遅延時間情報は、各情報処理装置間の通信に関する遅延時間を示す。なお、本実施形態においては、各情報処理装置1および2は、それぞれ、遅延時間を特定する処理(後述するステップS12またはS32)を実行することによって、遅延時間情報を得る。
【0145】
情報処理装置は、ゲーム情報を記憶する。ゲーム情報は、ゲームに関する情報であって、通信相手の情報処理装置へ送信する情報である。図16は、ゲーム情報に含まれる情報の一例を示す図である。図16に示すように、本実施形態においては、ゲーム情報は、時刻情報、上記オブジェクト情報、上記開始情報、および、上記結果情報を含む。時刻情報は、当該ゲーム情報が送信される時の時刻を示す。また、本実施形態においては、ゲーム情報は、時刻情報およびオブジェクト情報を常に含むように生成される。これに対して、開始情報および結果情報は、所定の条件が満たされた場合にゲーム情報に含まれ(後述するステップS14またはS67)、それ以外の場合にはゲーム情報に含まれない。
【0146】
図15に示すように、情報処理装置は、動作速度情報を記憶する。動作速度情報は、パンチ動作を行うべき速度を示し、本実施形態においては、上述の第1速度または第2速度を示す。動作速度情報は、送信側の情報処理装置において記憶される。送信側の情報処理装置は、動作速度情報により示される速度に従って操作対象オブジェクトにパンチ動作を行わせる。
【0147】
また、受信側の情報処理装置は、第1補正ベクトル情報、第2補正ベクトル情報、予測位置情報、および、開始位置情報を記憶する。第1補正ベクトル情報は、上記第1補正ベクトルを示す。第2補正ベクトル情報は、上記第2補正ベクトルを示す。予測位置情報は、上記予測位置を示す。なお、情報処理装置は、1回のパンチ動作中において算出される各予測位置を、予測位置の履歴として保存しておく。開始位置情報は、上記パンチ開始位置を示す。
【0148】
[3−2.送信側の情報処理装置における処理]
図17は、送信側の情報処理装置(ここでは、第1情報処理装置1)によって実行されるゲーム処理(「送信側ゲーム処理」と記載する。)の一例の流れを示すフローチャートである。なお、図17に示す一連の処理は、記憶部12に記憶されるゲームプログラムの起動後、ゲームの開始に応じて開始される。
【0149】
なお、本実施形態では、情報処理装置の処理部のCPU(換言すればプロセッサ)が、記憶部12に記憶されているゲームプログラムを実行することによって、図17(または、後述する図18図20)に示す各ステップの処理を実行するものとして説明する。ただし、他の実施形態においては、上記各ステップの処理のうちの一部の処理を、CPUとは別のプロセッサ(例えば、専用回路等)が実行するようにしてもよい。また、図17図20に示す各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて(または代えて)別の処理が実行されてもよい。
【0150】
また、情報処理装置の処理部は、図17図20に示す各ステップの処理を、メモリを用いて実行する。すなわち、処理部のCPUは、各処理ステップによって得られる情報(換言すれば、データ)をメモリに記憶し、それ以降の処理ステップにおいて当該情報を用いる場合には、メモリから当該情報を読み出して利用する。
【0151】
図17に示すステップS11において、処理部11は、第2情報処理装置2から送信されてくるゲーム情報を受信する。すなわち、処理部11は、第2情報処理装置2から通信部15を介してゲーム情報を取得する。ステップS11の次に、ステップS12の処理が実行される。
【0152】
ステップS12において、処理部11は、第1情報処理装置1と第2情報処理装置との間における遅延時間を算出する。遅延時間の算出方法は任意であり、従来の算出方法が用いられてもよい。例えば、処理部11は、ステップS11で受信されるゲーム情報に含まれる時刻情報に基づいて、遅延時間を算出する。すなわち、処理部11は、上記時刻情報が示す時刻と、現在時刻との差分に基づいて遅延時間を算出する。このとき、算出された遅延時間を示す遅延時間情報が記憶部12に記憶される。ステップS12の次に、ステップS13の処理が実行される。
【0153】
なお、第1情報処理装置1と第2情報処理装置との間における通信状況によっては、上記ステップS11の処理においてゲーム情報が受信されない場合もある。この場合、処理部11は、ステップS12の処理を実行せず、最後に算出した遅延時間を用いてステップS13以降における処理を実行する。
【0154】
ステップS13において、処理部11は、入力部13に対する入力を受け付ける。すなわち、処理部11は、入力部13に対した行われた入力を示す情報を取得し、メモリに記憶する。ステップS13の次に、ステップS14の処理が実行される。
【0155】
ステップS14において、処理部11は、ステップS13で取得された情報に基づいて、入力部13に対してパンチ入力が行われたか否かを判定する。ステップS14の判定結果が肯定である場合、ステップS15の処理が実行される。一方、ステップS14の判定結果が否定である場合、ステップS15〜S18の処理がスキップされて、後述するステップS19の処理が実行される。
【0156】
ステップS15において、処理部11は、開始情報を含むゲーム情報を生成する。これによって、後述するステップS22において、開始情報を含むゲーム情報が第2情報処理装置2へ送信されることとなる。ステップS15の次に、ステップS16の処理が実行される。
【0157】
ステップS16において、処理部11は、現時点(すなわち、パンチ入力が行われた時点)における遅延時間が小さいか否かを判定する。すなわち、処理部11は、ステップS15で算出された遅延時間が、予め記憶部12に記憶されている基準時間D以下であるか否かを判定する。ステップS16の判定結果が肯定である場合、ステップS17の処理が実行される。一方、ステップS16の判定結果が否定である場合、ステップS18の処理が実行される。
【0158】
ステップS17において、処理部11は、第1オブジェクト21によるパンチ動作の速度を上述の第1速度に設定する。すなわち、処理部11は、第1速度を示す動作速度情報を記憶部12に記憶する。これによって、後述するステップS20またはS21の処理においては、動作速度情報により示される第1動作速度に従って、第1オブジェクト21によるパンチ動作が制御される。ステップS17の次に、ステップS19の処理が実行される。
【0159】
一方、ステップS18において、処理部11は、第1オブジェクト21によるパンチ動作の速度を上述の第2速度に設定する。すなわち、処理部11は、第2速度を示す動作速度情報を記憶部12に記憶する。これによって、後述するステップS20またはS21の処理においては、動作速度情報により示される第2動作速度に従って、第1オブジェクト21によるパンチ動作が制御される。ステップS18の次に、ステップS19の処理が実行される。
【0160】
ステップS19において、処理部11は、第2情報処理装置2から結果情報を受信したか否かを判定する。すなわち、処理部11は、ステップS11で受信したゲーム情報に結果情報が含まれているか否かを判定する。ステップS19の判定結果が肯定である場合、ステップS20の処理が実行される。一方、ステップS19の判定結果が否定である場合、ステップS21の処理が実行される。
【0161】
ステップS20において、処理部11は、通常の場合(すなわち、パンチ動作の結果が発生していない場合)におけるオブジェクトの動作制御を行う。すなわち、処理部11は、ステップS1において受け付けた入力に基づいて第1オブジェクト21の動作を制御する。また、処理部11は、ステップS4で受信したゲーム情報に含まれるオブジェクト情報に基づいて第2オブジェクト22の動作を制御する。また、ステップS20において、動作が制御された各オブジェクト21および22の状態(位置および速度等)を示す第1オブジェクト情報および第2オブジェクト情報が、記憶部12に記憶される。ステップS20の次に、ステップS22の処理が実行される。
【0162】
ステップS21において、処理部11は、パンチ動作の結果が発生した場合におけるオブジェクトの動作制御を行う。すなわち、処理部11は、ステップS1において受け付けた入力に基づいて第1オブジェクト21の動作を制御する。また、処理部11は、ステップS4で受信したゲーム情報に含まれる結果情報に基づいて第2オブジェクト22の動作を制御する。具体的には、処理部11は、第2オブジェクト22に上述のリアクション動作を行わせる。なお、リアクション動作が複数フレームにわたって行われる場合、処理部11は、リアクション動作が終了するまでの期間については、ステップS20に代えてステップS21の処理を実行する。また、ステップS21において、動作が制御された各オブジェクト21および22の状態(位置および速度等)を示す第1オブジェクト情報および第2オブジェクト情報が、記憶部12に記憶される。ステップS21の次に、ステップS22の処理が実行される。
【0163】
ステップS22において、処理部11は、通信部15を用いて(換言すれば、通信部15を介して)、第2情報処理装置2へゲーム情報を送信する。このゲーム情報には、ステップS20またはS21において動作が制御された後の第1オブジェクト21に関するオブジェクト情報が含まれる。ステップS21の次に、ステップS22の処理が実行される。
【0164】
ステップS23において、処理部11は、ゲーム画像を生成して表示部14に表示する。処理部11は、記憶部12に記憶される第1および第2オブジェクト情報に基づいて、ステップS20またはS21によって動作が制御された後のゲーム空間を表すゲーム画像を生成し、生成されたゲーム画像を表示部14に表示する。なお、パンチ動作の結果が発生した場合(すなわち、上記ステップS21の処理が実行される場合)には、処理部11は、ゲーム空間を表す画像に加えて、当該結果を表すエフェクト画像を表示する。ステップS23の次に、ステップS24の処理が実行される。
【0165】
ステップS24において、処理部11は、ゲームを終了するか否かを判定する。処理部11は、例えば、予め定められた終了条件(例えば、いずれかのオブジェクトの体力が0になったこと)が満たされた場合、または、終了指示を示す入力がユーザによって行われた場合、ゲームを終了すると判定する。ステップS24の判定結果が否定である場合、ステップS1の処理が再度実行される。処理部11は、ステップS24においてゲームを終了すると判定されるまで、ステップS1〜S24の処理ループを繰り返し実行する。一方、ステップS24の判定結果が肯定である場合、処理部11は、図17に示す送信側ゲーム処理を終了する。
【0166】
[3−3.受信側の情報処理装置における処理]
図18図20は、受信側の情報処理装置(ここでは、第2情報処理装置2)によって実行されるゲーム処理(「受信側ゲーム処理」と記載する。)の一例の流れを示すフローチャートである。なお、図18図20に示す一連の処理は、第2の情報処理装置の記憶部(以下、図18図20の説明において、単に「記憶部」と記載する)に記憶されるゲームプログラムの起動後、ゲームの開始に応じて開始される。
【0167】
図18に示すステップS31において、第2情報処理装置2の処理部(以下、図18図20の説明において、単に「処理部」と記載する)は、第1情報処理装置1から送信されてくるゲーム情報を受信する。ステップS31の処理は、上述のステップS11の処理と同様である。ステップS31の次に、ステップS32の処理が実行される。
【0168】
ステップS32において、処理部は、第1情報処理装置1と第2情報処理装置との間における遅延時間を算出する。ステップS32の処理は、上述のステップS12の処理と同様である。ステップS32の次に、ステップS33の処理が実行される。
【0169】
ステップS33において、処理部は、第2情報処理装置2の入力部に対する入力を受け付ける。ステップS33の処理は、上述のステップS13の処理と同様である。ステップS33の次に、ステップS34の処理が実行される。
【0170】
ステップS34において、処理部は、第1情報処理装置1から開始情報を受信したか否かを判定する。すなわち、処理部は、ステップS31で受信したゲーム情報に開始情報が含まれているか否かを判定する。ステップS34の判定結果が肯定である場合、ステップS35の処理が実行される。一方、ステップS34の判定結果が否定である場合、ステップS35の処理がスキップされて、後述するステップS36の処理が実行される。
【0171】
ステップS35において、処理部は、第1オブジェクト21によるパンチ動作における予備動作の態様を特定する。すなわち、処理部は、上記“[2−4.予備動作のスキップ]”で説明した方法に従って、予備動作の少なくとも一部を行うか、それとも、予備動作の全体をスキップするかを特定する。さらに、予備動作の少なくとも一部を行う場合には、処理部は、予備動作を行う時間(換言すれば、予備動作をどの程度短縮して行うか)を特定する。ステップS35の次に、ステップS36の処理が実行される。
【0172】
ステップS36において、処理部は、上記“[2−5.パンチ開始位置の特定]”で説明した方法に従って、第1オブジェクト21によるパンチ動作におけるパンチ開始位置を特定する。このとき、特定されたパンチ開始位置を示す開始位置情報が記憶部に記憶される。ステップS36の次に、ステップS37の処理が実行される。
【0173】
ステップS37において、処理部は、第1オブジェクト21による本動作を行う期間であるか否かを判定する。ステップS37の判定は、現時点が、第1オブジェクト21がパンチ動作を行う期間内であり、かつ、予備動作を行う期間でないか否かによって行うことができる。ここで、処理部は、第1オブジェクト21がパンチ動作を行う期間を、第1情報処理装置1から開始情報を受信してから、第1情報処理装置1へ結果情報を送信するまでの期間として特定することができる。また、処理部は、予備動作を行う期間を、上記ステップS35の処理に基づいて特定することができる。ステップS37の判定結果が肯定である場合、ステップS38の処理が実行される。一方、ステップS37の判定結果が否定である場合、ステップS38の処理がスキップされて、後述するステップS39の処理が実行される。
【0174】
ステップS38において、処理部は、上述の予測位置算出処理を実行する。以下、図19を参照して、予測位置算出処理における処理の詳細について説明する。
【0175】
図19は、図18に示すステップS38の予測位置算出処理の詳細な流れの一例を示すサブフローチャートである。予測位置算出処理においては、まずステップS51において、処理部は、上記“[2−6.予測位置の算出方法]”で説明した方法に従って、上述の第1補正ベクトルを算出する。なお、第1オブジェクト21による1回の本動作中において最初に予測位置算出処理が実行される場合には、上記ステップS36で算出されるパンチ開始位置が、上述の現在位置として用いられる。したがって、予備動作がスキップされる場合、スキップ後の動作(すなわち、本動作)は、パンチ開始位置に手が配置された状態から開始される。ステップS51においては、算出された第1補正ベクトルを示す第1補正ベクトル情報が記憶部に記憶される。ステップS51の次に、ステップS52の処理が実行される。
【0176】
ステップS52において、処理部は、上記“[2−6.予測位置の算出方法]”で説明した方法に従って、上述の第2補正ベクトルを算出する。このとき、算出された第2補正ベクトルを示す第2補正ベクトル情報が記憶部に記憶される。ステップS52の次に、ステップS53の処理が実行される。
【0177】
ステップS53において、処理部は、上記“[2−6.予測位置の算出方法]”で説明した方法に従って、第1補正ベクトルおよび第2補正ベクトルに基づいて、予測位置を算出する。このとき、算出された予測位置を示す予測位置情報が記憶部に記憶される。ステップS53の後、処理部は予測位置算出処理を終了する。
【0178】
図18の説明に戻り、ステップS38の予測位置算出処理の次に、ステップS39の処理が実行される。ステップS39において、処理部は、動作制御処理を実行する。動作制御処理は、第1オブジェクト21および第2オブジェクト22の動作を制御する処理である。以下、図20を参照して、動作制御処理における処理の詳細について説明する。
【0179】
図20は、図18に示すステップS39の動作制御処理の詳細な流れの一例を示すサブフローチャートである。動作制御処理においては、まずステップS61において、処理部は、第1オブジェクト21が予備動作を行う期間であるか否かを判定する。ステップS61の判定は、現時点が、第1オブジェクト21がパンチ動作を行う期間内であり、かつ、予備動作を行う期間であるか否かによって行うことができる。ステップS61の判定結果が肯定である場合、ステップS62の処理が実行される。一方、ステップS61の判定結果が否定である場合、後述するステップS63の処理が実行される。
【0180】
ステップS62において、処理部は、パンチ動作における予備動作を行うように第1オブジェクトを制御する。なお、ステップS62の処理における予備動作に関する動作制御は、上記ステップS35の処理によって特定された動作態様に従って行われる。また、処理部は、第1情報処理装置1から受信したゲーム情報に含まれるオブジェクト情報に基づいて、必要に応じてパンチ動作以外の動作を第1オブジェクトに行わせる。ステップS62の次に、後述するステップS66の処理が実行される。
【0181】
ステップS63において、処理部は、第1オブジェクト21による本動作を行う期間であるか否かを判定する。ステップS63の判定は、上記ステップS37の判定と同じである。ステップS63の判定結果が肯定である場合、ステップS64の処理が実行される。一方、ステップS63の判定結果が否定である場合、後述するステップS65の処理が実行される。
【0182】
ステップS64において、処理部は、パンチ動作における本動作を行うように第1オブジェクトを制御する。すなわち、処理部は、記憶部に記憶されている予測位置情報に基づいて、第1オブジェクト21にパンチ動作を行わせる。このとき、第1オブジェクト21は、予測位置に手が配置されるように制御される。また、処理部は、第1情報処理装置1から受信したゲーム情報に含まれるオブジェクト情報に基づいて、必要に応じてパンチ動作以外の動作を第1オブジェクトに行わせる。ステップS64の次に、後述するステップS66の処理が実行される。
【0183】
ステップS65において、処理部は、第1情報処理装置1から受信したゲーム情報に含まれるオブジェクト情報に基づいて第1オブジェクト21の動作を制御する。このとき、第1オブジェクト21は、パンチ動作以外の動作を行う。ステップS65の次に、ステップS66の処理が実行される。
【0184】
なお、上記ステップS62,S64,またはS65においては、動作が制御された第1オブジェクト21の状態を示す第1オブジェクト情報が、記憶部に記憶される。
【0185】
ステップS66において、処理部は、ステップS33において受け付けた入力に基づいて第2オブジェクト22の動作を制御する。このとき、動作が制御された第2オブジェクト22の状態を示す第2オブジェクト情報が、記憶部に記憶される。ステップS66の次に、ステップS67の処理が実行される。
【0186】
ステップS67において、処理部は、第1オブジェクト21のパンチ動作による結果が発生したか否かを判定する。具体的には、処理部は、第1オブジェクト21によるパンチ動作について第2オブジェクト22との当たり判定処理を実行し、第1オブジェクト21の手が、第2オブジェクト22に当たったか否かを判定する。ステップS67の判定結果が肯定である場合、ステップS68の処理が実行される。一方、ステップS67の判定結果が否定である場合、ステップS68の処理がスキップされ、処理部は動作制御処理を終了する。
【0187】
ステップS68において、処理部は、結果情報を含むゲーム情報を生成する。なお、現時点(すなわち、第1オブジェクト21の手が、第2オブジェクト22に当たった時点)で第2オブジェクト22がガード動作を行っていない場合、処理部は、パンチが当たったことを示す結果情報を含むゲーム情報を生成する。また、現時点で第2オブジェクト22がガード動作を行っている場合、処理部は、パンチがガードされたことを示す結果情報を含むゲーム情報を生成する。ステップS68の処理によって、後述するステップS40において、開始情報を含むゲーム情報が第2情報処理装置2へ送信されることとなる。ステップS68の後、処理部は動作制御処理を終了する。
【0188】
図18の説明に戻り、ステップS39の動作制御処理の次に、ステップS40の処理が実行される。ステップS40において、処理部は、第2情報処理装置2の通信部を用いて、第1情報処理装置1へゲーム情報を送信する。このゲーム情報には、ステップS39において動作が制御された後の第2オブジェクト22に関するオブジェクト情報が含まれる。ステップS40の次に、ステップS41の処理が実行される。
【0189】
ステップS41において、処理部は、ゲーム画像を生成して第2情報処理装置2の表示部に表示する。処理部は、記憶部に記憶される第1および第2オブジェクト情報に基づいて、ステップS37によって動作が制御された後のゲーム空間を表すゲーム画像を生成し、生成されたゲーム画像を表示部に表示する。なお、パンチ動作の結果が発生した場合(すなわち、上記ステップS68の処理が実行される場合)には、処理部は、ゲーム空間を表す画像に加えて、当該結果を表すエフェクト画像を表示する。ステップS41の次に、ステップS42の処理が実行される。
【0190】
ステップS42において、処理部11は、ゲームを終了するか否かを判定する。ステップS42の処理は、上記ステップS24の処理と同様である。ステップS42の判定結果が否定である場合、ステップS31の処理が再度実行される。処理部は、ステップS42においてゲームを終了すると判定されるまで、ステップS31〜S42の処理ループを繰り返し実行する。一方、ステップS42の判定結果が肯定である場合、処理部は、図18に示す受信側ゲーム処理を終了する。
【0191】
[4.本実施形態の作用効果および変形例]
以上に説明した実施形態によれば、第1情報処理装置1は、次の構成を有する。
・仮想空間に配置された第1オブジェクト21を第1情報処理装置1に関するユーザの入力に応じて制御する第1制御手段(ステップS20,S21)
・第1オブジェクト21に関するオブジェクト情報を第2情報処理装置へ送信する第1送信手段(ステップS22)
また、第2情報処理装置2は、次の構成を有する。
・第1情報処理装置1からオブジェクト情報を受信する第1受信手段(ステップS31)
・受信したオブジェクト情報と、第1情報処理装置1と第2情報処理装置2との通信における遅延時間とに基づいて、第1情報処理装置1における第1オブジェクト21の現在位置よりも先の予測位置を算出する予測手段(ステップS38)
・予測位置に基づいて所定のゲーム処理(例えば、オブジェクトの動作を制御する処理、および/または、パンチ動作の結果が発生したか否かを判定する処理)を実行する処理手段(ステップS39および/またはS67)
・所定のゲーム処理の結果を示す結果情報を第1情報処理装置1へ送信する第2送信手段(ステップS40,S68)
【0192】
上記「第1情報処理装置1と第2情報処理装置2との通信における遅延時間」は、第1情報処理装置1から第2情報処理装置2へ情報を送信した場合の遅延時間であってもよいし、第2情報処理装置2から第1情報処理装置1へ情報を送信した場合の遅延時間であってもよいし、これらの遅延時間に基づいて算出される遅延時間であってもよい。
【0193】
また、以上に説明した実施形態によれば、第1情報処理装置1は、上記の第1制御手段および第1送信手段を有し、第2情報処理装置2は、次の構成を有する。
・第1情報処理装置1からオブジェクト情報を受信する受信手段(ステップS31)
・仮想空間に配置された第2オブジェクト22を第2情報処理装置2に関するユーザの入力に応じて制御するとともに、オブジェクト情報に基づいて第1オブジェクトを制御する第2制御手段(ステップS39)
・少なくとも第1オブジェクトを含む画像を表示装置に表示させる表示制御手段(ステップS41)
また、第2制御手段は、所定の条件が満たされた場合、オブジェクト情報に基づく第1オブジェクト21による動作(すなわち、パンチ動作)の一部をスキップする(ステップS35)。
【0194】
上記所定の条件は、例えば、第1情報処理装置1に対する入力に基づいて第1オブジェクト21が所定の動作(例えば、パンチ動作)を開始したことを示す情報を受信手段が受信したことである。
また、上記「スキップする」とは、第1情報処理装置1における第1オブジェクト21による動作の少なくとも一部が、第2情報処理装置2における第1オブジェクト21の動作としては行われないことを意味する。例えば、第1情報処理装置1において、所定数の画像からなるアニメーションを再生することによって上記所定の動作が表示される場合、第2情報処理装置2において、当該所定数の画像のうち少なくとも1つを飛ばしてアニメーションを再生することは、飛ばした画像に対応する動作をスキップしていると言うことができる。
【0195】
(ゲーム内容に関する変形例)
他の実施形態においては、情報処理システムにおいて実行されるゲームの内容は任意である。例えば、他の実施形態においては、ユーザによって操作されるプレイヤキャラクタが射撃を行うゲームが実行されてもよい。このとき、受信側の情報処理装置は、送信側の情報処理装置に対応するキャラクタが発射した弾のオブジェクトについて予測位置を算出することによって、弾のオブジェクトの動作時間(すなわち、弾のオブジェクトが発射されてから、受信側の情報処理装置に対応するキャラクタに当たるまでの時間)を、送信側よりも短くすることができる。
【0196】
なお、受信側の情報処理装置において動作時間を短縮する処理の対象となる動作は、上記実施形態におけるパンチ動作や上記射撃動作の他、ある程度の時間をかけて行われる任意の動作であってよい。例えば、上記処理の対象となる動作は、キャラクタが剣のオブジェクトを振る動作であってもよく、このとき、受信側の情報処理装置は、剣のオブジェクトについて予測位置を算出することによって、剣のオブジェクトの動作時間を送信側よりも短くすることができる。
【0197】
なお、受信側の情報処理装置において動作時間を短縮する処理の対象となる動作は、上記実施形態におけるパンチ動作のように、動作開始後における挙動が入力によって制御されることが可能な動作であってもよいし、動作開始後における挙動が入力によって制御されない動作であってもよい。
【0198】
(情報処理装置間の通信に関する変形例)
なお、情報処理装置間の通信方法は任意である。例えば、他の実施形態において、各情報処理装置1および2は、ネットワーク3を介さずに通信を行ってもよく、例えば近距離無線通信によって直接的に通信を行ってもよい。また例えば、各情報処理装置1および2は、サーバを介して通信を行ってもよい。また、情報処理装置は、ネットワーク3を介した通信を行う機能と、近距離無線通信を行う機能との両方を有していてもよい。
【0199】
他の実施形態においては、情報処理システムは、3つ以上の情報処理装置を含んでいてもよい。このとき、各情報処理装置がピアツーピアで通信を行う形態と、1つの送信側の情報処理装置が複数の受信側の情報処理装置へゲーム情報を送信する形態とのいずれであっても、上記実施形態における処理を適用することによって、上記実施形態と同様の効果を得ることができる。
【0200】
(情報処理を実行する主体に関する変形例)
他の実施形態においては、上記実施形態において送信側の情報処理装置によって実行された処理の一部は、受信側の情報処理装置によって実行されてもよい。また、上記実施形態において受信側の情報処理装置によって実行された処理の一部は、送信側の情報処理装置によって実行されてもよい。例えば、遅延時間を算出する処理は、各情報処理装置1および2のうちの一方の装置によって実行されてもよく、このとき、他方の装置は、当該一方の装置から遅延時間の情報を取得するようにしてもよい。
【0201】
また、他の実施形態においては、各情報処理装置1および2がサーバと通信可能である場合において、各情報処理装置1または2において実行された処理は、情報処理装置とサーバとの協働によって実行されてもよい。すなわち、図17図20に示す各ステップの処理のうちの一部の処理(例えば、遅延時間を算出する処理)は、サーバによって実行されてもよい。
【産業上の利用可能性】
【0202】
上記実施形態は、情報処理装置間でオブジェクトの動作について同期を取りやすくすること等を目的として、例えばゲームシステム、ゲーム装置、ゲームプログラム等に利用することができる。
【符号の説明】
【0203】
1 第1情報処理装置
2 第2情報処理装置
11 処理部
12 記憶部
13 入力部
14 表示部
15 通信部
21 第1オブジェクト
22 第2オブジェクト
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20