(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-24
(45)【発行日】2023-03-06
(54)【発明の名称】ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法
(51)【国際特許分類】
A63F 13/42 20140101AFI20230227BHJP
A63F 13/55 20140101ALI20230227BHJP
A63F 13/5255 20140101ALI20230227BHJP
G06F 3/0487 20130101ALI20230227BHJP
G06F 3/04845 20220101ALI20230227BHJP
【FI】
A63F13/42
A63F13/55
A63F13/5255
G06F3/0487
G06F3/04845
(21)【出願番号】P 2020108107
(22)【出願日】2020-06-23
【審査請求日】2021-09-03
(73)【特許権者】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】110001276
【氏名又は名称】弁理士法人小笠原特許事務所
(74)【代理人】
【識別番号】100130269
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】青沼 英二
【審査官】宇佐田 健二
(56)【参考文献】
【文献】特開2001-314645(JP,A)
【文献】特開平11-342265(JP,A)
【文献】特開2008-073184(JP,A)
【文献】特開2019-170964(JP,A)
【文献】山田 雅巳,“メジャーリーグ ベースボール 2K7”,「GAMESIDE 2007.10 Vol.08」,日本,株式会社マイクロマガジン社,2007年10月01日,第4巻,第5号,pp.74,75
(58)【調査した分野】(Int.Cl.,DB名)
A63F 13/00-13/98, 9/24
G06F 3/048-3/04895
(57)【特許請求の範囲】
【請求項1】
情報処理装置のコンピュータに、
仮想空間内において、所定のアイテムオブジェクトを持ったプレイヤオブジェクトを制御させ、
操作装置に対する第1の方向入力に基づいて、当該第1の方向入力にかかる入力方向に応じた向きに前記アイテムオブジェクトを構える構えアクションを前記プレイヤオブジェクトに行わせ、
前記第1の方向入力の解除に応じて、前記アイテムオブジェクトを振る振りアクションを前記プレイヤオブジェクトに行わせる、ゲームプログラム。
【請求項2】
前記
コンピュータに、前記振りアクションとして、前記プレイヤオブジェクトに、前記構えアクションにおいて前記アイテムオブジェクトを構えた方向から逆方向に向かって前記アイテムオブジェクトを振らせる、請求項1記載のゲームプログラム。
【請求項3】
前記
コンピュータに、前記振りアクションにおいて前記アイテムオブジェクトを振る方向に基づいた成功判定処理を含むゲーム処理を更に行わせる、請求項2記載のゲームプログラム。
【請求項4】
前記操作装置は、第1の方向入力のための第1のスティックを備え、当該第1のスティックの傾きに応じた方向入力データを出力し、
前記
コンピュータに更に、
前記第1のスティックの傾き度合いが第1の基準を超えている間、前記第1のスティックの傾き方向に応じて前記構えアクションをさせ、
前記傾き度合いが前記第1の基準を超える状態から第2の基準を超えない状態に遷移をした場合に、前記第1の方向入力の解除がなされたものとして、前記振りアクションを行わせる、請求項1から3のいずれか記載のゲームプログラム。
【請求項5】
前記第2の基準は前記第1の基準よりも小さい傾き度合いであり、
前記傾き度合いが第1の基準を超えている状態から所定時間以内に前記第2の基準を超えない状態に変化した場合に、前記第1の方向入力の解除がなされたものとして前記振りアクションを行わせる、請求項4記載のゲームプログラム。
【請求項6】
前記
コンピュータに更に、前記傾き度合いが前記第1の基準と前記第2の基準の間の場合に、前記傾き度合いと前記傾き方向に基づいて、前記プレイヤ
オブジェクトが前記アイテムオブジェクトを動かすアクションを行わせる、請求項5に記載のゲームプログラム。
【請求項7】
前記操作装置は更に、第2の方向入力のための第2のスティックを備え、当該第2のスティックの傾きに応じた方向入力データを出力し、
前記
コンピュータにさらに、前記第2の方向入力に基づいて、前記プレイヤ
オブジェクトを前記仮想空間内において移動させる、請求項1から6のいずれか記載のゲームプログラム。
【請求項8】
前記操作装置は更に、慣性センサを備え、
前記ゲームプログラムは、前記
コンピュータに更に、
第1の操作モードにおいては、前記プレイヤオブジェクトに、前記第1の方向入力に基づいて前記構えアクションおよび前記振りアクションを行わせ、
第2の操作モードにおいては、
前記操作装置の姿勢に基づいて前記構えアクションを行わせ、
前記操作装置に対する振り入力に基づいて、前記振りアクションを行わせる、
請求項1から7のいずれか記載のゲームプログラム。
【請求項9】
前記アイテムオブジェクトは、前記振りアクションによって敵オブジェクトに対して攻撃を行うための武器オブジェクトである、請求項1から8のいずれか記載のゲームプログラム。
【請求項10】
前記
コンピュータに更に、
前記操作装置に対する前記第1の方向入力以外の所定の入力が当該第1の方向入力と共に行われている間は、前記プレイヤオブジェクトに前記構えアクションおよび前記振りアクションを行わせずに、当該第1の方向入力に基づいて仮想カメラの制御を行わせる、請求項1から9のいずれか記載のゲームプログラム。
【請求項11】
少なくとも1の
コンピュータを含むゲーム装置であって、
仮想空間内において、所定のアイテムオブジェクトを持ったプレイヤオブジェクトを制御し、
方向入力が可能な操作装置から出力された当該操作装置に対する第1の方向入力を示すデータに基づいて、当該第1の方向入力にかかる入力方向に応じた向きに前記アイテムオブジェクトを構える構えアクションを前記プレイヤオブジェクトに行わせ、
前記操作装置から出力された前記第1の方向入力の解除を示すデータに応じて、前記アイテムオブジェクトを振る振りアクションを前記プレイヤオブジェクトに行わせる、ゲーム装置。
【請求項12】
前記
コンピュータは更に、前記振りアクションとして、前記プレイヤオブジェクトに、前記構えアクションにおいて前記アイテムオブジェクトを構えた方向から逆方向に向かって前記アイテムオブジェクトを振らせる、請求項11記載のゲーム装置。
【請求項13】
前記操作装置は、第1の方向入力のための第1のスティックを備え、
前記
コンピュータは、
前記操作装置から出力される前記第1のスティックの傾きに応じた方向入力データを取得し、
前記第1のスティックの傾き度合いが第1の基準を超えている間、前記第1のスティックの傾き方向に応じて前記構えアクションをさせ、
前記傾き度合いが前記第1の基準を超える状態から第2の基準を超えない状態に遷移をした場合に、前記第1の方向入力の解除がなされたものとして、前記振りアクションを行わせる、請求項11または12記載のゲーム装置。
【請求項14】
前記操作装置はさらに、第2の方向入力のための第2のスティックを備え、
前記
コンピュータは、
前記操作装置から出力される前記第2のスティックの傾きに応じた方向入力データを取得し、
前記第2の方向入力に基づいて、前記プレイヤオブジェクトを前記仮想空間内において移動させる、請求項11から13のいずれか記載のゲーム装置。
【請求項15】
少なくとも1の
コンピュータを含むゲームシステムであって、
前記
コンピュータは、
仮想空間内において、所定のアイテムオブジェクトを持ったプレイヤオブジェクトを制御し、
方向入力が可能な操作装置に対する第1の方向入力に基づいて、当該第1の方向入力にかかる入力方向に応じた向きに前記アイテムオブジェクトを構える構えアクションを前
記プレイヤオブジェクトに行わせ、
前記第1の方向入力の解除に応じて、前記アイテムオブジェクトを振る振りアクションを前記プレイヤオブジェクトに行わせる、ゲームシステム。
【請求項16】
前記
コンピュータは更に、前記振りアクションとして、前記プレイヤオブジェクトに、前記構えアクションにおいて前記アイテムオブジェクトを構えた方向から逆方向に向かって前記アイテムオブジェクトを振らせる、請求項15記載のゲームシステム。
【請求項17】
前記
コンピュータは更に、前記振りアクションにおいて前記アイテムオブジェクトを振る方向に基づいた成功判定処理を含むゲーム処理を行う、請求項16記載のゲームシステム。
【請求項18】
前記操作装置は、第1の方向入力のための第1のスティックを備え、当該第1のスティックの傾きに応じた方向入力データを出力し、
前記
コンピュータは更に、
前記第1のスティックの傾き度合いが第1の基準を超えている間、前記第1のスティックの傾き方向に応じて前記構えアクションをさせ、
前記傾き度合いが前記第1の基準を超える状態から第2の基準を超えない状態に遷移をした場合に、前記第1の方向入力の解除がなされたものとして、前記振りアクションを行わせる、請求項15から17のいずれか記載のゲームシステム。
【請求項19】
前記第2の基準は前記第1の基準よりも小さい傾き度合いであり、
前記
コンピュータは、前記傾き度合いが第1の基準を超えている状態から所定時間以内に前記第2の基準を超えない状態に変化した場合に、前記第1の方向入力の解除がなされたものとして前記振りアクションを行わせる、請求項18記載のゲーム
システム。
【請求項20】
前記
コンピュータは更に、前記傾き度合いが前記第1の基準と前記第2の基準の間の場合に、前記傾き度合いと前記傾き方向に基づいて、前記プレイヤ
オブジェクトが前記アイテムオブジェクトを動かすアクションを行わせる、請求項19に記載のゲーム
システム。
【請求項21】
前記操作装置は更に、第2の方向入力のための第2のスティックを備え、当該第2のスティックの傾きに応じた方向入力データを出力し、
前記
コンピュータにさらに、前記第2の方向入力に基づいて、前記プレイヤ
オブジェクトを前記仮想空間内において移動させる、請求項15から20のいずれか記載のゲーム
システム。
【請求項22】
前記操作装置は更に、慣性センサを備え、
前記ゲームプログラムは、前記
コンピュータに更に、
第1の操作モードにおいては、前記プレイヤオブジェクトに、前記第1の方向入力に基づいて前記構えアクションおよび前記振りアクションを行わせ、
第2の操作モードにおいては、
前記操作装置の姿勢に基づいて前記構えアクションを行わせ、
前記操作装置に対する振り入力に基づいて、前記振りアクションを行わせる、
請求項15から21のいずれか記載のゲーム
システム。
【請求項23】
前記ゲームシステムは、前記操作装置と当該操作装置が着脱可能な本体装置とを含み、
前記操作装置が前記本体装置に装着された状態である場合は、前記第1の操作モードのみが利用可能であり、
前記操作装置が前記本体装置に装着されていない状態の場合は、前記第1の操作モードと第2の操作モードとが切り替え可能である、請求項22に記載のゲーム
システム。
【請求項24】
前記アイテムオブジェクトは、前記振りアクションによって敵オブジェクトに対して攻撃を行うための武器オブジェクトである、請求項15から23のいずれか記載のゲームシステム。
【請求項25】
前記
コンピュータは更に、
前記操作装置に対する前記第1の方向入力以外の所定の入力が当該第1の方向入力と共に行われている間は、前記プレイヤオブジェクトに前記構えアクションおよび前記振りアクションを行わせずに、当該第1の方向入力に基づいて仮想カメラの制御を行わせる、請求項15から24のいずれか記載のゲームシステム。
【請求項26】
情報処理システムを制御する
コンピュータが実行するゲーム処理方法であって、
前記
コンピュータに、
仮想空間内において、所定のアイテムオブジェクトを持ったプレイヤオブジェクトを制御させ、
方向入力が可能な操作装置に対する第1の方向入力に基づいて、当該第1の方向入力にかかる入力方向に応じた向きに前記アイテムオブジェクトを構える構えアクションを前記プレイヤオブジェクトに行わせ、
前記第1の方向入力の解除に応じて、前記アイテムオブジェクトを振る振りアクションを前記プレイヤオブジェクトに行わせる、ゲーム処理方法。
【請求項27】
前記
コンピュータに更に、前記振りアクションとして、前記プレイヤオブジェクトに、前記構えアクションにおいて前記アイテムオブジェクトを構えた方向から逆方向に向かって前記アイテムオブジェクトを振らせる、請求項26記載のゲーム処理方法。
【請求項28】
前記操作装置は、第1の方向入力のための第1のスティックを備え、当該第1のスティックの傾きに応じた方向入力データを出力し、
前記
コンピュータに更に、
前記第1のスティックの傾き度合いが第1の基準を超えている間、前記第1のスティックの傾き方向に応じて前記構えアクションをさせ、
前記傾き度合いが前記第1の基準を超える状態から第2の基準を超えない状態に遷移をした場合に、前記第1の方向入力の解除がなされたものとして、前記振りアクションを行わせる、請求項26または27記載のゲーム処理方法。
【請求項29】
前記操作装置はさらに、第2の方向入力のための第2のスティックを備え、当該第2のスティックの傾きに応じた方向入力データを出力し、
前記
コンピュータにさらに、前記第2の方向入力に基づいて、前記プレイヤ
オブジェクトを前記仮想空間内において移動させる、請求項26から28のいずれか記載のゲーム処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想空間内で所定のアイテムオブジェクトを持ったプレイヤオブジェクトに所定のアクションを実行させるゲーム処理に関する。
【背景技術】
【0002】
従来から、コントローラに備えられている角速度センサと加速度センサの出力に基づき当該コントローラ自体の姿勢や動きを算出し、仮想ゲーム空間内のオブジェクトの挙動に反映させるゲームが知られている。具体的には、仮想ゲーム空間内におけるプレイヤオブジェクトの剣の構えをコントローラの姿勢に応じて変更し、コントローラの振り方向に応じて当該剣を振らせるというゲームが知られている(例えば特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記のゲームは、コントローラ自体を動かして剣を振るという遊び方を前提としたものであり、その他の入力方法、具体的にはアナログスティック等の入力については特に考慮していなかった。
【0005】
それ故に、本発明の目的は、アナログスティック等の方向入力を用いても、仮想ゲーム空間における剣オブジェクトに関するアクションが実現可能なゲームプログラムを提供することである。
【0006】
また、他の目的は、アナログスティック等の方向入力による操作と、コントローラ自身の動きを用いる操作との2種類の操作のいずれを用いても、共通のアクションが実現可能なゲームプログラムを提供することである。
【課題を解決するための手段】
【0007】
上記目的を達成するために、例えば以下のような構成例が挙げられる。
【0008】
構成例の一例は、プロセッシングシステムのプロセッサに実行させる情報処理プログラムであって、プロセッサに、以下を実行させる。仮想空間内において、所定のアイテムオブジェクトを持ったプレイヤオブジェクトを制御させる。操作装置に対する第1の方向入力に基づいて、当該第1の方向入力にかかる入力方向に応じた向きに上記アイテムオブジェクトを構える構えアクションをプレイヤオブジェクトに行わせる。更に、第1の方向入力の解除に応じて、アイテムオブジェクトを振る振りアクションをプレイヤオブジェクトに行わせる。
【0009】
上記構成例によれば、アイテムオブジェクトを構えてから振る、という一連のアクションを、方向入力という簡易な操作によってプレイヤオブジェクトに行わせることができる。
【0010】
他の構成例として、プロセッサに、振りアクションとして、プレイヤオブジェクトに、構えアクションにおいてアイテムオブジェクトを構えた方向から逆方向に向かってアイテムオブジェクトを振らせてもよい。
【0011】
上記構成例によれば、アイテムオブジェクトを構えて方向を定めてから、方向入力を解除するだけで振り方向が指定できる。これにより、振りたい方向に対して直接的に方向入力する場合に比べて、より正確に狙った方向へアイテムオブジェクトを振らせることができる。
【0012】
他の構成例として、プロセッサに、振りアクションにおいてアイテムオブジェクトを振る方向に基づいた成功判定処理を含むゲーム処理を更に行わせてもよい。
【0013】
上記構成例によれば、正解となる方向にアイテムオブジェクトを振るという条件をゲームの進行において利用する場合に、より正確な方向入力が可能となり、ゲームを有利に進めやすくすることができる。
【0014】
他の構成例として、操作装置は、第1の方向入力のための第1のスティックを備え、当該第1のスティックの傾きに応じた方向入力データを出力してもよい。そして、ゲームプログラムは、プロセッサに更に、第1のスティックの傾き度合いが第1の基準を超えている間、第1のスティックの傾き方向に応じて構えアクションをさせ、傾き度合いが第1の基準を超える状態から第2の基準を超えない状態に遷移をした場合に、第1の方向入力の解除がなされたものとして、振りアクションを行わせてもよい。
【0015】
上記構成例によれば、スティックをある程度大きな角度で傾かせた後、その傾き度合いを緩めるだけで、振りアクションを行わせることができる。
【0016】
他の構成例として、第2の基準は第1の基準よりも小さい傾き度合いであってもよい。そして、傾き度合いが第1の基準を超えている状態から所定時間以内に第2の基準を超えない状態に変化した場合、第1の方向入力の解除がなされたものとして振りアクションを行わせてもよい。
【0017】
上記構成例によれば、例えばスティックを傾けて、指を離したタイミングで振りアクションを行わせることができる。これにより、簡易な操作性をプレイヤに提供できる。
【0018】
他の構成例として、プロセッサに更に、傾き度合いが第1の基準と第2の基準の間である場合には、傾き度合いと傾き方向に基づいて、プレイヤキャラクタがアイテムオブジェクトを動かすアクションを行わせてもよい。
【0019】
他の構成例として、操作装置はさらに、第2の方向入力のための第2のスティックを備え、当該第2のスティックの傾きに応じた方向入力データを出力してもよい。そして、プロセッサにさらに、第2の方向入力に基づいて、プレイヤキャラクタを仮想空間内において移動させてもよい。
【0020】
上記構成例によれば、アイテムオブジェクトに対する操作を行いながらプレイヤオブジェクトの移動も行わせることができ、プレイヤオブジェクトに多彩なアクションを簡易な操作で行わせることができる。
【0021】
他の構成例として、操作装置は更に、慣性センサを備えていてもよい。そして、ゲームプログラムは、プロセッサに更に、第1の操作モードにおいては、プレイヤキャラクタに、第1の方向入力に基づいて構えアクションおよび振りアクションを行わせ、第2の操作モードにおいては、操作装置の姿勢に基づいて構えアクションを行わせ、操作装置に対する振り入力に基づいて振りアクションを行わせてもよい。
【0022】
上記構成例によれば、アイテムオブジェクトを構えて振るという一連のアクションに対して、2種類の操作方法をプレイヤに提供することができる。
【0023】
他の構成例として、アイテムオブジェクトは、振りアクションによって敵オブジェクトに対して攻撃を行うための武器オブジェクトであってもよい。
【0024】
上記構成例によれば、敵を攻撃するために武器(剣など)を振るという操作について、簡易で直感的な操作方法をプレイヤに提供できる。
【0025】
他の構成例として、プロセッサに更に、操作装置に対する第1の方向入力以外の所定の入力が当該第1の方向入力と共に行われている間は、プレイヤオブジェクトに構えアクションおよび振りアクションを行わせずに、当該第1の方向入力に基づいて仮想カメラの制御を行わせてもよい。
【0026】
上記構成例によれば、同じ操作デバイスを用いて、仮想カメラ操作とアイテムオブジェクトを用いたアクションとを状況に応じて使い分けさせることができる。
できる。
【発明の効果】
【0027】
本実施形態によれば、アナログスティック等の方向入力によって、剣オブジェクトを構えるアクション、および、その構えに基づいて剣オブジェクトを振るアクションを実現させることができる。
【図面の簡単な説明】
【0028】
【
図1】本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図
【
図2】本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図
【
図6】本体装置2の内部構成の一例を示すブロック図
【
図7】本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図
【
図10】剣を構えているプレイヤオブジェクトを示す図
【
図12】プレイヤオブジェクトの状態の遷移を説明するための図
【
図21】DRAM85に記憶される各種データの一例を示すメモリマップ
【
図22】本実施形態に係るゲーム処理の詳細を示すフローチャート
【
図23】構え遷移判定処理の詳細を示すフローチャート
【
図24】構えアクション処理の詳細を示すフローチャート
【
図25】構えアクション処理の詳細を示すフローチャート
【
図26】振り内容設定処理の詳細を示すフローチャート
【
図27】振りアクション処理の詳細を示すフローチャート
【発明を実施するための形態】
【0029】
以下、本発明の一実施形態について説明する。
【0030】
以下、本実施形態の一例に係るゲームシステムについて説明する。本実施形態におけるゲームシステム1の一例は、本体装置(情報処理装置;本実施形態ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含む。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲームシステム1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる(
図2参照)。以下では、本実施形態のゲームシステム1のハードウェア構成について説明し、その後に本実施形態のゲームシステム1の制御について説明する。
【0031】
図1は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。
図1に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
【0032】
図2は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。
図1および
図2に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
【0033】
図3は、本体装置2の一例を示す六面図である。
図3に示すように、本体装置2は、略板状のハウジング11を備える。本実施形態において、ハウジング11の主面(換言すれば、表側の面、すなわち、ディスプレイ12が設けられる面)は、大略的には矩形形状である。
【0034】
なお、ハウジング11の形状および大きさは、任意である。一例として、ハウジング11は、携帯可能な大きさであってよい。また、本体装置2単体または本体装置2に左コントローラ3および右コントローラ4が装着された一体型装置は、携帯型装置となってもよい。また、本体装置2または一体型装置が手持ち型の装置となってもよい。また、本体装置2または一体型装置が可搬型装置となってもよい。
【0035】
図3に示すように、本体装置2は、ハウジング11の主面に設けられるディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。本実施形態においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。
【0036】
また、本体装置2は、ディスプレイ12の画面上にタッチパネル13を備える。本実施形態においては、タッチパネル13は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のものである。ただし、タッチパネル13は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のものであってもよい。
【0037】
本体装置2は、ハウジング11の内部においてスピーカ(すなわち、
図6に示すスピーカ88)を備えている。
図3に示すように、ハウジング11の主面には、スピーカ孔11aおよび11bが形成される。そして、スピーカ88の出力音は、これらのスピーカ孔11aおよび11bからそれぞれ出力される。
【0038】
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子17と、本体装置2が右コントローラ4と有線通信を行うための右側端子21を備える。
【0039】
図3に示すように、本体装置2は、スロット23を備える。スロット23は、ハウジング11の上側面に設けられる。スロット23は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン28を備える。
【0040】
本体装置2は、下側端子27を備える。下側端子27は、本体装置2がクレードルと通信を行うための端子である。本実施形態において、下側端子27は、USBコネクタ(より具体的には、メス側コネクタ)である。上記一体型装置または本体装置2単体をクレードルに載置した場合、ゲームシステム1は、本体装置2が生成して出力する画像を据置型モニタに表示することができる。また、本実施形態においては、クレードルは、載置された上記一体型装置または本体装置2単体を充電する機能を有する。また、クレードルは、ハブ装置(具体的には、USBハブ)の機能を有する。
【0041】
図4は、左コントローラ3の一例を示す六面図である。
図4に示すように、左コントローラ3は、ハウジング31を備える。本実施形態においては、ハウジング31は、縦長の形状、すなわち、上下方向(すなわち、
図1および
図4に示すy軸方向)に長い形状である。左コントローラ3は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング31は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ3は、横長となる向きで把持されることも可能である。左コントローラ3が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0042】
左コントローラ3は、左アナログスティック(以下、左スティックと呼ぶ)32を備える。
図4に示すように、左スティック32は、ハウジング31の主面に設けられる。左スティック32は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、左スティック32を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。なお、左コントローラ3は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、左スティック32を押下する入力が可能である。
【0043】
左コントローラ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プログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
【0044】
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。
【0045】
図5は、右コントローラ4の一例を示す六面図である。
図5に示すように、右コントローラ4は、ハウジング51を備える。本実施形態においては、ハウジング51は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ4は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング51は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ4は、横長となる向きで把持されることも可能である。右コントローラ4が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0046】
右コントローラ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を備える。
【0047】
また、右コントローラ4は、右コントローラ4が本体装置2と有線通信を行うための端子64を備える。
【0048】
図6は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、
図3に示す構成の他、
図6に示す各構成要素81~91、97、および98を備える。これらの構成要素81~91、97、および98のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
【0049】
本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
【0050】
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【0051】
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
【0052】
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【0053】
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、プロセッサ81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。本実施形態においては、ネットワーク通信部82は、第1の通信態様としてWi-Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部82は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【0054】
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
【0055】
プロセッサ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は、クレードルを介してデータ(例えば、画像データや音声データ)を据置型モニタ等に出力することができる。
【0056】
ここで、本体装置2は、複数の左コントローラ3と同時に(換言すれば、並行して)通信を行うことができる。また、本体装置2は、複数の右コントローラ4と同時に(換言すれば、並行して)通信を行うことができる。したがって、複数のユーザは、左コントローラ3および右コントローラ4のセットをそれぞれ用いて、本体装置2に対する入力を同時に行うことができる。一例として、第1ユーザが左コントローラ3および右コントローラ4の第1セットを用いて本体装置2に対して入力を行うと同時に、第2ユーザが左コントローラ3および右コントローラ4の第2セットを用いて本体装置2に対して入力を行うことが可能となる。
【0057】
本体装置2は、タッチパネル13の制御を行う回路であるタッチパネルコントローラ86を備える。タッチパネルコントローラ86は、タッチパネル13とプロセッサ81との間に接続される。タッチパネルコントローラ86は、タッチパネル13からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、プロセッサ81へ出力する。
【0058】
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
【0059】
本体装置2は、コーデック回路87およびスピーカ(具体的には、左スピーカおよび右スピーカ)88を備える。コーデック回路87は、スピーカ88および音声入出力端子25に接続されるとともに、プロセッサ81に接続される。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する回路である。
【0060】
本体装置2は、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびプロセッサ81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、プロセッサ81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。
【0061】
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
【0062】
図7は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、
図6で示しているため
図7では省略している。
【0063】
左コントローラ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(登録商標)の規格に従って行われる。
【0064】
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
【0065】
左コントローラ3は、各ボタン103(具体的には、ボタン33~39、43、44、および47)を備える。また、左コントローラ3は、左スティック32を備える。各ボタン103および左スティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
【0066】
左コントローラ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へ出力される。
【0067】
通信制御部101は、各入力部(具体的には、各ボタン103、左スティック32、各センサ104および105)から、入力に関する情報(具体的には、操作に関する情報、またはセンサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【0068】
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103および左スティック32に対する操作を、操作データに基づいて判別することができる。また、本体装置2は、左コントローラ3の動きおよび/または姿勢に関する情報を、操作データ(具体的には、加速度センサ104および角速度センサ105の検出結果)に基づいて算出することができる。
【0069】
左コントローラ3は、電力供給部108を備える。本実施形態において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
【0070】
図7に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
【0071】
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、各ボタン113、右スティック52、慣性センサ(加速度センサ114および角速度センサ115)を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
【0072】
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
【0073】
[本実施形態におけるゲーム処理の概要]
次に、本実施形態にかかるゲームシステム1で実行されるゲーム処理の動作概要を説明する。ここで、上記ゲームシステム1では、本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能な構成となっている。本体装置2に左コントローラ3および右コントローラ4を装着した状態でゲームを遊ぶ場合は、ゲーム画像はディスプレイ12に出力される。また、左コントローラ3および右コントローラ4をそれぞれ外した状態の本体装置2単体がクレードルに装着された場合は、本体装置2が、クレードルを介してゲーム画像を据置型モニタ等に出力することもできる。本実施形態では、後者の態様、すなわち、左コントローラ3および右コントローラ4をそれぞれ外した状態の本体装置2単体がクレードルに装着され、本体装置2が、クレードルを介してゲーム画像等を据置型モニタ等に出力する態様でゲームプレイを行う場合を例に説明する。
【0074】
本実施形態で想定するゲーム(以下、本ゲームと呼ぶ)は、仮想3次元空間内でプレイヤオブジェクトを操作するアクションアドベンチャーゲームである。
図8は、本実施形態で想定するゲーム画面の一例である。
図8において、ゲーム画面には、3次元仮想ゲーム空間の様子が表示されている。3次元仮想ゲーム空間にはプレイヤオブジェクト201が存在しており、背後からの視点で仮想カメラに撮像された画像が表示されている。当該ゲーム画面では、プレイヤオブジェクト201の全身が表示されている。また、プレイヤオブジェクト201は剣オブジェクト204を背負っている。当該剣オブジェクト204は鞘に収まっている状態であり、後述する操作で鞘から剣オブジェクト204を抜くことができる。以下、鞘から剣オブジェクト204を抜くことを「抜剣」と呼ぶ。
図9に、抜剣した後のプレイヤオブジェクト201にかかる画面例を示す。
図9では、プレイヤオブジェクト201の右手に剣オブジェクト204が握られている状態である。この状態で、プレイヤは、プレイヤオブジェクト201の右腕の可動範囲に基づく範囲内で剣オブジェクト204を移動させることができる。
【0075】
本ゲームでは、プレイヤオブジェクト201に上記剣オブジェクト204を「振る」動作を行わせることができる。このようにプレイヤオブジェクト201は、剣オブジェクト204を振ることで、所定の敵オブジェクト(図示は省略)への攻撃が可能である。また、敵以外の所定のオブジェクト、例えば植物オブジェクト等を「斬る」ことも可能である。そして、本実施形態に係る処理は、このような剣オブジェクト204を「振る」動作をプレイヤオブジェクト201に行わせるための操作に関する処理である。また、本実施形態では、このような剣オブジェクト204を「振る」動作は、後述の「構えアクション」および「振りアクション」の2つからなるアクションとなっている。
【0076】
次に、具体的な操作内容の説明に先立って、上記のような「振る」動作に関するプレイヤオブジェクト201の「(ゲーム内での)状態」とその遷移について説明する。以下では、上記プレイヤオブジェクト201のゲーム内での状態のことを「PO状態」と呼ぶ。まず、本ゲームでは、上記
図8で示したような剣オブジェクト204を鞘に収めているPO状態を「非抜剣状態」と呼ぶ。この状態で、所定の抜剣操作を行うと、抜剣するモーションが表示された後、上記
図9のように、剣オブジェクト204を右手に持った状態となる。本実施形態では、このPO状態のことを「構え状態」と呼ぶ。当該構え状態において、プレイヤは、プレイヤオブジェクト201に構えアクションを行わせることができる。構えアクションとは、剣オブジェクト204の位置や姿勢を、プレイヤの右腕の可動範囲内において変化させるアクションである。つまり、剣を振ることに先立って剣を構えるようなアクションである。一例として、
図10に、剣オブジェクト204を、その切っ先を右方向に向けて構えているような姿勢の例を示す。構え状態においては、後述する操作によって剣オブジェクト204の姿勢を変化させることができる。そして、構え状態において、所定の条件が満たされる(所定の操作が行われる)ことで、実際に剣オブジェクト204を振る動きが表示される。以下、このように剣オブジェクト204を振っている最中のPO状態のことを「振り状態」と呼ぶ。また、剣を振る動きのことを「振りアクション」と呼ぶ。
図11に、「振り状態」のおけるプレイヤオブジェクト201の一例を示す。この図の例では、右から左方向に向けての水平切りのような振りアクションが示されている。
【0077】
図12に、上述した各PO状態の遷移関係を示す。
図12において、まず、非抜剣状態において後述するような「抜剣操作」が行われることで上記構え状態に遷移する。次に、構え状態において、上記振りアクションへ遷移する条件が満たされると、上記振り状態に遷移する。この条件の詳細は後述するが、以下では当該条件のことを「剣振り発動条件」と呼ぶ。振り状態に遷移すると、上記のような振りアクションにかかるモーションが表示される。そして、振りアクションが終了することで、上記構え状態に戻る(遷移する)。そして、構え状態において、剣オブジェクト204を鞘に収めるための「納剣操作」が行われることで、上記非抜剣状態に遷移する。そのため、例えば、剣オブジェクト204を用いて敵オブジェクトを攻撃する場合、本実施形態では、上記構えアクションと振りアクションの2つから構成される一連のアクションが行われることになる。換言すれば、本実施形態では、剣オブジェクト204を振る動作は、「構えてから振る」という一連のアクションとなる。
【0078】
[操作モードについて]
次に、上記のような動作を行わせるための具体的操作について説明する。本実施形態では、上記のような動作を行わせるための操作モードが2つ設けられている。第1の操作モードは、主に上記右コントローラ4に備えられている右スティック52を用いる操作モードである。第2の操作モードでは、上記右コントローラ4の慣性センサを用いる操作モードである。なお、本実施形態では、これらの操作モードはいずれか1つが設定されるものとする。例えば、ゲームの設定画面において、操作モードを設定する項目が設けられ、いずれか一方の操作モードが指定される。そのため、第1の操作モードが設定されているときは、第2の操作モードによる操作はできないものとする。逆の場合も同様である。
【0079】
[第2の操作モードについて]
次に、各操作モードについて説明するが、説明の便宜上、まず、第2の操作モードについて説明する。上記のように、第2の操作モードは右コントローラ4の慣性センサを用いるものである。具体的には、第2の操作モードでは、プレイヤは、右コントローラ4を剣オブジェクト204に見立てて、当該右コントローラ4を傾けたり、振ったりすることで、上記剣オブジェクト204の姿勢を変化させたり振ったりすることが可能である。
【0080】
操作の一例を挙げると、まず、非抜刀状態において、プレイヤが所定のボタンを押すことで、プレイヤオブジェクト201は抜剣して、PO状態が構え状態に遷移する。このとき、慣性センサからの出力に基づき、右コントローラ4の姿勢が算出され、その姿勢が剣オブジェクト204の姿勢に反映される。たとえば、慣性センサはジャイロセンサを含み、当該ジャイロセンサが検出する角速度に基づいて右コントローラ4の姿勢が算出される。ここでは、抜剣の操作の結果、上記
図9のような姿勢となった場合を想定する。次に、画面が
図9のような状態において、プレイヤが右腕を水平に伸ばし、右コントローラ4も略水平の姿勢にしたとする。この場合、慣性センサからの出力に基づき、右コントローラ4の姿勢が算出され、この姿勢が剣オブジェクト204の位置や姿勢に反映される。その結果、剣オブジェクト204(およびプレイヤオブジェクト201)の位置および姿勢が、上記
図10で示したような姿勢に変化する。
【0081】
更に、ゲーム画面が
図10のような状態のときに、プレイヤが右コントローラ4を左方向に所定の速度以上の速さで振ったとする。この場合、慣性センサからの出力に基づき、当該コントローラを振ったという動きが検出される。たとえば、慣性センサは加速度センサを含み、所定値以上の加速度が検出されたとの判定によって、当該コントローラが振られたと判定される。その結果、PO状態が上記振り状態に遷移し、この振りの動きにおける右コントローラ4の姿勢の変化が剣オブジェクト204の位置や姿勢の変化に反映される。その結果、プレイヤオブジェクト201は、上記
図11で示したような振りアクションを行うことになる。
【0082】
このように、第2の操作モードでは、慣性センサの出力に基づいて、右コントローラ4の姿勢を算出し、振りを判定する。そして、算出した右コントローラ4の姿勢を剣オブジェクト204に反映させることで、上記構えアクションおよび振りアクションによる一連のアクションを実現している。これにより。右コントローラ4自体を動かすことで剣オブジェクト204を振ることができるため、直感的な操作が可能である。また、実際に剣を振っているかのようなユーザ体験を提供することもできる。
【0083】
[第1の操作モードについて]
上記のように、第2の操作モードでは、慣性センサを利用することで、右コントローラ4自体を動かすという操作方法を提供している。ここで、本実施形態にかかるゲームシステム1は、上述したように、本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能な構成となっている。そのため、上記
図1で示したように、本体装置2に左コントローラ3および右コントローラ4を装着した状態でゲームを遊ぶ場合、ゲーム画面がディスプレイ12に表示されることもあり、右コントローラ4の慣性センサを用いる上記のような操作は困難になると考えられる。また、その他、プレイヤによってはそもそも第2の操作モードのような操作方法を好まない場合があることも考えられる。そこで、本実施形態では、第1の操作モードを提供している。この操作モードでは、右スティック52を用いた簡単な方向入力操作で、上記第2の操作モードの場合と同様に構えアクションおよび振りアクションによる一連のアクションを行うことができる。そのため、本体装置2に左コントローラ3および右コントローラ4を装着した状態であっても、第2の操作モードの場合と同様にプレイヤオブジェクト201に剣オブジェクト204を振る動作を行わせることができる。
【0084】
次に、第1の操作モードにおける操作および処理の概要について説明する。まず、右スティック52の操作入力データの扱いに関して説明する。第1の操作モードにおいて、右スティック52で示される操作入力データは、2次元値として得られる。すなわち、右スティック52で示される操作入力データは、(x、y)という2次元値で得られるものとする。そして、本実施形態では、右スティック52を真上から見て、右方向をx軸正方向、上方向をy軸正方向とする座標系の2次元平面(以下、スティック平面)を想定する。このスティック平面において、右スティック52がニュートラルの状態(いずれの方向にも傾いていない状態)の場合を原点とする。この場合、この原点から上記2次元値で示される座標を結ぶベクトル(以下、入力ベクトルと呼ぶ)は、入力の強さと入力方向とを示すことになる。すなわち、当該入力ベクトルの長さは右スティック52の傾きの度合いを示し、入力ベクトルの向きは入力方向を示す。
【0085】
次に、右スティック52の入力内容と上記構えアクションおよび振りアクションとの関係について説明する。本実施形態では、上記スティック平面を、プレイヤオブジェクト201を背面から見た状態で定義されるxy平面に対応づけている。
図13に、上記スティック平面と当該xy平面(以下、プレイヤオブジェクト平面と呼ぶ)との対応を示す図である。
図13では、左側に円状のスティック平面を示している。また、右側にプレイヤオブジェクト201を示し、その周囲を囲む点線で上記プレイヤオブジェクト平面を示している。なお、スティック平面の円の外周は、右スティック52の入力限界(最大まで傾けた場合)を示している。
図13では、プレイヤオブジェクト201を背面から見たような平面を想定し、プレイヤオブジェクト201の略中央部分がスティック平面の原点となるような対応付けを想定している。なお、他の例では、右腕の付け根部分とスティック平面の原点とを対応づけてもよい。
【0086】
上記のような対応関係を前提に、第1の操作モードでは、以下のような操作が可能である。まず、抜剣の操作については上記第1の操作モードと同様の操作であるとする。抜剣が行われた場合、所定の抜剣モーションが表示された後、PO状態が構え状態に遷移する。この構え状態のときは、右スティック52の入力に応じて、剣オブジェクト204の姿勢を変化させることができる。また、右スティック52の入力がニュートラルの場合は、この場合に対応する所定の姿勢となる。
【0087】
図14に、右スティック52を右方向に倒しきっている場合の例を示す。
図14では、左側にスティック平面とその入力ベクトル(矢印)を示し、右側にこの入力に対応する剣オブジェクト204(およびプレイヤオブジェクト201)の姿勢を示している。
図14に示すように、右スティック52を右方向に倒しきると、これに応じて、剣オブジェクト204の姿勢も、その切っ先を右に向けたような姿勢に変化する。なお、奥行き方向(z軸上)における位置に関しては、ゲーム内容に応じた任意の位置でよいが、基本的には剣オブジェクト204を持っているプレイヤオブジェクト201の右腕の可動範囲の影響を受ける位置となる。
【0088】
上記
図14の姿勢から、更に、右スティック52を倒しきったまま、その入力方向だけを反時計回りに回転させていく場合を想定する。
図15~
図18に、この場合における姿勢の変化例を示す。
図15は、右スティック52の入力方向が右上方向である場合を示す。この場合、剣オブジェクト204の切っ先も、プレイヤオブジェクト平面における右上方向を向くような姿勢となっている。更に、右スティック52の入力方向を真上方向に変化させると、
図16に示すように、剣オブジェクト204の切っ先がプレイヤオブジェクト平面における真上を向くような姿勢に変化していく。更に、右スティック52の入力方向を左方向に変化させると、
図17に示すように、剣オブジェクト204の切っ先がプレイヤオブジェクト平面における左方向を向くような姿勢に変化していく。更に、右スティック52の入力方向を真下方向に変化させると、
図18に示すように、剣オブジェクト204の切っ先がプレイヤオブジェクト平面における真下を向くような姿勢に変化していく。
【0089】
このように、第2の操作モードでは、構え状態においては、右スティック52の入力操作で構えアクションを行わせることができる。すなわち、右スティック52の方向入力に応じた方向に剣オブジェクト204(の切っ先)が向くように、剣オブジェクト204の姿勢を変化させることができる。
【0090】
次に、第2の操作モードにおける振りアクションについて説明する。本実施形態では、構え状態において、右スティック52を倒しきった状態でプレイヤが右スティック52から指を離すことで、構え状態から振り状態に遷移することができる。右スティック52は、ある方向に倒した状態から指を離すと、ニュートラルの位置に(自然に)戻るスティックである。これにより、右スティック52を倒した状態で右スティック52から指を離すことで、ほぼ瞬時に右スティック52をニュートラル状態に戻すことができる。第2の操作モードでは、このような右スティック52を倒しきった状態から指を離すこと(右スティックの方向入力の解除)をトリガーとして、プレイヤオブジェクト201を構え状態から振り状態に遷移し、上記のような振りアクションを行わせる。以下、このような振りアクションのトリガーとなる、方向入力を解除する操作のことを「リリース操作」と呼ぶ。
【0091】
ここで、上記リリース操作の判定手法について補足説明する。
図19および
図20は、上記リリース操作の判定手法を説明するための図である。いずれの図も、上記スティック平面を示すものである。まず、
図19では、スティック平面の外周より少し内側になるような位置に、第1の閾値131が示されている。本実施形態では、構え状態において、原点からの上記入力ベクトルの長さがこの第1の閾値131を超えている場合に上記リリース操作を行うと、振りアクションを行うことができる。逆に、入力ベクトルの長さがこの第1の閾値を超えていない状態で右スティック52から指を離しても、上記リリース操作とはならない。すなわち、プレイヤオブジェクト201は振り状態には遷移せず、構え状態を維持したまま、剣オブジェクト204の姿勢が変化する(ニュートラルのときの姿勢になる)だけとなる。つまり、振りアクションを行うためには、右スティック52について、ある程度大きな傾きが要求されるものとなっている。以下の説明では、当該第1の閾値131を「振り発生閾値」と呼ぶ。
【0092】
次に、
図20では、スティック平面の原点の少し外側に、第2の閾値132が示されている。本実施形態では、入力ベクトルの長さが上記
図19のような振り発生閾値131を超える入力状態から、当該入力ベクトルの長さが当該第2の閾値132を超えない状態に所定時間内、例えば3フレーム以内に変化した場合に、上述したリリース操作が発生したと判定する。つまり、上記の指をスティックから離した場合に、スティックがニュートラル位置付近まで戻るまでの時間がある程度小さい場合に、上記のようなスティックから指を離す操作があったと判定するものである。以下の説明では、当該第2の閾値132のことを「リリース判定閾値」と呼ぶ。なお、上記「3フレーム以内」はあくまで一例であり、ゲーム内容に応じて適切なフレーム数を用いればよいことはいうまでもない。
【0093】
上記のように、プレイヤは、プレイヤオブジェクト201が構え状態にあるときに上記のようなリリース操作を行うことで、プレイヤオブジェクト201に振りアクションを行わせることができる。このときの剣オブジェクト204を振る方向については、右スティック52が倒れていた方向とは逆の方向であるとする。例えば、上記
図14で示したように、右方向にスティックを倒しきっている状態で指を離すと、上記
図11で示したような、左方向に向けて剣を振りきるような振りアクションが行われることになる。このような操作方法により、プレイヤは、剣を振りたい方向とは逆の方向に右スティック52を倒しきり、指を離すことで、所望の方向に剣オブジェクト204を振らせることができる。また、振りアクションを行うためには、右スティック52をほぼ最大まで傾ける必要があるところ、右スティック52の軸を囲う外周部分に沿って右スティック52の傾き方向を変化させることができる。つまり、右スティック52の軸の外周部分が一種のガイド的な役割を果たし、剣を振る方向の狙いが付けやすくなる。そのため、剣オブジェクト204を振る方向について、正確な方向入力が行いやすくなる。上記のような構えアクションからの振りアクションという一連の流れは、正確な方向入力を行いやすくすることができる。
【0094】
また、上記のような構えアクションからの振りアクションという一連の流れによる正確な方向入力のしやすさは、例えばゲームの進行において、所定の方向に剣オブジェクト204を振ることを要求するギミックがある場合に特に有用である。このギミックとしては、例えば、所定の方向に剣を振らなければ倒せない敵オブジェクトや、所定の方向から剣オブジェクト204を当てないと解除されない罠オブジェクト等である。このような場合、振りアクションにおける振り方向を判別して、敵への攻撃が成功したか否かや、罠の解除に成功したか否か等を判定するゲーム処理が行われることになる。
【0095】
また、第1の操作モードでは、上記のような処理を行う結果、右スティック52をはじくような操作(以下、はじき操作)によって、構えアクションおよび振りアクションを連続的且つ瞬間的に行うことも可能である。このはじき操作として、例えば、抜剣している状態で、右スティック52がニュートラルの状態のときに、右スティック52を右方向にはじくようにして操作した場合を想定する。この場合は、右スティック52の入力としては、ニュートラルの状態から上記振り発生閾値131を超える入力ベクトルが発生し、更にその後、その入力ベクトルがリリース判定閾値132を下回るようなものに変化する、というものとなる。そして、この右方向への振り発生閾値131を超える入力ベクトルの発生と、リリース判定閾値132を下回る入力ベクトルへの変化(および、リリース操作が発生したとの判定)とが、数フレーム程度という極めて短い時間内で発生することになる。そのため、プレイヤは、このようなはじき操作を行うだけで、はじいた方向とは逆方向への振りアクションを、ほぼ「瞬時」とも言えるような時間内にプレイヤオブジェクト201に行わせることが可能となっている。これにより、構えアクションによってじっくりと振る方向の狙いを定めてから振りアクションを実行するという操作の他、はじき操作によって瞬時に振りアクションを実行するという操作もプレイヤに提供できる。
【0096】
なお、本実施形態では、非抜刀状態において、プレイヤが所定のボタンを押すことで構え状態に遷移する例で説明しているが、他の実施形態では、第1の操作モードで、非抜刀状態において右スティック52の入力が行われたときに抜剣するようにしてもよい。この場合、上記はじき操作を行えば、非抜刀状態からいきなり振りアクションを実行させるような動きをプレイヤオブジェクト201に行わせることも可能である。
【0097】
また、上記リリース操作について、右スティック52から指を離した場合の例を挙げた。この点、判定処理としては、上記
図19のような入力状態から所定時間内に上記
図20のような入力状態に変化したことが判定できればリリース操作として判定される。そのため、指を右スティック52から離さずに、例えば右に倒しきった状態から左に倒しきった状態に素早く方向入力を行った場合に、上記のような「3フレーム以内にリリース判定閾値を下回る」という条件が満たされていれば、リリース操作が行われたと判定され、振りアクションも行われ得る。そのため、例えば、右スティック52を左右交互に倒す操作を素早く繰り返すことで、右振りと左振りの振りアクションが交互に繰り返され、あたかもプレイヤオブジェクト201が連続切りを行っているようなアクションを行わせることも可能である。つまり、このような連続的な操作が行われた場合は、構えアクションおよび振りアクションのセットが連続的に実行されるということになる。
【0098】
このように、本実施形態では、上記構えアクション及び振りアクションについて、第2の操作モードとして慣性センサを用いた操作方法をプレイヤに提供する。更に、第1の操作モードでも、右スティック52の操作のみで第2の操作モードと同様の構えアクションと振りアクションを行うことができる。これにより、プレイヤに応じた適切な操作方法を提供することができる。
【0099】
また、本ゲームでは、上記のような剣オブジェクト204に関する操作の他、次のような操作も可能である。
【0100】
[移動操作]
本ゲームでは、左スティック32を用いることで、プレイヤオブジェクト201を移動させることができる。そのため、左スティック32でプレイヤオブジェクト201を移動させながら、右コントローラ4を用いた剣オブジェクト204の操作を行うことも可能である。これにより、移動しながら敵オブジェクトに攻撃すること等も可能である。
【0101】
[仮想カメラ操作]
また、本ゲームでは、所定のボタンを押下した状態で右スティック52を操作することで、仮想カメラの撮像方向を変化させることもできる。例えば、第1Rボタン60を押しながら右スティック52を操作することで、その方向入力に基づき、仮想カメラの向きを変えることが可能である。また、この仮想カメラの操作中は、上記右スティック52による剣オブジェクト204の制御(第1、第2のいずれの操作モードでも)は行われない。つまり、第1Rボタン60を押している間は、右スティック52は仮想カメラ操作のために用いられ、第1Rボタン60を押していない場合は、右スティック52は剣オブジェクト204の制御のために用いられることになる。
【0102】
その他、各種アイテムの使用操作等、ゲーム進行に関連する各種の操作も可能となっている。
【0103】
[本実施形態のゲーム処理の詳細]
次に、
図21~
図27を参照して、本実施形態におけるゲーム処理についてより詳細に説明する。
【0104】
[使用データについて]
まず、本ゲーム処理にて用いられる各種データに関して説明する。
図21は、本体装置2のDRAM85に記憶される各種データの一例を示すメモリマップである。本体装置2のDRAM85には、ゲームプログラム301、操作データ302、操作モード情報307、PO状態情報308、リリース操作判定用データ309、剣振りパラメータ310、仮想カメラ設定データ311、オブジェクトデータ312等が記憶されている。
【0105】
ゲームプログラム301は、本実施形態にかかるゲーム処理を実行するためのプログラムである。
【0106】
操作データ302は、上記左コントローラ3および右コントローラ4から得られるデータであり、プレイヤの操作内容を示すデータである。操作データ302には、デジタルボタンデータ303と、右アナログスティックデータ304と、左アナログスティックデータ305と、慣性センサデータ306とが少なくとも含まれている。デジタルボタンデータ303は、コントローラが有する各種ボタンの押下状態を示すデータである。右アナログスティックデータ304は、上記右スティック52に対する操作内容を示すためのデータである。具体的には、x、yの2次元のデータが含まれる。左アナログスティックデータ305は、上記左スティック32に対する操作内容を示すためのデータである。慣性センサデータ306は、上述した加速度センサや角速度センサ等の慣性センサの検出結果を示すデータである。具体的には、加速度データや角速度データが含まれる。
【0107】
操作モード情報307は、現在の操作モードが上記第1の操作モードであるか第2の操作モードであるかを示すための情報である。
【0108】
PO状態情報308は、プレイヤオブジェクト201の状態が上述した「非抜剣状態」「構え状態」「振り状態」のいずれの状態であるかを示すための情報である。初期値は「非抜剣状態」であるとする。
【0109】
リリース操作判定用データ309は、上述したリリース操作が行われたか否かを判定するためのデータである。具体的には、直近数フレーム分の右アナログスティックデータ304が格納される(他の例では、上述した入力ベクトルを示すデータが格納されてもよい)。また、当該データは、古いデータから順に入れ替わっていくものとする。
【0110】
剣振りパラメータ310は、上記振りアクションにおいて剣オブジェクト204を移動させるための各種パラメータである。たとえば、剣オブジェクト204の移動方向や移動速度等を示すパラメータである。
【0111】
仮想カメラ設定データ311は、仮想カメラの撮像方向等を指定するためのデータである。上記のような第1Rボタン60を押しながらの右スティック52の操作に応じて、その方向が変化する。
【0112】
オブジェクトデータ312は、プレイヤオブジェクト201を含む、本ゲームに登場する各種オブジェクトの外観を示すデータである。モデルデータやテクスチャデータ等がこれに含まれる。
【0113】
その他、ゲーム処理に必要な各種データも適宜生成され、DRAM85に格納される。
【0114】
[プロセッサ81が実行する処理の詳細]
次に、
図22のフローチャートを参照して、本実施形態にかかるゲーム処理の詳細を説明する。なお、この説明では、主に、上述したような剣オブジェクト204の操作に関する処理について説明し、その他のゲーム処理についての詳細な説明は割愛する。
【0115】
図22は、本ゲーム処理の詳細を示すフローチャートである。
図22において、まず、ステップS1で、プロセッサ81は、以降の処理において用いられるデータを初期化するための初期化処理を実行する。具体的には、「非抜剣状態」を示すデータがPO状態情報308としてDRAM85に記憶される。また、プロセッサ81は、仮想カメラ設定データ311に、上記
図8で示したような、プレイヤオブジェクト201の背後からの視点となるゲーム画像が表示されるような各種パラメータ(位置、画角、注視点)を設定する。更に、プロセッサ81は、3次元の仮想ゲーム空間を構築し、プレイヤオブジェクト201等を適宜配置する。以上のように構築されたゲーム空間を仮想カメラで撮影したゲーム画像が生成され、生成されたゲーム画像が上記据置型モニタ等に出力される。
【0116】
次に、ステップS2で、プロセッサ81は、PO状態情報308を参照し、PO状態が振り状態であるか否かを判定する。当該判定の結果、振り状態の場合は(ステップS2でYES)、後述するステップS10の処理を実行する。一方、振り状態ではない場合は(ステップS2でNO)、ステップS3で、プロセッサ81は、PO状態が構え状態であるか否かを判定する。その結果、構え状態であれば(ステップS3でYES)、プロセッサ81は、後述するステップS9の処理へ進む。
【0117】
一方、構え状態ではない場合は(ステップS3でNO)、PO状態は非抜剣状態であるため、ステップS4で、プロセッサ81は、操作データ302をDRAM85から取得する。
【0118】
次に、ステップS5で、プロセッサ81は、構え遷移判定処理を実行する。この処理では、PO状態を非抜剣状態から構え状態に遷移させるか否かの判定等が行われる。
図23は、当該構え遷移判定処理の詳細を示すフローチャートである。
図23において、まず、ステップS21で、現在のフレームに係る処理において、抜剣モーションの表示中の状態であるか否かが判定される。本実施形態では、抜剣の指示操作が行われた場合、数フレームかけてプレイヤオブジェクト201が剣オブジェクト204を抜剣するモーションを表示する。当該判定は、このモーションの途中の状態であるか否かを判定するためのものである。当該判定の結果、抜剣モーション中ではない場合は(ステップS21でNO)、ステップS22で、プロセッサ81は、抜剣操作が行われたか否かを操作データ302で示される操作内容に基づき判定する。本実施形態では、抜剣操作として割り当てられている所定のボタンが押下されたか否かを判定する。またこの他、他の実施形態では、例えば、右コントローラ4が所定の加速度以上で振られた場合や、右スティック52への方向入力が発生したときにも、抜剣操作が行われたと判定するようにしてもよい。
【0119】
上記判定の結果、抜剣操作が行われていた場合は(ステップS22でYES)、ステップS23で、プロセッサ81は、上記抜剣モーションを表示するための表示設定を行う。この設定に基づき、後述するステップS7のゲーム画像出力処理において、抜剣モーションが表示される。また、この設定によって、上記ステップS21の判定において、抜剣モーション中と判定される。この設定は、例えば、抜剣モーション中であることを示すフラグ(図示は省略)をオンにする等で設定され得る。
【0120】
一方、抜剣操作が行われていない場合は(ステップS22でNO)、上記ステップS23の処理はスキップされて、構え遷移判定処理は終了する。
【0121】
次に、上記ステップS21の判定の結果、抜剣モーションの表示中と判定された場合(ステップS21でYES)について説明する。この場合は、ステップS24で、プロセッサ81は、抜剣モーションが終了したか否かを判定する。まだ終了していない場合は(ステップS24でNO)、構え遷移判定処理は終了する。その結果、引き続き抜剣モーションが表示されることになる。一方、抜剣モーションが終了した場合は(ステップS24でYES)、ステップS25で、プロセッサ81は、抜剣モーションの表示を終了する旨の設定を行う。例えば、上述した抜剣モーション中であることを示すフラグをオフにする。次に、ステップS26で、プロセッサ81は、PO状態情報308に、構え状態を示すデータを設定する。つまり、本実施形態では、抜剣モーションが終了するまでは構え状態には遷移しない。なお、他の実施形態では、抜剣操作が行われた時点で構え状態に遷移させてもよい。その後、構え遷移判定処理は終了する。
【0122】
図22に戻り、次に、ステップS6で、プロセッサ81は、後述する構えアクション処理および振りアクション処理以外の各種ゲーム処理を実行する。具体的には、左スティック32の操作内容(左アナログスティックデータ305)に基づきプレイヤオブジェクト201を移動させる処理が行われる。また、第1Rボタン60を押しながらの右スティック52の操作内容に基づき、仮想カメラのパラメータを変更する処理も行われる。また、今回のフレームにおいて取得した操作データ302の右アナログスティックデータ304を上記リリース操作判定用データ309に格納する処理も実行される。また、上記抜剣モーションの表示中の状態の場合は、プレイヤオブジェクト201に所定の抜剣モーションを行わせる処理も実行される。その他、プレイヤオブジェクト201が構えアクションや振りアクションを行っていないときも含め、ゲームの進行に関する各種のゲーム処理が適宜実行される。
【0123】
次に、ステップS7で、プロセッサ81は、ゲーム画像出力処理を実行する。具体的には、プロセッサ81は、上記の処理と、後述の構えアクション処理および振りアクション処理の結果が反映された仮想ゲーム空間を仮想カメラで撮像してゲーム画像を生成する。そして、プロセッサ81は、当該ゲーム画像を据置型モニタに出力する。
【0124】
次に、ステップS8で、プロセッサ81は、本実施形態にかかるゲームの終了条件が満たされたか否かを判定する。例えば、プレイヤがゲームの終了操作を行った場合等である。当該判定の結果、YESの場合はゲーム処理を終了し、NOの場合は、ステップS2に戻って、本実施形態にかかるゲーム処理を繰り返す。すなわち、ゲーム処理が終了されるまで、ステップS2からステップS7までの処理が、描画の時間単位である1フレーム毎に繰り返される。
【0125】
[構えアクション処理について]
次に、上記ステップS9にかかる構えアクション処理について説明する。
図24~
図25は、当該構えアクション処理の詳細を示すフローチャートである。
図24において、まず、ステップS31で、プロセッサ81は、操作データ302を取得する。
【0126】
次に、ステップS32で、プロセッサ81は、現在の操作モードが第1の操作モード(右スティック52を用いる操作モード)であるか否かを判定する。当該判定の結果、第1の操作モードの場合は(ステップS32でYES)、ステップS33で、プロセッサ81は、第1の操作モードにおける構え状態を終了させる操作(納剣操作)が行われたか否かを判定する。この終了操作は、本実施形態では、所定のボタンの押下である。なお、本実施形態では、当該構え状態を終了させる操作は第1の操作モードの場合と第2の操作モードの場合とで共通であるとする。この終了操作について第1の操作モードの場合と第2の操作モードとで異なる操作を採用する場合は、各モードに応じてその操作内容を判定すればよい。
【0127】
上記判定の結果、構え状態を終了させる操作が行われた場合は(ステップS33でYES)、ステップS34で、プロセッサ81は、PO状態情報308に非抜剣状態を設定する。またこの際、鞘に剣オブジェクト204を収める納剣モーションの表示設定も適宜行う。その後、構えアクション処理は終了する。
【0128】
一方、上記ステップS33の判定の結果、構え状態を終了させる操作が行われていない場合は(ステップS33でNO)、次に、ステップS35で、プロセッサ81は、右アナログスティックデータ304に基づき、上記入力ベクトルを算出する。次に、ステップS36で、プロセッサ81は、上記算出した入力ベクトルと、リリース操作判定用データ309とに基づき、上述したようなリリース操作が発生したか否かを判定する。つまり、振り状態への遷移条件が満たされたか否かを判定する。より具体的には、プロセッサ81は、上記
図19で示したような振り発生閾値131を超える入力があった状態から、上記
図20で示したようなリリース判定閾値132を下回る入力状態に、3フレーム以内に変化したか否かを判定する。当該判定の結果、リリース操作が発生していない場合は(ステップS36でNO)、ステップS37で、プロセッサ81は、上記ステップS35で算出した入力ベクトルに基づき、剣オブジェクト204の姿勢と位置を設定する。これにより、上記構えアクションとして、右スティック52の方向入力に応じて剣オブジェクト204の姿勢と位置を変化させることができる。なお、右スティック52の入力がニュートラルの場合は、この場合に対応する所定の姿勢と位置が設定される。その後、構えアクション処理は終了する。
【0129】
一方、上記ステップS36の判定の結果、リリース操作が発生した場合は(ステップS36でYES)、ステップS38で、プロセッサ81は、PO状態情報308に振り状態を示すデータを設定する。
【0130】
次に、ステップS39で、プロセッサ81は、振り内容設定処理を実行する。この処理は、上記剣振りパラメータ310の内容を設定する処理である。ここで設定された内容に基づき、次のフレームにかかる処理において剣オブジェクト204の姿勢変化や移動が行われることになる。
図26は、当該振り内容設定処理の詳細を示すフローチャートである、
図26において、ステップS61で、プロセッサ81は、操作モード情報307に基づき、操作モードが第1の操作モードであるか否かを判定する。第1の操作モードの場合は(ステップS61でYES)、右スティック52の入力に基づいて剣振りパラメータ310の内容を設定する処理が行われる。まず、ステップS62で、プロセッサ81は、上記算出した入力ベクトルに基づき、剣オブジェクト204の移動方向を設定する。具体的には、プロセッサ81は、リリース操作直前の上記入力ベクトルの方向とは逆方向を算出する。そして、当該算出した方向が剣オブジェクト204の移動方向を示すように、剣振りパラメータ310の内容を設定する。
【0131】
次に、ステップS63で、プロセッサ81は、上記入力ベクトルに基づき、剣オブジェクト204の移動方向を設定する。具体的には、プロセッサ81は、リリース操作直前の上記入力ベクトルの長さに基づき、移動速度を算出する。そして、当該算出した移動速度が剣オブジェクト204の移動速度を示すように、剣振りパラメータ310の内容を設定する。つまり、右スティック52の傾きが大きいほど、剣オブジェクト204の移動速度も速くなる。なお、他の実施形態では、第1の操作モードでの振りアクションにおける剣オブジェクト204の移動速度については、上記入力ベクトルの長さに関わらず、予め決められた固定の速度としてもよい。その後、振り内容設定処理は終了する。
【0132】
一方、上記ステップS61の判定の結果、操作モードが第2の操作モードの場合(ステップS61でNO)、慣性センサデータ306に基づいて剣振りパラメータ310の内容を設定する処理が行われる。まず、ステップS64で、プロセッサ81は、慣性センサデータ306に含まれる加速度データに基づき、右コントローラ4が振られた方向を算出する。そして、当該算出した方向が剣オブジェクト204の移動方向を示すように、剣振りパラメータ310の内容を設定する。
【0133】
次に、ステップS65で、プロセッサ81は、慣性センサデータ306に含まれる加速度データに基づき、右コントローラ4が振られた速度を算出する。そして、当該算出した速度が剣オブジェクト204の移動速度を示すように、剣振りパラメータ310の内容を設定する。その後、振り内容設定処理は終了する。
【0134】
図24に戻り、振り内容設定処理が終われば、構えアクション処理は終了する。
【0135】
次に、上記ステップS32の判定の結果、操作モードが第2の操作モードの場合(ステップS32でNO)について説明する。この場合は、
図25のステップS40で、プロセッサ81は、第2の操作モードにおける構え状態を終了させる操作が行われたか否かを判定する。この終了操作は、本実施形態では、第1の操作モードの場合と同様に所定のボタンの押下であるとする。
【0136】
上記判定の結果、構え状態を終了させる操作が行われた場合は(ステップS40でYES)、ステップS41で、プロセッサ81は、PO状態情報308に非抜剣状態を設定する。その後、構えアクション処理は終了する。
【0137】
一方、上記ステップS40の判定の結果、構え状態を終了させる操作が行われていない場合は(ステップS40でNO)、次に、ステップS42で、プロセッサ81は、慣性センサデータ306に基づき、所定値以上の加速度が発生したか否かを判定する。この所定値は、右コントローラ4を「振った」と判定されるに足る加速度の大きさである。つまり、右コントローラ4が、所定の速度以上の速さで振られたか否かを判定するものである。当該判定の結果、所定値未満の場合は(ステップS42でNO)、ステップS43で、プロセッサ81は、慣性センサデータ306に含まれる加速度データおよび角速度データに基づいて、右コントローラ4の姿勢を算出する。
【0138】
次に、ステップS44で、プロセッサ81は、上記算出された右コントローラ4の姿勢に対応するように剣オブジェクト204の姿勢と位置を算出する。これにより、慣性センサを用いた構えアクションが実現される。その後、構えアクション処理は終了する。
【0139】
一方、上記ステップS42の判定の結果、加速度が所定値以上の場合は(ステップS42でYES)、第2の操作モードにおける、構え状態から振り状態へ遷移する条件が満たされたことになる。この場合は、ステップS45で、プロセッサ81は、PO状態情報308を振り状態に設定する。そして、ステップS46で、プロセッサ81は、振り内容設定処理を実行する。この処理は上述したステップS39の処理と同様であるため、詳細は説明は割愛するが、第2の操作モードの場合は、上記ステップS61の判定でNOと判定されてその後の処理が行われることになる。以上で、構えアクション処理は終了する。構えアクション処理が終了すれば、上記ステップS6に処理が進められる。
【0140】
[振りアクション処理について]
次に、上記ステップS10の振りアクション処理の詳細について説明する。
図27は、当該振りアクション処理の詳細を示すフローチャートである。
図27において、まず、ステップS81で、プロセッサ81は、操作データ302を取得する。
【0141】
次に、ステップS82で、プロセッサ81は、上記剣振りパラメータ310の内容に基づいて剣オブジェクト204を移動させ、また、剣オブジェクト204の姿勢も変化させる。
【0142】
次に、ステップS83で、プロセッサ81は、当たり判定処理を行う。すなわち、剣オブジェクト204が所定のオブジェクトと接触したか否かが判定される。当該判定結果はDRAM85に適宜格納され、上記ステップS6のその他のゲーム処理において、当たり判定結果に基づいた各種のゲーム処理が実行される。
【0143】
次に、ステップS84で、プロセッサ81は、振りアクションが終了したか否かを判定する。例えば、振りアクションが開始されてから所定のフレーム数分の時間が経過したか否か、等で、振りアクション(剣を振るモーションの表示)が終了したか否かが判定される。当該判定の結果、振りアクションが終了していない場合は(ステップS84でNO)、ステップS85で、振り内容設定処理が実行される。当該処理は上述したステップS39の処理と同様であるため、詳細な説明は割愛する。その後、振りアクション処理は終了する。
【0144】
一方、ステップS84の判定の結果、振りアクションが終了した場合は(ステップS84でYES)、ステップS86で、プロセッサ81は、PO状態情報308に構え状態を示すデータを設定する。これにより、振り状態から構え状態への遷移が行われることになる。その後、振りアクション処理は終了する。振りアクション処理が終了すれば、上記ステップS6に処理が進められる。
【0145】
以上で、本実施形態にかかるゲーム処理の詳細説明を終了する。
【0146】
このように、本実施形態では、アナログスティックの方向入力という簡単な操作によって、剣オブジェクト204の「構え」と「振り」からなる一連のアクションを行わせることができる。また、アナログスティックの方向入力を解除することで「振り」を発動させるという操作方法により、振りのタイミングや方向を定めやすくすることができる。更に、慣性センサを用いたコントローラ自体の動き・姿勢に基づく上記一連のアクションを行わせることもできる。この場合アナログスティック操作と慣性センサに基づく操作とのいずれの操作方法を用いても、剣オブジェクト204の「構え」と「振り」からなるアクション、という共通のアクションを実現することができる。これにより、同じアクションに対して多様多彩な操作方法をプレイヤに提供でき、プレイヤの利便性を高めることができる。
【0147】
[変形例]
なお、上記実施形態では、リリース操作の際、右スティックの入力方向とは逆の方向を剣オブジェクトを振る方向として設定する例を挙げた。他の実施形態では、剣を振る方向については、このような逆方向に限らず、所定の方向に剣オブジェクト204を振るようにしてもよい。例えば、予め剣を振る方向が特定方向に設定されており、上記リリース操作が行われれば、そのときの入力方向に関わらず、常にこの特定方向に剣を振るようにしてもよい。
【0148】
また、上記構えアクションに関して、上記実施形態では、
図19で示した振り発生閾値131を越える入力が発生しているときにリリース操作が行われると、振りアクションが行われる例を挙げた。また、この例では、振り発生閾値131を越えない方向入力がある場合でも、構えアクション自体は行われ得るものとなっていた。他の実施形態では、当該振り発生閾値131を越えるような方向入力が行われときだけ上記構えアクションを行うような構成にしてもよい。この場合は、方向入力が行われても、振り発生閾値131を越えない方向入力であるときは(例えば、上記リリース判定閾値132以上、振り発生閾値131未満の範囲内の入力)、上記のような構えアクションは行わないようにしてもよい。この場合は、「非抜剣状態」と「構え状態」との間に、「抜剣はしているが構えていない」状態が加わるような態様となる。また、この状態においては、プレイヤオブジェクト201は剣を構えている状態ではないが、剣の位置や姿勢自体は入力内容に応じて変化させるようにしてもよい。また逆に、この状態においては、入力内容に応じた剣の位置や姿勢の変化は行わずに、例えば抜剣した際のデフォルトとして定義されている位置や姿勢に剣オブジェクト204を固定するようにしてもよい。
【0149】
また、リリース操作に関して、上記実施形態では、振り発生閾値131を超える入力状態から所定時間以内にリリース判定閾値132を超えない入力状態に変化した場合に、振りアクションを行わせる例を挙げた。リリース操作の判定手法についてはこれに限るものではなく、他の手法で方向入力が解除されたことを判別するようにしてもよい。そして、方向入力の解除が発生したときに上記振りアクションを行わせるようにしてもよい。
【0150】
また、上記実施形態では、第1の操作モードにおいて振りアクションが行われている間は、その振りアクションが終了するまでは剣オブジェクト204に関する操作を実質的に受け付けないような構成となっていた。これに限らず、他の実施形態では、振りアクションの途中において、次の操作を受け付け可能なように構成してもよい。例えば、振りアクションの開始から終了まで10フレーム分の時間を要する場合を想定する。この場合、開始から120フレームまでは剣オブジェクト204に関する操作は受け付けないが、120フレーム以降は当該操作を受け付けるようにしてもよい。これにより、プレイヤオブジェクト201が剣を振るモーションを途中でキャンセルして、次の構えアクション~振りアクションを行わせるような操作をプレイヤに提供することもできる。そのため、プレイヤが行うプレイの幅を広げることができ、ゲームの興趣性を高めることができる。
【0151】
また、上記実施形態では、第1の操作モードでアナログスティックを用いる場合を例に挙げた。入力デバイスについては、アナログスティックに限らない。入力がない場合は所定のニュートラルポジションとなるようなアナログ入力式の方向入力デバイスを用いる場合にも、上記処理は適用可能である。たとえば、スライドパッドなどにも適用可能である。
【0152】
また、上記実施形態では、剣オブジェクト204を振る場合を例に挙げたが、手に持って振って用いるような武器であれば、その他の種類の武器オブジェクトを用いる場合でも上記処理は適用可能である。例えば棍棒や斧等でもよい。
【0153】
更には、アナログ方式の入力デバイスだけでなく、例えば上下左右の方向入力が可能なデジタル式の方向入力ボタンを用いる場合でも、上記第1の操作モードにおける処理は適用可能である。この場合は、上記リリース操作として、上記のような各種の閾値の代わりに、方向入力がオンからオフに切り替わったタイミングを用いるようにすればよい。そして、入力されていた方向と逆方向あるいはこれ以外の所定の方向に剣を振らせるように、上記振りアクションを行わせてもよい。
【0154】
また、上記実施形態においては、ゲーム処理にかかる一連の処理が単一の装置において実行される場合を説明したが、他の実施形態においては、上記一連の処理が複数の情報処理装置からなる情報処理システムにおいて実行されてもよい。例えば、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの一部の処理がサーバ側装置によって実行されてもよい。さらには、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの主要な処理がサーバ側装置によって実行され、当該端末側装置では一部の処理が実行されてもよい。また、上記情報処理システムにおいて、サーバ側のシステムは、複数の情報処理装置によって構成され、サーバ側で実行するべき処理を複数の情報処理装置が分担して実行してもよい。また、いわゆるクラウドゲーミングの構成としてもよい。例えば、本体装置2は、プレイヤの操作を示す操作データを所定のサーバに送り、当該サーバにおいて各種ゲーム処理が実行され、その実行結果が動画・音声として本体装置2にストリーミング配信されるような構成としてもよい。
【符号の説明】
【0155】
1 ゲームシステム
2 本体装置
3 左コントローラ
4 右コントローラ
81 プロセッサ
84 フラッシュメモリ
85 DRAM