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

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

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

特許6292707情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法
<>
  • 特許6292707-情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法 図000002
  • 特許6292707-情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法 図000003
  • 特許6292707-情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法 図000004
  • 特許6292707-情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法 図000005
  • 特許6292707-情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法 図000006
  • 特許6292707-情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法 図000007
  • 特許6292707-情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法 図000008
  • 特許6292707-情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6292707
(24)【登録日】2018年2月23日
(45)【発行日】2018年3月14日
(54)【発明の名称】情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法
(51)【国際特許分類】
   G06F 3/14 20060101AFI20180305BHJP
   A63F 13/812 20140101ALI20180305BHJP
   A63F 13/211 20140101ALI20180305BHJP
   A63F 13/30 20140101ALI20180305BHJP
   A63F 13/50 20140101ALI20180305BHJP
   G06F 3/0481 20130101ALI20180305BHJP
【FI】
   G06F3/14 400
   A63F13/812 D
   A63F13/211
   A63F13/30
   A63F13/50
   G06F3/0481
   G06F3/14 310A
【請求項の数】16
【全頁数】29
(21)【出願番号】特願2013-219265(P2013-219265)
(22)【出願日】2013年10月22日
(65)【公開番号】特開2015-82180(P2015-82180A)
(43)【公開日】2015年4月27日
【審査請求日】2016年9月7日
【前置審査】
(73)【特許権者】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】100158780
【弁理士】
【氏名又は名称】寺本 亮
(74)【代理人】
【識別番号】100121359
【弁理士】
【氏名又は名称】小沢 昌弘
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】嶋村 隆行
(72)【発明者】
【氏名】鈴木 隆之助
(72)【発明者】
【氏名】牧野 格三
(72)【発明者】
【氏名】河田 匡稔
【審査官】 ▲高▼橋 徳浩
(56)【参考文献】
【文献】 国際公開第98/014886(WO,A1)
【文献】 特開2001−054066(JP,A)
【文献】 特開2009−017418(JP,A)
【文献】 特開2003−305669(JP,A)
【文献】 特開2012−179253(JP,A)
【文献】 特開2003−006127(JP,A)
【文献】 特開2007−097837(JP,A)
【文献】 特開2011−143104(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
A63F 9/24
G06F 3/01
G06F 13/00
A63F13/00−A63F13/98
G06F3/048−G06F3/0489
G06F3/14−G06F3/153
(57)【特許請求の範囲】
【請求項1】
第1の情報処理装置と当該第1の情報処理装置と通信可能な第2の情報処理装置とを少なくとも含む情報処理システムであって、
前記第1の情報処理装置は、
前記第1の情報処理装置のユーザ入力を取得する第1の入力取得手段と、
第1の表示画面に前記ユーザ入力に応じた画像を表示する第1の画像表示制御手段と、
前記ユーザ入力を示す入力データを前記第2の情報処理装置へ送信する第1の入力データ送信手段とを備え、
前記第2の情報処理装置は、
前記第1の情報処理装置から送信された入力データを受信する第2の入力データ受信手段と、
前記第2の入力データ受信手段が受信した入力データに応じた画像を第2の表示画面に表示する第2の画像表示制御手段とを備え、
所定の入力データ送信後に表示される前記ユーザ入力に応じた画像を構成する複数の描画フレームを標準より長い時間で表示させる低速表示制御手段が前記第1の画像表示制御手段に含まれ、
前記所定の入力データ受信後に表示される前記入力データに応じた画像を構成する複数の描画フレームを標準より短い時間で表示させる高速表示制御手段が前記第2の画像表示制御手段に含まれ、
前記低速表示制御手段は、前記複数の描画フレームの少なくとも1つを異なる時点で重複させて間延び表示させることによって、当該複数の描画フレームを標準より長い時間で表示させ、
前記第1の情報処理装置および/または前記第2の情報処理装置は、前記第1の情報処理装置と前記第2の情報処理装置との間でデータを送受信する際の遅延時間を計測する遅延時間計測手段を、さらに備え、
前記低速表示制御手段は、前記第1の情報処理装置の所定の入力データの送信後に前記第1の表示画面に表示される複数の描画フレームを、前記遅延時間から算出された、標準より長い時間で表示させ、
前記高速表示制御手段は、前記第2の情報処理装置で前記第1の情報処理装置から送信された所定の入力データの受信後に前記第2の表示画面に表示される複数の描画フレームを、前記遅延時間から算出された、標準より短い時間で表示させ
前記第2の情報処理装置は、
前記所定の入力データ受信後に、前記第2の情報処理装置のユーザ入力を受け付けて取得する第2の入力取得手段と、
前記第2の情報処理装置のユーザ入力を示す入力データを前記第1の情報処理装置へ送信する第2の入力データ送信手段とを、さらに備え、
前記第2の画像表示制御手段は、前記第2の表示画面に前記第2の情報処理装置のユーザ入力に応じた画像を表示し、
前記第1の情報処理装置は、前記第2の情報処理装置から送信された入力データを受信する第1の入力データ受信手段を、さらに備え、
前記第1の画像表示制御手段は、前記第1の入力データ受信手段が受信した入力データに応じた画像を前記第1の表示画面に表示し、
前記低速表示制御手段は、前記第1の情報処理装置の所定の入力データの送信後から前記第2の情報処理装置から送信された所定の入力データを前記第1の情報処理装置で受信するまでの期間に前記第1の表示画面に表示される複数の描画フレームを標準より長い時間で表示させ、
前記高速表示制御手段は、前記第1の情報処理装置から送信された所定の入力データを前記第2の情報処理装置で受信後から前記第2の情報処理装置の所定の入力データを送信するまでの期間に前記第2の表示画面に表示される複数の描画フレームを標準より短い時間で表示させる、情報処理システム。
【請求項2】
第1の情報処理装置と当該第1の情報処理装置と通信可能な第2の情報処理装置とを少なくとも含む情報処理システムであって、
前記第1の情報処理装置は、
前記第1の情報処理装置のユーザ入力を取得する第1の入力取得手段と、
第1の表示画面に前記ユーザ入力に応じた画像を表示する第1の画像表示制御手段と、
前記ユーザ入力を示す入力データを前記第2の情報処理装置へ送信する第1の入力データ送信手段とを備え、
前記第2の情報処理装置は、
前記第1の情報処理装置から送信された入力データを受信する第2の入力データ受信手段と、
前記第2の入力データ受信手段が受信した入力データに応じた画像を第2の表示画面に表示する第2の画像表示制御手段とを備え、
所定の入力データ送信後に表示される前記ユーザ入力に応じた画像を構成する複数の描画フレームを標準より長い時間で表示させる低速表示制御手段が前記第1の画像表示制御手段に含まれ、
前記所定の入力データ受信後に表示される前記入力データに応じた画像を構成する複数の描画フレームを標準より短い時間で表示させる高速表示制御手段が前記第2の画像表示制御手段に含まれ、
前記高速表示制御手段は、前記複数の描画フレームの少なくとも1つをドロップさせて間引き表示させることによって、当該複数の描画フレームを標準より短い時間で表示させ、
前記第1の情報処理装置および/または前記第2の情報処理装置は、前記第1の情報処理装置と前記第2の情報処理装置との間でデータを送受信する際の遅延時間を計測する遅延時間計測手段を、さらに備え、
前記低速表示制御手段は、前記第1の情報処理装置の所定の入力データの送信後に前記第1の表示画面に表示される複数の描画フレームを、前記遅延時間から算出された、標準より長い時間で表示させ、
前記高速表示制御手段は、前記第2の情報処理装置で前記第1の情報処理装置から送信された所定の入力データの受信後に前記第2の表示画面に表示される複数の描画フレームを、前記遅延時間から算出された、標準より短い時間で表示させ
前記第2の情報処理装置は、
前記所定の入力データ受信後に、前記第2の情報処理装置のユーザ入力を受け付けて取得する第2の入力取得手段と、
前記第2の情報処理装置のユーザ入力を示す入力データを前記第1の情報処理装置へ送信する第2の入力データ送信手段とを、さらに備え、
前記第2の画像表示制御手段は、前記第2の表示画面に前記第2の情報処理装置のユーザ入力に応じた画像を表示し、
前記第1の情報処理装置は、前記第2の情報処理装置から送信された入力データを受信する第1の入力データ受信手段を、さらに備え、
前記第1の画像表示制御手段は、前記第1の入力データ受信手段が受信した入力データに応じた画像を前記第1の表示画面に表示し、
前記低速表示制御手段は、前記第1の情報処理装置の所定の入力データの送信後から前記第2の情報処理装置から送信された所定の入力データを前記第1の情報処理装置で受信するまでの期間に前記第1の表示画面に表示される複数の描画フレームを標準より長い時間で表示させ、
前記高速表示制御手段は、前記第1の情報処理装置から送信された所定の入力データを前記第2の情報処理装置で受信後から前記第2の情報処理装置の所定の入力データを送信するまでの期間に前記第2の表示画面に表示される複数の描画フレームを標準より短い時間で表示させる、情報処理システム。
【請求項3】
前記低速表示制御手段は、前記第1の情報処理装置の所定の入力データの送信後から前記第1の情報処理装置で前記第2の情報処理装置から送信された所定の入力データを受信するまでの期間に前記第1の表示画面に表示される複数の描画フレームに対して、当該期間中に等間隔で間延び表示させることによって、当該複数の描画フレームを標準より長い時間で表示させ、
前記高速表示制御手段は、前記第2の情報処理装置で前記第1の情報処理装置から送信された所定の入力データの受信後から前記第2の情報処理装置の所定の入力データを送信するまでの期間に前記第2の表示画面に表示される複数の描画フレームに対して、当該期間中に等間隔で間引き表示させることによって、当該複数の描画フレームを標準より短い時間で表示させる、請求項1または2に記載の情報処理システム。
【請求項4】
前記低速表示制御手段は、前記第1の情報処理装置の所定の入力データの送信後に前記第1の表示画面に表示される複数の描画フレームに対して、当該送信後から予め定められた間隔で間延び表示させることによって、当該複数の描画フレームを標準より長い時間で表示させ、
前記高速表示制御手段は、前記第2の情報処理装置で前記第1の情報処理装置から送信された所定の入力データの受信後に前記第2の表示画面に表示される複数の描画フレームに対して、当該受信後から予め定められた間隔で間引き表示させることによって、当該複数の描画フレームを標準より短い時間で表示させる、請求項1または2に記載の情報処理システム。
【請求項5】
前記遅延時間計測手段は、前記入力データの送受信が行われる前に前記遅延時間を計測し、
前記低速表示制御手段は、前記第1の情報処理装置の所定の入力データを前記第2の情報処理装置に送信した後は、毎回前記送受信前に計測された遅延時間に基づいて標準より長い時間で表示させ、
前記高速表示制御手段は、前記第1の情報処理装置で入力された所定の入力データを前記第2の情報処理装置で受信した後は、毎回前記送受信前に計測された遅延時間に基づいて標準より短い時間で表示させる、請求項1乃至の何れか1つに記載の情報処理システム。
【請求項6】
前記低速表示制御手段は、前記遅延時間が所定時間以上の場合に標準より長い時間で表示を行い、
前記高速表示制御手段は、前記遅延時間が所定時間以上の場合に標準より短い時間で表示を行う、請求項1乃至の何れか1つに記載の情報処理システム。
【請求項7】
前記低速表示制御手段は、前記第1の情報処理装置の所定の入力データの送信後に前記第1の表示画面に表示される複数の描画フレームを、当該送信後から所定の間隔で所定の回数だけ間延び表示させることによって、当該複数の描画フレームを標準より長い時間で表示させ、
前記高速表示制御手段は、前記第2の情報処理装置で前記第1の情報処理装置から送信された所定の入力データの受信後に前記第2の表示画面に表示される複数の描画フレームを、当該受信後から前記間隔で前記回数だけ間引き表示させることによって、当該複数の描画フレームを標準より短い時間で表示させる、請求項1乃至の何れか1つに記載の情報処理システム。
【請求項8】
前記第1の入力データ送信手段は、ネットワークを介した遠距離通信を用いて前記入力データを前記第2の情報処理装置へ送信し、
前記第2の入力データ受信手段は、ネットワークを介した遠距離通信によって前記第1の情報処理装置から送信された前記入力データを受信する、請求項1乃至の何れか1つに記載の情報処理システム。
【請求項9】
前記第1の情報処理装置は、前記第1の情報処理装置の所定のユーザ入力に応じて、所定のオブジェクトに対する当該所定のユーザ入力以降の動作を決定する第1のオブジェクト動作決定手段を、さらに備え、
前記低速表示制御手段は、前記所定のユーザ入力以降の前記オブジェクトの一連の動作を示す複数の描画フレームを標準より長い時間で表示させ、
前記第2の情報処理装置は、前記第1の情報処理装置から受信した所定の入力データに応じて、前記オブジェクトに対する当該所定の入力データ受信以降の動作を決定する第2のオブジェクト動作決定手段を、さらに備え、
前記高速表示制御手段は、前記所定の入力データ受信以降の前記オブジェクトの一連の動作を示す複数の描画フレームを標準より短い時間で表示させる、請求項1乃至の何れか1つに記載の情報処理システム。
【請求項10】
前記第2のオブジェクト動作決定手段は、前記所定の入力データの受信が遅れた場合、前記オブジェクトの動作を一時停止し、当該所定の入力データの受信を待って当該所定の入力データ受信以降の動作を決定する、請求項に記載の情報処理システム。
【請求項11】
他の情報処理装置と通信可能な情報処理装置であって、
ユーザ入力を取得する入力取得手段と、
前記ユーザ入力を示す入力データを他の情報処理装置へ送信する入力データ送信手段と、
他の情報処理装置から送信された入力データを受信する入力データ受信手段と、
表示画面に前記ユーザ入力に応じた画像および前記入力データ受信手段が受信した入力データに応じた画像を表示する画像表示制御手段とを備え、
前記画像表示制御手段は、
所定の入力データ送信後に表示される前記ユーザ入力に応じた画像を構成する複数の描画フレームを標準より長い時間で表示させる低速表示制御手段と、
所定の入力データ受信後に表示される前記入力データ受信手段が受信した入力データに応じた画像を構成する複数の描画フレームを標準より短い時間で表示させる高速表示制御手段を含み、
前記低速表示制御手段は、前記複数の描画フレームの少なくとも1つを異なる時点で重複させて間延び表示させることによって、当該複数の描画フレームを標準より長い時間で表示させ、
前記情報処理装置は、前記他の情報処理装置との間でデータを送受信する際の遅延時間を計測する遅延時間計測手段を、さらに備え、
前記低速表示制御手段は、所定の入力データの送信後に前記表示画面に表示される複数の描画フレームを、前記遅延時間から算出された、標準より長い時間で表示させ、
前記高速表示制御手段は、前記他の情報処理装置から送信された所定の入力データの受信後に前記表示画面に表示される複数の描画フレームを、前記遅延時間から算出された、標準より短い時間で表示させ
前記低速表示制御手段は、前記入力データの送信後から前記他の情報処理装置から送信された入力データを受信するまでの期間に前記表示画面に表示される複数の描画フレームを標準より長い時間で表示させ、
前記高速表示制御手段は、前記他の情報処理装置から送信された入力データの受信後から前記他の情報処理装置へ入力データを送信するまでの期間に前記表示画面に表示される複数の描画フレームを標準より短い時間で表示させる、情報処理装置。
【請求項12】
他の情報処理装置と通信可能な情報処理装置であって、
ユーザ入力を取得する入力取得手段と、
前記ユーザ入力を示す入力データを他の情報処理装置へ送信する入力データ送信手段と、
他の情報処理装置から送信された入力データを受信する入力データ受信手段と、
表示画面に前記ユーザ入力に応じた画像および前記入力データ受信手段が受信した入力データに応じた画像を表示する画像表示制御手段とを備え、
前記画像表示制御手段は、
所定の入力データ送信後に表示される前記ユーザ入力に応じた画像を構成する複数の描画フレームを標準より長い時間で表示させる低速表示制御手段と、
所定の入力データ受信後に表示される前記入力データ受信手段が受信した入力データに応じた画像を構成する複数の描画フレームを標準より短い時間で表示させる高速表示制御手段含み、
前記高速表示制御手段は、前記複数の描画フレームの少なくとも1つをドロップさせて間引き表示させることによって、当該複数の描画フレームを標準より短い時間で表示させ、
前記情報処理装置は、前記他の情報処理装置との間でデータを送受信する際の遅延時間を計測する遅延時間計測手段を、さらに備え、
前記低速表示制御手段は、所定の入力データの送信後に前記表示画面に表示される複数の描画フレームを、前記遅延時間から算出された、標準より長い時間で表示させ、
前記高速表示制御手段は、前記他の情報処理装置から送信された所定の入力データの受信後に前記表示画面に表示される複数の描画フレームを、前記遅延時間から算出された、標準より短い時間で表示させ
前記低速表示制御手段は、前記入力データの送信後から前記他の情報処理装置から送信された入力データを受信するまでの期間に前記表示画面に表示される複数の描画フレームを標準より長い時間で表示させ、
前記高速表示制御手段は、前記他の情報処理装置から送信された入力データの受信後から前記他の情報処理装置へ入力データを送信するまでの期間に前記表示画面に表示される複数の描画フレームを標準より短い時間で表示させる、情報処理装置。
【請求項13】
他の情報処理装置と通信可能な情報処理装置に含まれるコンピュータで実行される情報処理プログラムであって、
前記コンピュータを、
ユーザ入力を取得する入力取得手段と、
前記ユーザ入力を示す入力データを他の情報処理装置へ送信する入力データ送信手段と、
他の情報処理装置から送信された入力データを受信する入力データ受信手段と、
表示画面に前記ユーザ入力に応じた画像および前記入力データ受信手段が受信した入力データに応じた画像を表示する画像表示制御手段として機能させ、
前記画像表示制御手段は、
所定の入力データ送信後に表示される前記ユーザ入力に応じた画像を構成する複数の描画フレームを標準より長い時間で表示させる低速表示制御手段と、
所定の入力データ受信後に表示される前記入力データ受信手段が受信した入力データに応じた画像を構成する複数の描画フレームを標準より短い時間で表示させる高速表示制御手段を含み、
前記低速表示制御手段は、前記複数の描画フレームの少なくとも1つを異なる時点で重複させて間延び表示させることによって、当該複数の描画フレームを標準より長い時間で表示させ、
前記情報処理プログラムは、前記他の情報処理装置との間でデータを送受信する際の遅延時間を計測する遅延時間計測手段として、さらに前記コンピュータを機能させ、
前記低速表示制御手段は、所定の入力データの送信後に前記表示画面に表示される複数の描画フレームを、前記遅延時間から算出された、標準より長い時間で表示させ、
前記高速表示制御手段は、前記他の情報処理装置から送信された所定の入力データの受信後に前記表示画面に表示される複数の描画フレームを、前記遅延時間から算出された、標準より短い時間で表示させ
前記低速表示制御手段は、前記入力データの送信後から前記他の情報処理装置から送信された入力データを受信するまでの期間に前記表示画面に表示される複数の描画フレームを標準より長い時間で表示させ、
前記高速表示制御手段は、前記他の情報処理装置から送信された入力データの受信後から前記他の情報処理装置へ入力データを送信するまでの期間に前記表示画面に表示される複数の描画フレームを標準より短い時間で表示させる、情報処理プログラム。
【請求項14】
他の情報処理装置と通信可能な情報処理装置に含まれるコンピュータで実行される情報処理プログラムであって、
前記コンピュータを、
ユーザ入力を取得する入力取得手段と、
前記ユーザ入力を示す入力データを他の情報処理装置へ送信する入力データ送信手段と、
他の情報処理装置から送信された入力データを受信する入力データ受信手段と、
表示画面に前記ユーザ入力に応じた画像および前記入力データ受信手段が受信した入力データに応じた画像を表示する画像表示制御手段として機能させ、
前記画像表示制御手段は、
所定の入力データ送信後に表示される前記ユーザ入力に応じた画像を構成する複数の描画フレームを標準より長い時間で表示させる低速表示制御手段と、
所定の入力データ受信後に表示される前記入力データ受信手段が受信した入力データに応じた画像を構成する複数の描画フレームを標準より短い時間で表示させる高速表示制御手段を含み、
前記高速表示制御手段は、前記複数の描画フレームの少なくとも1つをドロップさせて間引き表示させることによって、当該複数の描画フレームを標準より短い時間で表示させ、
前記情報処理プログラムは、前記他の情報処理装置との間でデータを送受信する際の遅延時間を計測する遅延時間計測手段として、さらに前記コンピュータを機能させ、
前記低速表示制御手段は、所定の入力データの送信後に前記表示画面に表示される複数の描画フレームを、前記遅延時間から算出された、標準より長い時間で表示させ、
前記高速表示制御手段は、前記他の情報処理装置から送信された所定の入力データの受信後に前記表示画面に表示される複数の描画フレームを、前記遅延時間から算出された、標準より短い時間で表示させ
前記低速表示制御手段は、前記入力データの送信後から前記他の情報処理装置から送信された入力データを受信するまでの期間に前記表示画面に表示される複数の描画フレームを標準より長い時間で表示させ、
前記高速表示制御手段は、前記他の情報処理装置から送信された入力データの受信後から前記他の情報処理装置へ入力データを送信するまでの期間に前記表示画面に表示される複数の描画フレームを標準より短い時間で表示させる、情報処理プログラム。
【請求項15】
他の装置と通信可能な少なくとも1つの装置により構成されるシステムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行される情報処理方法であって、
ユーザ入力を取得する入力取得ステップと、
前記ユーザ入力を示す入力データを他の装置へ送信する入力データ送信ステップと、
他の装置から送信された入力データを受信する入力データ受信ステップと、
表示画面に前記ユーザ入力に応じた画像および前記入力データ受信ステップにおいて受信された入力データに応じた画像を表示する画像表示制御ステップとを含み、
前記画像表示制御ステップは、
所定の入力データ送信後に表示される前記ユーザ入力に応じた画像を構成する複数の描画フレームを標準より長い時間で表示させる低速表示制御ステップと、
所定の入力データ受信後に表示される前記入力データ受信ステップが受信した入力データに応じた画像を構成する複数の描画フレームを標準より短い時間で表示させる高速表示制御ステップを含み、
前記低速表示制御ステップでは、前記複数の描画フレームの少なくとも1つを異なる時点で重複させて間延び表示させることによって、当該複数の描画フレームが標準より長い時間で表示され
前記情報処理方法は、前記他の装置との間でデータを送受信する際の遅延時間を計測する遅延時間計測ステップを、さらに含み、
前記低速表示制御ステップでは、所定の入力データの送信後に前記表示画面に表示される複数の描画フレームが、前記遅延時間から算出された、標準より長い時間で表示され、
前記高速表示制御ステップでは、前記他の装置から送信された所定の入力データの受信後に前記表示画面に表示される複数の描画フレームが、前記遅延時間から算出された、標準より短い時間で表示され
前記低速表示制御ステップでは、前記入力データの送信後から前記他の装置から送信された入力データを受信するまでの期間に前記表示画面に表示される複数の描画フレームが標準より長い時間で表示され、
前記高速表示制御ステップでは、前記他の装置から送信された入力データの受信後から前記他の装置へ入力データを送信するまでの期間に前記表示画面に表示される複数の描画フレームが標準より短い時間で表示される、情報処理方法。
【請求項16】
他の装置と通信可能な少なくとも1つの装置により構成されるシステムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行される情報処理方法であって、
ユーザ入力を取得する入力取得ステップと、
前記ユーザ入力を示す入力データを他の装置へ送信する入力データ送信ステップと、
他の装置から送信された入力データを受信する入力データ受信ステップと、
表示画面に前記ユーザ入力に応じた画像および前記入力データ受信ステップにおいて受信された入力データに応じた画像を表示する画像表示制御ステップとを含み、
前記画像表示制御ステップは、
所定の入力データ送信後に表示される前記ユーザ入力に応じた画像を構成する複数の描画フレームを標準より長い時間で表示させる低速表示制御ステップと、
所定の入力データ受信後に表示される前記入力データ受信ステップが受信した入力データに応じた画像を構成する複数の描画フレームを標準より短い時間で表示させる高速表示制御ステップを含み、
前記高速表示制御ステップでは、前記複数の描画フレームの少なくとも1つをドロップさせて間引き表示させることによって、当該複数の描画フレームが標準より短い時間で表示され、
前記情報処理方法は、前記他の装置との間でデータを送受信する際の遅延時間を計測する遅延時間計測ステップを、さらに含み、
前記低速表示制御ステップでは、所定の入力データの送信後に前記表示画面に表示される複数の描画フレームが、前記遅延時間から算出された、標準より長い時間で表示され、
前記高速表示制御ステップでは、前記他の装置から送信された所定の入力データの受信後に前記表示画面に表示される複数の描画フレームが、前記遅延時間から算出された、標準より短い時間で表示され
前記低速表示制御ステップでは、前記入力データの送信後から前記他の装置から送信された入力データを受信するまでの期間に前記表示画面に表示される複数の描画フレームが標準より長い時間で表示され、
前記高速表示制御ステップでは、前記他の装置から送信された入力データの受信後から前記他の装置へ入力データを送信するまでの期間に前記表示画面に表示される複数の描画フレームが標準より短い時間で表示される、情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法に関し、特に例えば、装置間でデータを送受信する情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法に関する。
【背景技術】
【0002】
従来、通信ネットワークを介して複数のゲーム装置間でゲームを行うゲームシステムがある(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2007−97837号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、通信ネットワークを介して複数のゲーム装置間でデータ通信を行う場合、その通信環境によって当該データを送受信するための遅延時間が生じる。このようなデータを送受信する際に遅延時間が生じる場合、当該データを送受信している装置間で行われているゲームにおいても互いに遅延が生じてしまうため、同期を取りながらゲームを進行することが困難となることがある。また、上記特許文献1で開示されたゲームシステムでは、装置間で進行するゲームを同期させるために、仮想ゲーム世界に登場するオブジェクトの動作に関する情報等、仮想ゲーム世界の状態に関する情報を送受信している。しかしながら、ゲーム状態に関する情報を送受信する場合、各装置における処理が複雑となってゲームを設計するためのコストが増加してしまう問題がある。
【0005】
それ故に、本発明の目的は、装置間でデータを送受信する際に生じる遅延に対応する情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法を提供することである。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明は例えば以下のような構成を採用し得る。なお、特許請求の範囲の記載を解釈する際に、特許請求の範囲の記載によってのみその範囲が解釈されるべきであることが理解され、特許請求の範囲の記載と本欄の記載とが矛盾する場合には、特許請求の範囲の記載が優先する。
【0007】
本発明の情報処理システムの一構成例は、第1の情報処理装置と当該第1の情報処理装置と通信可能な第2の情報処理装置とを少なくとも含む。第1の情報処理装置は、第1の入力取得手段、第1の画像表示制御手段、および第1の入力データ送信手段とを備える。第1の入力取得手段は、第1の情報処理装置のユーザ入力を取得する。第1の画像表示制御手段は、第1の表示画面にユーザ入力に応じた画像を表示する。第1の入力データ送信手段は、ユーザ入力を示す入力データを第2の情報処理装置へ送信する。第2の情報処理装置は、第2の入力データ受信手段および第2の画像表示制御手段を備える。第2の入力データ受信手段は、第1の情報処理装置から送信された入力データを受信する。第2の画像表示制御手段は、第2の入力データ受信手段が受信した入力データに応じた画像を第2の表示画面に表示する。そして、第1の画像表示制御手段に低速表示制御手段が含まれる、および/または第2の画像表示制御手段に高速表示制御手段が含まれる。低速表示制御手段は、所定の入力データ送信後に表示されるユーザ入力に応じた画像を構成する複数の描画フレームを標準より長い時間で表示させる。高速表示制御手段は、所定の入力データ受信後に表示される入力データに応じた画像を構成する複数の描画フレームを標準より短い時間で表示させる。
【0008】
上記によれば、入力データを送信する側の装置で所定の入力データ送信後に標準より長い時間で表示が行われる、および/または入力データを受信する側の装置で所定の入力データ受信後に標準より短い時間で表示が行われるため、装置間でデータを送受信する際に生じる遅延時間を吸収することができる。
【0009】
また、上記低速表示制御手段は、複数の描画フレームを間延び表示させることによって、当該複数の描画フレームを標準より長い時間で表示させてもよい。
【0010】
上記によれば、描画フレームを間延び表示することによって、当該描画フレームを標準より長い時間で表示させることができる。
【0011】
また、上記低速表示制御手段は、複数の描画フレームの少なくとも1つを異なる時点で重複させて間延び表示させてもよい。
【0012】
上記によれば、同じ描画フレームを重複表示することによって、容易に間延び表示を行うことができる。
【0013】
また、上記高速表示制御手段は、複数の描画フレームを間引き表示させることによって、当該複数の描画フレームを標準より短い時間で表示させてもよい。
【0014】
上記によれば、描画フレームを間引き表示することによって、当該描画フレームを標準より短い時間で表示させることができる。
【0015】
また、上記高速表示制御手段は、複数の描画フレームの少なくとも1つをドロップさせて間引き表示させてもよい。
【0016】
上記によれば、描画フレームをドロップさせることによって、容易に間引き表示を行うことができる。
【0017】
また、上記第2の情報処理装置は、第2の入力取得手段および第2の入力データ送信手段を、さらに備えてもよい。第2の入力取得手段は、所定の入力データ受信後に、第2の情報処理装置のユーザ入力を受け付けて取得する。第2の入力データ送信手段は、第2の情報処理装置のユーザ入力を示す入力データを第1の情報処理装置へ送信する。この場合、上記第2の画像表示制御手段は、第2の表示画面に第2の情報処理装置のユーザ入力に応じた画像を表示してもよい。また、上記第1の情報処理装置は、第1の入力データ受信手段を、さらに備えてもよい。第1の入力データ受信手段は、第2の情報処理装置から送信された入力データを受信する。この場合、上記第1の画像表示制御手段は、第1の入力データ受信手段が受信した入力データに応じた画像を第1の表示画面に表示してもよい。上記低速表示制御手段は、第1の情報処理装置の所定の入力データの送信後から第2の情報処理装置の所定の入力データを受信するまでの期間に第1の表示画面に表示される複数の描画フレームを標準より長い時間で表示させてもよい。上記高速表示制御手段は、第1の情報処理装置の所定の入力データの受信後から第2の情報処理装置の所定の入力データを送信するまでの期間に第2の表示画面に表示される複数の描画フレームを標準より短い時間で表示させてもよい。
【0018】
上記によれば、所定の入力データを送信してから他の装置から所定の入力データを受信するまでの期間に対して標準より長い時間で表示を行う、および/または所定の入力データを受信してから他の装置へ所定の入力データを送信するまでの期間に対して標準より短い時間で表示を行うことによって、違和感のない画像を表示しながら遅延時間を吸収することができる。
【0019】
また、上記低速表示制御手段は、第1の情報処理装置の所定の入力データの送信後から第2の情報処理装置の所定の入力データを受信するまでの期間に第1の表示画面に表示される複数の描画フレームに対して、当該期間中に等間隔で間延び表示させることによって、当該複数の描画フレームを標準より長い時間で表示させてもよい。上記高速表示制御手段は、第1の情報処理装置の所定の入力データの受信後から第2の情報処理装置の所定の入力データを送信するまでの期間に第2の表示画面に表示される複数の描画フレームに対して、当該期間中に等間隔で間引き表示させることによって、当該複数の描画フレームを標準より短い時間で表示させてもよい。
【0020】
上記によれば、間延び表示する間隔および/または間引き表示する間隔を相対的に長く設定することができる。
【0021】
また、上記低速表示制御手段は、第1の情報処理装置の所定の入力データの送信後に第1の表示画面に表示される複数の描画フレームに対して、当該送信後から予め定められた間隔で間延び表示させることによって、当該複数の描画フレームを標準より長い時間で表示させてもよい。上記高速表示制御手段は、第1の情報処理装置の所定の入力データの受信後に第2の表示画面に表示される複数の描画フレームに対して、当該受信後から予め定められた間隔で間引き表示させることによって、当該複数の描画フレームを標準より短い時間で表示させてもよい。
【0022】
上記によれば、間延び表示を行う期間に対して当該間延び表示を完了させるタイミング、および/または間引き表示を行う期間に対して早期に当該間引き表示を完了させるタイミングを調整することができ、間延び表示および/または間引き表示する間隔を相対的に短く設定することによって、当該期間に対して早期に間延び表示および/または間引き表示を完了させることができる。
【0023】
また、上記第1の情報処理装置および/または第2の情報処理装置は、遅延時間計測手段を、さらに備えてもよい。遅延時間計測手段は、第1の情報処理装置と第2の情報処理装置との間でデータを送受信する際の遅延時間を計測する。この場合、上記低速表示制御手段は、第1の情報処理装置の所定の入力データの送信後に第1の表示画面に表示される複数の描画フレームを、遅延時間に基づいて標準より長い時間で表示させてもよい。上記高速表示制御手段は、第1の情報処理装置の所定の入力データの受信後に第2の表示画面に表示される複数の描画フレームを、遅延時間に基づいて標準より短い時間で表示させてもよい。
【0024】
上記によれば、データの送受信によって生じる実際の遅延時間に応じて、標準より長い時間で表示および/または標準より短い時間で表示することができる。
【0025】
また、上記遅延時間計測手段は、入力データの送受信が行われる前に遅延時間を計測してもよい。上記低速表示制御手段は、第1の情報処理装置の所定の入力データを第2の情報処理装置に送信した後は、毎回送受信前に計測された遅延時間に基づいて標準より長い時間で表示させてもよい。上記高速表示制御手段は、第1の情報処理装置の所定の入力データを第2の情報処理装置から受信する際は、毎回送受信前に計測された遅延時間に基づいて標準より短い時間で表示させてもよい。
【0026】
上記によれば、入力データを送受信する前に計測された遅延時間を、以降の処理において固定して用いるため、当該処理における負荷が軽減される。
【0027】
また、上記低速表示制御手段は、遅延時間が所定時間以上の場合に標準より短い時間で表示を行ってもよい。上記高速表示制御手段は、遅延時間が所定時間以上の場合に標準より短い時間で表示を行ってもよい。
【0028】
上記によれば、遅延時間が所定時間以上の場合のみ標準より短い時間で表示および/または標準より短い時間で表示されるため、必要に応じて遅延時間に対応することができる。
【0029】
また、上記低速表示制御手段は、第1の情報処理装置の所定の入力データの送信後に第1の表示画面に表示される複数の描画フレームを、当該送信後から所定の間隔で所定の回数だけ間延び表示させることによって、当該複数の描画フレームを標準より長い時間で表示させてもよい。上記高速表示制御手段は、第1の情報処理装置の所定の入力データの受信後に第2の表示画面に表示される複数の描画フレームを、当該受信後から間隔で回数だけ間引き表示させることによって、当該複数の描画フレームを標準より短い時間で表示させてもよい。
【0030】
上記によれば、間延び表示および/または間引き表示を行う間隔および回数が同じであるため、間延び表示および/または間引き表示を行う際の制御が容易となる。
【0031】
また、上記第1の入力データ送信手段は、ネットワークを介した遠距離通信を用いて入力データを第2の情報処理装置へ送信してもよい。上記第2の入力データ受信手段は、ネットワークを介した遠距離通信によって第1の情報処理装置から送信された入力データを受信してもよい。
【0032】
上記によれば、遅延時間が相対的に長くなる通信環境において、有効に利用することができる。
【0033】
また、上記第1の情報処理装置は、第1のオブジェクト動作決定手段を、さらに備えてもよい。第1のオブジェクト動作決定手段は、第1の情報処理装置の所定のユーザ入力に応じて、所定のオブジェクトに対する当該所定のユーザ入力以降の動作を決定する。この場合、上記低速表示制御手段は、所定のユーザ入力以降のオブジェクトの一連の動作を示す複数の描画フレームを標準より長い時間で表示させてもよい。また、上記第2の情報処理装置は、第2のオブジェクト動作決定手段を、さらに備えてもよい。第2のオブジェクト動作決定手段は、第1の情報処理装置から受信した所定の入力データに応じて、オブジェクトに対する当該所定の入力データ受信以降の動作を決定する。この場合、上記高速表示制御手段は、所定の入力データ受信以降のオブジェクトの一連の動作を示す複数の描画フレームを標準より短い時間で表示させてもよい。
【0034】
上記によれば、所定のユーザ入力に応じてその後の一連のオブジェクト動作が決定される処理に対して、有効に利用することができる。
【0035】
また、上記第2のオブジェクト動作決定手段は、所定の入力データの受信が遅れた場合、オブジェクトの動作を一時停止し、当該所定の入力データの受信を待って当該所定の入力データ受信以降の動作を決定してもよい。
【0036】
上記によれば、入力データの遅延が大きい場合であっても、オブジェクトの動作を調整することによって当該動作を同期させることができる。
【0037】
また、本発明は、上記各手段を備える情報処理装置や上記各手段としてコンピュータを機能させる情報処理プログラムや上記各手段で行われる動作を含む情報処理方法の形態で実施されてもよい。
【発明の効果】
【0038】
本発明によれば、入力データを送信する側の装置で所定の入力データ送信後に標準より長い時間で表示が行われる、および/または入力データを受信する側の装置で所定の入力データ受信後に標準より短い時間で表示が行われるため、装置間でデータを送受信する際に生じる遅延時間を吸収することができる。
【図面の簡単な説明】
【0039】
図1】本発明の一実施形態に係る情報処理システム1を説明するための図
図2図1の情報処理装置3および情報処理装置3に接続される装置の構成の一例を示すブロック図
図3】情報処理システム1に含まれる情報処理装置3aおよび3bにおいて、それぞれ表示される画面の一例を示す図
図4】情報処理装置3aおよび3bにおける処理動作の一例を示す図
図5】情報処理装置3aおよび3bにおいてそれぞれ描画されるフレームの一例を示す図
図6】情報処理装置3のメモリ33に記憶される主なデータおよびプログラムの一例を示す図
図7】情報処理装置3において実行される前半の処理の一例を示すフローチャート
図8】情報処理装置3において実行される後半の処理の一例を示すフローチャート
【発明を実施するための形態】
【0040】
図1を参照して、本発明の一実施形態に係る情報処理システムについて説明する。図1に示すように、情報処理システム1は、複数の情報処理装置3(図1に示す例では、情報処理装置3aおよび3b)が、ネットワーク100を介して接続されて構築される。
【0041】
情報処理装置3は、有線通信または無線通信を用いて、ネットワーク100に接続可能に構成されている。そして、情報処理装置3は、ネットワーク100を介して、他の情報処理装置3と接続を確立することによって、他の情報処理装置3との間で所定の情報処理(例えば、ゲーム処理)が可能となる。例えば、情報処理装置3は、交換可能なメモリカードや光ディスク等の記録媒体内に記憶された、または、サーバや他の装置から受信されたプログラムを実行可能である。情報処理装置3は、据置型ゲーム装置や携帯ゲーム装置であってもよく、一般的なパーソナルコンピュータ、携帯電話機、PDA(Personal Digital Assistant)等のデバイスであってもかまわない。
【0042】
次に、図2を参照して、情報処理装置3について説明する。なお、図2は、情報処理装置3および情報処理装置3に接続される装置の構成の一例を示すブロック図である。
【0043】
一例として、情報処理装置3には、入力装置2およびモニタ4が接続される。なお、情報処理装置3と入力装置2またはモニタ4との接続は、有線であってもよいし無線であってもよい。本実施形態における情報処理装置3は、入力装置2に対する操作に応じて情報処理(例えば、後述するゲーム処理)を実行するものである。
【0044】
入力装置2は、操作部21、加速度センサ22、およびジャイロセンサ23を有する。操作部21は、ユーザによって操作可能な入力部であり、操作ボタン、方向を入力可能なスティック、タッチパネル、タッチパッド等によって構成される。加速度センサ22は、入力装置2に生じる加速度を検出する。一例として、加速度センサ22は、所定の3軸方向それぞれに生じる加速度や所定の1軸または2軸方向に生じる加速度を検出する。ジャイロセンサ23は、入力装置2の角速度を検出する。一例として、ジャイロセンサ23は、所定の3軸回りの角速度や所定の1軸または2軸回りの角速度を検出する。また、入力装置2は、その検出結果を用いて入力装置2の姿勢を算出(推定)することができる任意のセンサ(姿勢センサ)を有していてもよい。例えば、入力装置2は、加速度センサ22およびジャイロセンサ23に加えて(または代えて)、磁気センサを有していてもよい。
【0045】
入力装置2は、ユーザの操作を検出し、ユーザの操作を表す操作データを情報処理装置3へ送信する。例えば、操作データは、操作部21による操作情報(例えば、操作ボタンに対する押下情報)や、加速度センサ22および/またはジャイロセンサ23による加速度情報および/または角速度情報を含む。ここで、上記操作情報は、操作部21に対する操作状況(例えば、押下情報は操作ボタンが押下されたか否かの状況)を示す。また、上記加速度情報は、加速度センサ22が検出する加速度を示す。また、上記角速度情報は、ジャイロセンサ23が検出する角速度を示す。
【0046】
情報処理装置3は、通信部31、CPU32、メモリ33、およびプログラム記憶部34を備える。なお、情報処理装置3は、CPU32を少なくとも含む情報処理装置と他の装置とを含む1以上の装置によって構成されてもよい。情報処理装置3は、情報処理を実行することが可能な任意の構成でよく、例えば情報処理の一部または全部が専用回路によって実行されてもよい。本実施形態においては、上記情報処理によって情報処理装置3が画像を生成し、生成された画像が情報処理装置3からモニタ4へ出力される。
【0047】
通信部31は、他の機器等と有線または無線通信を行う機能を有している。例えば、通信部31は、通信データ(例えば、操作データ)を送受信することによって、ネットワーク100を介して他の情報処理装置3等との通信を行う。
【0048】
CPU32は、各種の情報処理を実行するための情報処理手段(コンピュータ)の一例である。CPU32は、各種の情報処理として、操作部21に対する操作に応じた処理等を実行する機能を有する。また、CPU32は、各種の情報処理として、通信部31を介して他の情報処理装置3から通信データを受信し、当該通信データに応じた処理等を実行する機能を有する。また、CPU32は、各種の情報処理として、他の情報処理装置3へ送信する送信データを作成して、通信部31を介して当該送信データを送信する処理等を実行する機能を有する。例えば、CPU32が所定のプログラムを実行することによって、上記機能が実現される。
【0049】
メモリ33は、CPU32が上記情報処理を実行する際に用いる各種のデータを記憶する。メモリ33は、例えばCPU32がアクセス可能なメモリである。
【0050】
プログラム記憶部34は、プログラムを記憶(格納)する。プログラム記憶部34は、CPU32がアクセス可能な記憶装置(記憶媒体)であればどのようなものであってもよい。例えば、プログラム記憶部34は、CPU32を含む情報処理装置3内に設けられる記憶装置であってもよいし、CPU32を含む情報処理装置3に着脱自在に装着される記憶媒体であってもよい。また、プログラム記憶部34は、CPU32とネットワークを介して接続される記憶装置(サーバ等)であってもよい。CPU32は、プログラムの一部または全部を適宜のタイミングでメモリ33に読み出し、読み出されたプログラムを実行するようにしてもよい。
【0051】
モニタ4は、画像を表示する表示装置の一例である。情報処理装置3からモニタ4へ画像が送信されてくる場合、モニタ4は当該画像を表示する。
【0052】
次に、情報処理装置3が行う具体的な処理を説明する前に、図3図5を用いて情報処理システム1において行われる処理の概要について説明する。なお、図3は、情報処理システム1に含まれる情報処理装置3aおよび3bにおいて、それぞれ表示される画面の一例を示す図である。図4は、情報処理装置3aおよび3bにおける処理動作の一例を示す図である。図5は、情報処理装置3aおよび3bにおいてそれぞれ描画されるフレームの一例を示す図である。
【0053】
図3において、情報処理システム1に含まれる情報処理装置3aおよび3bは、それぞれ通信データ(操作データ)を送受信することによって、同じゲームプログラムを実行してゲームを進行する。一例として、図3のゲーム例では、情報処理装置3aのユーザが操作するプレイヤPaと情報処理装置3bのユーザが操作するプレイヤPbとが対戦するテニスゲームがそれぞれの表示画面(モニタ4)に表示されている。
【0054】
図3(A)に示す情報処理装置3aで表示される画面では、情報処理装置3aのユーザが操作する自プレイヤPaと相手プレイヤPbとが対戦しているテニスゲームが表示されている。具体的には、情報処理装置3aで表示される画面では、情報処理装置3aのユーザが操作する自プレイヤPaがコートの手前側に表示され、相手プレイヤPbがコートの奥側に表示されたゲーム画像が表示されている。一方、図3(B)に示す情報処理装置3bで表示される画面では、情報処理装置3bのユーザが操作する自プレイヤPbと相手プレイヤPaとが対戦しているテニスゲームが表示されている。具体的には、情報処理装置3bで表示される画面では、情報処理装置3bのユーザが操作する自プレイヤPbがコートの手前側に表示され、相手プレイヤPaがコートの奥側に表示されたゲーム画像が表示されている。
【0055】
本実施形態では、ユーザ操作に応じて各プレイヤPaおよびPbがそれぞれ動作する。例えば、情報処理装置3aで表示される画面における自プレイヤPaは、情報処理装置3aのユーザが情報処理装置3aの操作部21を操作することに応じて動作する。そして、情報処理装置3aで表示される画面における相手プレイヤPbは、情報処理装置3bの操作部21に対する操作を示す操作情報を情報処理装置3bから情報処理装置3aが受信し、当該操作情報に応じて動作する。一方、情報処理装置3bで表示される画面における自プレイヤPbは、情報処理装置3bのユーザが情報処理装置3bの操作部21を操作することに応じて動作する。そして、情報処理装置3bで表示される画面における相手プレイヤPaは、情報処理装置3aの操作部21に対する操作を示す操作情報を情報処理装置3aから情報処理装置3bが受信し、当該操作情報に応じて動作する。つまり、相手プレイヤの動作は、当該相手プレイヤを操作しているユーザの操作情報を受信することによってそれぞれ動作制御される。したがって、それぞれの情報処理装置3aおよび3bで表現される相手プレイヤの動作は、少なくとも操作情報を送受信するための時間だけ遅延することになる。
【0056】
このような遅延時間を吸収して情報処理装置3aおよび3b間のゲーム進行を同期させるために、本実施形態では、表示するゲーム画像の描画フレームが間延び表示および/または間引き表示される。例えば、図3(A)に示すように、相手プレイヤ(図3(A)の例ではプレイヤPb)がボールを打撃してから自プレイヤ(図3(A)の例ではプレイヤPa)がボールを打撃するまでの期間は、表示する描画フレームの一部をドロップしてゲーム画像を表示(間引き表示)する。これによって、相手プレイヤがボールを打撃してから自プレイヤがボールを打撃するまでの期間が、描画フレームをドロップした数に応じて短くなる(例えば、相手操作情報が受信されるまでの遅延時間分短くする)ため、上記遅延時間を吸収することができる。また、図3(B)に示すように、自プレイヤ(図3(B)の例ではプレイヤPb)がボールを打撃してから相手プレイヤ(図3(B)の例ではプレイヤPa)がボールを打撃するまでの期間は、表示する描画フレームの一部を重複させてゲーム画像を表示(間延び表示)する。これによって、自プレイヤがボールを打撃してから相手プレイヤがボールを打撃するまでの期間が、描画フレームを重複表示した数に応じて長くなる(例えば、自操作情報が相手装置で受信されるまでの遅延時間分長くする)ため、上記遅延時間を吸収することができる。
【0057】
図4に示すように、上記遅延時間に応じて、描画フレームを間延び表示および/または間引き表示する数を設定することによって、情報処理装置3aおよび3b間のゲーム進行を同期させることができる。例えば、操作部21に含まれる所定の操作ボタンを押下することに応じて、自プレイヤがボールを打撃する動作を行うとする。この場合、情報処理装置3aのユーザが情報処理装置3aに含まれる上記操作ボタンを押下操作することに応じて、情報処理装置3aのモニタ4には自プレイヤPaがボールを打撃する場面が表示されるとともに、当該押下操作をしたことを示す打撃操作データが情報処理装置3aから情報処理装置3bへ送信される。
【0058】
情報処理装置3aから送信された打撃操作データは、ネットワーク100を介して情報処理装置3bで受信され、情報処理装置3aから情報処理装置3bへの打撃操作データの送受信のために遅延時間が生じる。したがって、情報処理装置3bのモニタ4において表示される相手プレイヤPaがボールを打撃する場面は、情報処理装置3aで同じ場面が表示されるタイミングより上記遅延時間分だけ遅れて表示されることになる。したがって、情報処理装置3bは、情報処理装置3aから情報処理装置3bへの遅延時間を吸収するために、当該遅延時間分短く間引き表示する処理を開始する。具体的には、情報処理装置3bは、情報処理装置3aからの打撃操作データの受信後、上記遅延時間に応じて描画フレームをドロップする間引き表示処理を開始し、当該遅延時間を吸収して情報処理装置3bのユーザによる打撃操作(情報処理装置3bに含まれる上記操作ボタンの押下操作)を待つ(図4に示す情報処理装置3bの間引き表示期間)。
【0059】
次に、情報処理装置3bのユーザが上記操作ボタンを押下することに応じて、自プレイヤPbがボールを打撃する動作を行う。この場合、情報処理装置3bのモニタ4には自プレイヤPbがボールを打撃する場面が表示されるとともに、当該押下操作をしたことを示す打撃操作データが情報処理装置3bから情報処理装置3aへ送信される。
【0060】
情報処理装置3bから送信された打撃操作データは、ネットワーク100を介して情報処理装置3aで受信され、情報処理装置3bから情報処理装置3aへの打撃操作データの送受信のために遅延時間も生じる。したがって、情報処理装置3aのモニタ4において表示される相手プレイヤPbがボールを打撃する場面も、情報処理装置3bで同じ場面が表示されるタイミングより上記遅延時間分だけ遅れて表示されることになる。したがって、情報処理装置3aは、情報処理装置3bへ打撃操作データを送信した後、情報処理装置3bから情報処理装置3aへの遅延時間分を吸収するために、当該遅延時間分長く間延び表示する処理を開始している。具体的には、情報処理装置3aは、情報処理装置3bへ打撃操作データを送信後、上記遅延時間に応じて描画フレームを重複表示する間延び表示処理を開始し、当該遅延時間を吸収して情報処理装置3bから打撃操作データ(情報処理装置3bに含まれる上記操作ボタンが押下操作されたことを示す操作データ)の受信を待っている(図4に示す情報処理装置3aの間延び表示期間)。
【0061】
また、情報処理装置3aは、情報処理装置3bから情報処理装置3aへの遅延時間を吸収するために、上述した情報処理装置3bと同様に、当該遅延時間分短く間引き表示する処理を開始する。具体的には、情報処理装置3aは、情報処理装置3bからの打撃操作データの受信後、上記遅延時間に応じて描画フレームをドロップする間引き表示処理を開始し、当該遅延時間を吸収して情報処理装置3aのユーザによる打撃操作(情報処理装置3aに含まれる上記操作ボタンの押下操作)を待つ(図4に示す情報処理装置3aの間引き表示期間)。
【0062】
一方、情報処理装置3bにおいても、情報処理装置3aへ打撃操作データを送信した後、次に受信する情報処理装置3aから情報処理装置3bへの遅延時間分を吸収するために、当該遅延時間分長く間延び表示する処理を開始する。具体的には、情報処理装置3bは、情報処理装置3aへ打撃操作データを送信後、上記遅延時間に応じて描画フレームを重複表示する間延び表示処理を開始し、当該遅延時間を吸収して情報処理装置3aから打撃操作データの受信を待つ(図4に示す情報処理装置3bの間延び表示期間)。
【0063】
このように、情報処理装置3aおよび3bは、それぞれ、打撃操作データを送信した後に間延び表示処理を行って相手装置からの打撃操作データの受信を待ち、相手装置から打撃操作データを受信した後に間引き表示処理を行ってユーザが打撃操作を行うのを待つ動作を繰り返すことによって、当該打撃操作データの送受信等で生じる遅延時間を吸収することができる。
【0064】
例えば、上記間延び表示処理および上記間引き表示処理は、描画フレームを重複表示する処理および描画フレームをドロップする処理を、所定の処理間隔で上記遅延時間に応じた回数行うことによって実現される。以下、図5を参照して、上記間延び表示処理および上記間引き表示処理が行われる一例を説明する。
【0065】
図5に示すように、間延び表示処理は、自機で打撃操作が行われた時点から開始され、所定フレーム毎(例えば、4フレーム毎)に同じ描画フレームを2回表示(図5において3や6で示された描画フレーム)することによって行われる。ここで、描画フレームの重複表示する際には、前回表示した仮想世界のデータを用いることができるため、当該仮想世界の状況を更新するための計算処理がスキップ(図5においてX印で示されたフレーム)される。なお、ゲーム処理が一般的な1/60秒を単位として行われる場合、1描画フレームが表示される時間(1フレーム時間)が約16.7ms(ミリ秒)となるため、約66.7ms毎に描画フレームの重複表示が繰り返されることになる。そして、所定フレーム毎に描画フレームを重複表示する処理が上記遅延時間に応じた回数(典型的には、上記遅延時間を1フレーム時間で除算した数に相当する回数)繰り返された後、間延び表示処理を終了して通常の表示処理に戻される。
【0066】
また、間引き表示処理は、相手装置から打撃操作データを取得した時点から開始され、所定フレーム毎(例えば、4フレーム毎)に描画フレームをドロップ(図5において5と7との間や10と12との間で示される描画フレーム)することによって行われる。ここで、描画フレームをドロップする際には、仮想世界の状況を更新するための計算処理を2回繰り返した後の描画フレームが表示(図5において「2回」と記載されたフレーム)される。なお、ゲーム処理が一般的な1/60秒を単位として行われる場合、約66.7ms毎に描画フレームのドロップが繰り返されることになる。そして、所定フレーム毎に描画フレームをドロップする処理が上記遅延時間に応じた(典型的には、上記遅延時間を1フレーム時間で除算した数に相当する回数)回数繰り返された後、間引き表示処理を終了して通常の表示処理に戻される。
【0067】
上述した間延び表示処理および間引き表示処理の一例では、固定フレーム間隔(例えば、4フレーム毎)で描画フレームを重複表示する処理や描画フレームをドロップする処理を繰り返した後、通常の表示処理に戻している。このように間延び表示処理を行うことによって、自機で打撃操作が行われた時点から相手装置から打撃操作データを受信するまでの期間に対して、相対的に早い時点で間延び表示処理を終えることができる。したがって、相手装置からの打撃操作データが相対的に早く受信したとしても、遅延時間を確実に吸収することができる。また、このように間引き表示処理を行うことによって、相手装置から打撃操作データを受信した時点から自機で打撃操作が行われる時点までの期間に対して、相対的に早い時点で間引き表示処理を終えることができる。したがって、自機において相対的に早く打撃操作が行われたとしても、遅延時間を確実に吸収することができる。なお、描画フレームを重複表示する処理間隔や描画フレームをドロップする処理間隔を、上記遅延時間に応じて変化させてもかまわない。例えば、上記遅延時間が相対的に短い場合に上記処理間隔を相対的に長く設定し、上記遅延時間が相対的に長い場合に上記処理間隔を相対的に短い設定することが考えられる。
【0068】
また、上述した効果を期待しない場合、自機で打撃操作が行われた時点から相手装置から打撃操作データを受信するまでの期間や相手装置から打撃操作データを受信した時点から自機で打撃操作が行われる時点までの期間に対して、均等に処理(典型的には、当該期間に相当するフレーム数を上記繰り返し回数で除算したフレーム間隔で処理)が行われてもかまわない。この場合、描画フレームを重複表示する処理や描画フレームをドロップする処理を行う間隔を相対的に長く設定することができる。
【0069】
また、上記間延び表示処理および上記間引き表示処理は、上記遅延時間が所定時間以上である場合に行われてもよい。例えば、上記遅延時間が描画フレームを4フレーム表示するための時間(4フレーム時間:約66.7ms)以上である場合、上記間延び表示処理および上記間引き表示処理が行われてもよい。
【0070】
また、上述した説明では、操作ボタンが押下操作されることに応じて自プレイヤが打撃動作をする例を用いたが、他の操作に応じて当該動作が行われるゲームであってもよい。一例として、所定の音声が入力されることによって自プレイヤが打撃動作をするゲームであってもよい。また、他の例として、入力装置2を振ることによって生じる加速度や入力装置2を振ることによって変化する角速度を加速度センサ22やジャイロセンサ23で検出し、当該検出結果を用いて入力装置2を把持しているユーザの振り動作を判定して、当該振り動作に応じて自プレイヤが打撃動作をするようなゲームであっても、上記間延び表示処理および上記間引き表示処理を行うことができる。この場合、上記加速度や角速度を示す操作データ(上記加速度情報および/または角速度情報を含む操作データ)を相手装置へ随時または常に送信し、当該相手装置においても上記振り動作判定を行って相手プレイヤの打撃動作を制御する。そして、自プレイヤの打撃タイミングから間延び表示処理を開始し、相手プレイヤの打撃タイミングから間引き表示処理を開始するようにすれば、同様に本発明を実現することができる。すなわち、加速度情報および/または角速度情報に基づいてプレイヤが打撃するゲームでは、随時または常に送受信している操作データのうち、所定の操作データ(自プレイヤが打撃するタイミングとなる操作データ)送信後に間延び処理を開始し、所定の操作データ(相手プレイヤが打撃するタイミングとなる操作データ)受信後に間引き処理を開始することになる。
【0071】
また、上述した間延び表示処理および間引き表示処理では、描画フレームを重複表示する処理や描画フレームをドロップする処理を上記遅延時間に応じた回数行うことによって実現する例を用いているが、当該処理をそれぞれ予め定められた回数行うようにしてもよい。一例として、処理を行う回数を予め複数の値(例えば、2つの値)に設定し、上記遅延時間の長さに応じて何れかの値が選択されるようにした場合、間延び表示処理および/または間引き表示処理を行うことによって、上述した遅延時間を段階的に吸収することが可能となる。他の例として、処理を行う回数を予め1つの固定値に設定したとしても、間延び表示処理および/または間引き表示処理を行うことによって、当該処理を行わない状態と比較すると上述した遅延時間をある程度吸収することが可能となる。
【0072】
また、上記遅延時間を吸収するために、間延び表示処理および間引き表示処理の何れか一方のみが行われてもかまわない。例えば、間延び表示処理だけで上記遅延時間を吸収する場合、自機で打撃操作が行われた時点から相手装置から打撃操作データを受信するまでの期間において、操作データが往復するために生じる往復遅延時間(例えば、情報処理装置3aから情報処理装置3bへの遅延時間と情報処理装置3bから情報処理装置3aへの遅延時間とを加算した時間)に応じた回数だけ、描画フレームを重複表示する処理が繰り返される。また、間引き表示処理だけで上記遅延時間を吸収する場合、相手装置から打撃操作データを受信した時点から自機で打撃操作が行われる時点までの期間において、操作データが往復するために生じる往復遅延時間に応じた回数だけ、描画フレームをドロップする処理が繰り返される。
【0073】
また、上述したゲーム例では、2つの情報端末装置3の間で行われるゲームを用いたが、3つ以上の情報端末装置3の間で行われるゲームにおいても、上述した間延び表示処理および/または間引き表示処理によって遅延時間を吸収することができる。例えば、3つの情報端末装置3a〜3cの間で行われるゲームにおいて、情報端末装置3bで操作されているプレイヤに向かって情報端末装置3aで操作されているプレイヤがボールを打撃した場合、情報端末装置3aにおいて間延び表示処理を行うとともに情報端末装置3bにおいて間引き表示処理を行って、情報端末装置3cでは通常の表示処理を行う。このように、ボールが打撃された相手に応じて上述した間延び表示処理および/または間引き表示処理を行うことによって、3つ以上の情報端末装置3の間で行われるゲームにおいても、同様に送受信する通信データにおける遅延時間を吸収することができる。
【0074】
次に、情報処理装置3において行われる処理の詳細を説明する。まず、図6を参照して、処理において用いられる主なデータについて説明する。なお、図6は、情報処理装置3のメモリ33に記憶される主なデータおよびプログラムの一例を示す図である。
【0075】
図6に示すように、メモリ33のデータ記憶領域には、操作データDa、受信データDb、送信データDc、遅延時間データDd、間延び/間引き回数設定データDe、間延び/間引き間隔設定データDf、仮想世界データDg、間延びフラグデータDh、および画像データDi等が記憶される。なお、メモリ33には、図6に示すデータの他、実行するアプリケーションで用いるデータ等、処理に必要なデータが記憶される。また、メモリ33のプログラム記憶領域には、情報処理プログラムを構成する各種プログラム群Paが記憶される。
【0076】
操作データDaは、ユーザが操作部21を操作した操作情報を示すデータである。例えば、操作ボタン等の操作部21を操作したことを示す操作データは、情報処理装置3が処理する時間単位(例えば、1/60秒)毎に取得され、当該取得に応じて操作データDaに格納されて更新される。
【0077】
受信データDbは、他の情報処理装置3から受信したデータである。送信データDcは、他の情報処理装置3へ送信するデータである。
【0078】
遅延時間データDdは、対戦ゲームを行う相手装置との間で通信データを送受信する際に必要な時間(遅延時間)を示すデータであり、当該対戦ゲームを開始する前に計測されて格納される。間延び/間引き回数設定データDeは、計測された遅延時間に応じて設定される間延び表示処理を行う回数および間引き表示処理を行う回数を示すデータである。間延び/間引き間隔設定データDfは、間延び表示処理および間引き表示処理を行う間隔を示すデータである。
【0079】
仮想世界データDgは、自機の操作データおよび相手装置から受信した操作データに基づいて構築される、対戦ゲームにおける仮想世界に関するデータである。一例として、仮想世界データDgは、仮想世界に登場する自プレイヤや相手プレイヤの位置、姿勢、動作等に関するデータ、仮想世界に登場する他のオブジェクト(例えば、ボール)の位置、移動方向、移動速度等に関するデータ、モニタ4に表示する仮想世界画像を生成するための仮想カメラに関するデータ等を含んでいる。
【0080】
間延びフラグデータDhは、間延び表示処理を行う期間である場合にオンに設定され、間引き表示処理を行う期間である場合にオフに設定される間延びフラグを示すデータである。
【0081】
画像データDiは、仮想世界画像を生成するために用いられるデータであり、仮想世界に登場する自プレイヤ、相手プレイヤ、および他のオブジェクト等を示す画像や背景画像等を示すデータである。
【0082】
次に、図7および図8を参照して、情報処理装置3において行われる処理の詳細を説明する。なお、図7は、情報処理装置3において実行される前半の処理の一例を示すフローチャートである。図8は、情報処理装置3において実行される後半の処理の一例を示すフローチャートである。ここで、図7および図8に示すフローチャートにおいては、情報処理装置3が他の情報処理装置3との間で行われる対戦ゲームに関する処理について主に説明し、これらの処理と直接関連しない他の処理については詳細な説明を省略する。また、図7および図8では、CPU32が実行する各ステップを「S」と略称する。
【0083】
本実施形態においては、図7および図8に示す一連の処理は、CPU32が、プログラム記憶部34に記憶される情報処理プログラムを実行することによって行われる。なお、図7および図8に示す処理が開始されるタイミングは任意である。情報処理プログラムは、適宜のタイミングでその一部または全部がメモリ33に読み出され、CPU32によって実行される。これによって、図7および図8に示す一連の処理が開始される。なお、情報処理プログラムは、プログラム記憶部34に予め記憶されているものとする。ただし、他の実施形態においては、情報処理装置3に着脱可能な記憶媒体から取得されてメモリ33に記憶されてもよいし、インターネット等のネットワークを介して他の装置から取得されてメモリ33に記憶されてもよい。
【0084】
また、図7および図8に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えておよび/または代えて別の処理が実行されてもよい。また、本実施形態では、上記フローチャートの各ステップの処理をCPU32が実行するものとして説明するが、上記フローチャートにおける一部または全部のステップの処理を、上記CPU以外のプロセッサや専用回路が実行するようにしてもよい。
【0085】
図7において、CPU32は、初期設定を行って(ステップ41)、次のステップに処理を進める。例えば、CPU32は、所定のマッチング処理に基づいて、対戦ゲームを行う際の通信先装置となる他の情報処理装置3を設定する。また、CPU32は、仮想世界に自プレイヤオブジェクトや相手プレイヤオブジェクト等の各種オブジェクトや背景を配置してモニタ4に表示するための仮想世界を構築し、仮想世界データDgを更新する。また、CPU32は、ゲーム処理で用いられる各パラメータを初期設定(例えば、間延びフラグについては、自プレイヤが先に打撃(例えば、自プレイヤがサーブ)する場合にオフに初期設定し、相手プレイヤが先に打撃(例えば、自プレイヤがレシーブ)する場合にオンに初期設定して、間延びフラグデータDhを更新する。
【0086】
次に、CPU32は、通信先装置との間で生じる遅延時間を設定する処理を行い(ステップ42)、次のステップに処理を進める。例えば、CPU32は、通信部31を介して、通信先装置(すなわち、対戦ゲームを行う相手の情報処理装置3)へ遅延時間を計測するための所定データを送信し、当該送信時点から当該データに対して返信されたデータを受信した時点までの時間を計測する。そして、CPU32は、計測した時間を示すデータを用いて遅延時間データDdを更新する。
【0087】
また、CPU32は、上記ステップ42において、対戦ゲームを行う際の間延び表示処理を行う回数および間隔と間引き表示処理を行う回数および間隔を、遅延時間データDdが示す時間(遅延時間)に応じて設定し、間延び/間引き回数設定データDeおよび間延び/間引き間隔設定データDfを更新する。一例として、CPU32は、遅延時間データDdが示す時間が、自機と通信先装置との間でデータが往復する際の遅延時間を示している場合、当該遅延時間を1フレーム時間で除算した数に相当する回数をそれぞれ間延び表示処理を行う回数および間引き表示処理を行う回数に振り分けて(例えば、同数に振り分けて)設定する。他の例として、CPU32は、遅延時間データDdが示す時間が、自機と通信先装置との間でデータが往復する際の遅延時間を示している場合、当該遅延時間の半分を1フレーム時間で除算した数に相当する回数をそれぞれ間延び表示処理を行う回数および間引き表示処理を行う回数として設定する。そして、CPU32は、間延び表示処理を行う間隔および間引き表示処理を行う間隔をそれぞれ固定値(例えば、4フレーム毎)として、間延び表示処理を行うタイミングおよび間引き表示処理を行うタイミングをそれぞれ設定する。なお、CPU32は、遅延時間データDdが示す時間が所定の時間未満である場合(例えば、自機と通信先装置との間でデータが往復する際の遅延時間や片道の遅延時間が4フレーム時間(約66.7ms)未満である場合)、間延び表示処理を行う回数および間引き表示処理を行う回数をそれぞれ0に設定する。
【0088】
次に、CPU32は、入力装置2から操作データを取得し、操作データDaを更新して(ステップ43)、次のステップに処理を進める。例えば、CPU32は、操作部21に対する操作内容を示すデータを用いて、操作データDaを更新する。
【0089】
次に、CPU32は、通信先装置である他の情報処理装置3から操作データを受信し(ステップ44)、次のステップに処理を進める。例えば、CPU32は、他の情報処理装置3から操作データを受信した場合、当該操作データを用いて受信データDbを更新する。
【0090】
次に、CPU32は、間延びフラグデータDhを参照して、間延びフラグがオンに設定されているか否かを判定する(ステップ45)。そして、CPU32は、間延びフラグがオンに設定されている場合、ステップ46に処理を進める。一方、CPU32は、間延びフラグがオフに設定されている場合、ステップ61(図8参照)に処理を進める。
【0091】
ステップ46において、CPU32は、受信データDbを参照して、上記ステップ44において通信先装置から打撃操作データを受信したか否かを判定する。そして、CPU32は、通信先装置から打撃操作データを受信した場合、ステップ47に処理を進める。一方、CPU32は、通信先装置から打撃操作データを受信していない場合、ステップ49に処理を進める。ここで、打撃操作データは、プレイヤにボールを打撃する動作を行わせるためのユーザ操作が行われたことを示すデータであり、例えば所定の操作ボタンが押下されたことを示す操作データである。なお、打撃操作されたタイミングを正確に伝達するために、打撃操作が行われたフレーム番号を打撃操作データとともに送受信してもよい。上記ステップ46においては、このような打撃操作データが対戦ゲームの相手が操作している通信先装置から受信したか否かが判定される。
【0092】
ステップ47において、CPU32は、打撃条件を算出して、次のステップに処理を進める。例えば、CPU32は、仮想世界の状況(例えば、相手プレイヤの位置、姿勢、動作状態や打撃されるボールの位置等)や打撃操作された状況(例えば、打撃操作されたタイミング(フレーム番号)、強さ、速さ等)等に応じて、打撃されたボールの初期軌道(例えば、打撃直後の移動方向や移動速度)を算出する。
【0093】
次に、CPU32は、間延びフラグをオフに設定して間延びフラグデータDhを更新し(ステップ48)、ステップ61(図8参照)に処理を進める。
【0094】
ステップ49において、CPU32は、仮想世界を更新する計算をスキップして描画フレームを重複する表示(間延び表示処理)するタイミングであるか否かを判定する。そして、CPU32は、現時点が計算をスキップするタイミングでない場合、ステップ50に処理を進める。一方、CPU32は、現時点が計算をスキップするタイミングである場合、ステップ51に処理を進める。例えば、仮想世界を更新する計算をスキップして描画フレームを重複する表示するタイミングは、上記ステップ42の処理で設定されており、当該設定結果が間延び/間引き回数設定データDeおよび間延び/間引き間隔設定データDfに格納されている。したがって、CPU32は、間延び/間引き回数設定データDeおよび間延び/間引き間隔設定データDfを参照して、現時点の処理が間延び表示処理を行うタイミングであるか否かを判定する。
【0095】
ステップ50において、CPU32は、仮想世界データを更新する処理を行い、ステップ51に処理を進める。例えば、CPU32は、仮想世界データDgに設定されている仮想世界内の仮想オブジェクト(自プレイヤや相手プレイヤを含む)等に関する位置、姿勢、動作等や仮想カメラの位置、姿勢等を、操作データDaおよび受信データDbが示す操作データ、当該仮想世界に設定されている自然法則、および各オブジェクトや仮想カメラに設定されている動作ルール等に基づいて変化させ、仮想世界データDgを更新する。
【0096】
ステップ51において、CPU32は、描画処理を行い、ステップ61(図8参照)に処理を進める。例えば、CPU32は、仮想世界データDgに基づいて、各オブジェクトが配置された仮想世界を構築し、当該仮想世界を仮想カメラから見た仮想世界画像を生成する。そして、CPU32は、生成された仮想世界画像をモニタ4へ出力することによって、当該仮想世界画像をモニタ4に表示する。
【0097】
なお、上記ステップ49において肯定判定された場合、上記ステップ50における仮想世界データの更新が行われることなく上記ステップ51の描画処理が行われる。つまり、上記ステップ49において肯定判定された場合、前回の描画処理において用いられた仮想世界データと同じデータを用いて描画処理が行われることになり、同じ描画フレームが2回モニタ4に表示されることになる。このように、上記ステップ50における仮想世界データ更新処理をスキップすることによって、描画フレームを重複表示する間延び表示処理が行われる。
【0098】
図8に進み、ステップ61において、CPU32は、間延びフラグデータDhを参照して、間延びフラグがオフに設定されているか否かを判定する。そして、CPU32は、間延びフラグがオフに設定されている場合、ステップ62に処理を進める。一方、CPU32は、間延びフラグがオンに設定されている場合、ステップ70に処理を進める。
【0099】
ステップ62において、CPU32は、操作データDaを参照して、上記ステップ43において取得した操作データが操作部21を用いた打撃操作を示すデータ(すなわち、打撃操作データ)であるか否かを判定する。そして、CPU32は、操作部21を用いて打撃操作が行われた場合、ステップ63に処理を進める。一方、CPU32は、操作部21を用いた打撃操作が行われていない場合、ステップ66に処理を進める。
【0100】
ステップ63において、CPU32は、打撃条件を算出して、次のステップに処理を進める。例えば、CPU32は、仮想世界の状況(例えば、自プレイヤの位置、姿勢、動作状態や打撃するボールの位置等)や打撃操作された状況(例えば、打撃操作したタイミング、強さ、速さ等)等に応じて、打撃したボールの初期軌道(例えば、打撃直後の移動方向や移動速度)を算出する。
【0101】
次に、CPU32は、操作データを通信先装置へ送信し(ステップ64)、次のステップに処理を進める。例えば、CPU32は、上記ステップ43で取得した操作データ(すなわち、打撃操作データ)を、現フレーム番号とともに送信データDcに格納する。そして、CPU32は、送信データDcに格納された操作データおよびフレーム番号を示すデータを、通信部31を介して、通信先装置へ送信する。
【0102】
次に、CPU32は、間延びフラグをオンに設定して間延びフラグデータDhを更新し(ステップ65)、上記ステップ45(図7参照)に処理を進める。
【0103】
ステップ66において、CPU32は、仮想世界データを更新する処理を行い、次のステップに処理を進める。なお、仮想世界データを更新する処理については、上記ステップ50と同様であるため、ここでは詳細な説明を省略する。
【0104】
次に、CPU32は、描画フレームをドロップ(間引き表示処理)するタイミングであるか否かを判定する(ステップ67)。そして、CPU32は、現時点が描画フレームをドロップするタイミングである場合、ステップ68に処理を進める。一方、CPU32は、現時点が描画フレームをドロップするタイミングでない場合、ステップ69に処理を進める。例えば、描画フレームをドロップするタイミングは、上記ステップ42の処理で設定されており、当該設定結果が間延び/間引き回数設定データDeおよび間延び/間引き間隔設定データDfに格納されている。したがって、CPU32は、間延び/間引き回数設定データDeおよび間延び/間引き間隔設定データDfを参照して、現時点の処理が間引き表示処理を行うタイミングであるか否かを判定する。
【0105】
ステップ68において、CPU32は、仮想世界データを再更新する処理を行い、ステップ69に処理を進める。例えば、CPU32は、上記ステップ66において更新された仮想世界データDgに設定されている仮想世界内の仮想オブジェクト等に関する位置、姿勢、動作等や仮想カメラの位置、姿勢等を、当該仮想世界に設定されている自然法則および各オブジェクトや仮想カメラに設定されている動作ルール等に基づいて変化させ、仮想世界データDgを再更新する。なお、上記ステップ68における仮想世界データの再更新処理においては、操作データDaおよび受信データDbが示す操作データに基づいた更新が再度行われないように、当該操作データに基づいた更新は行われない。
【0106】
ステップ69において、CPU32は、描画処理を行い、ステップ70に処理を進める。なお、描画処理については、上記ステップ51と同様であるため、ここでは詳細な説明を省略する。
【0107】
なお、上記ステップ67において肯定判定された場合、仮想世界データが2回更新された後に上記ステップ69の描画処理が行われる。つまり、上記ステップ67において肯定判定された場合、表示されるべき描画フレームがドロップされて描画処理が行われることになる。このように、仮想世界データを更新する処理が2回行われることによって、描画フレームをドロップする間引き表示処理が行われる。
【0108】
ステップ70において、CPU32は、ゲームを終了するか否かを判定する。ゲームを終了する条件としては、例えば、対戦ゲームにおける勝敗が決まったり、ゲームオーバーやゲームクリアとなる条件が満たされたりしたことや、ユーザがゲームを終了する操作を行ったこと等がある。CPU32は、ゲームを終了しない場合に上記ステップ43に戻って処理を繰り返し、ゲームを終了する場合に当該フローチャートによる処理を終了する。以降、ステップ43〜ステップ69の一連の処理は、ステップ70でゲームを終了すると判定されるまで繰り返し実行される。
【0109】
なお、上述した説明では、打撃操作されたタイミングを正確に伝達するために、打撃操作が行われたフレーム番号を打撃操作データとともに送受信している。これによって、自機で打撃操作が行われたフレーム番号と、通信先装置から打撃操作データを受信した時点のフレーム番号とがずれている場合であっても、双方の装置における打撃タイミングをフレーム番号で一致させることができる。しかしながら、上述した間延び表示処理および/または間引き表示処理によって、遅延時間と当該遅延時間を吸収/消費するフレーム数とを一致させれば、上述したフレーム番号のずれが生じることはない。したがって、このようなフレーム番号のずれがないことが想定される場合、フレーム番号の送受信は不要となり、装置間において送受信するデータは、それぞれの装置において行われた操作内容を示す操作データだけでよい。
【0110】
また、上述した間延び表示処理および/または間引き表示処理だけでは遅延時間が吸収できない状況となった場合、他の方法によって対応してもよい。例えば、想定している打撃タイミングより打撃操作データの受信が遅かった場合、当該遅れ時間だけ相手プレイヤの動作を一時的に停止させた画像を表示してもよい。また、複数の情報処理装置3の間における同期のずれが生じてきた場合、一方のユーザが打撃操作を行ったときに強制的に当該ユーザが操作するプレイヤが空振りするように制御することによって、当該同期がリセットされるように対応してもよい。
【0111】
また、上述した説明では、描画フレームの一部を異なる時点で重複して間延び表示させることによって、自機で操作(例えば、打撃操作)が行われた時点から相手装置から操作データ(例えば、打撃操作を示す操作データ)を受信するまでの期間で表示される描画フレームを標準より長い時間で表示しているが、他の方法によって表示速度を調整してもよい。また、上述した説明では、描画フレームの一部をドロップして間引き表示させることによって、相手装置から操作データ(例えば、打撃操作を示す操作データ)を受信した時点から自機で操作(例えば、打撃操作)が行われる時点までの期間で表示される描画フレームを標準より短い時間で表示しているが、他の方法によって表示速度を調整してもよい。第1の例として、描画フレームを表示する周期(すなわち、処理周期)を変化させることによって、表示速度を調整してもかまわない。具体的には、描画フレームを表示する周期を基準値より長く変化させることによって標準より長い時間で表示する処理を行い、描画フレームを表示する周期を基準値より短く変化させることによって標準より短い時間で表示する処理を行うことが考えられる。第2の例として、仮想世界を更新する際に想定する仮想世界における経過時間を変化させることによって、表示速度を調整してもかまわない。具体的には、仮想世界における更新毎の経過時間を当該更新する処理周期より短く想定することによって標準より長い時間で表示する処理を行い、仮想世界における更新毎の経過時間を当該更新する処理周期より長く想定することによって標準より短い時間で表示する処理を行うことが考えられる。
【0112】
また、上述した処理手順では、対戦ゲームを行う前に遅延時間を計測し、当該遅延時間を用いて間延び表示処理および/または間引き表示処理を行う回数を設定して、当該対戦ゲーム中は常に当該回数に固定されている。しかしながら、上記対戦ゲーム中においても、定期的に遅延時間を計測してもよい。この場合、遅延時間が計測される毎に間延び表示処理および/または間引き表示処理を行う回数を再設定することができるため、さらに精度よく遅延時間を吸収することができる。
【0113】
また、上述した説明では、2つの情報処理装置3の間で操作データを交互にやり取りする例を用いたが、他の態様においても本発明を適用することができる。例えば、第1の情報処理装置から第2の情報処理装置へ操作データを送信する場合、第1の情報処理装置では当該操作データ送信後に間延び表示処理を開始し、第2の情報処理装置では当該操作データ受信後に間引き表示処理を開始する。このように、一方装置から他方装置へのみの操作データの送信であっても、一方装置が間延び表示処理を行い他方装置が間引き表示処理を行うことによって、当該操作データを送受信する際の遅延時間を吸収することが可能であり、当該操作データの送受信が1度のみでもいいし複数回行われてもよい。また、複数の情報処理装置間の操作データのやり取りにおいて、交互に操作データをやり取りするのではなくランダムな順序で操作データがやり取りされる場合も、操作データ送信側が操作データ送信後に間延び表示処理を開始し、操作データ受信側が操作データ受信後に間引き表示処理を開始することによって、同様に遅延時間を吸収することが可能となる。
【0114】
また、上述した説明では、ネットワークを介して複数の装置がデータ通信を行う際の遅延時間に対応する例を用いたが、本発明が様々な方式によるデータ通信による遅延時間にも対応することができることは言うまでもない。例えば、ネットワーク経由でデータ通信を行う場合であっても、情報処理装置3とネットワーク100との間が有線接続されてもいいし、無線LANや3G等を用いて情報処理装置3とネットワーク100との間が無線接続されてもよい。また、情報処理装置3から送信された通信データが、ネットワーク100上に設けられた他の装置(例えば、サーバ)で中継されて他の情報処理装置3で受信される形態の通信方式でもよい。さらに、複数の情報処理装置3は、近距離無線通信等を用いた無線通信または有線で直接接続されていてもよい。
【0115】
また、上述した説明では、装置間で対戦ゲームをする際の通信遅延時間を吸収する例を用いたが、装置間で他の情報処理を行う場合にも本発明を適用することができる。例えば、データ通信を用いて、複数の装置間で情報、画像、発言等をやり取りしてそれぞれの装置の表示画面に表示する処理等においても、本発明を適用することができる。
【0116】
また、上述した説明では情報処理を情報処理装置3で行う例を用いたが、上記情報処理における処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、情報処理装置3がさらに他の装置(例えば、別のサーバ、他のゲーム装置、他の携帯端末、他の情報処理装置)と通信可能に構成されている場合、上記情報処理における処理ステップは、さらに当該他の装置が協働することによって実行してもよい。このように、上記情報処理における処理ステップの少なくとも一部を他の装置で行うことによって、上述した情報処理と同様の処理が可能となる。また、上述した情報処理は、少なくとも1つの情報処理装置を含む情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施形態においては、情報処理装置3のCPU32が所定のプログラムを実行することによって、上述したフローチャートによる処理が行われたが、情報処理装置3が備える専用回路によって上記処理の一部または全部が行われてもよい。
【0117】
ここで、上述した変形例によれば、いわゆるクラウドコンピューティングのシステム形態や分散型の広域ネットワークおよびローカルネットワークのシステム形態でも本発明を実現することが可能となる。例えば、分散型のローカルネットワークのシステム形態では、据置型の情報処理装置(据置型のゲーム装置)と携帯型の情報処理装置(携帯型のゲーム装置)との間で上記処理を協働により実行することも可能となる。なお、これらのシステム形態では、上述した処理の各ステップの処理をどの装置で行うかについては特に限定されず、どのような処理分担をしたとしても本発明を実現できることは言うまでもない。
【0118】
また、上述した情報処理で用いられる処理順序、設定値、判定に用いられる条件等は、単なる一例に過ぎず他の順序、値、条件であっても、本実施例を実現できることは言うまでもない。
【0119】
また、上記各プログラムは、外部メモリ等の外部記憶媒体を通じて情報処理装置3に供給されるだけでなく、有線または無線の通信回線を通じて情報処理装置3に供給されてもよい。また、上記プログラムは、情報処理装置3内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、などでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを記憶する揮発性メモリでもよい。このような記憶媒体は、コンピュータ等が読み取り可能な記録媒体ということができる。例えば、コンピュータ等に、これらの記録媒体のプログラムを読み込ませて実行させることにより、上述で説明した各種機能を提供させることができる。
【0120】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。
【産業上の利用可能性】
【0121】
以上のように、本発明は、装置間でデータを送受信する際に生じる遅延の対応等を目的として、例えば情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法等として有用である。
【符号の説明】
【0122】
1…情報処理システム
2…入力装置
21…操作部
22…加速度センサ
23…ジャイロセンサ
3…情報処理装置
31…通信部
32…CPU
33…メモリ
34…プログラム記憶部
4…モニタ
100…ネットワーク
図1
図2
図3
図4
図5
図6
図7
図8