IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

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

特許7519334スポーツゲームシステム、スポーツゲームプログラム、スポーツゲーム装置、およびスポーツゲーム処理方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-10
(45)【発行日】2024-07-19
(54)【発明の名称】スポーツゲームシステム、スポーツゲームプログラム、スポーツゲーム装置、およびスポーツゲーム処理方法
(51)【国際特許分類】
   A63F 13/428 20140101AFI20240711BHJP
   A63F 13/211 20140101ALI20240711BHJP
   A63F 13/5258 20140101ALI20240711BHJP
   A63F 13/577 20140101ALI20240711BHJP
   A63F 13/812 20140101ALI20240711BHJP
   A63F 13/335 20140101ALI20240711BHJP
【FI】
A63F13/428
A63F13/211
A63F13/5258
A63F13/577
A63F13/812 B
A63F13/335
【請求項の数】 27
(21)【出願番号】P 2021121893
(22)【出願日】2021-07-26
(65)【公開番号】P2022160980
(43)【公開日】2022-10-20
【審査請求日】2023-01-16
(73)【特許権者】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】110001276
【氏名又は名称】弁理士法人小笠原特許事務所
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】岩田 健志
【審査官】前地 純一郎
(56)【参考文献】
【文献】特開2010-233681(JP,A)
【文献】特開2018-161433(JP,A)
【文献】特開2010-119787(JP,A)
【文献】特開2012-101026(JP,A)
【文献】「マリオゴルフ スーパーラッシュ」を先行プレイ。1人でも複数人でも、さまざまな遊び方やプレイスタイルが楽しめるマリオゴルフシリーズ最新作,4Gamer.net[online],2021年06月25日,インターネット<URL:https://www.4gamer.net/games/553/G055385/20210609123/>,[2023年11月29日検索]
【文献】スイングゴルフ パンヤ 2ndショット!,任天堂ホームページ(WaybackMachine)[online],2021年01月17日,インターネット<URL:https://web.archive.org/web/20210117071249/https://www.nintendo.co.jp/wii/software/r2pj/index.html>,[2023年11月29日検索]
【文献】ゲーム中の基本操作,MONSTER HUNTER RISE 公式Webマニュアル(WaybackMachine)[online],2021年03月30日,インターネット<URL:https://web.archive.org/web/20210330233302/https://game.capcom.com/manual/MHRISE/ja/switch/page/3/1>,[2023年11月29日検索]
【文献】[マリオオデッセイ]操作方法,マリオオデッセイ[マリオデ]攻略wiki|スイッチ(WaybackMachine)[online],2021年03月04日,インターネット<URL:https://web.archive.org/web/20210304095306/https://wiki.denfaminicogamer.jp/marioodyssey/操作方法>,[2023年12月1日検索]
【文献】「マリオゴルフ スーパーラッシュ」を先行プレイ。1人でも複数人でも,さまざまな遊び方やプレイスタイルが楽しめるマリオゴルフシリーズ最新作,4Gamer.net[online],2021年06月25日,インターネット<URL:https://www.4gamer.net/games/553/G055385/20210609123/>,[2023年11月29日検索]
(58)【調査した分野】(Int.Cl.,DB名)
A63F 13/00-13/98
A63F 9/24
(57)【特許請求の範囲】
【請求項1】
操作装置と、
プロセッサを備える情報処理装置とを備えるスポーツゲームシステムであって、
前記操作装置は、
第1の方向入力デバイスと、
第1の慣性センサーと、
前記第1の方向入力デバイスの出力に基づいた第1方向データ、および、前記第1の慣性センサーの出力に基づいた第1慣性データを少なくとも含む操作データを前記情報処理装置に送信するデータ送信部とを備え、
前記プロセッサは、
前記第1の方向データに基づいてプレイヤキャラクタオブジェクトを仮想空間内において移動させ、
前記プレイヤキャラクタオブジェクトの位置に基づいて前記仮想空間内における仮想カメラの位置を制御し、
前記第1慣性データに基づいて、前記操作装置が振られた振り方向を判定し、
前記プレイヤキャラクタオブジェクトに、判定された前記振り方向に応じた方向へスイングをするスイングアクションを行わせ、
前記スイングアクションと移動オブジェクトとの衝突判定に基づいて、前記仮想空間内において前記移動オブジェクトを移動させることで、前記移動オブジェクトを用いたスポーツゲームの制御を行う、スポーツゲームシステム。
【請求項2】
前記移動オブジェクトは、ボールオブジェクトである、請求項1記載のスポーツゲームシステム。
【請求項3】
前記スイングアクションは、前記プレイヤキャラクタオブジェクトの脚をスイングさせるキックアクションであり、
前記スポーツゲームは、前記ボールオブジェクトをゴールに入れることでスコアを得るサッカーゲームである、請求項2記載のスポーツゲームシステム。
【請求項4】
前記プロセッサは、
前記振り方向を2次元の方向として判定し、
前記プレイヤキャラクタオブジェクトに、前記キックアクションとして、前記2次元の振り方向に応じた方向にキックをするアクションを行わせる、請求項3記載のスポーツゲームシステム。
【請求項5】
前記プロセッサは、
他の情報処理装置とインターネット経由の通信または無線による直接通信を行い、
前記他の情報処理装置において制御される他のプレイヤキャラクタと共に前記プレイヤキャラクタを制御することで、前記スポーツゲームの多人数プレイを制御する、請求項1から4のいずれか記載のスポーツゲームシステム。
【請求項6】
前記操作装置は、第1の操作装置と第2の操作装置とを含み、
前記第1の操作装置は、前記第1の方向入力デバイスを備え、
前記第2の操作装置は、前記第1の慣性センサーを備える、請求項1から5のいずれか記載のスポーツゲームシステム。
【請求項7】
前記第2の操作装置は、第2の方向入力デバイスを更に備え、
前記操作データには、前記第2の方向入力デバイスの出力に基づいた第2の方向データが更に含まれ、
前記プロセッサは、
前記仮想カメラの向きを、前記移動オブジェクトの位置と、前記第2の方向データとに基づいて設定し、前記仮想カメラの位置を、前記プレイヤキャラクタオブジェクトを視野に含む位置に配置させる、請求項6記載のスポーツゲームシステム。
【請求項8】
前記プロセッサは、前記仮想カメラの向きを、前記仮想空間内において前記移動オブジェクトに向かった方向を含む所定の範囲において、前記第2の方向データに基づいて前記仮想カメラの向きを設定する、請求項7記載のスポーツゲームシステム。
【請求項9】
前記第1の操作装置は更に、第2の慣性センサーを備え、
前記操作データには、前記第2の慣性センサーの出力に基づいた第2の慣性データが更に含まれ、
前記プロセッサは更に、
前記第1の慣性データおよび前記第2の慣性データに基づいて、前記第1の操作装置と前記第2の操作装置とが実質的に同じタイミングで振られたか否かの判定を行い、
実質的に同じタイミングで振られたと判定した場合、前記プレイヤキャラクタオブジェクトに前記スイングアクションと異なるアクションを行わせる、請求項6から8のいずれか記載のスポーツゲームシステム。
【請求項10】
情報処理装置のコンピュータに、
第1の方向入力デバイスと、第1の慣性センサーとを備える操作装置から送信される
操作データに基づいて、前記第1の方向入力デバイスの出力に基づいた第1方向データ
と、前記第1の慣性センサーの出力に基づいた第1慣性データを取得させ、
仮想空間内において、前記第1の方向データに基づいてプレイヤキャラクタオブジェクトを仮想空間内において移動させ、
前記プレイヤキャラクタオブジェクトの位置に基づいて前記仮想空間内における仮想カメラの位置を制御させ、
前記第1慣性データに基づいて、前記操作装置が振られた振り方向を判定させ、
前記プレイヤキャラクタオブジェクトに、判定された前記振り方向に応じた方向へスイングをするスイングアクションを行わせ、
前記スイングアクションと移動オブジェクトとの衝突判定に基づいて、前記仮想空間内において前記移動オブジェクトを移動させることで、前記移動オブジェクトを用いたスポーツゲームの制御を行わせる、スポーツゲームプログラム。
【請求項11】
前記移動オブジェクトは、ボールオブジェクトである、請求項10に記載のスポーツゲームプログラム。
【請求項12】
前記スイングアクションは、前記プレイヤキャラクタオブジェクトの脚をスイングさせるキックアクションであり、
前記スポーツゲームは、前記ボールオブジェクトをゴールに入れることでスコアを得るサッカーゲームである、請求項11記載のスポーツゲームプログラム。
【請求項13】
前記コンピュータに、
前記振り方向を2次元の方向として判定させ、
前記プレイヤキャラクタオブジェクトに、前記2次元の振り方向に応じた方向にキックをするアクションを前記キックアクションとして行わせる、請求項12記載のスポーツゲームプログラム。
【請求項14】
前記コンピュータに、
他の情報処理装置とインターネット経由の通信または無線による直接通信を行わせ、
前記他の情報処理装置において制御される他のプレイヤキャラクタと共に前記プレイヤキャラクタを制御させることで、前記スポーツゲームの多人数プレイを制御させる、請求項10から13のいずれか記載のスポーツゲームプログラム。
【請求項15】
前記操作装置には、第1の操作装置と第2の操作装置が含まれ、当該第1の操作装置は、前記第1の方向入力デバイスを備え、当該第2の操作装置は、前記第1の慣性センサーと、第2の方向入力デバイスを備えており、
前記操作データには、前記第2の方向入力デバイスの出力に基づいた第2の方向データが更に含まれ、
前記コンピュータに、
前記移動オブジェクトの位置と前記第2の方向データとに基づいて前記仮想カメラの向きを設定させ、前記仮想カメラの位置を、前記プレイヤキャラクタオブジェクトを視野に含む位置に配置させる、請求項10から14のいずれか記載のスポーツゲームプログラム。
【請求項16】
前記コンピュータに、前記仮想カメラの向きを、前記仮想空間内において前記移動オブジェクトに向かった方向を含む所定の範囲において、前記第2の方向データに基づいて前記仮想カメラの向きを設定させる、請求項15に記載のスポーツゲームプログラム
【請求項17】
前記第1の操作装置は更に、第2の慣性センサーを備え、
前記操作データには、前記第2の慣性センサーの出力に基づいた第2の慣性データが更に含まれ、
前記コンピュータに更に、
前記第1の慣性データおよび前記第2の慣性データに基づいて、前記第1の操作装置と前記第2の操作装置とが実質的に同じタイミングで振られたか否かの判定を行わせ、
実質的に同じタイミングで振られたと判定した場合、前記プレイヤキャラクタオブジェクトに前記スイングアクションと異なるアクションを行わせる、請求項15または16に記載のスポーツゲームプログラム。
【請求項18】
操作装置と、
プロセッサを備えるスポーツゲーム装置であって、
前記操作装置は、
第1の方向入力デバイスと、
第1の慣性センサーと、
前記第1の方向入力デバイスの出力に基づいた第1方向データと、前記第1の慣性センサーの出力に基づいた第1慣性データとを少なくとも含む操作データを前記スポーツゲーム装置に送信するデータ送信部とを備え、
前記プロセッサは、
前記第1の方向データに基づいてプレイヤキャラクタオブジェクトを仮想空間内において移動させ、
前記プレイヤキャラクタオブジェクトの位置に基づいて前記仮想空間内における仮想カメラの位置を制御し、
前記第1慣性データに基づいて、前記操作装置が振られた振り方向を判定し、
前記プレイヤキャラクタオブジェクトに、判定された前記振り方向に応じた方向へスイングをするスイングアクションを行わせ、
前記スイングアクションと移動オブジェクトとの衝突判定に基づいて、前記仮想空間内において前記移動オブジェクトを移動させることで、前記移動オブジェクトを用いたスポーツゲームの制御を行う、スポーツゲーム装置。
【請求項19】
前記移動オブジェクトは、ボールオブジェクトである、請求項18記載のスポーツゲーム装置。
【請求項20】
前記スイングアクションは、前記プレイヤキャラクタオブジェクトの脚をスイングさせるキックアクションであり、
前記スポーツゲームは、前記ボールオブジェクトをゴールに入れることでスコアを得るサッカーゲームである、請求項19記載のスポーツゲーム装置。
【請求項21】
前記プロセッサは、
前記振り方向を2次元の方向として判定し、
前記プレイヤキャラクタオブジェクトに、前記キックアクションとして、前記2次元の振り方向に応じた方向にキックをするアクションを行わせる、請求項20記載のスポーツゲーム装置。
【請求項22】
他のスポーツゲーム装置とインターネット経由の通信または無線による直接通信を行い、
前記他のスポーツゲーム装置において制御される他のプレイヤキャラクタと共に前記プレイヤキャラクタを制御することで、前記スポーツゲームの多人数プレイを制御する、請求項18から21のいずれか記載のスポーツゲーム装置。
【請求項23】
情報処理装置のコンピュータに実行させるスポーツゲーム処理方法であって、
前記コンピュータに、
第1の方向入力デバイスと、第1の慣性センサを備える操作装置から送信される操
作データに基づいて、前記第1の方向入力デバイスの出力に基づいた第1方向データと、前記第1の慣性センサの出力に基づいた第1慣性データを取得させ、
前記第1の方向データに基づいてプレイヤキャラクタオブジェクトを仮想空間内において移動させ、
前記プレイヤキャラクタオブジェクトの位置に基づいて前記仮想空間内における仮想カメラの位置を制御させ、
前記第1慣性データに基づいて、前記操作装置が振られた振り方向を判定させ、
前記プレイヤキャラクタオブジェクトに、判定された前記振り方向に応じた方向へスイングをするスイングアクションを行わせ、
前記スイングアクションと移動オブジェクトとの衝突判定に基づいて、前記仮想空間内において前記移動オブジェクトを移動させることで、前記移動オブジェクトを用いたスポーツゲームの制御を行わせる、スポーツゲーム処理方法。
【請求項24】
前記移動オブジェクトは、ボールオブジェクトである、請求項23記載のスポーツゲーム処理方法。
【請求項25】
前記スイングアクションは、前記プレイヤキャラクタオブジェクトの脚をスイングさせるキックアクションであり、
前記スポーツゲームは、前記ボールオブジェクトをゴールに入れることでスコアを得るサッカーゲームである、請求項24記載のスポーツゲーム処理方法。
【請求項26】
前記コンピュータに、
前記振り方向を2次元の方向として判定させ、
前記プレイヤキャラクタオブジェクトに、前記キックアクションとして、前記2次元の振り方向に応じた方向にキックをするアクションを行わせる、請求項25記載のスポーツゲーム処理方法。
【請求項27】
前記コンピュータに、
他の情報処理装置とインターネット経由の通信または無線による直接通信を行わせ、
前記他の情報処理装置において制御される他のプレイヤキャラクタと共に前記プレイヤキャラクタを制御することで、前記スポーツゲームの多人数プレイを制御させる、請求項23から26のいずれか記載のスポーツゲーム処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、球技等をモチーフとしたスポーツゲーム処理に関する。
【背景技術】
【0002】
従来から、ネットワークを用いる対戦型のサッカーゲームが知られている(例えば特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2002-282535号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記のサッカーゲームにおける操作方法は、コントローラの十字キー、操作キー、およびジョイスティックを用いるものであった。そのため、例えばボールをキックする操作も、これらのキーやジョイスティックを用いるものであった。
【0005】
しかし、このようなキー操作だけでは、キック方向(脚をスイングする方向)の細かい指定等、詳細な制御はできなかった。
【0006】
それ故に、本実施形態における目的は、仮想ゲーム空間内でスイングする方向をユーザが直接的に、かつ詳細に指定してプレイ可能なスポーツゲームシステムを提供することである。
【課題を解決するための手段】
【0007】
上記目的を達成するために、例えば以下のような構成例が挙げられる。
【0008】
構成例の一例は、操作装置と、プロセッサを備える情報処理装置とを備えるスポーツゲームシステムである。操作装置は、第1の方向入力デバイスと、第1の慣性センサーと、第1の方向入力デバイスの出力に基づいた第1方向データおよび第1の慣性センサーの出力に基づいた第1慣性データを少なくとも含む操作データを情報処理装置に送信するデータ送信部とを備える。そして、プロセッサは、第1の方向データに基づいてプレイヤキャラクタオブジェクトを仮想空間内において移動させ、プレイヤキャラクタオブジェクトの位置に基づいて仮想空間内における仮想カメラの位置を制御し、第1慣性データに基づいて、操作装置が振られた振り方向を判定し、プレイヤキャラクタオブジェクトに、判定された振り方向に応じた方向へスイングをするスイングアクションを行わせ、スイングアクションと移動オブジェクトとの衝突判定に基づいて、仮想空間内において移動オブジェクトを移動させることで、移動オブジェクトを用いたスポーツゲームの制御を行う。
【0009】
上記構成例によれば、第1の方向入力デバイスを用いてプレイヤキャラクタオブジェクトの移動操作を行うことができ、更に、ユーザ自身が操作装置を振る操作で、プレイヤキャラクタオブジェクトにスイングアクションを行わせることができる。また、このスイングアクションに基づいて移動オブジェクトを移動させることもできるところ、プレイヤキャラクタオブジェクトが行うスイングの方向を、ユーザ自身が操作装置を振る方向によって直感的、かつ、詳細に指定させることができる。また、このことは、ひいては、移動オブジェクトを移動させる方向を直感的かつ詳細に指定できるということでもある。そのため、直感的な操作によって、狙った位置に向けて移動オブジェクトを移動させるというような操作も可能となる。これにより、操作性に優れたスポーツゲームシステムを提供できる。また、プレイヤキャラクタオブジェクトの位置に基づいて仮想カメラを制御するため、プレイヤキャラクタオブジェクトが常に視野に入るような仮想カメラ制御も可能となり、プレイヤキャラクタオブジェクトに関する位置関係が把握しやすい画面を提供できる。また、ユーザが操作装置を実際に振る操作を行うことに応じてプレイヤキャラクタオブジェクトもスイングアクションを行うため、よりリアリティの高いプレイ感を提供できる。
【0010】
他の構成例として、移動オブジェクトは、ボールオブジェクトであってもよい。
【0011】
上記構成例によれば、球技をモチーフとしたスポーツゲームシステムにおいて、操作性に優れ、かつ、よりリアリティのあるプレイ感が得られるスポーツゲームを提供できる。
【0012】
他の構成例として、スイングアクションは、プレイヤキャラクタオブジェクトの脚をスイングさせるキックアクションであり、スポーツゲームは、ボールオブジェクトをゴールに入れることでスコアを得るサッカーゲームであってもよい。
【0013】
上記構成例によれば、操作性に優れ、また、よりリアリティの高いプレイ感を得られるサッカーゲームを提供できる。
【0014】
他の構成例として、プロセッサは、振り方向を2次元の方向として判定し、プレイヤキャラクタオブジェクトに、キックアクションとして、2次元の振り方向に応じた方向にキックをするアクションを行わせてもよい。
【0015】
上記構成例によれば、2次元における360°方向について、任意の方向をキックする方向として指定することができる。これにより、サッカーゲームにおけるキックの方向につき、詳細で自由度の高い指定ができ、サッカーゲームの興趣性をより高めることができる。
【0016】
他の構成例として、プロセッサは、他の情報処理装置とインターネット経由の通信または無線による直接通信を行い、他の情報処理装置において制御される他のプレイヤキャラクタと共にプレイヤキャラクタを制御することで、スポーツゲームの多人数プレイを制御してもよい。
【0017】
上記構成例によれば、チームで対戦するスポーツゲームにおいて、それぞれのユーザが選手キャラクタの1人1人を担当し、各ユーザの判断で自身の担当する選手キャラクタを詳細にコントロールして、多人数でプレイすることができる。これにより、ユーザが1人でチーム全体をコントロールするような従来のスポーツゲームと比べ、現実のスポーツチームと同様に、1人の選手として試合に参加しているようなプレイ感覚を提供することができる。
【0018】
他の構成例として、操作装置は、第1の操作装置と第2の操作装置とを含み、第1の操作装置は、第1の方向入力デバイスを備え、第2の操作装置は、第1の慣性センサーを備えていてもよい。
【0019】
上記構成例によれば、左手で方向入力デバイスの操作を行い、右手で第2の操作装置を振るというような、別個の動作を左右の手で独立して行うことができる。更に、この別個の動作を同時に実行することもでき、優れた操作性を提供できる。
【0020】
他の構成例として、第2の操作装置は、第2の方向入力デバイスを更に備えていてもよい。そして、操作データには、第2の方向入力デバイスの出力に基づいた第2の方向データが更に含まれていてもよい。更に、プロセッサは、仮想カメラの向きを、移動オブジェクトの位置と第2の方向データとに基づいて設定し、仮想カメラの位置を、プレイヤキャラクタオブジェクトを視野に含む位置に配置させてもよい。
【0021】
上記構成例によれば、第2の方向入力デバイスを用いて、仮想カメラの向きを変更することができる。これにより、例えばユーザが一時的にプレイヤキャラクタオブジェクトの周囲の状況等を確認したい場合等に、任意の方向に仮想カメラを向けることができ、ユーザの利便性をより高めることができる。
【0022】
他の構成例として、プロセッサは、仮想カメラの向きを、仮想空間内において移動オブジェクトに向かった方向を含む所定の範囲において、第2の方向データに基づいて仮想カメラの向きを設定してもよい。
【0023】
上記構成例によれば、ユーザが選手の1人として仮想空間内を自由に移動し、任意の方向にスイングアクションを行うことができるという自由度の高い操作が可能な中で、ユーザが移動オブジェクトを見失ってしまうことを防ぐことができる。これにより、ゲームのプレイのしやすさを向上させることができる。
【0024】
他の構成例として、第1の操作装置は更に第2の慣性センサーを備えていてもよい。そして、操作データには、第2の慣性センサーの出力に基づいた第2の慣性データが更に含まれていてもよい。更に、プロセッサは、第1の慣性データおよび第2の慣性データに基づいて、第1の操作装置と前記第2の操作装置とが実質的に同じタイミングで振られたか否かの判定を行い、実質的に同じタイミングで振られたと判定した場合、プレイヤキャラクタオブジェクトにスイングアクションと異なるアクションを行わせてもよい。
【0025】
上記構成例によれば、操作装置を振る操作を用いて、スイングアクション以外のアクションをプレイヤキャラクタオブジェクトに行わせることができる。これにより、プレイヤキャラクタオブジェクトにとらせる行動の選択の幅を広げることができ、ゲームの興趣性をより高めることができる。
【発明の効果】
【0026】
本実施形態によれば、プレイヤキャラクタオブジェクトがスイングする方向をユーザが直接的に、かつ詳細に指定できるスポーツゲームシステムを提供することができる。
【図面の簡単な説明】
【0027】
図1】本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図
図2】本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図
図3】本体装置2の一例を示す六面図
図4】左コントローラ3の一例を示す六面図
図5】右コントローラ4の一例を示す六面図
図6】本体装置2の内部構成の一例を示すブロック図
図7】本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図
図8】本実施形態に係るゲーム画面の一例
図9】本実施形態に係るゲーム画面の一例
図10】本実施形態に係るゲーム画面の一例
図11】本実施形態に係るゲーム画面の一例
図12】仮想カメラの制御について説明するための図
図13】仮想カメラの制御について説明するための図
図14】仮想カメラの制御について説明するための図
図15】仮想カメラの制御について説明するための図
図16】仮想カメラの制御について説明するための図
図17】仮想カメラの制御について説明するための図
図18】仮想カメラの制御について説明するための図
図19】仮想カメラの制御について説明するための図
図20】仮想カメラの制御について説明するための図
図21】仮想カメラの制御について説明するための図
図22】DRAM85に記憶される各種データの一例を示すメモリマップ
図23】操作データ303のデータ構成の一例
図24】プレイヤキャラ関連データ305のデータ構成の一例
図25】モーションデータ307のデータ構成の一例
図26】キックモーション対応データ308のデータ構成の一例
図27】本実施形態に係るゲーム処理の詳細を示すフローチャート
図28】プレイヤキャラ制御処理の詳細を示すフローチャート
図29】キックアクション設定処理の詳細を示すフローチャート
図30】ボール衝突判定処理の詳細を示すフローチャート
図31】仮想カメラ制御処理の詳細を示すフローチャート
図32】右スティックに基づく制御処理の詳細を示すフローチャート
図33】ボール追従処理の詳細を示すフローチャート
【発明を実施するための形態】
【0028】
以下、一実施形態について説明する。
【0029】
以下、本実施形態の一例に係るゲームシステムについて説明する。本実施形態におけるゲームシステム1の一例は、本体装置(情報処理装置;本実施形態ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含む。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲームシステム1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる(図2参照)。以下では、本実施形態のゲームシステム1のハードウェア構成について説明し、その後に本実施形態のゲームシステム1の制御について説明する。
【0030】
図1は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。図1に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
【0031】
図2は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。図1および図2に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
【0032】
図3は、本体装置2の一例を示す六面図である。図3に示すように、本体装置2は、略板状のハウジング11を備える。本実施形態において、ハウジング11の主面(換言すれば、表側の面、すなわち、ディスプレイ12が設けられる面)は、大略的には矩形形状である。
【0033】
なお、ハウジング11の形状および大きさは、任意である。一例として、ハウジング11は、携帯可能な大きさであってよい。また、本体装置2単体または本体装置2に左コントローラ3および右コントローラ4が装着された一体型装置は、携帯型装置となってもよい。また、本体装置2または一体型装置が手持ち型の装置となってもよい。また、本体装置2または一体型装置が可搬型装置となってもよい。
【0034】
図3に示すように、本体装置2は、ハウジング11の主面に設けられるディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。本実施形態においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。
【0035】
また、本体装置2は、ディスプレイ12の画面上にタッチパネル13を備える。本実施形態においては、タッチパネル13は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のものである。ただし、タッチパネル13は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のものであってもよい。
【0036】
本体装置2は、ハウジング11の内部においてスピーカ(すなわち、図6に示すスピーカ88)を備えている。図3に示すように、ハウジング11の主面には、スピーカ孔11aおよび11bが形成される。そして、スピーカ88の出力音は、これらのスピーカ孔11aおよび11bからそれぞれ出力される。
【0037】
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子17と、本体装置2が右コントローラ4と有線通信を行うための右側端子21を備える。
【0038】
図3に示すように、本体装置2は、スロット23を備える。スロット23は、ハウジング11の上側面に設けられる。スロット23は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン28を備える。
【0039】
本体装置2は、下側端子27を備える。下側端子27は、本体装置2がクレードルと通信を行うための端子である。本実施形態において、下側端子27は、USBコネクタ(より具体的には、メス側コネクタ)である。上記一体型装置または本体装置2単体をクレードルに載置した場合、ゲームシステム1は、本体装置2が生成して出力する画像を据置型モニタに表示することができる。また、本実施形態においては、クレードルは、載置された上記一体型装置または本体装置2単体を充電する機能を有する。また、クレードルは、ハブ装置(具体的には、USBハブ)の機能を有する。
【0040】
図4は、左コントローラ3の一例を示す六面図である。図4に示すように、左コントローラ3は、ハウジング31を備える。本実施形態においては、ハウジング31は、縦長の形状、すなわち、図4における上下方向(図4に示すz軸方向)に長い形状である。左コントローラ3は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング31は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ3は、横長となる向きで把持されることも可能である。左コントローラ3が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0041】
左コントローラ3は、方向入力デバイスの一例である左アナログスティック(以下、左スティックと呼ぶ)32を備える。図4に示すように、左スティック32は、ハウジング31の主面に設けられる。左スティック32は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、左スティック32を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。なお、左コントローラ3は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、左スティック32を押下する入力が可能である。
【0042】
左コントローラ3は、各種操作ボタンを備える。左コントローラ3は、ハウジング31の主面上に4つの操作ボタン33~36(具体的には、右方向ボタン33、下方向ボタン34、上方向ボタン35、および左方向ボタン36)を備える。更に、左コントローラ3は、録画ボタン37および-(マイナス)ボタン47を備える。左コントローラ3は、ハウジング31の側面の左上に第1Lボタン38およびZLボタン39を備える。また、左コントローラ3は、ハウジング31の側面の、本体装置2に装着される際に装着される側の面に第2Lボタン43および第2Rボタン44を備える。これらの操作ボタンは、本体装置2で実行される各種プログラム(例えば、OSプログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
【0043】
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。
【0044】
図5は、右コントローラ4の一例を示す六面図である。図5に示すように、右コントローラ4は、ハウジング51を備える。本実施形態においては、ハウジング51は、縦長の形状、すなわち、図5における上下方向(図5に示すz軸方向)に長い形状である。右コントローラ4は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング51は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ4は、横長となる向きで把持されることも可能である。右コントローラ4が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0045】
右コントローラ4は、左コントローラ3と同様、方向入力部として右アナログスティック(以下、右スティックと呼ぶ)52を備える。本実施形態においては、右スティック52は、左コントローラ3の左スティック32と同じ構成である。また、右コントローラ4は、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、右コントローラ4は、左コントローラ3と同様、ハウジング51の主面上に4つの操作ボタン53~56(具体的には、Aボタン53、Bボタン54、Xボタン55、およびYボタン56)を備える。更に、右コントローラ4は、+(プラス)ボタン57およびホームボタン58を備える。また、右コントローラ4は、ハウジング51の側面の右上に第1Rボタン60およびZRボタン61を備える。また、右コントローラ4は、左コントローラ3と同様、第2Lボタン65および第2Rボタン66を備える。
【0046】
また、右コントローラ4は、右コントローラ4が本体装置2と有線通信を行うための端子64を備える。
【0047】
図6は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、図3に示す構成の他、図6に示す各構成要素81~91、97、および98を備える。これらの構成要素81~91、97、および98のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
【0048】
本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
【0049】
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【0050】
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
【0051】
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【0052】
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、プロセッサ81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。本実施形態においては、ネットワーク通信部82は、第1の通信態様としてWi-Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部82は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【0053】
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
【0054】
プロセッサ81は、上述の左側端子17、右側端子21、および下側端子27に接続される。プロセッサ81は、左コントローラ3と有線通信を行う場合、左側端子17を介して左コントローラ3へデータを送信するとともに、左側端子17を介して左コントローラ3から操作データを受信する。また、プロセッサ81は、右コントローラ4と有線通信を行う場合、右側端子21を介して右コントローラ4へデータを送信するとともに、右側端子21を介して右コントローラ4から操作データを受信する。また、プロセッサ81は、クレードルと通信を行う場合、下側端子27を介してクレードルへデータを送信する。このように、本実施形態においては、本体装置2は、左コントローラ3および右コントローラ4との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ3および右コントローラ4が本体装置2に装着された一体型装置または本体装置2単体がクレードルに装着された場合、本体装置2は、クレードルを介してデータ(例えば、画像データや音声データ)を据置型モニタ等に出力することができる。
【0055】
ここで、本体装置2は、複数の左コントローラ3と同時に(換言すれば、並行して)通信を行うことができる。また、本体装置2は、複数の右コントローラ4と同時に(換言すれば、並行して)通信を行うことができる。したがって、複数のユーザは、左コントローラ3および右コントローラ4のセットをそれぞれ用いて、本体装置2に対する入力を同時に行うことができる。一例として、第1ユーザが左コントローラ3および右コントローラ4の第1セットを用いて本体装置2に対して入力を行うと同時に、第2ユーザが左コントローラ3および右コントローラ4の第2セットを用いて本体装置2に対して入力を行うことが可能となる。
【0056】
本体装置2は、タッチパネル13の制御を行う回路であるタッチパネルコントローラ86を備える。タッチパネルコントローラ86は、タッチパネル13とプロセッサ81との間に接続される。タッチパネルコントローラ86は、タッチパネル13からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、プロセッサ81へ出力する。
【0057】
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
【0058】
本体装置2は、コーデック回路87およびスピーカ(具体的には、左スピーカおよび右スピーカ)88を備える。コーデック回路87は、スピーカ88および音声入出力端子25に接続されるとともに、プロセッサ81に接続される。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する回路である。
【0059】
本体装置2は、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびプロセッサ81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、プロセッサ81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。
【0060】
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
【0061】
図7は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、図6で示しているため図7では省略している。
【0062】
左コントローラ3は、本体装置2との間で通信を行う通信制御部101を備える。図7に示すように、通信制御部101は、端子42を含む各構成要素に接続される。本実施形態においては、通信制御部101は、端子42を介した有線通信と、端子42を介さない無線通信との両方で本体装置2と通信を行うことが可能である。通信制御部101は、左コントローラ3が本体装置2に対して行う通信方法を制御する。すなわち、左コントローラ3が本体装置2に装着されている場合、通信制御部101は、端子42を介して本体装置2と通信を行う。また、左コントローラ3が本体装置2から外されている場合、通信制御部101は、本体装置2(具体的には、コントローラ通信部83)との間で無線通信を行う。コントローラ通信部83と通信制御部101との間の無線通信は、例えばBluetooth(登録商標)の規格に従って行われる。
【0063】
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
【0064】
左コントローラ3は、各ボタン103(具体的には、ボタン33~39、43、44、および47)を備える。また、左コントローラ3は、左スティック32を備える。各ボタン103および左スティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
【0065】
左コントローラ3は、慣性センサを備える。具体的には、左コントローラ3は、加速度センサー104を備える。また、左コントローラ3は、角速度センサー105を備える。本実施形態においては、加速度センサー104は、所定の3軸(例えば、図4に示すxyz軸)方向に沿った加速度の大きさを検出する。なお、加速度センサー104は、1軸方向あるいは2軸方向の加速度を検出するものであってもよい。本実施形態においては、角速度センサー105は、所定の3軸(例えば、図4に示すxyz軸)回りの角速度を検出する。なお、角速度センサー105は、1軸回りあるいは2軸回りの角速度を検出するものであってもよい。加速度センサー104および角速度センサー105は、それぞれ通信制御部101に接続される。そして、加速度センサー104および角速度センサー105の検出結果は、適宜のタイミングで繰り返し通信制御部101へ出力される。
【0066】
通信制御部101は、各入力部(具体的には、各ボタン103、左スティック32、各センサー104および105)から、入力に関する情報(具体的には、操作に関する情報、またはセンサーによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【0067】
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103および左スティック32に対する操作を、操作データに基づいて判別することができる。また、本体装置2は、左コントローラ3の動きおよび/または姿勢に関する情報を、操作データ(具体的には、加速度センサー104および角速度センサー105の検出結果)に基づいて算出することができる。
【0068】
左コントローラ3は、電力供給部108を備える。本実施形態において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
【0069】
図7に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
【0070】
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、各ボタン113、右スティック52、慣性センサ(加速度センサー114および角速度センサー115)を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
【0071】
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
【0072】
[本実施形態におけるゲーム処理の概要]
次に、本実施形態にかかるゲームシステム1で実行されるゲーム処理の動作概要を説明する。上記のように、上記ゲームシステム1では、本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能な構成となっている。本体装置2に左コントローラ3および右コントローラ4を装着した状態でゲームを遊ぶ場合は、ゲーム画像はディスプレイ12に出力される。また、左コントローラ3および右コントローラ4をそれぞれ外した状態の本体装置2単体がクレードルに装着された場合は、本体装置2が、クレードルを介してゲーム画像を据置型モニタ等に出力することもできる。本実施形態では、後者の態様でゲームプレイを行う場合を例に説明する。すなわち、左コントローラ3および右コントローラ4をそれぞれ外した状態の本体装置2単体がクレードルに装着され、本体装置2が、クレードルを介してゲーム画像等を据置型モニタ等に出力する態様であるまた、ユーザが、左手に左コントローラ3を把持し、右手に右コントローラを把持している態様で、ゲームをプレイする場合を想定する。
【0073】
[想定するゲームについて]
本実施形態で想定するゲームは、仮想3次元空間内においてチーム同士で対戦するスポーツゲームである。具体的には、移動オブジェクトに対してインパクトを与えて移動させ、所定条件達成によって得点をあげていき、制限時間経過による試合終了時の得点の大小で勝敗を競う、チーム対戦型のスポーツゲームである。本実施形態では、このようなスポーツゲームの一例として、サッカーゲームを想定して説明する。そのため、上記移動オブジェクトとしては、サッカーボールオブジェクト(以下、単にボールと呼ぶ)を想定する。また、上記インパクトとは、例えばサッカーにおける選手に対応する選手キャラクタオブジェクトが上記ボールに対してキックやヘディング等することが該当する。なお、選手キャラクタオブジェクトのうち、ユーザの操作対象であるプレイヤキャラクタオブジェクトについては、以下の説明では、単にプレイヤキャラと呼ぶ。また、プレイヤキャラ以外の選手キャラクタオブジェクトについてはNPC(ノンプレイヤキャラクタ)と呼ぶ。
【0074】
なお、本実施形態が適用可能なサッカーゲーム以外のスポーツゲームとしては、例えばテニス、バレーボール、バトミントン、ホッケー等の、上記サッカー同様に移動対象物を移動させるようなスポーツ(主に球技)をモチーフとしたスポーツゲームが考えられる。
【0075】
図8に、本実施形態で想定するサッカーゲームの画面例を示す。本サッカーゲームでは、試合中は基本的には3人称視点の画面で進行する。すなわち、仮想カメラがプレイヤキャラ201から所定距離離れた位置(デフォルトではプレイヤキャラの後方)にあり、プレイヤキャラ201の全身が視野に含まれるようにしてゲーム画面が表示される。また、仮想カメラは、プレイヤキャラ201の移動に伴い、上記所定距離を保ちながら一緒に移動する。
【0076】
[マルチプレイについて]
ところで、本実施形態で想定するサッカーゲームは、ネットワークを用いて多人数プレイが可能なものを想定している。より具体的には、複数のゲームシステム1(本体装置2)同士を通信可能に接続して、サッカーゲームの参加ユーザの1人1人が、各チームのメンバー(競技プレイヤ)1人1人を担当してプレイする態様を想定している。そのため、本実施形態で想定するサッカーゲームでは、ゲームに参加するユーザはそれぞれサッカーチームの一選手として、自身の担当するプレイヤキャラ201を操作する。具体的には、各ユーザは、それぞれ自己の判断で、仮想ゲーム空間内に構築されたサッカー用フィールド(以下、単にフィールドと呼ぶ)上でプレイヤキャラ201を自由に移動させ、ボールをゴールオブジェクト(以下、単にゴールと呼ぶ)に入れることで得点を稼ぐという遊び方ができる。つまり、実際のサッカーの試合におけるチームの一員として行動するという感覚を擬似的に体験できるゲームとなっている。なお、以下の説明では、他のユーザが操作する選手キャラクタオブジェクトも上記NPCとして説明する。
【0077】
[通信・接続態様について]
ここで、ゲームシステム1同士の接続態様について補足する。本実施形態では、インターネット経由でゲームシステム1同士が通信するような接続態様を想定する。但し、他の実施形態では、本体装置2同士で無線による直接通信が可能なように接続する態様であってもよい。また、本実施形態では、1ユーザが1つのゲームシステム1(1つの画面)を利用する態様を想定する。他の実施形態では、画面分割を用いることで、1つのゲームシステム1に対して複数のユーザが同時にプレイできるような態様であってもよい。
【0078】
[操作方法について]
次に、本サッカーゲームにおける操作方法に関して説明する。本サッカーゲームでは、以下のような操作方法を用いる。まず、プレイヤキャラ201の移動について、ユーザは、左スティック32による方向入力を用いて、フィールド上においてプレイヤキャラ201を自由に移動させることができる。また、右コントローラ4を振る操作(以下、振り操作と呼ぶ)を行うことで、プレイヤキャラ201の脚をスイングさせるアクションを行うことができる。以下、この脚をスイングさせるアクションのことをキックアクションと呼ぶ。図9に、プレイヤキャラ201がキックアクションを行っているときのゲーム画面の一例を示す。図9は、ユーザが右コントローラ4を右下から左上に向けて振った場合に行われるキックアクションの一例である。図9のゲーム画面では、プレイヤキャラ201が右脚を略左斜め上方向に向けてスイングしている様子が示されている。また、この画面では、脚をスイングした方向(キック方向)を示すスイングエフェクト画像202も表示されている。スイングエフェクト画像202は、スイングの(3次元的な)軌跡を示すような帯状のエフェクト画像である。
【0079】
ここで、本実施形態では、上記キックアクションにおけるキック方向は、上記振り操作における振り方向と、仮想カメラの撮像方向とに基づいて決定される。具体的には、仮想カメラの撮像方向正面を基準として、振り方向に応じた方向をキック方向として用いる。すなわち、プレイヤから見た振り方向が画面上で見たキック方向に対応するように仮想ゲーム空間内でのキック方向が決定される。なお、プレイヤキャラ201の向きは基準として用いられないが、キックアクションを行う際、プレイヤキャラ201はその正面方向が撮像方向と一致するように向き直ってから、キックアクションを開始する。また、キックアクションの結果、プレイヤキャラ201の脚がボールに衝突すれば、ボールをキックすることになり、これによって、ボールを移動させることもできる。図10に、キックアクションでプレイヤキャラ201の脚がボールに衝突している場合のゲーム画面の一例を示す。図10は、プレイヤキャラ201は上記図9と同じ位置で、ボールの位置だけがプレイヤキャラ201の前方のすぐ近くに存在していた場合を想定したものである。図10では、衝突エフェクト203も表示されており、キックアクションの結果、プレイヤキャラ201の脚がボールと衝突したこと、つまり、ボールをキックしたことが視覚的に示されている。更に、図11は、キックされたボールがプレイヤキャラ201のやや左斜め前方に移動している様子を示すゲーム画面例である。図11では、キックされたボールの移動軌跡を示すボール移動エフェクト204も表示されている(なお、この図では、プレイヤキャラ201は、キックアクションが終了し、地面に着地する直前の状態である)。また、詳細は後述するが、当該ボールの移動に伴い、ボールが画面の略中央付近に映るように、仮想カメラの位置や向きが自動的に制御される。
【0080】
なお、本サッカーゲームでは、キックアクションにかかるモーション(以下、キックモーションと呼ぶ)は複数用意されているものとする。例えば、右脚で蹴り上げるキックモーションと左脚で蹴り上げるキックモーションとでは別々のモーションのデータが用意されている。また、これらのモーションのデータは、キック方向と対応づけられて記憶されている。そして、上記キック方向に応じたモーションが適宜選択されて表示(再生)される。
【0081】
上記のキックアクションによってボールをキックした際のボールの移動内容(射出角度や移動経路)は、上記キック方向や当たり方に基づいて決定される。また、当該キックアクションに係る振り操作における振りの強さに基づき、ボールの飛距離や移動速度が決定される。例えば、強く振るほど、強いキックとなり、より遠くにボールを飛ばすことができる。
【0082】
上記のように、本サッカーゲームにおける基本的な操作は、左スティック32でプレイヤキャラ201を移動させ、右コントローラ4の振り操作でキックアクションを行わせる、というものとなっている。なお、振り方向の算出手法やボールの移動内容の決定手法の詳細に関しては、後述する。
【0083】
次に、本サッカーゲーム中における上記以外の操作に関して補足説明する。まず、上記キックアクションに関して、振り操作中にユーザが手首のひねり(右コントローラ4のz軸周りの回転)を加えることで、ボールの移動軌跡について、当該ひねりの角度に応じたカーブをかけることも可能である。また、上記キックアクションの他、ユーザは、プレイヤキャラ201にヘディングアクションを行わせることもできる。本実施形態では、ユーザが右コントローラ4および左コントローラ3の同時振りを行うことで、ヘディングアクションをプレイヤキャラ201に行わせることができる。なお、この同時振りについては、時間的に厳密な意味での「同時」ではなく、多少の時間差があっても実質的に同じタイミングで振られたと考えられるものであってもよい。
【0084】
また、ユーザは、Bボタン54を押すことで、プレイヤキャラ201をジャンプさせることも可能である。また、プレイヤキャラ201の移動に関して、ZLボタン39を押しながら左スティック32を操作することで、プレイヤキャラ201をダッシュさせることも可能である。
【0085】
また、上記ヘディングアクションやダッシュに関しては、スタミナ消費制としてもよい。すなわち、プレイヤキャラ201に関するパラメータの一つとして「スタミナ」のパラメータを設けておく(この場合、スタミナゲージ等を画面に表示してもよい)。そして、ヘディングアクションやダッシュを行うために所定量のスタミナ消費が要求されるようにしてもよい。
【0086】
[仮想カメラ制御について]
次に、本サッカーゲームにおける仮想カメラの制御に関して説明する。上記のように、本サッカーゲームでは、ゲーム画面は3人称視点で表現される。そのため、基本的には、プレイヤキャラ201が常に視野に含まれるように、仮想カメラの位置や向きが制御される。更に、本サッカーゲームでは、ユーザがボールを見失いにくくするために、仮想カメラの撮像方向(仮想カメラの向き)を、ボールの位置に向けてある程度追従させるような制御も行っている。
【0087】
まず、仮想カメラのデフォルトの状態について説明する。図12に、仮想カメラとプレイヤキャラ201とのデフォルト状態としての位置関係を示す。デフォルト状態では、仮想カメラは、仮想空間座標系において、プレイヤキャラ201の背面側であって、プレイヤキャラ201から所定距離だけ離れた位置に配置される。また、仮想カメラの姿勢について、デフォルト状態では、その撮像方向が仮想空間座標系のy軸と直交するような姿勢であるとする。また、デフォルト状態での仮想カメラの高さ(y軸上の位置)については、プレイヤキャラ201が宙に浮いていない状態(フィールドに接地している状態)において、プレイヤキャラ201の頭部がゲーム画面の中央付近に映るような高さに設定される。
【0088】
図12の状態から、仮想空間座標系のz軸正方向にプレイヤキャラ201が移動した場合は、上記の所定距離を維持するようにしながら、プレイヤキャラ201の後ろからついて行くように仮想カメラも移動することになる。
【0089】
次に、仮想カメラの向きの追従制御に関して説明する。例えば、図12の状態から、プレイヤキャラ201は移動せずに、ボールだけが右方向(仮想空間座標系のx軸負方向)に移動した場合を想定する。この場合の仮想カメラ制御としては、図13で示すように、撮像方向がボールの位置に追従するように、カメラの位置と向きが変化する。具体的には、仮想カメラの位置については、上記の所定距離を維持しながら、プレイヤキャラ201を中心として、その周囲をまわる移動軌跡になるように、位置が変化する(つまり、プレイヤキャラ201が常に視野に入るようにしている)。仮想カメラの向きについては、ゲーム画面における略中央部分にボールが映るように、仮想カメラの向きが制御される。このようにすることで、ボールがゲーム画面内に常時表示されるようにすることができ、ユーザがボールを見失ってしまうことを防ぐことができる。
【0090】
また、プレイヤキャラとボールの双方とも移動しているような場合は、仮想カメラの位置はプレイヤキャラ201の位置に応じて変化しながら、図13で示したようにボールが撮像方向の略正面に来るように、仮想カメラの向きが制御されることになる。
【0091】
ここで、本サッカーゲームにおける、仮想カメラの向きをボールに追従させる制御の原理について説明する。図14は、当該原理を説明するための図である。まず、仮想空間座標系において、ボールの位置から、予め定められた所定距離だけボールの真上方向に離れた位置に、目標地点211が設定される。なお、当該目標地点は3次元座標で算出される。また、仮想カメラ座標系におけるxy平面(投影面)上に、矩形の2次元領域である追従判定領域212が設定される。そして、本サッカーゲームに係る処理では、仮想カメラ座標系におけるxy平面において上記目標地点211が追従判定領域212内に収まるように、仮想カメラの向きを随時変更するものである。例えば、図15に示すように、目標地点が追従判定領域212の左側にあるような場合は、追従判定領域212が左側に移動するように、仮想カメラの向きが変更される。また、この向きの変更については、瞬時に変更するのではなく、追従判定領域212が徐々に目標地点に近づいてくように所定時間かけて変更される。また、この際、目標地点211と追従判定領域212との間の距離が大きいほど、単位時間当たりの仮想カメラの向きの変更角度が大きくなるよう制御される(つまり、ボールから遠いほど、仮想カメラの向きを追従させる速度が速くなる)。
【0092】
また、目標地点211が追従判定領域212の内部に含まれている場合は、本実施形態では、仮想カメラの向きを追従させる動きを停止する。そのため、目標地点211が追従判定領域212の中央に位置していない状態、例えば追従判定領域212の外枠付近に目標地点211が位置しているような状態でも、仮想カメラの向きの追従動作は停止し得る。サッカーゲームにおいては、ボールは常に移動している状態が多いと考えられるところ、例えば画面の中央にボールが映るように厳密に追従させると、ゲーム画面としては却って見にくくなる可能性がある。そのため、本実施形態では、ある程度中央付近にボールが映るような状態になれば、追従動作を停止している。この点、他の実施形態では、例えば追従判定領域212の中央点に目標地点211が位置するまで、目標地点211が追従判定領域212の外にあるときよりも緩やかな動きで、仮想カメラの向きを変更させるような制御を行ってもよい。
【0093】
なお、上記の仮想カメラの向きの追従制御は、高さ方向(仮想カメラ座標系のy軸方向)についても適用されるが、例外的に、次のような制御も行われる。図16は、当該制御の原理を説明するための図である。本実施形態では、仮想空間座標系におけるボールの中点のy軸位置(地面からの高さ)が第1の高さ213以下である場合は、上記目標地点211のy軸における位置を第2の高さ214を下回らないような制御も行われる。例えば、ボールの中点が地面からの第1の高さ213以上の位置にある場合は、図17に示すように、目標地点211のy軸位置は、第2の高さ214以上となる位置に設定され得る。
【0094】
一方、図18に示すように、ボールの中点の地面からの高さが第1の高さ213以下である場合は、目標地点211を設定する際に、そのy軸位置が第2の高さ214を下回ることがないようにして設定される。この場合、ボールの中点と目標地点211との直線距離が、図17の場合よりも長くなり得る。つまり、ボールがある程度地面に近い位置にある場合は、y軸方向についての仮想カメラ向きの追従制御を行わないようにしている。これにより、例えば、ボールが低い位置で連続的にバウンドしているような場面で、ボールのバウンドに伴ってゲーム画面が上下に揺れるような表示となることを防ぎ、見やすいゲーム画面を提供することができる。
【0095】
次に、右スティック52を用いたカメラ制御に関して説明する。本サッカーゲームでは、基本的には上記のようにボールが常にゲーム画面内に含まれるような追従制御が自動的に行われる。これとは別に、ユーザが右スティック52を操作することで、ユーザの意思で仮想カメラの向きを一時的に変更することも可能となっている。すなわち、右スティック52に方向入力が発生している間は、その入力方向に応じた方向に仮想カメラの向きを変更することができる。例えば、右スティック52を右方向に傾けた場合、右スティック52が傾いている間は、仮想カメラの向きを右方向に回転させることができる。但し、本サッカーゲームに係る処理では、ユーザがボールを見失わないようにするという観点から、当該回転可能な範囲(可動範囲)に制限を設けている。具体的には、図19に示すように、右スティック52の入力がニュートラルのときの仮想カメラの正面方向を0°として、左右それぞれ120°までの範囲を、右スティック52による仮想カメラの可動範囲としている。これは、本サッカーゲームにおいて(仮想カメラの画角等との関係において)、プレイヤキャラ201およびボールがゲーム画面外に出てしまうことがないような範囲を想定したものである。なお、この120°の値は一例であり、プレイヤキャラ201およびボールがゲーム画面外に出ないようにできれば、仮想カメラの画角等に応じて適宜別の値を用いてもよい。
【0096】
更に、上記右スティック52による方向入力が発生している場合は、上述したような仮想カメラ向きの自動的な追従制御に関して、以下のような制御も行われる。まず、このような入力が発生した場合は、ユーザが、仮想カメラを向けた方向の状況を確認したいと考えている可能性が高い。そのため、このような場合は、上記のような仮想カメラの向きの自動的な追従制御を一時的に抑制して、仮想カメラの向きを維持するような制御が行われる。具体的には、右スティック52による方向入力が発生した場合、その入力方向に応じて、上記追従判定領域212の大きさを一時的に変化させることで、自動的な追従が行われないようにする。図20および図21は、ボールが静止している場合において、右スティック52が右方向に傾けられた場合における追従判定領域212の一例を示す図である。図20は、仮想カメラから見た、ボールと目標地点211と追従判定領域212の位置関係を示す図である(プレイヤキャラ201は省略している)。また、図21は、図20の位置関係を俯瞰した場合の図である。図20の例では、右スティック52に対する右方向入力(の傾きの大きさ)に応じて、上記図14で示した追従判定領域212の横幅を右方向に伸ばしたような形状となっている。このように、右スティック52の入力方向に応じて追従判定領域212を大きくすることで、仮想カメラの撮像方向が右方向に回転した場合でも、追従判定領域212内に目標地点211が入っている状態にしている。これにより、上記のような仮想カメラ向きの自動的な追従動作を抑制し、ユーザの入力に応じて仮想カメラが右に向いたままの状態を維持することができる。
【0097】
また、右スティック52への方向入力がなくなれば(ニュートラルに戻れば)、追従判定領域212の拡大は行われない。さらに、右スティック52への方向入力がニュートラルで、かつ、目標地点211が追従判定領域212内に収まっているときには、追従判定領域212が縮小する。これにより、自動的な追従制御が自然に再開されることになる。
【0098】
なお、他の実施形態では、目標地点211が追従判定領域212内にある場合に、追従判定領域212の中央に目標地点211が来るまで緩やかに仮想カメラの向きを変化させるような制御を行ってもよい。
【0099】
また、本実施形態では、右スティック52への入力によって追従判定領域212を大きくすることで、自動的な追従を一時的に抑制させる例を挙げている。この点、他の実施形態では、右スティック52への入力がある間は、追従動作を完全に抑制するのではなく、追従性能を弱めるだけにする制御を行ってもよい。
【0100】
[その他の挙動制御について]
また、本サッカーゲームに係る処理では、上記のような処理の他、プレイヤキャラ201の挙動に関して次のような制御も行っている。すなわち、プレイヤキャラ201とボールとの位置関係が所定条件を満たす場合、プレイヤキャラ201の視線をボールのある方向に向けるような制御も行われる。この所定条件とは、例えば、プレイヤキャラ201とボールとの距離が所定の距離以下であって、かつ、プレイヤキャラ201の正面方向とプレイヤキャラ201からボールのある位置に向かう方向との角度差が所定角度以下である、という条件である。これにより、ボールのある方向について、ユーザが視覚的に把握しやすくすることができる。
【0101】
[本実施形態のサッカーゲーム処理の詳細]
次に、図22図33を参照して、本実施形態におけるサッカーゲーム処理についてより詳細に説明する。
【0102】
[使用データについて]
まず、本サッカーゲーム処理にて用いられる各種データに関して説明する。図22は、本体装置2のDRAM85に記憶される各種データの一例を示すメモリマップである。本体装置2のDRAM85には、ゲームプログラム301、画像データ302、操作データ303、他機からの受信データ304、プレイヤキャラ関連データ305、NPC関連データ306、モーションデータ307、キックモーション対応データ308、ボール移動パラメータ309、仮想カメラパラメータ310、目標地点データ311、追従判定領域データ312、試合状況データ313等が記憶されている。
【0103】
ゲームプログラム301は、本実施形態にかかるサッカーゲーム処理を実行するためのプログラムである。
【0104】
画像データ302は、本サッカーゲーム処理で用いられる各種画像のデータである。画像データ302には、3次元モデルのモデリングデータや、背景用の2次元画像データ等が含まれている。
【0105】
操作データ303は、上記左コントローラ3および右コントローラ4から得られるデータであり、ユーザの操作内容を示すデータである。図23に、操作データ303のデータ構成の一例を示す。操作データ303には、デジタルボタンデータ321と、右スティックデータ322と、左スティックデータ323と、右慣性センサーデータ324と、左慣性センサーデータ325とが少なくとも含まれている。デジタルボタンデータ321は、コントローラが有する各種ボタンの押下状態を示すデータである。右スティックデータ322は、上記右スティック52に対する操作内容を示すためのデータである。具体的には、x、yの2次元のデータが含まれる。左スティックデータ323は、上記左スティック32に対する操作内容を示すためのデータである。右慣性センサーデータ324は、右コントローラ4の加速度センサー114や角速度センサー115の慣性センサーの検出結果を示すデータである。具体的には、3軸の加速度データや3軸の角速度データが含まれる。左慣性センサーデータ325は、左コントローラ3の加速度センサー104や角速度センサー105の慣性センサーの検出結果を示すデータである。なお、以下の説明では、右慣性センサーデータ324および左慣性センサーデータ325の総称として、「慣性センサーデータ」と記載することがある。
【0106】
図22に戻り、他機からの受信データ304は、他のゲームシステム1から受信したゲームデータであって、サッカーゲームの進行制御に用いられるゲームデータである。具体的には、他のゲームシステム1における(各ユーザの操作内容を示す)操作データ303等を受信して記憶したものである。
【0107】
プレイヤキャラ関連データ305は、プレイヤキャラ201の制御に用いるためのデータである。図24に、プレイヤキャラ関連データ305のデータ構成の一例を示す。プレイヤキャラ関連データ305は、現在位置データ331、正面方向データ332、視線方向データ333、実行中アクション334を少なくとも含んでいる。現在位置データ331は、仮想ゲーム空間内でのプレイヤキャラ201の現在位置を示すデータである。現在位置データ331は、例えば仮想空間座標系における3次元座標として示される。正面方向データ332は、プレイヤキャラ201の正面が仮想空間座標系でどの方向を向いているかを示すデータである。視線方向データ333は、プレイヤキャラ201の視線とする方向を示すデータである。換言すれば、プレイヤキャラ201の頭部の姿勢を示すデータである。実行中アクション334は、プレイヤキャラ201が、後述するモーションデータ307に基づく所定のモーションを行うようなアクションを実行中であるか否かを示すデータである。また、このようなアクションを実行している場合は、実行中アクション334は、そのアクション(モーション)の内容を示すデータとなる。本実施形態では、この所定のアクションの例として、「(複数種類の)キックアクション」および「ヘディングアクション」を例として説明する。また、これらのアクションを行っていない場合は、「ノンアクション」が実行中アクション334に設定されるものとする。例えば、プレイヤキャラ201が単に走っているだけの場合は、「ノンアクション」として扱われる。
【0108】
図22に戻り、次に、NPC関連データ306は、プレイヤキャラ201以外のキャラクタ(他の選手)に関するデータである。図示は省略するが、NPC関連データ306には、ネットワークプレイにおいて、どのユーザがどの選手キャラクタを担当しているのかを示すテーブルデータが含まれる。更に、NPC関連データ306には、上記他機からの受信データ304に基づいてNPC毎に生成される、上記プレイヤキャラ関連データ305と同様のデータが記憶される。
【0109】
モーションデータ307は、プレイヤキャラ201の所定のモーションについて定義したものである。具体的には、上記キックアクションに係るモーション(キックモーション)、および、ヘディングアクションに係るモーション(ヘディングモーション)の内容を定義したデータである。また、本実施形態では、上記振り方向に応じた複数のキックモーションが定義されている。図25に、モーションデータ307のデータ構成の一例を示す。モーションデータ307には、モーションID341およびモーション内容342が少なくとも含まれる。モーションID341は、各モーションを一意に識別するためのIDである。本実施形態では、複数のキックモーションのそれぞれを、「キック(番号)」の形式で表現する。また、ヘディングモーションについては、本実施形態では1種類だけの場合を例とするが、他の実施形態ではヘディングモーションを複数種類用意してもよい。なお、本実施形態では、プレイヤキャラ201がキックアクションやヘディングアクションを実行中の場合は、上記実行中アクション334に、当該モーションID341のいずれかが設定される。
【0110】
図22に戻り、次に、キックモーション対応データ308は、キックモーションと振り方向との対応づけを定義したデータである。当該データは、複数種類のキックモーションの中からいずれか1つのキックモーションを、振り方向に基づいて決定するために用いられる。図26は、キックモーション対応データ308のデータ構成の一例を示す図である。キックモーション対応データ308は、モーションID351および対応振り方向352を有する。モーションID351は、上記モーションデータ307のモーションID341に対応するものであるが、本実施形態では、キックモーションに関するモーションIDのみがキックモーション対応データ308に含まれているものとする。対応振り方向352は、そのモーションID351で示されるキックモーションを使用する振り方向について定義したデータである。詳細は後述するが、本実施形態では、振り方向を2次元ベクトルとして算出する。そのため、対応振り方向352の内容としては、例えば2次元ベクトルを用いた方向、あるいは複数の方向が含まれる所定の範囲が定義される(例えば右斜め上40°~50°の範囲を2次元ベクトルで定義する等である)。
【0111】
図22に戻り、ボール移動パラメータ309は、上記ボールの移動を制御するためのパラメータである。ボール移動パラメータ309には、仮想ゲーム空間内でのボールの現在位置を示すデータや、現在位置からのボールの移動方向や移動速度等を示すパラメータが含まれる。ボール移動パラメータ309は、所定の選手キャラクタオブジェクトとの衝突によって内容が適宜変更され、毎フレーム、当該パラメータに基づいてボールの移動が制御される。
【0112】
仮想カメラパラメータ310は、仮想カメラの位置・撮像方向等を指定するためのデータである(なお、本実施形態では画角は固定であるとする)。毎フレーム、当該パラメータに基づいて仮想カメラの位置や向きが制御される。
【0113】
目標地点データ311は、上記図14等で示したような目標地点211を示すデータである。また、追従判定領域データ312は、図14等で示したような追従判定領域212の大きさや形状を定義したデータである。追従判定領域212の初期値としては、例えば所定の大きさの略正方形状が定義されている。
【0114】
試合状況データ313は、サッカーゲームの進行を管理するためのデータである。具体的には、各チームの得点状況や残り試合時間等を示すデータ等が含まれている。当該データに基づいて、試合が終了したか否かの判定や、勝敗判定が行われることになる。
【0115】
その他、ゲーム処理に必要な各種データも適宜生成され、DRAM85に格納される。
【0116】
[プロセッサ81が実行する処理の詳細]
次に、本実施形態にかかるサッカーゲーム処理の詳細を説明する。図27は、本サッカーゲーム処理の詳細を示すフローチャートである。なお、当該処理に先立って、他のゲームシステム1とのネットワーク接続処理やゲームに参加するユーザのチーム分けやポジション決め等、サッカーゲームを開始する準備は整っているものとする。なお、参加人数が足りない場合は、足りない人数分のNPCをAI制御するようにしてもよい。この場合は、AIを「他のユーザ」として扱えばよい。また、図27で示すステップS2~S12の処理ループは、1フレーム毎に繰り返し実行されるものとする。
【0117】
なお、当該フローチャートは、処理過程の単なる一例にすぎない。そのため、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、変数の値や、判定ステップで利用される閾値も、単なる一例であり、必要に応じて他の値を採用してもよい。
【0118】
[試合開始処理]
図27において、まず、ステップS1で、プロセッサ81は、試合開始処理を実行する。具体的には、プロセッサ81は、以降の処理において用いられる各種データを初期化するための初期化処理を実行する。また、プロセッサ81は、各選手キャラクタオブジェクトを仮想ゲーム空間内に配置する。更に、プロセッサ81は、試合開始の演出処理を表示し、その後、仮想カメラを上記のようなデフォルトの位置(プレイヤキャラ201の後方)に配置する。
【0119】
[他のゲームシステムからのデータ受信]
次に、ステップS2で、プロセッサ81は、他のゲームシステム1から、他のユーザに係るゲームデータを受信し、他機からの受信データ304として記憶する。
【0120】
次に、ステップS3で、プロセッサ81は、(自身に係る)操作データ303を取得する。続くステップS4で、プロセッサ81は、当該操作データに基づいてプレイヤキャラ201を制御するためのプレイヤキャラ制御処理を実行する。
【0121】
[プレイヤキャラ制御処理]
図28は、上記プレイヤキャラ制御処理の詳細を示すフローチャートである。図28において、まず、ステップS21で、プロセッサ81は、実行中アクション334を参照して、プレイヤキャラ201が所定のアクション(本例では、キックアクションまたはヘディングアクション)の実行中であるか否かを判定する。より具体的には、プロセッサ81は、実行中アクション334の内容が「ノンアクション」であるか否かを判定し、「ノンアクション」では無い場合は、所定のアクションの実行中であると判定する。当該判定の結果、所定のアクション中ではない場合は(ステップS21でNO)、ステップS22で、プロセッサ81は、プレイヤキャラ201の移動操作入力があったか否かを操作データ303に基づいて判定する。本例では、移動操作は、左スティック32への入力操作であるため、プロセッサ81は、左スティックデータ323を参照して当該判定を行う。なお、ここでは、ジャンプ操作やダッシュ操作についても移動操作として扱うものとする。そのため、Bボタン54の押下(ジャンプ操作)やZLボタン39の押下(ダッシュ操作)の有無についても併せて判定される。
【0122】
当該判定の結果、移動操作入力があった場合は(ステップS22でYES)、ステップS23で、プロセッサ81は、その移動操作入力の内容に基づいて、現在位置データ331の内容を更新し、これに基づいてプレイヤキャラ201を移動させる。一方、移動操作入力がなかった場合は(ステップS22でNO)、上記ステップS23の処理はスキップされて、次の処理に進められる。
【0123】
次に、ステップS24で、プロセッサ81は、操作データ303(慣性センサーデータ)を参照して、ヘディング操作が行われたか否かを判定する。ここで、当該ヘディング操作の判定に関して補足する。本実施形態では、ユーザが右コントローラ4および左コントローラ3の同時振りを行う操作をヘディング操作としている。この振り操作の発生判定について、本実施形態では、左コントローラ3については、一定以上の大きさの「振り下ろし」の動きが検出された場合に、当該同時振りにおける振り操作発生と判定する。一方、右コントローラ4に関しては、振る方向にかかわらず、一定以上の大きさで右コントローラ4を振る動きが検出されれば、当該同時振りにおける振り操作発生と判定する。これは、操作の容易性を考慮したものである。左コントローラ3について、左スティック32の操作が主な操作となるが、右コントローラ4については、後述のキックアクションを行う際にも振り操作を要求するところ、左コントローラ3とは異なり、振る操作が主な操作となる。そのため、例えば右コントローラ4についても左コントローラ3同様の「振り下ろし」の動きを要求すると、キックアクションも振り操作で行っている関係上、同時振りが成立するためのハードルが上がってしまう可能性がある。そのため、右コントローラ4については振る方向を問わず、一定以上の大きさの振りの動きが発生すれば、同時振りを成立させるようにすることで、ヘディング操作の容易性を高めている。そのため、例えばユーザが右コントローラ4を振り回しているときに左コントローラ3を振り下ろすだけの操作でも、ヘディング操作が成立し得る余地もあり、とっさのヘディングチャンスを逃しにくくすることも可能である。
【0124】
上記判定の結果、ヘディング操作が発生した場合は(ステップS24でYES)、ステップS32で、プロセッサ81は、実行中アクション334に、ヘディングに対応するモーションID341を設定する。その後、プロセッサ81は、プレイヤキャラ制御処理を終了する。
【0125】
一方、ヘディング操作が発生していない場合は(ステップS24でNO)、ステップS25で、プロセッサ81は、(右コントローラ4に係る)振り操作が発生したか否かを判定する。当該振り操作の発生判定については、本実施形態では、角速度のxy成分に着目して、振り操作の開始時点と終了時点を特定することで、振り操作が発生したか胃ナックを判定する。具体的には、角速度のxy成分についてのベクトル(以下、角速度xyベクトルと呼ぶ)の長さが所定の閾値を超えたときに振り操作が開始したと判定する。その後、当該長さが当該所定の閾値を下回ったときに、振り操作が終了したと判定し、この振り操作の終了をもって振り操作が発生した(振り操作が行われた)と判定する。当該判定を行うために、図示は省略するが、DRAM85には過去数十フレーム分の慣性センサーデータの履歴も適宜記憶される。そして、プロセッサ81は、当該履歴に基づいて、振り操作の開始と終了を判定することで、振り操作が発生したか否かを判定する。以下の説明では、1度分の振り操作に係る振り操作の開始から終了までの期間のことを「振り期間」と呼ぶ。なお、上記振り操作の開始と終了の判定に用いる所定の閾値については、開始および終了の判定で同じ値を用いてもよいし、異なる値を用いてもよい。
【0126】
上記ステップS25の判定の結果、振り操作が発生していない場合は(ステップS25でNO)、後述のステップS27に処理が進められる。一方、振り操作が発生した場合は(ステップS25でYES)、ステップS26で、プロセッサ81は、キックアクション設定処理を実行する。
【0127】
[キックアクション設定処理]
図29は、上記キックアクション設定処理の詳細を示すフローチャートである。この処理では、振り方向を2次元ベクトルとして算出し、この振り方向に応じたキックモーションを決定する処理が行われる。当該振り方向の算出手法についてはどのような手法でもよいが、本実施形態では以下のような処理で振り方向を算出する。まず、ステップS41で、プロセッサ81は、上記振り期間における複数の右慣性センサーデータ324のうち、右コントローラ4のz軸正方向(図5参照)の姿勢が最も水平に近い右慣性センサーデータ324を抽出し、これを「基準センサーデータ」としてDRAM85に記憶する。
【0128】
次に、ステップS42で、プロセッサ81は、上記振り期間における複数の右慣性センサーデータ324のうち、角速度xyベクトルの長さが最も大きな右慣性センサーデータ324を抽出して、「最大時センサーデータ」としてDRAM85に記憶する。
【0129】
次に、ステップS43で、プロセッサ81は、上記基準センサーデータにおける右コントローラ4のz軸周りの傾き値(ロール値)を算出し、「基準ロール値」としてDRAM85に記憶する。当該傾き値については、例えば、右スティック52のある面が真上方向を向いている状態を0として、右回転を正の値、左回転を負の値として、+1~-1の範囲内の値として算出されてもよい。
【0130】
ここで、上記基準ロール値を算出する際、本実施形態では、右コントローラ4のz軸正方向が(実空間において)水平から離れるほど、基準ロール値が小さくなるよう補正する。水平から離れるとは、例えば、z軸正方向が実空間において真上または真下を向くような姿勢が、最も水平から離れている姿勢といえる。これは、例えば右コントローラ4のz軸正方向が真上を向いている状態でz軸周りの回転があった場合、コントローラ基準で見るとロール回転となるが、ユーザの手を基準で考えると、ヨー回転として捉えられる可能性がある。そのため、右コントローラ4のz軸正方向が真上や真下向きの姿勢に近いほど、ロール回転として見なされにくくするという観点で、このような補正を行っている。
【0131】
次に、ステップS44で、プロセッサ81は、上記最大時センサーデータと基準センサーデータの時間差および角速度に基づいて、両者における(相対的な)変化角度を算出する。更に、プロセッサ81は、上記基準ロール値に当該変化角度を加算することで、最大時センサーデータの時点でのロール値を算出して、「最大時ロール値」としてDRAM85に記憶する。
【0132】
次に、ステップS45で、プロセッサ81は、上記最大時センサーデータにおける角速度xyベクトルを上記最大時ロール値の分だけ回転させることで、振り方向ベクトルを算出し、DRAM85に記憶する。
【0133】
ここで、上述の一連の振り方向算出の処理は、振りの勢いが最も強いときの角速度xyベクトルに、振り操作時おける右コントローラ4の持ち方の個人差等によるz軸周りの姿勢の違いを加味した回転を加えることで、振り方向を2次元ベクトルとして算出するものといえる。例えば、ユーザの手の振り方として、右上に振った場合を想定する。この場合、ユーザからすれば右上方向の振りとして捉えたとしても、コントローラ基準で見たときのxyベクトルの値は、そのときの右コントローラ4の持ち方によるz軸周りの傾きによって異なる可能性があり、振り方向が正確に判別できない可能性がある。そのため、このようなコントローラの持ち方の違いを補正して、振り方向を2次元ベクトルとして算出するような処理となっている。
【0134】
次に、ステップS46で、プロセッサ81は、キックモーション対応データ308と、上記算出した振り方向ベクトルとに基づいて、当該振り方向に応じたキックモーションのモーションID341を決定する。
【0135】
次に、ステップS47で、プロセッサ81は、上記決定したモーションID341を実行中アクション334に設定する。これにより、振り方向に応じたキックアクションをプレイヤキャラ201に行わせることが可能となる。以上で、キックアクション設定処理は終了する。
【0136】
図28に戻り、次に、プロセッサ81は、プレイヤキャラ201の視線を制御するための処理を実行する。すなわち、ステップS27で、プロセッサ81は、プレイヤキャラ201とボールとの位置関係が所定の条件を満たしているか否かを判定する。この所定の条件としては、例えば、プレイヤキャラ201とボールとの距離が所定の距離以内であり、かつ、プレイヤキャラの正面方向とボールの位置との角度差が所定範囲内である、という条件である。つまり、プレイヤキャラ201から見てボールが見えるであろう位置関係であるか否かを判定する。当該判定の結果、当該所定の条件を満たす場合は(ステップS27でYES)、ステップS28で、プロセッサ81は、プレイヤキャラ201の頭部(視線)がボールの方を向くように、視線方向データ333を設定する。そして、当該視線方向データ333に基づいて、プレイヤキャラ201の頭部の姿勢を制御する。一方、所定の条件を満たさない場合は(ステップS27でNO)、当該ステップS28の処理はスキップされる。そして、プレイヤキャラ制御処理は終了する。
【0137】
一方、上記ステップS21の判定の結果、所定のアクション中である場合は(ステップS21でYES)、ステップS29で、プロセッサ81は、実行中アクション334に設定されているモーションID341に対応する所定のモーションを行うように、プレイヤキャラ201の動作を制御する。ここで、本実施形態では、所定のキックモーションを開始する際に、プレイヤキャラ201の正面方向が仮想カメラの撮像方向を向いていない場合は、一旦当該正面方向を撮像方向に合わせてから、所定のキックモーションを開始させるよう動作制御する。例えば、プレイヤキャラ201の背面が仮想カメラの撮像方向を向いている状態で振り操作(キックアクション)を行ったとすると、一旦プレイヤキャラ201を撮像方向に向かせ直してから、キックモーションを開始させる。これにより、振り方向とキック方向とが一致するような結果となる。これは、キックモーション(キック方向)が、ユーザの振り操作の結果がどうだったかを示すフィードバックにもなるところ、振り操作の結果をより正確にユーザに伝えるために、キックモーションを開始する際に、プレイヤキャラ201の向きと仮想カメラの撮像方向とを合わせているものである。
【0138】
次に、ステップS30で、プロセッサ81は、実行中のアクションに係るモーションが終了したか否かを判定する。当該判定の結果、まだモーションが終了していない場合は(ステップS30でNO)、プロセッサ81は、プレイヤキャラ制御処理を終了する。この場合は、次のフレームにかかる処理でも、実行中のモーション(の再生)制御が継続することになる。一方、モーションが終了した場合は(ステップS30でYES)、ステップS31で、プロセッサ81は、実行中アクション334に「ノンアクション」を設定する。そして、プロセッサ81は、プレイヤキャラ制御処理を終了する。
【0139】
[NPCの制御処理]
図27に戻り、次に、ステップS5で、プロセッサ81は、NPC制御処理を実行する。具体的には、プロセッサ81は、他機からの受信データ304に基づいて、各NPCの現在位置や向きを算出し、NPC関連データ306として記憶する。更に、プロセッサ81は、当該NPC関連データ306に基づいて、上記プレイヤキャラ制御処理と同様の処理をNPC毎に実行することで、各NPCを移動させたり、キックアクション等を行わせたりする。
【0140】
[ボールの衝突判定処理]
次に、ステップS6で、プロセッサ81は、ボールの衝突判定処理を実行する。この処理では、主に、ボールといずれかの選手キャラクタオブジェクトとが衝突したか否かを判定し、衝突していればボール移動パラメータ309を適宜設定する処理が実行される。図30は、当該ボール衝突判定処理の詳細を示すフローチャートである。図30において、まず、ステップS51で、プロセッサ81は、ボールがいずれかの選手キャラクタオブジェクトと衝突したか否かを判定する。衝突していない場合は(ステップS51でNO)、プロセッサ81は、ボール衝突判定処理を終了する。
【0141】
一方、衝突している場合は(ステップS51でYES)、ステップS52で、プロセッサ81は、ボールと衝突した選手キャラクタオブジェクトがプレイヤキャラ201であるか否かを判定する。当該判定の結果、プレイヤキャラ201との衝突ではない場合は(ステップS52でNO)、いずれかのNPCとボールが衝突したことになる。この場合は、ステップS53で、プロセッサ81は、ボールとNPCとの衝突角度や衝突速度、NPCのキックアクション内容に基づいて、ボール移動パラメータ309を設定する。その後、プロセッサ81は、ボール衝突判定処理を終了する。
【0142】
一方、ボールがプレイヤキャラ201と衝突した場合は(ステップS52でYES)、ステップS54で、プロセッサ81は、プレイヤキャラ201がキックアクション中であるか否かを実行中アクション334に基づいて判定する。当該判定の結果、キックアクション中の場合は(ステップS54でYES)、ステップS55で、プロセッサ81は、上記振り方向ベクトルに基づいて、ボール移動パラメータ309を設定する。具体的には、プロセッサ81は、振り方向ベクトルと、この時点での仮想カメラの撮像方向とに基づいて、キック方向を算出する。すなわち、撮像方向の正面方向を中心点とするxy平面において、振り方向ベクトルの始点を中心点に合わせた場合の方向をキック方向とする。更に、プロセッサ81は、キック方向がy軸正方向向き(上向き:振り上げ操作)であるかy軸負方向向き(下向き:振り下ろし操作)であるかを判定する。そして、前者である場合は、プロセッサ81は、ボールの弾道が高い弾道となるようにボール移動パラメータ309を設定する。後者の場合は、プロセッサ81は、ボールの弾道が低い弾道となるようにボール移動パラメータ309を設定する。また、プロセッサ81は、キック方向に応じて、仮想ゲーム空間内でのボールの移動方向(例えば射出角度)を決定する。また、プロセッサ81は、上記振り方向ベクトルの大きさ(振りの強さ)に応じて、ボールの移動速度(例えば射出速度)を決定する。そして、プロセッサ81は、当該移動方向・移動速度に基づいてボールの移動目標地点等を決定し、これら決定した内容をボール移動パラメータ309として設定する。また、この他、プロセッサ81は、上記振り期間における右コントローラ4のひねり(ロール値の変化)に基づき、ボールにカーブがかかるようにボール移動パラメータ309を設定してもよい。
【0143】
一方、プレイヤキャラ201がキックアクション中ではない場合は(ステップS54でNO)、ステップS56で、プロセッサ81は、ボールとプレイヤキャラとの衝突角度や衝突速度に基づいて、ボール移動パラメータ309の内容を設定する。例えば、ドリブルする場合等である。なお、ヘディングアクションの場合も、この処理でボール移動パラメータ309の内容が設定されるものとする。
【0144】
以上で、ボール衝突判定処理は終了する。
【0145】
[ボールの移動処理]
図27に戻り、次に、ステップS7で、プロセッサ81は、ボール移動パラメータ309の内容に基づいてボールを移動させる処理を実行する。
【0146】
[仮想カメラ制御処理]
次に、ステップS8で、プロセッサ81は、仮想カメラ制御処理を実行する。図31は、当該仮想カメラ制御処理の詳細を示すフローチャートである。まず、ステップS61で、プロセッサ81は、操作データ303を参照して、右スティック52への入力が発生しているか否かを判定する。当該判定の結果、右スティック52への入力が発生している場合(ステップS61でYES)、ステップS62で、プロセッサ81は、右スティックに基づく制御処理を実行する。
【0147】
図32は、上記右スティックに基づく制御処理の詳細を示すフローチャートである。図32において、まず、ステップS81で、プロセッサ81は、右スティック52の入力方向に応じて、追従判定領域212の大きさを初期値の大きさから変更する。例えば、右方向への入力の場合は、その入力の大きさに応じて、初期値における追従判定領域212の右辺の位置を更に右方向に移動させるようにして、大きさを変更する。また、左方向入力の場合は、初期値における追従判定領域212の左辺の位置を更に左方向に移動させるようにして、大きさを変更する。また、例えば右斜め上方向の入力であれば、追従判定領域212の上辺が更に上方向に、そして、右辺が更に右方向に移動するようにして大きさを変更する。そして、変更後の追従判定領域212を示す内容が追従判定領域データ312に記憶される。
【0148】
次に、ステップS82で、プロセッサ81は、仮想カメラの向きについて、上記図19を用いて説明したように、右スティック52による仮想カメラ向きの変更前の撮像方向を0°とした場合に、そのときの入力方向に応じた左右いずれか120°まで仮想カメラの向きを変更しているか否かを判定する。つまり、右スティック52による仮想カメラの向きの可動範囲の限界まで到達しているか否かを判定する。当該判定の結果、仮想カメラ向きの変更がまだ120°まで達していない場合は(ステップS82でNO)、ステップS83で、プロセッサ81は、右スティック52の入力方向に応じて、仮想カメラの向きが変更されるように、仮想カメラパラメータ310の内容を更新する。一方、120°まで達している場合は(ステップS82でYES)、ステップS84で、プロセッサ81は、120°以上の変更は行わずに、仮想カメラの現在の向きを維持する。
【0149】
その後、プロセッサ81は右スティックに基づく制御処理を終了し、後述するステップS65に処理を進める。
【0150】
図31に戻り、上記ステップS61の判定の結果、右スティック52への入力が発生していない場合は(ステップS61でNO)、ステップS63で、プロセッサ81は、追従判定領域212の大きさが初期値から変更されているか否かを判定する。当該判定の結果、追従判定領域の大きさが変更されていない場合(初期値の大きさである場合)は(ステップS63でNO)、後述するステップS66に処理が進められる。
【0151】
一方、追従判定領域の大きさが変更されている場合は(ステップS63でYES)、例えば右スティック52を傾けていた指を離した場合等に該当すると考えられる。この場合は、ステップS64で、プロセッサ81は、追従判定領域データ312に基づいて決定される追従判定領域212に目標地点211が含まれているか否かを判定する(これは、2次元座標系での判定となる)。当該判定の結果、目標地点211が追従判定領域212に含まれている場合は(ステップS64でYES)、ステップS65で、プロセッサ81は、追従判定領域212の大きさを初期値に戻す。その後、ステップS66に処理が進められる。一方、目標地点211が追従判定領域212に含まれていない場合は(ステップS64でNO)、上記ステップS65の処理はスキップされる。
【0152】
次に、ステップS66で、プロセッサ81は、ボール追従制御処理を実行する。この処理では、仮想カメラの向きをボールのある方向に追従させるような制御が行われる。
【0153】
図33は、上記ボール追従制御処理の詳細を示すフローチャートである、図33において、まず、ステップS71で、プロセッサ81は、上記図14等を用いて示したような目標地点211を算出し、目標地点データ311として記憶する。この際、上記図16図18を用いて説明したように、ボールの位置する高さが第1の高さ213以下の場合は、目標地点211のy軸位置が第2の高さ214を下回らないように算出される。
【0154】
次に、ステップS72で、プロセッサ81は、上記追従判定領域212内に、目標地点211が含まれているか否かを判定する。当該判定の結果、目標地点211が追従判定領域212内に含まれている場合は(ステップS72でYES)、ステップS73で、プロセッサ81は、現在の仮想カメラの向きを維持する(例えば仮想カメラの向きのパラメータを現在の内容で上書きする等)。
【0155】
一方、目標地点が追従判定領域212内に含まれていない場合は(ステップS72でNO)、ステップS74で、プロセッサ81は、目標地点211が追従判定領域212内に含まれるまで仮想カメラの向きが徐々に変化するように、仮想カメラの位置および向きを設定する。仮想カメラの位置については、プレイヤキャラ201が常にゲーム画面内に映るよう、プレイヤキャラ201の周りを周回する移動軌跡となるような位置が設定される。また、仮想カメラの向きについては、目標地点211と追従判定領域212との距離が離れているほど、近づいていく速度が速くなるように仮想カメラの向きの回転速度が設定される。これにより、プレイヤキャラ201とボールとが常に表示される(画面内に含まれる)ようなゲーム画面を提供できる。
【0156】
以上で、ボール追従制御処理は終了する。
【0157】
図31に戻り、次に、ボール追従制御処理が終われば、プロセッサ81は、仮想カメラ制御処理を終了する。
【0158】
[その他の各種ゲーム処理]
図27に戻り、次に、ステップS9で、プロセッサ81は、その他のゲーム処理を実行する。具体的には、プロセッサ81は、ボールの位置がゴール内にあるか否かを判定し、ある場合はゴールしたチームに得点を与える処理を実行する。また、BGMや効果音等を制御するための音声制御処理等も適宜実行される。
【0159】
[ゲーム画面の生成及び出力処理]
次に、ステップS10で、プロセッサ81は、上記のゲーム処理が反映された仮想ゲーム空間を仮想カメラで撮像する。そして、プロセッサ81は、当該撮像画像に所定の加工を加えることでゲーム画像を生成する。当該加工の内容としては、例えば、上記スイングエフェクト画像202等の各種エフェクト画像、得点・残り時間を示す画像、ミニマップ画像等を加えることである。なお、スイングエフェクト画像202は、上記キック方向に基づいて生成されればよい。
【0160】
次に、ステップS11で、プロセッサ81は、上記ゲーム画像を出力する。
【0161】
[試合の終了判定]
次に、ステップS12で、プロセッサ81は、制限時間(試合時間)が経過したことで、試合が終了したか否かを判定する。試合が終了していない場合は(ステップS12でNO)、上記ステップS2に戻って処理が繰り返される。試合が終了した場合は(ステップS12でYES)、プロセッサ81は、所定の試合終了演出(勝敗結果表示等)を行い、サッカーゲーム処理を終了する。
【0162】
以上で、本実施形態にかかるサッカーゲーム処理の詳細説明を終了する。
【0163】
このように、本実施形態では、左スティック32による方向入力操作でプレイヤキャラ201を移動させ、右コントローラ4を振る操作でキックアクションをプレイヤキャラ201に行わせるという操作方法で、サッカーゲームをプレイ可能としている。これにより、プレイヤキャラ201を移動させながらでも、キック(スイング)する方向を直感的に指定できるため、操作性に優れたサッカーゲームを提供できる。また、当該サッカーゲームは、多人数プレイにおいて、チームの選手1人1人を、参加ユーザのそれぞれが担当して操作するものとなっている。これにより、チームの一員として、自身の判断でフィールド内を移動し、ボールをキックするという体験をユーザに与えることができ、より現実に近い感覚でサッカーを行うプレイ感をユーザに提供できる。
【0164】
また、本実施形態では、2次元ベクトルとして振り方向(キック方向)を算出している。つまり、上記のxy平面上の360°方向に対してキック方向の指定が可能となっている。そのため、振り上げるような操作だけでなく、振り下ろすような操作でも、プレイヤキャラ201にキックアクションを行わせることができる。
【0165】
[変形例]
なお、上記実施形態では、キック方向については360°の範囲で指定可能な例を挙げていた。他の実施形態では、キック方向に関して、180°の範囲だけで判定するようにしてもよい。例えば、振り下ろし操作によるキックアクションは採用しない場合等である。
【0166】
また、他の実施形態では、上記振り方向を2次元ベクトルではなく、角度として算出するようにしてもよい。例えばxy平面上のy軸正方向を0°とする角度として算出してもよい。
【0167】
また、上記ではスポーツゲームの一例としてサッカーゲームを挙げたため、プレイヤキャラが脚をスイングする例を説明した。他の実施形態では、スポーツゲームの内容に応じて、脚の代わりに、例えばプレイヤキャラ201の腕をスイングさせるようにしてもよい(例えばテニスゲーム等)。
【0168】
また、上述した操作方法の制御については、多人数プレイの場合に限らず、1人プレイで上記のようなサッカーゲームをプレイする場合にも適用可能である。例えば、上記のサッカーゲームにおいて、プレイヤキャラ201以外のNPC全てをAIが制御するような場合にも適用可能である。
【0169】
また、上記実施形態では、方向入力デバイスとしてアナログスティックを用いる場合を例に挙げた。入力デバイスについては、アナログスティックに限らない。入力がない場合は所定のニュートラルポジションとなるようなアナログ入力式の方向入力デバイスを用いる場合にも、上記処理は適用可能である。たとえば、スライドパッドなどにも適用可能である。
【0170】
また、上記実施形態においては、サッカーゲーム処理にかかる一連の処理を(ネットワークを用いる送受信処理を除いて)単一の本体装置2で実行される場合を説明した。他の実施形態においては、上記一連の処理が複数の情報処理装置からなる情報処理システムにおいて実行されてもよい。例えば、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの一部の処理がサーバ側装置によって実行されてもよい。更には、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの主要な処理がサーバ側装置によって実行され、当該端末側装置では一部の処理が実行されてもよい。また、上記情報処理システムにおいて、サーバ側のシステムは、複数の情報処理装置によって構成され、サーバ側で実行するべき処理を複数の情報処理装置が分担して実行してもよい。また、いわゆるクラウドゲーミングの構成としてもよい。例えば、本体装置2は、ユーザの操作を示す操作データを所定のサーバに送り、当該サーバにおいて各種ゲーム処理が実行され、その実行結果が動画・音声として本体装置2にストリーミング配信されるような構成としてもよい。
【符号の説明】
【0171】
1 ゲームシステム
2 本体装置
3 左コントローラ
4 右コントローラ
81 プロセッサ
84 フラッシュメモリ
85 DRAM
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33