(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022161000
(43)【公開日】2022-10-20
(54)【発明の名称】情報処理プログラム、情報処理システム、情報処理装置、および情報処理方法
(51)【国際特許分類】
A63F 13/55 20140101AFI20221013BHJP
A63F 13/30 20140101ALI20221013BHJP
A63F 13/812 20140101ALN20221013BHJP
【FI】
A63F13/55
A63F13/30
A63F13/812 D
【審査請求】未請求
【請求項の数】11
【出願形態】OL
【公開請求】
(21)【出願番号】P 2022022411
(22)【出願日】2022-02-16
(71)【出願人】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】110001276
【氏名又は名称】特許業務法人 小笠原特許事務所
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】正岡 隆史
(72)【発明者】
【氏名】辰田 英之
(72)【発明者】
【氏名】吉川 和宏
(72)【発明者】
【氏名】鈴木 亮祐
(57)【要約】
【課題】ユーザ装置における移動オブジェクトの位置と、移動オブジェクトに対してアクションを行う相手キャラクタオブジェクトの位置との表示が不自然となることを防止する。
【解決手段】相手キャラクタの位置を、相手装置から逐次受信する位置データに基づいて制御する。相手キャラクタの位置を、位置データと、移動オブジェクトの移動方向と、自装置との通信における遅延時間とに基づいて調整する。相手装置から受信したデータに基づいて、相手キャラクタに、移動オブジェクトに対するアクションを行わせる。
【選択図】
図12
【特許請求の範囲】
【請求項1】
第1情報処理装置のコンピュータを、
第2情報処理装置とデータを送受信する通信手段、
仮想空間に、第1情報処理装置の第1ユーザに対応する自キャラクタオブジェクト、第2情報処理装置の第2ユーザに対応する相手キャラクタオブジェクト、移動オブジェクトを配置する配置手段、
前記自キャラクタオブジェクトと前記移動オブジェクトとの少なくとも位置関係に関する所定条件を満たす場合、前記移動オブジェクトを移動させる移動手段、
前記相手キャラクタオブジェクトの位置を、前記第2情報処理装置から逐次受信する位置データに基づいて制御する相手キャラクタ位置制御手段、
前記相手キャラクタオブジェクトの位置を、前記位置データと、前記移動オブジェクトの移動方向と、前記第1情報処理装置との通信における遅延時間とに基づいて調整する相手キャラクタ位置調整手段、
前記第2情報処理装置から受信したデータに基づいて、前記相手キャラクタオブジェクトに、前記移動オブジェクトに対するアクションを行わせるアクション実行手段として機能させる、情報処理プログラム。
【請求項2】
前記相手キャラクタ位置調整手段は、前記移動オブジェクトの移動方向に向けて、前記相手キャラクタオブジェクトの位置を調整する、請求項1に記載の情報処理プログラム。
【請求項3】
前記相手キャラクタ位置調整手段は、前記遅延時間に基づいて算出される調整距離に基づいて、仮想空間内で前記相手キャラクタオブジェクトの位置を調整する、請求項1又は2に記載の情報処理プログラム。
【請求項4】
前記移動オブジェクトの移動方向に基づいて、前記相手キャラクタオブジェクトの移動方向を算出する算出手段として前記コンピュータをさらに機能させ、
前記相手キャラクタ位置調整手段は、前記相手キャラクタオブジェクトの移動方向を調整することによって、当該相手キャラクタオブジェクトの位置を調整する、請求項1~3の何れかに記載の情報処理プログラム。
【請求項5】
前記移動オブジェクトの移動方向に基づいて、前記相手キャラクタオブジェクトの移動方向と移動速度を算出する算出手段として前記コンピュータをさらに機能させ、
前記相手キャラクタ位置調整手段は、前記相手キャラクタオブジェクトの移動方向と移動速度を調整することによって、当該相手キャラクタオブジェクトの位置を調整する、請求項4に記載の情報処理プログラム。
【請求項6】
前記相手キャラクタオブジェクトを前記第2情報処理装置において自動的に移動させるための情報として、前記移動オブジェクトの移動方向を含むデータを当該第2情報処理装置に送信する送信手段として前記コンピュータをさらに機能させる、請求項1~5の何れかに記載の情報処理プログラム。
【請求項7】
前記相手キャラクタオブジェクトが前記アクションを行った場合、前記第2情報処理装置から受信する前記位置データが示す位置に対し、当該相手キャラクタオブジェクトを移動させる、請求項1~6の何れかに記載の情報処理プログラム。
【請求項8】
前記相手キャラクタ位置調整手段は、前記遅延時間が所定の閾値を超えている場合に、前記相手キャラクタオブジェクトの位置を調整する、請求項1~7の何れかに記載の情報処理プログラム。
【請求項9】
プロセッサを備える第1情報処理装置の情報処理システムであって、
前記プロセッサは、
第2情報処理装置とデータを送受信し、
仮想空間に、第1情報処理装置の第1ユーザに対応する自キャラクタオブジェクト、第2情報処理装置の第2ユーザに対応する相手キャラクタオブジェクト、移動オブジェクトを配置し、
前記自キャラクタオブジェクトと前記移動オブジェクトとの少なくとも位置関係に関する所定条件を満たす場合、前記移動オブジェクトを移動させ、
前記相手キャラクタオブジェクトの位置を、前記第2情報処理装置から逐次受信する位置データに基づいて制御し、
前記相手キャラクタオブジェクトの位置を、前記位置データと、前記移動オブジェクトの移動方向と、前記第1情報処理装置との通信における遅延時間とに基づいて調整し、
前記第2情報処理装置から受信したデータに基づいて、前記相手キャラクタオブジェクトに、前記移動オブジェクトに対するアクションを行わせる、情報処理システム。
【請求項10】
プロセッサを備える第1情報処理装置であって、
前記プロセッサは、
第2情報処理装置とデータを送受信し、
仮想空間に、第1情報処理装置の第1ユーザに対応する自キャラクタオブジェクト、第2情報処理装置の第2ユーザに対応する相手キャラクタオブジェクト、移動オブジェクトを配置し、
前記自キャラクタオブジェクトと前記移動オブジェクトとの少なくとも位置関係に関する所定条件を満たす場合、前記移動オブジェクトを移動させ、
前記相手キャラクタオブジェクトの位置を、前記第2情報処理装置から逐次受信する位置データに基づいて制御し、
前記相手キャラクタオブジェクトの位置を、前記位置データと、前記移動オブジェクトの移動方向と、前記第1情報処理装置との通信における遅延時間とに基づいて調整し、
前記第2情報処理装置から受信したデータに基づいて、前記相手キャラクタオブジェクトに、前記移動オブジェクトに対するアクションを行わせる、情報処理装置。
【請求項11】
第1情報処理装置のコンピュータに、
第2情報処理装置とデータを送受信させ、
仮想空間に、第1情報処理装置の第1ユーザに対応する自キャラクタオブジェクト、第2情報処理装置の第2ユーザに対応する相手キャラクタオブジェクト、移動オブジェクトを配置させ、
前記自キャラクタオブジェクトと前記移動オブジェクトとの少なくとも位置関係に関する所定条件を満たす場合、前記移動オブジェクトを移動させ、
前記相手キャラクタオブジェクトの位置を、前記第2情報処理装置から逐次受信する位置データに基づいて制御させ、
前記相手キャラクタオブジェクトの位置を、前記位置データと、前記移動オブジェクトの移動方向と、前記第1情報処理装置との通信における遅延時間とに基づいて調整させ、
前記第2情報処理装置から受信したデータに基づいて、前記相手キャラクタオブジェクトに、前記移動オブジェクトに対するアクションを行わせる、情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、スポーツゲーム等の情報処理に関する。
【背景技術】
【0002】
従来から、相手装置から受信したデータに基づいて移動オブジェクトの現在位置よりも先の予測位置を計算し、当該予測位置に基づいて移動オブジェクトに関する処理を行うゲーム処理が知られている(例えば特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記したゲーム処理において、通信遅延の状況によっては、ユーザの装置における移動オブジェクトの位置の表示と、移動オブジェクトに対してアクションを行う相手キャラクタオブジェクトの位置の表示との関係が不自然となる場合があった。
【0005】
それ故に、本発明の目的は、ユーザの装置における移動オブジェクトの位置の表示と、移動オブジェクトに対してアクションを行う相手キャラクタオブジェクトの位置の表示との関係が不自然となることを防止できる情報処理プログラム、情報処理システム、情報処理装置、および情報処理方法を提供することである。
【課題を解決するための手段】
【0006】
上記目的を達成するために、例えば以下のような構成例が挙げられる。
【0007】
構成例の一例は、第1情報処理装置のコンピュータを、通信手段、配置手段、移動手段、相手キャラクタ位置制御手段、相手キャラクタ位置調整手段、アクション実行手段として機能させる。通信手段は、第2情報処理装置とデータを送受信する。配置手段は、仮想空間に、第1情報処理装置の第1ユーザに対応する自キャラクタオブジェクト、第2情報処理装置の第2ユーザに対応する相手キャラクタオブジェクト、移動オブジェクトを配置する。移動手段は、自キャラクタオブジェクトと移動オブジェクトとの少なくとも位置関係に関する所定条件を満たす場合、移動オブジェクトを移動させる。相手キャラクタ位置制御手段は、相手キャラクタオブジェクトの位置を、第2情報処理装置から逐次受信する位置データに基づいて制御する。相手キャラクタ位置調整手段は、相手キャラクタオブジェクトの位置を、位置データと、移動オブジェクトの移動方向と、第1情報処理装置との通信における遅延時間とに基づいて調整する。アクション実行手段は、第2情報処理装置から受信したデータに基づいて、相手キャラクタオブジェクトに、移動オブジェクトに対するアクションを行わせる。
【0008】
上記構成によれば、相手キャラクタオブジェクトと移動オブジェクトとの位置関係が不自然になることを防止できる。
【0009】
他の構成として、相手キャラクタ位置調整手段は、移動オブジェクトの移動方向に向けて、相手キャラクタオブジェクトの位置を調整してもよい。
【0010】
上記構成によれば、相手キャラクタオブジェクトと移動オブジェクトとの前後の位置関係が不自然になることを防止できる。
【0011】
他の構成として、相手キャラクタ位置調整手段は、遅延時間に基づいて算出される調整距離に基づいて、仮想空間内で相手キャラクタオブジェクトの位置を調整してもよい。
【0012】
上記構成によれば、遅延時間を考慮して相手キャラクタオブジェクトと移動オブジェクトとの位置関係を調整できる。
【0013】
他の構成として、移動オブジェクトの移動方向に基づいて、相手キャラクタオブジェクトの移動方向を算出する算出手段としてコンピュータをさらに機能させ、相手キャラクタ位置調整手段は、相手キャラクタオブジェクトの移動方向を調整することによって、当該相手キャラクタオブジェクトの位置を調整してもよい。
【0014】
上記構成によれば、相手キャラクタオブジェクトの移動に伴って、自然に、相手キャラクタオブジェクトと移動オブジェクトとの位置関係を調整できる。
【0015】
他の構成として、移動オブジェクトの移動方向に基づいて、相手キャラクタオブジェクトの移動方向と移動速度を算出する算出手段としてコンピュータをさらに機能させ、相手キャラクタ位置調整手段は、相手キャラクタオブジェクトの移動方向と移動速度を調整することによって、当該相手キャラクタオブジェクトの位置を調整してもよい。
【0016】
上記構成によれば、相手キャラクタオブジェクトの移動に伴って、自然に、相手キャラクタオブジェクトと移動オブジェクトとの位置関係を調整できる。
【0017】
他の構成として、相手キャラクタオブジェクトを第2情報処理装置において自動的に移動させるための情報として、移動オブジェクトの移動方向を含むデータを当該第2情報処理装置に送信する送信手段としてコンピュータをさらに機能させてもよい。
【0018】
他の構成として、相手キャラクタオブジェクトがアクションを行った場合、第2情報処理装置から受信する位置データが示す位置に対し、当該相手キャラクタオブジェクトを移動させてもよい。
【0019】
上記構成によれば、アクションを行った後の相手キャラクタオブジェクトの位置を、調整された位置から本来の位置に戻すことができる。
【0020】
他の構成として、相手キャラクタ位置調整手段は、遅延時間が所定の閾値を超えている場合に、相手キャラクタオブジェクトの位置を調整してもよい。
【0021】
上記構成によれば、遅延時間との関係において必要な場合にだけ、相手キャラクタオブジェクトの位置を調整できる。
【発明の効果】
【0022】
本実施形態によれば、ユーザの装置における移動オブジェクトの位置の表示と、移動オブジェクトに対してアクションを行う相手キャラクタオブジェクトの位置の表示との関係が不自然となることを防止できる情報処理プログラム、情報処理システム、情報処理装置、および情報処理方法を提供することができる。
【図面の簡単な説明】
【0023】
【
図1】ゲーム装置2の内部構成等の一例を示すブロック図
【
図3】自キャラクタがショットした場合の通信遅延等について説明するための図
【
図4】テニスゲーム画像の一例について説明するための図
【
図5】自キャラクタがショットしたボールの移動速度調整について説明するための図
【
図6】テニスゲーム画像の一例について説明するための図
【
図7】テニスゲーム画像の一例について説明するための図
【
図8】自キャラクタがショットしたボールの1回目のバウンドから2回目のバウンドの間の移動速度調整について説明するための図
【
図9】テニスゲーム画像の一例について説明するための図
【
図10】自キャラクタがミスショットしたボールの移動速度調整について説明するための図
【
図11】自キャラクタがショットした場合の相手キャラクタの位置調整について説明するための図
【
図12】自キャラクタがショットした場合の相手キャラクタの位置調整について説明するための図
【
図13】記憶部22に記憶される各種データの例を示す図
【発明を実施するための形態】
【0024】
以下、一実施形態について説明する。
【0025】
[情報処理装置のハードウェア構成]
まず、本実施形態にかかる情報処理を実行するための情報処理装置について説明する。当該情報処理装置は、例えばスマートフォン、据置型または携帯型のゲーム装置、タブレット端末、携帯電話、パーソナルコンピュータ、ウェアラブル端末等である。また、本実施形態にかかる情報処理は、上記のようなゲーム装置等と、所定のサーバとから構成されるゲームシステムにも適用可能である。本実施形態では、据置型ゲーム装置(「ゲーム装置」という場合がある)を情報処理装置の一例として説明する。
【0026】
図1は、本実施形態に係るゲーム装置2の内部構成等の一例を示すブロック図である。ゲーム装置2は、プロセッサ21を備える。プロセッサ21は、ゲーム装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ21は、記憶部22に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。なお、記憶部22は、例えば、フラッシュメモリやDRAM(Dynamic Random Access Memory)等の内部記憶媒体であってもよいし、図示しないスロットに装着される外部記憶媒体等を利用する構成でもよい。
【0027】
また、ゲーム装置2は、ゲーム装置2が他のゲーム装置2や所定のサーバ装置と無線通信を行うための無線通信部23を備える。当該無線通信としては、例えば、インターネット通信や近距離無線通信が用いられる。
【0028】
また、ゲーム装置2は、ゲーム装置2がコントローラ4と有線または無線通信を行うためのコントローラ通信部24を備える。
【0029】
また、ゲーム装置2には、画像音声出力部25を介して表示部5(例えば、テレビ等)が接続される。プロセッサ21は、(例えば、上記の情報処理の実行によって)生成した画像や音声を、画像音声出力部25を介して表示部5に出力する。
【0030】
次に、コントローラ4について説明する。コントローラ4は、方向入力デバイスの一例であるアナログスティック42を少なくとも1つ備える。当該アナログスティック42は、方向を入力することが可能な方向入力部として用いることができる。ユーザ(プレイヤ)は、アナログスティック42を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。また、コントローラ4は、各種操作ボタンを含むボタン部43を備える。例えば、コントローラ4は、当該コントローラ4のハウジングの主面上に複数の操作ボタン(例えば、Aボタン、Bボタン、Xボタン、Yボタン)を備えていてもよい。
【0031】
また、コントローラ4は、慣性センサー44を備える。具体的には、コントローラ4は、慣性センサー44として、加速度センサー、角速度センサーを備えている。本実施形態においては、加速度センサーは、所定の3軸方向に沿った加速度の大きさを検出する。また、角速度センサーは、所定の3軸回りの角速度を検出する。
【0032】
また、コントローラ4は、コントローラ通信部24と有線または無線通信を行うための通信部41を備える。アナログスティック42に対する方向入力内容、ボタン部43の押下状態を示す情報、および、慣性センサー44による各種の検出結果は、適宜のタイミングで繰り返し通信部41へ出力され、ゲーム装置2に送信される。
【0033】
[本実施形態で想定するゲームについて]
次に、本実施形態にかかるゲーム装置2で実行されるゲーム処理(情報処理の一例)の概要を説明する。まず、
図2に示すように、本実施形態で想定するゲームは、一例として、シングルスのテニスをモチーフにしたテニスゲームである。具体的には、本ゲームでは、仮想的な人型のオブジェクトである2つの選手キャラクタオブジェクト(「キャラクタ」という場合がある)を、仮想空間内に用意されたテニスコートの自分側コートと相手側コートにそれぞれ1つ配置して、テニスゲームが行われる。
【0034】
また、本ゲームは、インターネット等のネットワークを介して又は近距離無線通信等によって2人のユーザでプレイすることが可能である。本実施形態では、1人のユーザが1人のキャラクタを担当して操作する場合を想定する。なお、相手のユーザがいない場合には、相手のキャラクタはコンピュータにより自動で動作する。
【0035】
[本実施形態のゲーム処理の概要]
次に、本実施形態にかかるゲーム装置2で実行されるゲーム処理の概要を説明する。
図2に示すように、本ゲームでは、仮想空間内に配置された地面オブジェクト一部がテニスコート51となっており、又、テニスコート51の周りの地面の領域としてコート外周領域52が設けられている。また、テニスコート51(およびコート外周領域52)には、自分側コートにユーザが操作するキャラクタオブジェクト(「自キャラクタ」という場合がある)61が配置され、相手側コートに相手のキャラクタオブジェクト(「相手キャラクタ」という場合がある)62が配置される。そして、自キャラクタ61と相手キャラクタ62とで、ボールオブジェクト(移動オブジェクト;「ボール」という場合がある)50をテニスラケットで打ち合ってテニスゲームが進行する。また、本ゲームでは、キャラクタ(自キャラクタ61、相手キャラクタ62)はボール50を打つべき位置(当該キャラクタがボールを打つことが可能な所定の位置関係となる位置)にコンピュータにより自動的に移動し、ユーザ(プレイヤ)は、所定の操作ボタンを適切なタイミング(例えば、当該位置関係となっている期間内のタイミング)で操作することによって当該キャラクタにテニスラケットを振る動作を行わせて、テニスボールを打つことができる。なお、操作ボタンの操作ではなく、コントローラ4を振る操作によって、当該キャラクタにテニスラケットを振る動作を行わせて、テニスボールを打つものとしてもよい。
【0036】
また、仮想空間に配置される仮想カメラは、自キャラクタ61の背後側の上方からテニスコート51およびコート外周領域52を含む領域が撮影範囲に含まれるように見下ろして撮影して、
図2に示すようなゲーム画像を生成する。また、仮想カメラは、プレイヤキャラクタ61の左右の移動(X軸方向の移動)に合わせて左右に移動して、プレイヤキャラクタ61の背後側の上方から仮想空間を撮影する。
【0037】
図3は、ユーザが操作するゲーム装置2(「自装置」という場合がある)と相手ユーザが操作するゲーム装置2(「相手装置」という場合がある)との通信遅延に関して説明するための通信タイミングチャートである。以下、
図3を参照して、自装置においてユーザの操作により自キャラクタ61が相手側コートに向けてショットを打って、相手装置において相手ユーザの操作により相手キャラクタ62が自分側コートに向けて当該ショットを打ち返した場合について説明する。
【0038】
まず、
図3に示すように、T1において、自装置の仮想空間(ゲーム空間)で自キャラクタ61が相手側コートに向けてショットを打つと、自装置の仮想空間でボール50の移動が開始されると共に自キャラクタ61がショットを打ったことを示すショットデータが相手装置に送信される。ここで、インターネットを介して通信が行われている場合等には、自装置と相手装置との通信における往復遅延時間(Round-Trip Time:「RTT」という場合がある)が発生し、又、当該往復遅延時間が長くなる場合がある。このため、
図3に示すように、T1において、自装置から送信されたショットデータは、T2において相手装置に受信されて、相手装置の仮想空間(ゲーム空間)でボール50の移動が開始される。その後、T3において、相手装置の仮想空間で相手ユーザの操作により相手キャラクタ62(相手装置にとっては自キャラクタ61)がボール50を打ち返すと、相手キャラクタ62がショットを打ったことを示すショットデータが自装置に送信される。その後、RTTの影響により、相手装置から送信されたショットデータは、T4において自装置に受信される。
【0039】
ここで、
図3に示すように、自装置の仮想空間をボール50が移動する時間(T1~T4の期間)は、相手装置の仮想空間をボール50が移動する時間(T2~T3の期間)よりも長くなる。このことから、自装置の仮想空間におけるボール50の移動速度と相手装置の仮想空間におけるボール50の移動速度とが同じである場合、自装置のゲーム画像において、不自然な表示(違和感のある表示)が行われる場合がある。
図4は、このような場合に生じ得る自装置の不自然なゲーム画像の表示について説明するための図である。
【0040】
まず、
図4(1)に示すように、ボール50の移動速度が相手装置の仮想空間のボール50の移動速度と同じであることから、自装置の仮想空間(ゲーム画像)において、相手キャラクタ62の位置を通り過ぎて相手キャラクタ62がショットを打ち返せなかった表示が行われる。その後、
図3のT3において相手キャラクタ62によりボール50が打ち返されて、自装置の仮想空間(ゲーム画像)において、
図4(2)に示すように、ショットを打ち返せなかったはずの相手キャラクタ62がショットを打ち返すということが起きてしまう場合がある。
【0041】
そこで、本ゲーム処理では、自装置の仮想空間(ゲーム画像)において、RTTの長さに応じて、ボール50の移動速度の減速率を決定する。そして、時間経過に応じて徐々に(滑らかに)当該減速率が示す速度になるようにショットされたボール50の移動速度を調整する。
【0042】
図5(1)は、ショットした時点で計測したRTTの長さと、自キャラクタ61によってショット(通常ショット、スマッシュ、ロブ等)されたボール50の移動速度の減速率との関係を示すグラフの一例である。
図5(1)に実線で示すように、RTTが長くなるに従って、ショットされたボール50の移動速度の減速率は(滑らかなカーブを描いて)増加し、RTTが400ミリ秒以上では当該減速率は一定となりそれ以上は増加しない。そして、例えばRTTが400ミリ秒の場合には上記減速率は25%に決定され、この場合、ショットされたボール50の移動速度は最終的に25%減速されることとなる。なお、上記減速率を「第1減少値」と呼んでもよい。また、上記減速率によって減少されるボール50の移動速度を「目標速度」と呼んでもよい。また、本ゲーム処理では、RTTが所定値以上の場合には、通信環境が悪いことから試合を中断すべきと判断して、試合を中断する。
【0043】
また、本ゲーム処理では、ボール50の移動速度が上記減速率が示す速度(目標速度)に徐々に(滑らかに)到達するように、減速率を反映させる反映率を時間経過に応じて徐々に(滑らかに)増加させる。
図5(2)は、上記反映率と時間経過との関係を示すグラフの一例である。
図5(2)に実線で示すように、反映率は、時間0の時点で25%であり、その後、時間経過に応じて25%から徐々に(滑らかに)増加して最終的に100%となる。なお、本ゲーム処理では、一例として、反映率を100%にまで到達させるまでの時間(反映完了時間)を、500ミリ秒としている。
図5(3)は、反映率を時間経過に応じて徐々に増加させることによって、ショットされたボール50の移動速度が減速率が示す速度(目標速度)に徐々に到達するように調整(減速)した例を示すグラフである。
図5(3)に実線で示すように、ショットされたボール50の移動速度は、ショット直後に25%減速された後に、時間経過に応じて徐々に(滑らかに)反映率が増加して(
図5(2)参照)、最終的に減速率が示す移動速度(目標速度)となる。なお、本ゲーム処理では、一例として、ショットされたボール50の移動速度を目標速度に到達させるまでの時間を、500ミリ秒としている。
【0044】
図6は、上記した処理を行う場合の自装置のゲーム画像の表示について説明するための図である。
図6に示すように、自装置の仮想空間(ゲーム画像)において、ボール50を減速することによって相手キャラクタ62の位置をボール50が通り過ぎる前に(
図6(1)参照)相手キャラクタ62がショットを打ち返すこととなり(
図6(2)参照)、
図4を用いて説明した不自然な(違和感のある)ゲーム画像の表示を防止することができる。
【0045】
また、本ゲーム処理では、
図5を参照して説明したように、ショットされたボール50の移動速度が、ショット直後に或る程度減速されてから徐々に(滑らかに)減速して、最
終的に減速率が示す移動速度となる。つまり、ショットされたボール50の移動速度は、最初のうちはそれほど減速されず、時間経過に応じて徐々に大きく減速されていく。このことから、本ゲーム処理によれば、通信遅延による不自然なゲーム画像の表示を防止しつつ、自キャラクタ61がショットした際のユーザの爽快感を確保することができる。
【0046】
次に、自キャラクタ61が打ったショットが相手側コート内で1回目のバウンドをしてから、相手側コート内又は相手側コート外で2回目のバウンドをする場合について説明する。本ゲーム処理においても、一般のテニスと同様に、自キャラクタ61が打ったショットが相手側コート内で1回目のバウンドをしてから、相手側コート内又は相手側コート外で2回目のバウンドをすると、自キャラクタ61側に得点が付与される。ここで、
図3を用いて説明したようにRTTが比較的長い場合には、
図7(1)に示すように、自装置の仮想空間(ゲーム画像)において、自キャラクタ61が打ったボール50が2回目のバウンドをして相手キャラクタ62がショットを打ち返せなかった表示が行われた後に、相手キャラクタ62によりボール50が打ち返されて(
図3のT3参照)、自装置の仮想空間(ゲーム画像)において、
図7(2)に示すように相手キャラクタ62がショットを打ち返すという不自然な表示が行われてしまう場合がある。つまり、自キャラクタ61が打ったボール50が2回目のバウンドをして得点が得られたように見える表示が行われた後に、相手キャラクタ62が2回目のバウンドの前にショットを打ち返すという不自然な表示が行われてしまう場合がある。
【0047】
そこで、本ゲーム処理では、自装置の仮想空間(ゲーム画像)において、自キャラクタ61が打ったショットの1回目のバウンド以降の期間において、ボール50の移動速度を調整する。
図8は、自装置の仮想空間(ゲーム画像)において自キャラクタ61が打ったショットの1回目のバウンド以降の期間における、ボール50の移動速度の減速率と時間経過との関係を示すグラフの一例である。なお、
図8を参照して以下に説明するボール50の速度調整(減速処理)は、
図5を用いて説明したショットの速度調整(減速処理)を実行した後の速度に対して実行される。また、自キャラクタ61がショットを打ってから1回目のバウンドをするまでのボール50の移動経路を「第1移動経路」と呼び、1回目のバウンドをしてから2回目のバウンドをするまでのボール50の移動経路を「第2移動経路」と呼んでもよい。
【0048】
図8に実線で示すように、ボール50の減速率は、グラフの時間0の時点に対応する1回目のバウンド時点で10%になり、その後、時間経過に応じて緩やかに増加していく。その後、
図8に示すように、ボール50の減速率は急激に増加して最終的に100%となり(つまり、移動速度が0になり)、ボール50は第2移動経路の終点位置で停止する。
【0049】
ここで、自キャラクタ61がショットを打った場合、相手キャラクタ62がショットを打ち返したことを示す情報(
図3のT3に示す「ショットデータ」)又はショットを打ち返せなかったことを示す情報(「返球失敗データ」という場合がある)が相手装置から自装置に送信される。自装置は、相手装置から送信された上記ショットデータを受信すると、自装置の仮想空間(ゲーム画像)において、相手キャラクタ62がショットを打ち返した動作(アクション)の表示を行い、ボール50が打ち返された表示を行う。また、自装置は、相手装置から送信された上記返球失敗データを受信すると、自装置の仮想空間(ゲーム画像)において、相手キャラクタ62がショットを打ち返すことができず、減速して移動していたボール50又は停止していたボール50が奥行方向(
図2のZ軸方向)に移動する表示を行う。この場合、自装置は、
図8に示すボール50の速度調整を終了して、上記基準速度でボール50を移動制御する。
【0050】
図9は、上記した処理を行う場合の自装置のゲーム画像の表示について説明するための図である。
図9(1)に示すように、本ゲーム処理では、自装置の仮想空間(ゲーム画像)において、1回目のバウンド以後にボール50を緩やかに減速させてから急激に減速させ、ショットデータ又は返球失敗データを受信するまでに時間がかかりすぎると(つまり所定の時間が経過すると)ボール50を停止させる。その後、相手キャラクタ62がショットを打ち返した場合、
図9(2)に示すように、自装置の仮想空間(ゲーム画像)において、相手キャラクタ62がショットを打ち返した表示が行われる。このことにより、本ゲーム処理によれば、
図7を用いて説明したような不自然な(違和感のある)ゲーム画像の表示を防止することができる。
【0051】
次に、自キャラクタ61がミスショットを打った場合について説明する。本ゲーム処理では、ユーザが所定のタイミング(例えば、所定の0.2秒間のタイミング;「ショット成功タイミング」という場合がある)で所定のボタンを操作すると、自キャラクタ61がショットに成功する。一方、ユーザがショット成功タイミングの前後の所定タイミング(例えば、ショット成功タイミングの前後にそれぞれ設けられる0.1秒間のタイミング;「ミスショットタイミング」という場合がある)で所定のボタンを操作すると、自キャラクタ61はミスショット(ミスショット状態のボール50)を相手側コートに向けて打つ。なお、上記したミスショットが打たれるための条件を、「不利条件」と呼んでもよい。
【0052】
ミスショット状態のボール50には、ミスショットであることを示すミスショット属性が付加され、それに応じてミスショットであることを示すエフェクト画像が付加される。相手キャラクタ62は、ミスショット状態のボール50(ミスショット属性が付加されたボール50)を打ち返すことでスマッシュを打ち返すことができる。このようなミスショット状態のボール50は、山なりの軌道で移動し、落ちてくる際に一定の高さ以下になると、付加されたミスショット属性が解除され、付加されたエフェクト画像の表示も非表示となり、ミスショット状態ではなくなる。
【0053】
そして、ミスショット状態のボール50の移動速度を調整しない場合、自装置の仮想空間(ゲーム画像)において、ミスショット属性が解除されてミスショット状態ではなくなっているにも関わらず、相手装置からのデータ受信(ショットデータの受信)が遅れるために、相手装置の相手キャラクタ62がスマッシュを打ち返してくる不自然なゲーム画像の表示が行われる場合があった。
【0054】
そこで、本ゲーム処理では、自装置の仮想空間(ゲーム画像)において、自キャラクタ61が打ったミスショットのボール50の移動速度を調整する。
図10は、自装置の仮想空間(ゲーム画像)における、自キャラクタ61が打ったミスショットのボール50の移動速度と時間経過との関係を示すグラフの一例である。
図10に示すように、ボール50の移動速度は、ミスショットを打った時点から調整前速度に対して一定の割合低下し、その後、所定時間経過した所定のタイミング(例えば、ミスショットのボール50が落下して地面から所定の高さ(例えば1メートル)の位置に到達する所定のタイミング)において急激に低下する。つまり、ボール50の移動速度は、所定の減少値(「第2減少値」と呼んでもよい)に基づいて調整される。その後、
図10に示すように、ボール50の移動速度は最終的に0となり、ボール50は停止する。
【0055】
これにより、本ゲーム処理によれば、自装置の仮想空間(ゲーム画像)において、ミスショット属性が付加された状態(ミスショット状態)が長く継続されるので、相手キャラクタ62がスマッシュを打ったことを示すデータを受信するまでの時間を稼ぐことができ、上記した不自然な(違和感のある)ゲーム画像の表示が行われることを防止できる。
【0056】
次に、自キャラクタ61がショットを打った場合において、自装置の仮想空間(ゲーム画像)において相手キャラクタ62の位置を調整する処理について説明する。
図5等を用いて説明したように、自装置の仮想空間(ゲーム画像)におけるボール50の速度調整によって、通信遅延(RTT)による不自然な表示が行われることを基本的には防止できる。しかし、RTTが或る程度長くなると、ボール50の速度調整だけでは不自然な表示(
図4参照)が行われることを防止できない場合がある。そこで、本ゲーム処理では、RTTの長さが所定以上になると、RTTの長さに応じて、自装置の仮想空間(ゲーム画像)において相手キャラクタ62の位置を本来の位置からボール50の進行方向にずらす処理を行う。以下、
図11および
図12を参照して具体的に説明する。
【0057】
図11は、自キャラクタ61がショットした時点で計測したRTTの長さと、自装置の仮想空間(ゲーム画像)において相手キャラクタ62の位置を本来の位置からボール50の進行方向にずらす距離(「後退距離」という場合がある)との関係を示すグラフである。
図12は、自装置の仮想空間(
図2参照)のテニスコート52を上方から見た図であり、相手キャラクタ62の位置調整について説明するための図である。なお、
図12では、自キャラクタ61および相手キャラクタ62を丸形状で表している。
【0058】
図11に示すように、本ゲーム処理では、自キャラクタ61がショットを打った時点のRTTが所定値以上になると、当該RTTの長さに応じて、自装置の仮想空間(ゲーム画像)において相手キャラクタ62を本来の位置からボール50の進行方向に後退させる。また、
図11に示すように、相手キャラクタ62の後退距離は、RTTが長くなるほど長くなる。
【0059】
次に、
図12を参照して、自装置の仮想空間(ゲーム画像)において相手キャラクタ62を本来の位置から後退させる処理について、具体的に説明する。まず、自キャラクタ61が打ったボール50の移動方向70と、相手キャラクタ62の位置(本来の現在位置)62-1とから、相手キャラクタ62の移動先の位置(本来の移動先位置)62-2を算出し、位置62-1から位置62-2に向かう本来の移動経路70-1を算出する。この本来の移動経路70-1は、相手キャラクタ62の位置調整を行わない場合の移動経路である。なお、本ゲーム処理では、自キャラクタ61および相手キャラクタ62は、ショットを打つための位置に自動的に移動する。
【0060】
そして、自キャラクタ61がショットを打った時点のRTTに基づいて相手キャラクタ62の後退距離(「調整距離」と呼んでもよい)が決定され(
図11参照)、決定された後退距離だけ、
図12に示すように、位置62-1、位置62-2および本来の移動経路70-1を、互いの位置関係を変えることなくボール50の進行方向(移動方向70)に移動させて、位置(目標の現在位置)62-3、位置(目標の移動先位置)62-4および目標の移動経路70-2を算出する。そして、時間経過に応じて一定割合で、本来の移動経路70-1から目標の移動経路70-2に近づいていく調整移動経路70-3を算出して自装置の仮想空間(ゲーム画像)において調整移動経路70-3で相手キャラクタ62が移動するように、相手キャラクタ62の移動方向および移動速度を調整する。なお、自キャラクタ61がショットしたボール50が2回目のバウンドをする位置よりも後方(Z軸基準で後方)において相手キャラクタ62がショットを打ち返すことは無い。このため、上記した後退距離の決定によって相手キャラクタ62を後退させる位置は、最大で上記2回目のバウンド位置(Z軸基準の位置で2回目のバウンド位置)までとしている。つまり、上記した後退距離は、上記2回目のバウンド位置よりも相手キャラクタ62を後退させない範囲で決定される。
【0061】
ここで、上記の処理とは異なる処理によって調整移動経路70-3を算出して、自装置の仮想空間(ゲーム画像)において調整移動経路70-3で相手キャラクタ62が移動するように、相手キャラクタ62の移動方向および移動速度を調整してもよい。以下、
図12を参照して具体的に説明する。まず、上記の処理と同様に、自キャラクタ61が打ったボール50の移動方向70と、相手キャラクタ62の位置(本来の現在位置)62-1とから、相手キャラクタ62の移動先の位置(本来の移動先位置)62-2を算出する。そして、自キャラクタ61がショットを打った時点のRTTに基づいて決定された相手キャラクタ62の後退距離(
図11参照)だけ、位置62-2をボール50の進行方向(移動方向70)に移動させた位置として、位置(目標の移動先位置)62-4を算出する。その後、位置62-1から位置62-4に向けて相手キャラクタ62が移動する調整移動経路70-3を算出して、当該調整移動経路70-3で相手キャラクタ62が移動するように、相手キャラクタ62の移動方向および移動速度を調整する。
【0062】
これにより、本ゲーム処理によれば、RTTが或る程度長くなった場合においても、自装置の仮想空間(ゲーム画像)において、ショットを打ち返せなかったはずの相手キャラクタ62がショットを打ち返す不自然な表示(
図4参照)が行われることを防止できる。
【0063】
なお、本ゲーム処理では、自装置の仮想空間(ゲーム画像)において、相手キャラクタ62がショットを打ち返してから自キャラクタ61がそれを打ち返すまでの期間に、上記処理によって調整された相手キャラクタ62の位置が本来の位置に徐々に戻るように移動制御している。
【0064】
[本実施形態の情報処理の詳細]
次に、
図13~
図16を参照して、本実施形態の情報処理について詳細に説明する。
【0065】
[使用データについて]
本ゲーム処理において用いられる各種データに関して説明する。
図13は、ゲーム装置2の記憶部22に格納されるプログラムおよびデータの一例を示している。
図13に示すように、記憶部22には、少なくともプログラム記憶領域301とデータ記憶領域302が設けられる。プログラム記憶領域301には、ゲームプログラム101が格納される。データ記憶領域302には、試合制御用データ102、画像データ107、仮想カメラ制御用データ108、操作データ109、送信用データ110および受信データ111等が格納される。試合制御用データ102には、選手キャラクタデータ103、ボールデータ104、ボール速度調整データ105および相手キャラクタ位置調整データ等が含まれる。
【0066】
ゲームプログラム101は、本ゲーム処理を実行するためのゲームプログラムである。
【0067】
選手キャラクタデータ103は、選手キャラクタに関するデータである。選手キャラクタデータ103には、自キャラクタ61および相手キャラクタ62の現在の位置や姿勢、現在の動作状態等、試合中の選手キャラクタの動作を制御するための各種のデータが含まれる。
【0068】
ボールデータ104は、ボール50に関するデータである。ボールデータ104には、ボール50の位置、移動方向、移動速度等のボールの動作を制御するための各種データが含まれる。
【0069】
ボール速度調整データ105は、
図5、
図8、
図10等を用いて説明したボール50の移動速度調整(自装置の仮想空間におけるボール50の移動速度調整)を行うためのデータである。
【0070】
相手キャラクタ位置調整データ106は、
図11および
図12を用いて説明した相手キャラクタ62の位置調整(自装置の仮想空間における相手キャラクタ62の位置調整)を行うためのデータである。
【0071】
画像データ107は、選手キャラクタ、ボール、テニスコート等の画像データである。
【0072】
仮想カメラ制御用データ108は、仮想空間に配置される仮想カメラの動きを制御するためのデータである。具体的には、仮想カメラの位置・姿勢、画角、撮像方向等を指定するデータである。
【0073】
操作データ109は、コントローラ4に対して行われた操作の内容を示すデータである。例えば、ボタン部43に対する押下状態や、アナログスティック42に対する入力状態を示すデータが含まれる。当該操作データの内容は、コントローラ4(通信部41)からの信号に基づき、所定の周期で更新される。
【0074】
送信用データ110は、他のゲーム装置に送信するためのデータであり、少なくとも、送信元を特定するための情報と、操作データ110の内容を含むデータである。
【0075】
受信データ111は、他のゲーム装置から受信した送信用データを、当該他のゲーム装置毎に(つまり、送信元が)識別可能なように記憶したデータである。
【0076】
その他、記憶部には、ゲーム処理で用いられる各種のデータが必要に応じて記憶される。例えば、選手キャラクタや観客の外観を示すモデリングデータ等が記憶される。
【0077】
[ゲーム処理の詳細について]
次に、フローチャートを参照して、本実施形態に係るゲーム処理の詳細を説明する。
図14~
図16は、本実施形態に係るゲーム処理の詳細を示すフローチャートの一例である。
【0078】
まず、本ゲーム処理が開始されると、
図14のステップS100において、プロセッサ21は、試合開始処理を行う。例えば、プロセッサ21は、試合開始を示す演出を表示部5に表示する。その後、処理はステップS200に移る。
【0079】
ステップS200において、プロセッサ21は、試合制御処理を行う。
図15および
図16は、試合制御処理を示すフローチャートの一例である。以下、
図15等を参照して、試合制御処理について説明する。なお、以下では、
図15等を参照して本ゲーム処理における典型的な処理について説明するが、試合制御処理等の実行中には、毎フレーム(つまり、所定時間間隔で)、操作データの取得、仮想空間の各オブジェクトの制御、および画像の表示等が行われる。
【0080】
図15のステップS201において、プロセッサ21は、オブジェクト動作処理を行う。例えば、プロセッサ21は、操作データ109に基づいて、自キャラクタ61がショットを打つ動作を行い、当該ショットに応じてボール50を移動させる制御を行う。また例えば、プロセッサ21は、相手キャラクタ62が打ったショットを打ち返すべき位置に、自動的に自キャラクタ61を移動させる制御(オート移動制御)を行う。また例えば、プロセッサ21は、相手装置との間で、所定時間間隔(例えば、10ミリ秒間隔)で選手キャラクタ(自キャラクタ61又は相手キャラクタ62)の位置、姿勢および動作(例えば、ショットを打つアクション)等を示すデータを送受信して、自装置の仮想空間と相手装置の仮想空間との間で、選手キャラクタの位置、姿勢およびアクション等について同期する。このように、プロセッサ21は、自装置の仮想空間において、自キャラクタ61、相手キャラクタ62およびボール50等を動作させる処理を行う。その後、処理はステップS202に移る。
【0081】
ステップS202において、プロセッサ21は、操作データ109等に基づいて、自キャラクタ61がショットしたか否かを判定する。具体的には、プロセッサ21は、既に説明したショット成功タイミングで所定のボタンが操作されたか否かを判定する。ステップS202での判定がYESの場合、処理はステップS203に移り、この判定がNOの場合、処理はステップS207に移る。
【0082】
ステップS203において、プロセッサ21は、RTTを計測する。その後、処理はステップS204に移る。
【0083】
ステップS204において、プロセッサ21は、ボールデータ104およびボール速度調整データ105に基づいて、仮想空間においてショットしたボール50の速度調整処理を行う。具体的には、プロセッサ21は、
図5を用いて説明したように、ステップS203で計測したRTTと、当該RTTに基づいて決定したボール50の移動速度の減速率と、当該減速率をボール50の移動速度に反映させる反映率とに基づいて、自装置の仮想空間において、ショットしたボール50の移動速度を減少させる。より具体的には、プロセッサ21は、ボール50の本来の移動速度(速度調整前の移動速度)に上記減速率を乗算して最終的な減速量を算出する。その後、最終的な速度量に、時間経過に応じて徐々に(滑らかに)100%まで上昇する上記反映率を乗算することにより、ショットしたボール50の時間経過に応じた減速量を算出する。そして、ショットしたボール50の本来の移動速度から、算出した時間経過に応じた減速量を差し引くことで、ボール50の移動速度を減速する調整を行う。その後、処理はステップS205に移る。
【0084】
ステップS205において、プロセッサ21は、ステップS203で計測したRTTが所定値以上であるか否かを判定する。ステップS205での判定がYESの場合、処理はステップS206に移り、この判定がNOの場合、処理はステップS207に移る。
【0085】
ステップS206において、プロセッサ21は、ボールデータ104、選手キャラクタデータ103および相手キャラクタ位置調整データ106に基づいて、仮想空間において相手キャラクタの位置をボール50の進行方向(移動方向)に下げて調整する処理を行う。具体的には、プロセッサ21は、
図11および
図12を用いて説明したように、ステップS203で計測したRTTと、ショットしたボール50の移動方向70と、相手キャラクタ62の本来の現在位置62-1とに基づいて、仮想空間において本来の移動経路70-1よりも奥側の調整移動経路70-3で相手キャラクタ62が移動する制御を行う。その後、処理はステップS207に移る。
【0086】
ステップS207において、プロセッサ21は、自キャラクタ61がショットしたボール50が1回目のバウンドをしたか否かを判定する。ステップS207での判定がYESの場合、処理はステップS208に移り、この判定がNOの場合、処理は
図16のステップS209に移る。
【0087】
ステップS208において、プロセッサ21は、ボールデータ104およびボール速度調整データ105に基づいて、仮想空間において1回目のバウンドをしたボール50の速度調整処理を行う。具体的には、プロセッサ21は、
図8を用いて説明したように、1回目のバウンドをしたボール50の移動速度を減速させる処理を行う。なお、
図8を用いて説明したように、プロセッサ21は、相手装置からショットに対する返信データ(ショットデータ又は返球失敗データ)を所定時間内に受信しない場合には、ボール50を停止させる制御を行う。その後、処理は
図16のステップS209に移る。
【0088】
図16のステップS209において、プロセッサ21は、自キャラクタ61がショットしたボール50が2回目のバウンドをしたか否かを判定する。具体的には、プロセッサ21は、受信データ111に基づいて、相手装置の仮想空間でボール50が2回目のバウンドをしたことを示すデータを相手装置から受信したか否かを判定する。ステップS209での判定がYESの場合、処理はステップS210に移り、この判定がNOの場合、処理はステップS211に移る。
【0089】
ステップS210において、プロセッサ21は、自キャラクタ61に対して得点を付与する処理を行う。その後、処理はステップS211に移る。
【0090】
ステップS211において、プロセッサ21は、操作データ109等に基づいて、自キャラクタ61がミスショットしたか否かを判定する。具体的には、プロセッサ21は、
図10の説明で述べたように、ミスショットタイミングで所定のボタンが操作されたか否かを判定する。ステップS211での判定がYESの場合、処理はステップS212に移り、この判定がNOの場合、処理はステップS214に移る。
【0091】
ステップS212において、プロセッサ21は、RTTを計測する。その後、処理はステップS213に移る。
【0092】
ステップS213において、プロセッサ21は、ボールデータ104およびボール速度調整データ105に基づいて、仮想空間においてミスショットしたボール50の速度調整処理を行う。具体的には、プロセッサ21は、
図10を用いて説明したように、自装置の仮想空間において、ミスショットしたボール50の移動速度を減少させる。なお、
図10を用いて説明したように、プロセッサ21は、相手装置からミスショットに対する返信データ(ショットデータ又は返球失敗データ)を所定時間内に受信しない場合には、ボール50を停止させる制御を行う。その後、処理はステップS214に移る。
【0093】
ステップS214において、プロセッサ21は、受信データ111に基づいて、相手キャラクタ62が、自キャラクタ61が打ったショットを打ち返したか否かを判定する。ステップS214での判定がYESの場合、処理はステップS215に移り、この判定がNOの場合、処理は
図14のステップS300に移る。
【0094】
ステップS215において、プロセッサ21は、
図15のステップS206の処理によって相手キャラクタ62の位置を下げて調整していたか否かを判定する。ステップS215での判定がYESの場合、処理はステップS216に移り、この判定がNOの場合、処理は
図14のステップS300に移る。
【0095】
ステップS216において、プロセッサ21は、受信データ111に基づいて、仮想空間において、相手キャラクタ62の本来の位置(例えば、
図12の位置62-2参照)に向かって徐々に(例えば一定割合で)相手キャラクタ62が移動する制御を行う。具体的には、プロセッサ21は、自装置の仮想空間において、相手キャラクタ62の位置が相手装置から受信する相手キャラクタ62の位置(現在位置)になるように、徐々に(滑らかに)移動させる。その後、処理は
図14のステップS300に移る。
【0096】
図14のステップS300において、プロセッサ21は、試合が終了する得点を自キャラクタ61又は相手キャラクタ62が獲得する等の試合終了条件を満たしたか否かを判定する。この判定がYESの場合、処理はステップS400に移り、この判定がNOの場合、処理はステップS200に戻る。
【0097】
ステップS400において、プロセッサ21は、試合終了を示す演出を表示部5に表示する等の試合終了処理を行う。その後、本ゲーム処理は終了する。
【0098】
以上に説明したように、本実施形態によれば、
図4~
図6等を用いて説明したように、自装置の仮想空間(ゲーム画像)において、ショットされたボール50の移動速度が、反映率に従ってショット直後に或る程度減速した後に徐々に(滑らかに)減速して、最終的に減速率が示す移動速度となる(
図5(3)参照)。つまり、自装置の仮想空間(ゲーム画像)において、ショットされたボール50の移動速度は、(ショット直後の或る程度の減速後において)最初のうちはそれほど減速されず、時間経過に応じて徐々に大きく減速されていく。このことから、本実施形態によれば、通信遅延(RTT)による不自然なゲーム画像の表示(
図4参照)を防止しつつ、自キャラクタ61がショットした際のユーザの爽快感を確保することができる。なお、上記したショット直後の或る程度の減速を行わないものとしてもよい。
【0099】
また、以上に説明したように、本実施形態によれば、
図7~
図9等を用いて説明したように、自装置の仮想空間(ゲーム画像)において、ショットされたボール50を1回目のバウンド以後に緩やかに減速させてから急激に減速させ、ショットデータ又は返球失敗データを相手装置から受信するまでに時間がかかりすぎると(つまり所定の時間が経過すると)ボール50を停止させる(
図8参照)。その後、相手キャラクタ62がショットを打ち返した場合、自装置の仮想空間(ゲーム画像)において、相手キャラクタ62がショットを打ち返した表示が行われる(
図9(2)参照)。このことにより、本実施形態によれば、不自然な(違和感のある)表示を防止することができる(
図7、
図9参照)。
【0100】
また、以上に説明したように、本実施形態によれば、
図10等を用いて説明したように、自装置の仮想空間(ゲーム画像)において、自キャラクタ61がミスショットを行った場合にミスショットの移動速度が減速調整等されてミスショット状態が長く継続される。このことから、本実施形態によれば、相手キャラクタ62がスマッシュを打ったことを示すデータを受信するまでの時間を稼ぐことができ、自装置の仮想空間(ゲーム画像)において、ミスショット状態ではなくなっているにも関わらず相手キャラクタ62がスマッシュを打ち返してくるという不自然な(違和感のある)の表示が行われることを防止できる。
【0101】
また、以上に説明したように、本実施形態によれば、
図11および
図12等を用いて説明したように、自装置の仮想空間(ゲーム画像)において、自キャラクタ61がショットを打った場合に、相手キャラクタ62の位置をボール50の進行方向にずらす処理を行う。これにより、本実施形態によれば、通信遅延(RTT)が或る程度長くなった場合においても、自装置の仮想空間(ゲーム画像)において、ショットを打ち返せなかったはずの相手キャラクタ62がショットを打ち返す不自然な(違和感のある)表示(
図4参照)が行われることを防止できる。
【0102】
[変形例]
なお、上記した本実施形態では、テニスゲームを例に挙げて説明した。しかし、これには限らず、例えば、卓球ゲーム等であってもよい。
【0103】
また、上記した本実施形態において、自キャラクタ61がショットした場合に、自装置の仮想空間においてショットしたボール50を所定時間停止させるヒットストップを実行してもよい。例えば、
図3(1)のT1から所定時間(例えば0.5秒間)ボール50を停止させるヒットストップを実行してもよい。このことにより、通信遅延(RTT)が長い場合であっても、より確実に、
図4等を用いて説明した不自然な表示を防止できる。
【0104】
また、上記した本実施形態では、
図12を用いて説明したように、自キャラクタ61がショットした場合において、相手キャラクタ62をボール50の進行方向に移動させる例を挙げた。しかし、自キャラクタ61がショットした場合において、相手キャラクタ62をZ軸方向(
図12参照)に移動させてもよい。この場合、
図12において、位置(目標の現在位置)62-3、位置(目標の移動先位置)62-4および目標の移動経路70-2は、それぞれ、位置62-1(本来の現在位置)、位置62-2(本来の移動先位置)および本来の移動経路70-1に対してZ軸方向に移動(並行移動)した位置となる。
【0105】
また、上記した本実施形態では、
図12を用いて説明したように、自装置が相手キャラクタ62の移動先の位置(本来の移動先位置)62-2を算出する例を挙げた。しかし、相手装置が相手キャラクタ62の移動先の位置(本来の移動先位置)62-2を算出する構成としてもよい。この場合、相手装置が算出した移動先の位置(本来の移動先位置)62-2に向かって、相手装置(相手装置の仮想空間)において毎フレーム、相手キャラクタ62の移動処理が行われる。そして、相手装置から自装置に対して、上記毎フレームの移動処理によって移動された相手キャラクタ62の位置が逐次送信される。そして、自装置は、相手装置から逐次受信する上記相手キャラクタ62の位置に対して、
図12を用いて説明した位置調整処理(ボール50の進行方向に相手キャラクタ62を徐々にずらす処理)を行う。
【0106】
また、上記した本実施形態において、
図10を用いて説明したミスショットについて、
図5を用いて説明した速度調整を実行しなくてもよく、又、
図8を用いて説明した速度調整を実行しなくてもよい。
【0107】
また、上記した本実施形態では、RTTに応じて減速率を決定し(
図5(1)参照)、決定した減速率を用いてボール50を減速する目標速度(
図5(3)参照)を決定して、当該目標速度になるようにボール50を減速する例を挙げた。しかし、RTTに応じて減速量(ボール50の移動速度を低下させる量)を決定し、決定した減速量を用いてボール50を減速する目標速度(
図5(3)参照)を決定して、当該目標速度になるようにボール50を減速してもよい。
【0108】
また、上記した本実施形態においては、ゲーム処理にかかる一連の処理が単一のゲーム装置2で実行される場合を説明した。他の実施形態においては、上記一連の処理が複数の情報処理装置からなる情報処理システムにおいて実行されてもよい。例えば、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの一部の処理がサーバ側装置によって実行されてもよい。更には、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの主要な処理がサーバ側装置によって実行され、当該端末側装置では一部の処理が実行されてもよい。また、上記情報処理システムにおいて、サーバ側のシステムは、複数の情報処理装置によって構成され、サーバ側で実行するべき処理を複数の情報処理装置が分担して実行してもよい。また、いわゆるクラウドゲーミングの構成としてもよい。例えば、ゲーム装置2は、ユーザの操作を示す操作データを所定のサーバに送り、当該サーバにおいて各種ゲーム処理が実行され、その実行結果が動画・音声としてゲーム装置2にストリーミング配信されるような構成としてもよい。
【符号の説明】
【0109】
2 ゲーム装置
4 操作部(コントローラ)
5 表示部
21 プロセッサ
22 記憶部(メモリ)
23 通信部
24 コントローラ通信部
25 画像音声出力部
50 ボール
61、62 キャラクタ