(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024083841
(43)【公開日】2024-06-24
(54)【発明の名称】情報処理プログラム、情報処理システム、および情報処理方法
(51)【国際特許分類】
A63F 13/5258 20140101AFI20240617BHJP
A63F 13/55 20140101ALI20240617BHJP
【FI】
A63F13/5258
A63F13/55
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2022197893
(22)【出願日】2022-12-12
(71)【出願人】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】100158780
【弁理士】
【氏名又は名称】寺本 亮
(74)【代理人】
【識別番号】100121359
【弁理士】
【氏名又は名称】小沢 昌弘
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】寺尾 圭一郎
(72)【発明者】
【氏名】田中 航
(72)【発明者】
【氏名】桐山 陽太郎
(57)【要約】
【課題】ユーザのゲームプレイを阻害することなく、ユーザに注目させたい位置に仮想カメラが向く制御が可能となる情報処理プログラム、情報処理システム、および情報処理方法を提供する。
【解決手段】第1モードにおいて、プレイヤオブジェクトの位置を基準として仮想カメラがプレイヤオブジェクトの方を向くように当該仮想カメラの位置および姿勢を制御し、基準オブジェクトが仮想カメラの位置を基準とする所定範囲に入った場合に第2モードに移行し、第2モードにおいて、プレイヤオブジェクトの位置および基準オブジェクトの位置の両方に基づいて、仮想カメラがプレイヤオブジェクトおよび基準オブジェクトの方を向くように当該仮想カメラの位置および姿勢を制御し、仮想カメラ移動操作が行われた場合に第1モードに移行する。
【選択図】
図7
【特許請求の範囲】
【請求項1】
仮想空間内においてユーザの操作入力に基づいてプレイヤオブジェクトを移動させ、仮想カメラから見た仮想空間を表示する処理をコンピュータに実行させる、情報処理プログラムであって、
前記コンピュータを、
前記仮想空間内における所定の対象オブジェクトの少なくとも一部を示すように、当該対象オブジェクトの状態に応じて、基準オブジェクトとして設定する基準オブジェクト設定手段と、
ユーザの仮想カメラ移動操作に基づいて、前記プレイヤオブジェクトの位置を基準として前記仮想カメラの位置および姿勢を移動制御し、
第1モードにおいて、
前記プレイヤオブジェクトの位置を基準として前記仮想カメラが前記プレイヤオブジェクトの方を向くように当該仮想カメラの位置および姿勢を制御し、
前記基準オブジェクトが前記仮想カメラの位置を基準とする所定範囲に入った場合に第2モードに移行し、
前記第2モードにおいて、
前記プレイヤオブジェクトの位置および前記基準オブジェクトの位置の両方に基づいて、前記仮想カメラが前記プレイヤオブジェクトおよび前記基準オブジェクトの方を向くように当該仮想カメラの位置および姿勢を制御し、
前記仮想カメラ移動操作が行われた場合に前記第1モードに移行する仮想カメラ移動制御手段として機能させる、情報処理プログラム。
【請求項2】
前記基準オブジェクト設定手段は、前記対象オブジェクトの状態に応じて、設定されている前記基準オブジェクトを変更する、請求項1に記載の情報処理プログラム。
【請求項3】
前記仮想カメラ移動制御手段は、前記第1モードおよび前記第2モードの両方において、前記プレイヤオブジェクトの位置に基づいて、前記仮想カメラの注視点を設定する、請求項1に記載の情報処理プログラム。
【請求項4】
前記仮想カメラ移動制御手段は、前記第1モードから前記第2モードに切り替える際、または前記第2モードから前記第1モードに切り替える際、前記仮想カメラと前記注視点との距離が変わらないように当該仮想カメラの位置および姿勢を制御する、請求項3に記載の情報処理プログラム。
【請求項5】
前記仮想カメラ移動制御手段は、前記第2モードにおいて、前記仮想カメラ、当該仮想カメラの注視点、および前記基準オブジェクトの順に、前記仮想空間の鉛直方向から見て直線上に並ぶように当該仮想カメラの位置および姿勢を制御する、請求項1に記載の情報処理プログラム。
【請求項6】
前記仮想カメラ移動制御手段は、前記仮想カメラと前記プレイヤオブジェクトとを結ぶ直線と前記仮想カメラと前記基準オブジェクトとを結ぶ直線との角度が第1角度以内の場合、当該基準オブジェクトが当該仮想カメラの位置を基準とする前記所定範囲に入ったと判定する、請求項1に記載の情報処理プログラム。
【請求項7】
前記仮想カメラ移動制御手段は、前記第2モードにおける前記仮想カメラ移動操作により、前記角度が第2角度より大きくなった場合、前記第1モードに移行する、請求項6に記載の情報処理プログラム。
【請求項8】
前記第2角度は、前記第1角度より大きい、請求項7に記載の情報処理プログラム。
【請求項9】
前記仮想カメラ移動制御手段は、さらに、前記第2モードにおいて前記プレイヤオブジェクトと前記基準オブジェクトとの距離が閾値以内となった場合、前記第1モードに移行する、請求項1に記載の情報処理プログラム。
【請求項10】
前記仮想カメラ移動制御手段は、前記第2モードにおいて、前記仮想空間の水平方向周りの前記仮想カメラの位置および姿勢は変化させずに、前記プレイヤオブジェクトの位置および前記基準オブジェクトの位置の両方に基づいて前記仮想空間の鉛直方向周りの前記仮想カメラの位置および姿勢を変化させることにより前記制御を行う、請求項1に記載の情報処理プログラム。
【請求項11】
前記基準オブジェクト設定手段は、前記対象オブジェクトの前記基準オブジェクトが破壊された場合、当該対象オブジェクトから新たな基準オブジェクトを設定する、請求項2に記載の情報処理プログラム。
【請求項12】
前記基準オブジェクト設定手段は、前記対象オブジェクトの前記基準オブジェクトに設定されている残存耐久値が閾値未満になった場合、当該対象オブジェクトから新たな基準オブジェクトを設定する、請求項2に記載の情報処理プログラム。
【請求項13】
仮想空間内においてユーザの操作入力に基づいてプレイヤオブジェクトを移動させ、仮想カメラから見た仮想空間を表示する情報処理システムであって、
前記仮想空間内における所定の対象オブジェクトの少なくとも一部を示すように、当該対象オブジェクトの状態に応じて、基準オブジェクトとして設定する基準オブジェクト設定手段と、
ユーザの仮想カメラ移動操作に基づいて、前記プレイヤオブジェクトの位置を基準として前記仮想カメラの位置および姿勢を移動制御し、
第1モードにおいて、
前記プレイヤオブジェクトの位置を基準として前記仮想カメラが前記プレイヤオブジェクトの方を向くように当該仮想カメラの位置および姿勢を制御し、
前記基準オブジェクトが前記仮想カメラの位置を基準とする所定範囲に入った場合に第2モードに移行し、
前記第2モードにおいて、
前記プレイヤオブジェクトの位置および前記基準オブジェクトの位置の両方に基づいて、前記仮想カメラが前記プレイヤオブジェクトおよび前記基準オブジェクトの方を向くように当該仮想カメラの位置および姿勢を制御し、
前記仮想カメラ移動操作が行われた場合に前記第1モードに移行する仮想カメラ移動制御手段とを備える、情報処理システム。
【請求項14】
仮想空間内においてユーザの操作入力に基づいてプレイヤオブジェクトを移動させ、仮想カメラから見た仮想空間を表示する情報処理方法であって、
前記仮想空間内における所定の対象オブジェクトの少なくとも一部を示すように、当該対象オブジェクトの状態に応じて、基準オブジェクトとして設定する基準オブジェクトステップと、
ユーザの仮想カメラ移動操作に基づいて、前記プレイヤオブジェクトの位置を基準として前記仮想カメラの位置および姿勢を移動制御し、
第1モードにおいて、
前記プレイヤオブジェクトの位置を基準として前記仮想カメラが前記プレイヤオブジェクトの方を向くように当該仮想カメラの位置および姿勢を制御し、
前記基準オブジェクトが前記仮想カメラの位置を基準とする所定範囲に入った場合に第2モードに移行し、
前記第2モードにおいて、
前記プレイヤオブジェクトの位置および前記基準オブジェクトの位置の両方に基づいて、前記仮想カメラが前記プレイヤオブジェクトおよび前記基準オブジェクトの方を向くように当該仮想カメラの位置および姿勢を制御し、
前記仮想カメラ移動操作が行われた場合に前記第1モードに移行する仮想カメラ移動制御ステップとを含む、情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想空間を表示する処理を実行する情報処理プログラム、情報処理システム、および情報処理方法に関する。
【背景技術】
【0002】
従来、仮想カメラの視線方向にユーザが設定したマーカ地点が位置するように仮想カメラを制御するゲーム装置がある(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記特許文献1で開示されたゲーム装置では、ユーザがマーカ地点を設定して、仮想カメラの視線方向にユーザが設定したマーカ地点が位置するようにするために特定ボタンを押下する操作が必要であり、マーカ地点に仮想カメラの視線方向を向けるための意識的な操作が必要となる。
【0005】
それ故、本発明の目的は、ユーザのゲームプレイを阻害することなく、ユーザに注目させたい位置に仮想カメラが向く制御が可能となる情報処理プログラム、情報処理システム、および情報処理方法を提供することである。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明は例えば以下の(1)~(12)のような構成を採用し得る。
【0007】
(1)
本発明の情報処理プログラムの一構成例は、仮想空間内においてユーザの操作入力に基づいてプレイヤオブジェクトを移動させ、仮想カメラから見た仮想空間を表示する処理をコンピュータに実行させる。情報処理プログラムは、基準オブジェクト設定手段および仮想カメラ移動制御手段として、コンピュータを機能させる。基準オブジェクト設定手段は、仮想空間内における所定の対象オブジェクトの少なくとも一部を示すように、当該対象オブジェクトの状態に応じて、基準オブジェクトとして設定する。仮想カメラ移動制御手段は、ユーザの仮想カメラ移動操作に基づいて、プレイヤオブジェクトの位置を基準として仮想カメラの位置および姿勢を移動制御し、第1モードにおいて、プレイヤオブジェクトの位置を基準として仮想カメラがプレイヤオブジェクトの方を向くように当該仮想カメラの位置および姿勢を制御し、基準オブジェクトが仮想カメラの位置を基準とする所定範囲に入った場合に第2モードに移行し、第2モードにおいて、プレイヤオブジェクトの位置および基準オブジェクトの位置の両方に基づいて、仮想カメラがプレイヤオブジェクトおよび基準オブジェクトの方を向くように当該仮想カメラの位置および姿勢を制御し、仮想カメラ移動操作が行われた場合に第1モードに移行する。
【0008】
上記(1)の構成によれば、ユーザが仮想カメラの位置を変更できる自由度を確保しながら、ユーザのプレイを阻害することなく、基準オブジェクトに注目させる仮想カメラ制御を実現することができる。
【0009】
(2)
上記(1)の構成において、上記基準オブジェクト設定手段は、対象オブジェクトの状態に応じて、設定されている基準オブジェクトを変更してもよい。
【0010】
上記(2)の構成によれば、対象オブジェクトの状態に応じて、ユーザに注目させたい基準オブジェクトを変更することができる。
【0011】
(3)
上記(1)または(2)の構成において、上記仮想カメラ移動制御手段は、第1モードおよび第2モードの両方において、プレイヤオブジェクトの位置に基づいて、仮想カメラの注視点を設定してもよい。
【0012】
上記(3)の構成によれば、モードが切り替えられても注視点を設定するための基準が変更されないため、モードの切り替えにより著しく表示画像が変化することを防止することができる。
【0013】
(4)
上記(3)の構成において、上記仮想カメラ移動制御手段は、第1モードから第2モードに切り替える際、または第2モードから第1モードに切り替える際、仮想カメラと注視点との距離が変わらないように当該仮想カメラの位置および姿勢を制御してもよい。
【0014】
上記(4)の構成によれば、モードが切り替えられても仮想カメラから注視点までの距離が変更されないため、モードの切り替えにより著しく表示画像が変化することをさらに防止することができる。
【0015】
(5)
上記(1)乃至(4)の何れか1つの構成において、上記仮想カメラ移動制御手段は、第2モードにおいて、仮想カメラ、当該仮想カメラの注視点、および基準オブジェクトの順に、仮想空間の鉛直方向から見て直線上に並ぶように当該仮想カメラの位置および姿勢を制御してもよい。
【0016】
上記(5)の構成によれば、基準オブジェクトの位置をユーザに把握させやすくすることができる。
【0017】
(6)
上記(1)乃至(5)の何れか1つの構成において、上記仮想カメラ移動制御手段は、仮想カメラとプレイヤオブジェクトとを結ぶ直線と仮想カメラと基準オブジェクトとを結ぶ直線との角度が第1角度以内の場合、当該基準オブジェクトが当該仮想カメラの位置を基準とする所定範囲に入ったと判定してもよい。
【0018】
上記(6)の構成によれば、第2モードへ移行するための条件をユーザが直感的に理解することができる。
【0019】
(7)
上記(6)の構成において、上記仮想カメラ移動制御手段は、第2モードにおける仮想カメラ移動操作により、角度が第2角度より大きくなった場合、第1モードに移行してもよい。
【0020】
上記(7)の構成によれば、第1モードへ移行するための条件をユーザが直感的に理解することができる。
【0021】
(8)
上記(7)の構成において、上記第2角度は、第1角度より大きくてもよい。
【0022】
上記(8)の構成によれば、第1モードと第2モードとの間の切り替えが短時間で繰り返し行われることを防止することができる。
【0023】
(9)
上記(1)乃至(8)の何れか1つの構成において、上記仮想カメラ移動制御手段は、さらに、第2モードにおいてプレイヤオブジェクトと基準オブジェクトとの距離が閾値以内となった場合、第1モードに移行してもよい。
【0024】
上記(9)の構成によれば、仮想カメラの位置が著しく変化することを回避することができる。
【0025】
(10)
上記(1)乃至(9)の何れか1つの構成において、上記仮想カメラ移動制御手段は、第2モードにおいて、仮想空間の水平方向周りの仮想カメラの位置および姿勢は変化させずに、プレイヤオブジェクトの位置および基準オブジェクトの位置の両方に基づいて仮想空間の鉛直方向周りの仮想カメラの位置および姿勢を変化させることにより制御を行ってもよい。
【0026】
上記(10)の構成によれば、基準オブジェクトの上下の動きによって仮想カメラの視線が上下に振られたり、仮想カメラの視線方向が極端に見上げる方向になったりすることにより、見にくい仮想空間の画像が表示されることを防止することができる。
【0027】
(11)
上記(2)の構成において、上記基準オブジェクト設定手段は、対象オブジェクトの基準オブジェクトが破壊された場合、当該対象オブジェクトから新たな基準オブジェクトを設定してもよい。
【0028】
上記(11)の構成によれば、基準オブジェクトが破壊されることにより、別の基準オブジェクトを注目させることができる。
【0029】
(12)
上記(2)の構成において、上記基準オブジェクト設定手段は、対象オブジェクトの基準オブジェクトに設定されている残存耐久値が閾値未満になった場合、当該対象オブジェクトから新たな基準オブジェクトを設定してもよい。
【0030】
上記(12)の構成によれば、基準オブジェクトの残存耐久値が減少することにより、別の基準オブジェクトを注目させることができる。
【0031】
また、本発明は、情報処理システム、および情報処理方法の形態で実施されてもよい。
【発明の効果】
【0032】
本発明によれば、ユーザが仮想カメラの位置を変更できる自由度を確保しながら、ユーザのプレイを阻害することなく、基準オブジェクトに注目させる仮想カメラ制御を実現することができる。
【図面の簡単な説明】
【0033】
【
図1】本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図
【
図2】本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図
【
図3】ディスプレイ12に表示される第1モードにおける仮想空間の画像の一例を示す図
【
図4】第1モードにおいて、仮想空間に配置される仮想カメラの位置および姿勢の一例を説明するための図
【
図5】ディスプレイ12に表示される第2モードにおける仮想空間の画像の一例を示す図
【
図7】第2モードにおいて、仮想空間に配置される仮想カメラの位置および姿勢の一例を説明するための図
【
図8】本体装置2のDRAM85に設定されるデータ領域の一例を示す図
【
図9】ゲームシステム1で実行されるゲーム処理の一例を示すフローチャート
【
図10】
図9のステップS127における第1モード処理の一例を示すサブルーチン
【
図11】
図9のステップS128における第2モード処理の一例を示すサブルーチン
【発明を実施するための形態】
【0034】
以下、本実施形態の一例に係るゲームシステムについて説明する。本実施形態におけるゲームシステム1の一例は、本体装置(情報処理装置;本実施形態ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含み、情報処理システムとしても機能する。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲームシステム1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる。以下では、本実施形態のゲームシステム1のハードウェア構成について説明し、その後に本実施形態のゲームシステム1の制御について説明する。
【0035】
図1は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。
図1に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
【0036】
本体装置2は、ディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。本実施形態においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は、任意の種類の表示装置であってよい。
【0037】
また、本体装置2は、ディスプレイ12の画面上にタッチパネル13を備える。本実施形態においては、タッチパネル13は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のものである。ただし、タッチパネル13は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のものであってもよい。
【0038】
本体装置2は、所定の種類の記憶媒体を装着可能な形状を有するスロット23(
図2参照)を備える。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。
【0039】
左コントローラ3は、アナログスティック32および操作ボタンの一例である4つの操作ボタン33~36を備える。右コントローラ4は、アナログスティック52および操作ボタンの一例である4つの操作ボタン53~56を備える。これらの操作ボタンは、本体装置2で実行される各種プログラム(例えば、OSプログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
【0040】
図2は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
【0041】
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【0042】
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
【0043】
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【0044】
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、プロセッサ81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。本実施形態においては、ネットワーク通信部82は、第1の通信態様としてWi-Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部82は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。
【0045】
プロセッサ81は、左側端子17および右側端子21に接続される。プロセッサ81は、左側端子17を介して左コントローラ3へデータを送信するとともに、左側端子17を介して左コントローラ3から操作データを受信する。また、プロセッサ81は、右側端子21を介して右コントローラ4へデータを送信するとともに、右側端子21を介して右コントローラ4から操作データを受信する。
【0046】
本体装置2は、タッチパネル13の制御を行う回路であるタッチパネルコントローラ86を備える。タッチパネルコントローラ86は、タッチパネル13とプロセッサ81との間に接続される。タッチパネルコントローラ86は、タッチパネル13からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、プロセッサ81へ出力する。
【0047】
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
【0048】
左コントローラ3は、各ボタン103(具体的には、ボタン33~37等)を備える。また、左コントローラ3は、アナログスティック(
図2では「スティック」と記載する)32を備える。各ボタン103およびアナログスティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し端子42を介して本体装置2へ出力する。
【0049】
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、右コントローラ4は、各ボタン113(具体的には、ボタン53~57等)およびアナログスティック52を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
【0050】
なお、本体装置2、左コントローラ3、および/または右コントローラ4は、本体装置2、左コントローラ3、および/または右コントローラ4の動きおよび/または姿勢に応じたデータを出力する慣性センサを備えていてもよい。上記慣性センサの検出結果は、プロセッサ81に出力される。プロセッサ81は、上記慣性センサの検出結果に基づいて、本体装置2、左コントローラ3、および/または右コントローラ4の動きおよび/または姿勢に関する情報を算出することが可能である。
【0051】
このように、一体型装置となったゲームシステム1における左コントローラ3および/または右コントローラ4の各操作ボタンやスティックの操作、本体装置2のタッチパネル13に対するタッチ操作、本体装置2、左コントローラ3、および/または右コントローラ4の動きおよび/または姿勢を変化させる操作等に応じて、ディスプレイ12に表示される仮想空間を用いたゲームプレイが行われる。本実施例では、一例として、上記操作ボタン、スティック、およびタッチパネル13を用いたユーザ操作に応じて、仮想空間内におけるプレイヤオブジェクトを用いたゲームプレイが可能となる。
【0052】
図3~
図7を用いてゲームシステム1において行われるゲーム処理の概要について説明する。なお、
図3は、ディスプレイ12に表示される第1モードにおける仮想空間の画像の一例を示す図である。
図4は、第1モードにおいて、仮想空間に配置される仮想カメラの位置および姿勢の一例を説明するための図である。
図5は、ディスプレイ12に表示される第2モードにおける仮想空間の画像の一例を示す図である。
図6は、判定角度αの一例を説明するための図である。
図7は、第2モードにおいて、仮想空間に配置される仮想カメラの位置および姿勢の一例を説明するための図である。
【0053】
図3において、仮想空間におけるフィールド上にプレイヤオブジェクトPOが配置された画像が、ディスプレイ12に表示されている。プレイヤオブジェクトPOは、ユーザ操作(例えば、左スティック32を傾倒する操作)に応じて、仮想空間内のフィールド上で移動する。例えば、
図3に示す一例では、プレイヤオブジェクトPOの背後からプレイヤオブジェクトPOの正面方向を見た仮想空間の画像が表示されている。
【0054】
本実施例では、プロセッサ81の所定のアルゴリズム等に基づく自動制御により仮想空間内を動作する敵オブジェクトEO等の他のオブジェクトもフィールド上に配置されている。
図3に示す仮想空間の画像の一例では、敵オブジェクトEOが表示されておらず、当該仮想空間の画像を生成するための仮想カメラの位置および姿勢が、プレイヤオブジェクトPOの位置を基準としてプレイヤオブジェクトPOの方を向くように制御されている。本実施例では、仮想カメラの位置および姿勢が、第1モードまたは第2モードにより制御される。例えば、第1モードは、
図3に示すように、プレイヤオブジェクトPOの位置を基準として仮想カメラがプレイヤオブジェクトPOの方を向くように当該仮想カメラの位置および姿勢を制御される制御モードである。第2モードは、プレイヤオブジェクトPOの位置および敵オブジェクトEOの少なくとも一部に設定されるターゲットオブジェクトTOの位置の両方に基づいて、仮想カメラがプレイヤオブジェクトPOおよびターゲットオブジェクトTOの方を向くように当該仮想カメラの位置および姿勢を制御される制御モードである。
【0055】
図4を参照して、第1モードにおいて制御される仮想カメラの位置および姿勢について説明する。なお、
図4の上図は、第1モードにおける仮想カメラの位置および姿勢の一例を、仮想空間の上方から見下ろした状態を示している。また、
図4の下図は、第1モードにおける仮想カメラの位置および姿勢の一例を、仮想空間を水平方向(仮想カメラの右横方向)から見た状態を示している。
【0056】
図4に示すように、第1モードにおいて制御される仮想カメラの注視点は、プレイヤオブジェクトPOの位置を基準として定まる位置に設定される。例えば、上記注視点は、仮想空間におけるプレイヤオブジェクトPOの座標位置から、仮想空間のY軸方向(鉛直方向)に所定距離だけ離れた位置に設定され、プレイヤオブジェクトPOの少なくとも一部が仮想カメラの視野に含まれてディスプレイ12に表示される位置に設定される。具体的には、本実施例においては、上記注視点は、プレイヤオブジェクトPOの座標位置の近傍で、当該座標位置から、仮想空間のY軸正方向(鉛直上方向)に所定距離だけ離れた位置に設定されている。そして、本実施例においては、仮想カメラは、プレイヤオブジェクトPOの上方背後から見下ろす位置に設定される。具体的には、仮想カメラから上記注視点を見た場合の俯角が所定角度となり、かつ、上記注視点から当該仮想カメラまでの距離が第1距離となるように配置される。また、初期状態においては、仮想カメラは、プレイヤオブジェクトPOの背後からプレイヤオブジェクトPOを撮影するように(XZ平面における、仮想カメラの方向(視線方向)と、プレイヤオブジェクトPOが向く方向(正面方向)とが一致するように)配置される。なお、所定角度および第1距離は、固定して設定されてもよいし、ゲーム状況(例えば、プレイヤオブジェクトPOを配置されている仮想空間の環境や、プレイヤオブジェクトPOのアクション)に基づいて変化してもよい。また、後述するように、所定角度はユーザの操作入力に応じて変化させてもよい。
【0057】
上述したように、ユーザ操作に応じて、プレイヤオブジェクトPOは、仮想空間内のフィールド上で移動することができる。仮想空間内でプレイヤオブジェクトPOが移動した場合、仮想カメラの動きが当該プレイヤオブジェクトPOの移動に追従するように移動してもよい。一例として、仮想空間内でプレイヤオブジェクトPOが移動した場合、仮想カメラの目標注視点を上述したような当該移動後のプレイヤオブジェクトPOの座標位置から仮想空間のY軸方向(鉛直方向)に所定距離だけ離れた位置に設定し、仮想カメラの注視点が当該目標注視点に追従するように移動させてもよい。なお、上記注視点が上記目標注視点に追従する際、上記目標注視点の移動から少し遅れて追従してもよい。すなわち、プレイヤオブジェクトPOが移動した後、仮想カメラから上記目標注視点を見た場合の俯角および上記目標注視点から仮想カメラまでの距離が所定角度および第1距離となる座標位置を仮想カメラの目標座標として、当該仮想カメラの注視点が上記目標注視点を一致するように当該仮想カメラを当該目標座標に一定の時間をかけて移動させてもよい。なお、このとき、仮想カメラから上記目標注視点を見た場合の俯角および上記目標注視点から仮想カメラまでの距離が所定角度および第1距離となる座標のうち、仮想カメラの移動距離が最小となる座標を目標座標としてもよい。
【0058】
他の例として、仮想空間内でプレイヤオブジェクトPOが移動した場合、仮想カメラの注視点を上述したような当該移動後のプレイヤオブジェクトPOの座標位置から仮想空間のY軸方向(鉛直方向)に所定距離だけ離れた位置に移動させ、当該注視点を基準として仮想カメラの位置が当該注視点に追従するように当該仮想カメラを移動させてもよい。なお、仮想カメラが上記注視点の移動に追従する際、当該注視点の移動から少し遅れて仮想カメラの位置が追従するように仮想カメラの位置を移動させてもよい。すなわち、プレイヤオブジェクトPOが移動することにより注視点が移動した場合、当該注視点を見る仮想カメラの俯角および/または当該注視点から仮想カメラまでの距離を所定角度および/または第1距離から一時的に変化させた後、当該所定角度および/または第1距離に一定の時間をかけて戻るように仮想カメラを移動させてもよい。なお、このとき、注視点を見る仮想カメラの俯角および/または当該注視点から仮想カメラまでの距離を戻す仮想カメラの動きは、当該仮想カメラの移動距離が最小となるように移動させてもよい。
【0059】
また、本実施例では、ユーザの操作入力に応じて、仮想カメラの位置を移動させることができる。例えば、第1モードにおいて、ユーザの仮想カメラ移動操作(例えば、右スティック52を傾倒する操作)に基づいて、仮想カメラの位置を移動させることができる。一例として、右スティック52を左に傾倒する仮想カメラ移動操作が行われた場合、当該傾倒された角度に応じた移動速度で、上記注視点を通る鉛直方向周りに左回転(
図4参照)するように仮想カメラが仮想空間内を移動する。また、右スティック52を右に傾倒する仮想カメラ移動操作が行われた場合、当該傾倒された角度に応じた移動速度で、上記注視点を通る鉛直方向周りに右回転(
図4参照)するように仮想カメラが仮想空間内を移動する。また、右スティック52を上に傾倒する仮想カメラ移動操作が行われた場合、当該傾倒された角度に応じた移動速度で、上記注視点周りに上方向に回転するように仮想カメラが仮想空間内を移動する。また、右スティック52を下に傾倒する仮想カメラ移動操作が行われた場合、当該傾倒された角度に応じた移動速度で、上記注視点周りに下方向に回転するように仮想カメラが仮想空間内を移動する。
【0060】
図5において、仮想空間におけるフィールド上にプレイヤオブジェクトPOに加えて敵オブジェクトEOが配置された画像が、ディスプレイ12に表示されている。敵オブジェクトEOは、プロセッサ81の所定のアルゴリズム等に基づく自動制御により仮想空間内を動作する。本実施例では、敵オブジェクトEOの少なくとも一部が仮想カメラの視線を基準とする所定の範囲内に配置された場合、当該仮想カメラの位置および姿勢が、第2モードにより制御される。例えば、
図5に示す一例では、仮想カメラの位置および姿勢が第2モードによって制御されることにより、プレイヤオブジェクトPOおよび敵オブジェクトEOの両方が含まれる仮想空間の画像が表示されている。なお、敵オブジェクトEOは、仮想空間内における対象オブジェクトの一例に相当する。
【0061】
本実施例では、ターゲットオブジェクトTOが敵オブジェクトEOの一部(
図5の一例では、斜線領域で示される敵オブジェクトEOの左腕部位)に設定される。ターゲットオブジェクトTOは、ゲーム進行においてユーザに注目させたい敵オブジェクトEOの部位であり、プレイヤオブジェクトPOが敵オブジェクトEOを攻撃する際に敵オブジェクトEOの弱点となる部位や、ゲームを有利に進めるためにプレイヤオブジェクトPOの攻撃が必要となる特殊部位等が設定される。本実施例では、第2モードにおいて、プレイヤオブジェクトPOの位置を基準として仮想カメラがプレイヤオブジェクトPOおよびターゲットオブジェクトTOの方を向くように、仮想カメラの位置および姿勢が制御される。例えば、仮想カメラの視線が、ターゲットオブジェクトTOと交差する、ターゲットオブジェクトTOの直下となる位置を通る、またはターゲットオブジェクトTOの直上となる位置を通るように、当該仮想カメラの位置および姿勢が制御される。つまり、第2モードでは、プレイヤオブジェクトPOの位置を基準として、仮想カメラの視線がプレイヤオブジェクトPOおよびターゲットオブジェクトTOの方を向き、仮想カメラ、当該仮想カメラの注視点、およびターゲットオブジェクトTOの順に、仮想空間の鉛直上方向から見て視線に沿った直線上に並ぶように当該仮想カメラの位置および姿勢が制御される。なお、ターゲットオブジェクトTOは、対象オブジェクトの状態に応じて、当該対象オブジェクトの少なくとも一部に設定される基準オブジェクトの一例に相当する。
【0062】
ターゲットオブジェクトTOは、敵オブジェクトEOの状態に基づいた部位に設定されてもよい。一例として、プレイヤオブジェクトPOの攻撃により敵オブジェクトEOの頭部にダメージを与えるためには、その前に敵オブジェクトEOの左腕部位を破壊する必要がある場合、ターゲットオブジェクトTOが敵オブジェクトEOの左腕部位に設定される。そして、敵オブジェクトEOのターゲットオブジェクトTOである左腕部位が破壊された状態となれば、ターゲット設定ルールに基づいてターゲットオブジェクトTOを敵オブジェクトEOの頭部に変更することにより、ユーザがプレイヤオブジェクトPOを用いて攻撃すべき部位を敵オブジェクトEOの状態に応じて設定することができる。なお、上記一例では、ターゲットオブジェクトTOが破壊されることにより、敵オブジェクトEOにおけるターゲットオブジェクトTOが変更される例を用いたが、敵オブジェクトEOが他の態様の状態となることによりターゲットオブジェクトTOが変更されてもよい。例えば、プレイヤオブジェクトPOの攻撃によりターゲットオブジェクトTOに設定されている残存耐久値が所定の閾値未満になることにより、ターゲット設定ルールに基づいて敵オブジェクトEOにおけるターゲットオブジェクトTOが変更されてもよい。
【0063】
他の実施例において、ターゲットオブジェクトTOは、敵オブジェクトEO全体に設定されてもよい。また、敵オブジェクトEOは、敵オブジェクトEO本体(メインオブジェクト)とは分離した副オブジェクトを有していてもよく、この場合、ターゲットオブジェクトTOが当該副オブジェクトに設定されてもよい。
【0064】
なお、本実施例では、ターゲットオブジェクトTOは、仮想空間において実体を持つオブジェクトとして設定しているが、敵オブジェクトEOの少なくとも一部を示す対象を表すオブジェクトであれば、必ずしも仮想空間において実体を持つ必要はない。例えば、ターゲットオブジェクトTOは、敵オブジェクトEO内の少なくとも一部を示す実体を持たない位置(点)でもよい。一例として、ターゲットオブジェクトTOは、
図5における敵オブジェクトEOの肩のジョイント部分の座標を示す(当該座標を計算して返す)関数を含むオブジェクト(クラス)として設定してもよい。
【0065】
なお、ターゲットオブジェクトTOは、仮想カメラの位置および姿勢を制御する機能や処理とは独立して、敵オブジェクトEOの動作を制御する機能や処理により設定することが可能となる。つまり、本実施例では、仮想カメラの制御の対象となるターゲットオブジェクトTOを、仮想カメラの位置および姿勢を制御する機能や処理とは独立して設定することができるため、より柔軟に仮想カメラの動作を制御できる。
【0066】
例えば、本実施例においては、上記第1モードから上記第2モードへの移行可否は、判定角度αを用いて判定される。一例として、
図6に示すように、判定角度αは、上記第1モードにおける仮想カメラの視線、すなわち仮想カメラとプレイヤオブジェクトPOの位置に基づいて設定される注視点とを結ぶ直線と、当該視線に最も近い敵オブジェクトEOのターゲットオブジェクトTO(例えば、ターゲットオブジェクトTOの重心位置)と当該仮想カメラとを結ぶ直線との角度である。他の例として、判定角度αは、上記角度における仮想空間の水平方向成分であってもよい。そして、判定角度αが第1角度A未満となった場合、仮想カメラの制御モードが第1モードから第2モードに移行される。したがって、本実施例においては、プレイヤオブジェクトPOの動作、敵オブジェクトEOの動作、および/または仮想カメラの動作によって、敵オブジェクトEOのターゲットオブジェクトTOの少なくとも一部が第1角度Aに基づく仮想空間の範囲内に入った場合、仮想カメラの制御モードが第2モードへ移行される。
【0067】
なお、上記第1モードから上記第2モードへの移行可否は、判定角度αとは異なるパラメータを用いて判定されてもよい。第1の例として、仮想カメラの視線に最も近い敵オブジェクトEOのターゲットオブジェクトTOの少なくとも一部が表示範囲内に入った場合に、仮想カメラの制御モードが第1モードから第2モードに移行されてもよい。第2の例として、仮想カメラの視線に最も近い敵オブジェクトEOのターゲットオブジェクトTO(例えば、ターゲットオブジェクトTOの重心位置)と当該視線との距離が所定の距離未満となった場合に、仮想カメラの制御モードが第1モードから第2モードに移行されてもよい。
【0068】
また、上記第1モードから上記第2モードへの移行可否は、所定の配置条件を満たす敵オブジェクトEO(ターゲットオブジェクトTO)に限って判定されてもよい。例えば、プレイヤオブジェクトPOからの距離が所定の距離以内のターゲットオブジェクトTOや、プレイヤオブジェクトPOから遮蔽されていないターゲットオブジェクトTOを判定対象として、上記モード移行の可否が判定されてもよい。
【0069】
図7を参照して、第2モードにおいて制御される仮想カメラの位置および姿勢について説明する。なお、
図7の上図は、第2モードにおける仮想カメラの位置および姿勢の一例を、仮想空間の上方から見下ろした状態を示している。また、
図7の下図は、第2モードにおける仮想カメラの位置および姿勢の一例を、仮想空間を水平方向(仮想カメラの右横方向)から見た状態を示している。
【0070】
図7に示すように、第2モードにおいて制御される仮想カメラの注視点は、第1モードと同様にプレイヤオブジェクトPOの位置を基準として定まる位置(典型的には、第1モードと同じ位置)に設定される。例えば、第2モードにおける注視点も、仮想空間におけるプレイヤオブジェクトPOの座標位置から、仮想空間のY軸方向(鉛直方向)に所定距離だけ離れた位置に設定され、プレイヤオブジェクトPOの少なくとも一部が仮想カメラの視野に含まれてディスプレイ12に表示される位置に設定される。具体的には、本実施例において、第1モードと同様に第2モードにおける注視点は、プレイヤオブジェクトPOの座標位置の近傍で、当該座標位置から、仮想空間のY軸正方向(鉛直上方向)に所定距離だけ離れた位置に設定されている。なお、本実施例では、第2モード中に仮想空間中でターゲットオブジェクトTOが移動したとしても上記注視点の位置が維持され、当該移動に応じて上記注視点を上記位置から移動させることはない。
【0071】
第2モードにおける仮想カメラは、プレイヤオブジェクトPOの位置を基準として、視線がプレイヤオブジェクトPOおよびターゲットオブジェクトTOの方を向くとともに、プレイヤオブジェクトPOがターゲットオブジェクトTOより近くなる位置であり、上記注視点から当該仮想カメラまでの距離が第1距離となるように配置される。なお、本実施例では、第1モードから第2モードに切り替える際、または第2モードから第1モードに切り替える際、仮想カメラと注視点との距離が変わらないように当該仮想カメラの位置および姿勢が制御されるため、第2モードで用いられる第1距離は、第1モードにおいて用いられている第1距離と同じ距離となる。なお、第2モードにおける第1距離は、第1モードと同様に固定して設定されてもよいし、ゲーム状況(例えば、プレイヤオブジェクトPOを配置されている仮想空間の環境)に基づいて変化してもよい。
【0072】
本実施例では、第1モードから第2モードに切り替える際、または第2モードから第1モードに切り替える際、上記注視点を中心とする仮想空間の水平方向周りの仮想カメラの位置および姿勢は変化させない。また、第2モードにおいて、仮想空間中の上下方向(Y軸方向)にターゲットオブジェクトTOが移動したおよび/または仮想カメラから離れたり近づいたりする方向にターゲットオブジェクトTOが移動したとしても、当該移動に応じた上記注視点を中心とする仮想空間の水平方向周りの仮想カメラの位置および姿勢(俯角)は変化させないため、当該移動に応じてターゲットオブジェクトTOの表示位置が上下に変化することになる。第2モードにおける仮想カメラは、上記注視点を中心とする仮想空間の水平方向周りの位置および姿勢は変化させずに、プレイヤオブジェクトPOの位置およびターゲットオブジェクトTOの位置の両方に基づいて上記注視点を中心に仮想空間の鉛直方向周りの位置および姿勢を変化させる。これにより、敵オブジェクトEOの上下の動きによって、仮想カメラの視線が上下に振られて見にくい仮想空間の画像が表示されることを防止することができる。また、敵オブジェクトEOの巨大化やプレイヤオブジェクトPOの鉛直下方向への移動により、仮想カメラの視線方向が極端に見上げる方向となってプレイヤオブジェクトPOの大部分が視界から外れて表示されたり、仮想カメラが仮想空間の地面より下に配置されたりするような状況を少なくすることができる。
【0073】
第2モードにおいても、ユーザ操作に応じて、プレイヤオブジェクトPOは、仮想空間内のフィールド上で移動することができる。また、第2モードにおいて、敵オブジェクトEOは、プロセッサ81の所定のアルゴリズム等に基づく自動制御により仮想空間内を動作する。仮想空間内でプレイヤオブジェクトPOが移動した場合、および/または仮想空間内で敵オブジェクトEOが左右方向に移動した場合、仮想カメラは、当該プレイヤオブジェクトPOや敵オブジェクトEOの移動に追従する位置に移動する。上記追従する際、上記注視点からの仮想カメラの鉛直方向の位置は、変化させることなく設定されてもよい。また、上記追従する際、第2モードにおける上記第1距離も一時的に変化してもよい。例えば、プレイヤオブジェクトPOや敵オブジェクトEOの移動から少し遅れて仮想カメラが追従してもよく、この場合、上記第1距離は、一時的に長く変化してもよい。一例として、上記追従する際、上述した第2モードにおける仮想カメラの配置位置を目標座標として、一定の時間をかけて仮想カメラを当該目標座標に移動させてもよい。また、第2モードにおけるプレイヤオブジェクトPOの移動に応じて、上述した第1モードと同様に目標注視点を設定して、当該仮想カメラの注視点が上記目標注視点を一致するように当該仮想カメラを当該目標座標に一定の時間をかけて移動させてもよい。
【0074】
プレイヤオブジェクトPOや敵オブジェクトEOの移動に追従する仮想カメラの移動速度は、プレイヤオブジェクトPOおよび/または敵オブジェクトEOの状態に応じて変化させてもよい。第1の例として、プレイヤオブジェクトPOと敵オブジェクトEOとが所定の閾値距離より接近している場合に、上記追従する仮想カメラの移動速度を遅く変化させてもよい。第2の例として、仮想カメラからプレイヤオブジェクトPOおよび/または敵オブジェクトEOまでの距離が所定の閾値距離より遠方である場合に、上記追従する仮想カメラの移動速度を遅くまたは速く変化させてもよい。第3の例として、プレイヤオブジェクトPOまたは敵オブジェクトEOが動作を停止している状態である場合に、上記追従する仮想カメラの移動速度を遅く変化させてもよい。
【0075】
また、第2モードにおいても、ユーザの操作入力に応じて、仮想カメラの位置を移動させることができる。例えば、第2モードにおいて、ユーザの仮想カメラ移動操作(例えば、右スティック52を傾倒する操作)に基づいて、仮想カメラの位置を移動させることができる。一例として、第2モードにおいて右スティック52を左に傾倒する仮想カメラ移動操作が行われた場合、仮想カメラの俯角が所定角度となるように制御され、当該傾倒された角度に応じた移動速度で、上記注視点を通る鉛直方向周りに左回転(
図7参照)するように仮想カメラが仮想空間内を移動する。また、右スティック52を右に傾倒する仮想カメラ移動操作が行われた場合、仮想カメラの俯角が所定角度となるように制御され、当該傾倒された角度に応じた移動速度で、上記注視点を通る鉛直方向周りに右回転(
図7参照)するように仮想カメラが仮想空間内を移動する。
【0076】
なお、第2モードにおいて仮想カメラの位置をユーザの仮想カメラ移動操作により移動させる場合、当該仮想カメラの移動によりターゲットオブジェクトTOから離れる方向に視線方向が変化することにより、当該視線方向の変化を戻そうとする方向に仮想カメラを追従させて移動する制御が行われることが考えられる。本実施例では、一例として、ユーザの仮想カメラ移動操作が行われている間は、ユーザの仮想カメラ移動操作によるターゲットオブジェクトTOの表示位置変化に追従する仮想カメラの移動を一時的に停止することにより、第2モードにおいてユーザの仮想カメラ移動操作により仮想カメラの位置を移動させることを優先してもよい。他の例として、ユーザの仮想カメラ移動操作によるターゲットオブジェクトTOの表示位置変化に追従して仮想カメラが戻ろうとする速度より、ユーザの仮想カメラ移動操作による仮想カメラが移動する速度を速く設定することにより、第2モードにおいてユーザの仮想カメラ移動操作により仮想カメラの位置を移動させることを優先してもよい。
【0077】
本実施例において、複数の移行条件の少なくとも1つが満たされることにより、上記第2モードから上記第1モードへ復帰する。何れの移行条件が満たされることによって第1モードに復帰した場合であっても、当該第1モードに復帰後に一定時間が経過することにより、上述した第1モードから第2モードへの移行判定が再度開始されてもよい。第1の移行条件として、上述した判定角度α(
図6参照)を用いて上記第1モードへの移行可否が判定される。上記第1の移行条件は、判定角度αが第2角度B以上となることである。そして、判定角度αが第2角度B以上となることにより第1の移行条件が満たされた場合、仮想カメラの制御モードを第2モードから第1モードに復帰させる。例えば、上記第1の移行条件は、ユーザの仮想カメラ移動操作に応じて仮想カメラの位置が変化することにより満たされることがある。つまり、上記第2モードは、ターゲットオブジェクトTOの動きに仮想カメラの向きが追従する自動制御が行われるが、当該第2モードにおいてユーザが仮想カメラの位置を操作しようとすると、当該動きに追従する仮想カメラの自動制御が解除される。そして、上記自動制御が一旦解除されると、再びターゲットオブジェクトTOが仮想カメラの視線方向を基準とする判定範囲内に配置されるまでは第2モードに再移行しないため、当該自動制御が再スタートされない。したがって、上記第1の移行条件によるモード移行を行うことによって、ユーザのプレイを阻害することなく、自然に注目させたいターゲットオブジェクトTOに注目させる仮想カメラ制御を実現することができる。
【0078】
なお、第2角度Bは、第2モードへの移行可否の判定に用いられる上記第1角度Aと同じでもよいし、当該第1角度Aより大きくしてもよい。前者の場合、判定角度αが第1角度A(第2角度B)となる位置付近に敵オブジェクトEO(ターゲットオブジェクトTO)が配置されている場合、第1モードと第2モードとの間でのモード移行が短時間で繰り返し行われることも考えられるが、後者のように第2角度Bを第1角度Aより大きくすることにより、モード移行が短時間で繰り返し行われることを防止することができる。
【0079】
なお、上記第1の移行条件は、判定角度αとは異なるパラメータが用いられてもよい。第1の例として、仮想カメラの制御対象となっているターゲットオブジェクトTOの少なくとも一部が表示範囲内から外れた場合に、仮想カメラの制御モードが第2モードから第1モードに移行されてもよい。第2の例として、仮想カメラの制御対象となっているターゲットオブジェクトTOと当該視線との距離が所定の距離以上となった場合に、仮想カメラの制御モードが第2モードから第1モードに移行されてもよい。第3の例として、仮想カメラの制御対象となっているターゲットオブジェクトTOからプレイヤオブジェクトPOまでの距離が所定の距離以上となった場合に、仮想カメラの制御モードが第2モードから第1モードに移行されてもよい。第4の例として、仮想カメラの制御対象となっているターゲットオブジェクトTOが、他のオブジェクト等の介在や表示態様の変化によってプレイヤオブジェクトPOから隠蔽された状態となった場合に、仮想カメラの制御モードが第2モードから第1モードに移行されてもよい。第5の例として、ユーザの仮想カメラ移動操作が行われた場合に、仮想カメラの制御モードが第2モードから第1モードに移行されてもよい。
【0080】
第2の移行条件として、プレイヤオブジェクトPOと敵オブジェクトEO(ターゲットオブジェクトTO)との距離を用いて上記第1モードへの移行可否が判定される。上記第2の移行条件は、プレイヤオブジェクトPOと敵オブジェクトEO(ターゲットオブジェクトTO)との距離が所定の閾値未満となることである。そして、上記距離が上記閾値未満となることにより第2の移行条件が満たされた場合、仮想カメラの制御モードを第2モードから第1モードに復帰させる。例えば、上記第2の移行条件は、プレイヤオブジェクトPOの動作および/または敵オブジェクトEOの動作により満たされることがある。一例として、プレイヤオブジェクトPOと敵オブジェクトEOとが互いに接近して動作を行うことにより、仮想カメラから見た前後関係が急速に入れ替わったり、その位置関係が頻繁に変化したりする場合(例えば、一方のオブジェクトが他方のオブジェクトを飛び越える場合、両者が接近戦を行う場合)、仮想カメラの位置も著しく変化させることが必要となり、見にくい仮想空間の画像が表示される。しかしながら、上記距離が上記閾値未満となることにより第2モードを解除することで、仮想カメラの位置が著しく変化することを回避することができる。なお、上記第2の移行条件は、プレイヤオブジェクトPOおよび/または敵オブジェクトEOが所定の状態にある場合にのみ判定が行われてもよいし、プレイヤオブジェクトPOおよび/または敵オブジェクトEOが所定の状態にある場合には判定が行われなくてもよい。前者の例として、プレイヤオブジェクトPOおよび敵オブジェクトEOの少なくとも一方が動作を停止している状態である場合に限って、上記第2の移行条件によるモード移行判定が行われてもよい。後者の例として、プレイヤオブジェクトPOと敵オブジェクトEOとが戦闘中である場合は、上記第2の移行条件によるモード移行判定が行われなくてもよい。
【0081】
第3の移行条件は、仮想カメラの制御に用いられているターゲットオブジェクトTOが消滅することである。そして、ターゲットオブジェクトTOが消滅することにより第3の移行条件が満たされた場合、仮想カメラの制御モードを第2モードから第1モードに復帰させる。例えば、上記第3の移行条件は、仮想カメラの制御に用いられているターゲットオブジェクトTOを含む敵オブジェクトEOが仮想空間から退場したり、仮想カメラの制御に用いられているターゲットオブジェクトTOが破壊された後に敵オブジェクトEOから新たなターゲットオブジェクトTOが設定されなかったりすることにより、満たされることがある。
【0082】
なお、上述した第1モードおよび/または第2モードにおいて、プレイヤオブジェクトPOおよびターゲットオブジェクトTOの少なくとも一方が表示されなくてもよい。一例として、ターゲットオブジェクトTOが仮想カメラの視線の上方にある場合、当該仮想カメラの水平方向周りの姿勢や位置を変化させないことにより、当該ターゲットオブジェクトTOがディスプレイ12に表示されないケースがあってもよい。
【0083】
また、上述した第1モードでは、ユーザが仮想カメラを単独で移動させる仮想カメラ移動操作ができないものであってもよい。この場合、上述した第1モードでは、プレイヤオブジェクトPOの位置に基づく位置を注視点として、常に仮想カメラがプレイヤオブジェクトPOの位置および方向に基づく位置および姿勢(例えば、プレイヤオブジェクトPOの後方から見下ろす位置および姿勢)で制御されてもよい。
【0084】
次に、
図8を参照して、ゲームシステム1で実行される具体的な処理の一例について説明する。
図8は、本体装置2のDRAM85に設定されるデータ領域の一例を示す図である。なお、DRAM85には、
図8に示すデータの他、他の処理で用いられるデータも記憶されるが、詳細な説明を省略する。
【0085】
DRAM85のプログラム記憶領域には、ゲームシステム1で実行される各種プログラムPaが記憶される。本実施例においては、各種プログラムPaは、左コントローラ3および/または右コントローラ4や本体装置2から取得したデータに基づいた情報処理を行うためのアプリケーションプログラム(例えば、ゲームプログラム)等が記憶される。なお、各種プログラムPaは、フラッシュメモリ84に予め記憶されていてもよいし、ゲームシステム1に着脱可能な記憶媒体(例えば、スロット23に装着された所定の種類の記憶媒体)から取得されてDRAM85に記憶されてもよいし、インターネット等のネットワークを介して他の装置から取得されてDRAM85に記憶されてもよい。プロセッサ81は、DRAM85に記憶された各種プログラムPaを実行する。
【0086】
また、DRAM85のデータ記憶領域には、ゲームシステム1において実行される情報処理等の処理において用いられる各種のデータが記憶される。本実施形態においては、DRAM85には、操作データDa、プレイヤオブジェクトデータDb、敵オブジェクトデータDc、ターゲットオブジェクトデータDd、仮想カメラデータDe、目標データDf、ロックフラグデータDg、および画像データDh等が記憶される。
【0087】
操作データDaは、左コントローラ3および/または右コントローラ4や本体装置2からそれぞれ適宜取得した操作データである。上述したように、左コントローラ3および/または右コントローラ4や本体装置2からそれぞれ取得される操作データには、各入力部(具体的には、各ボタン、アナログスティック、タッチパネル)からの入力に関する情報(具体的には、操作に関する情報)が含まれている。本実施例では、左コントローラ3および/または右コントローラ4や本体装置2からそれぞれ操作データを取得しており、当該取得した操作データを用いて操作データDaが適宜更新される。なお、操作データDaの更新周期は、後述するゲームシステム1で実行される処理の周期である1フレーム毎に更新されてもよいし、上記操作データが取得される周期毎に更新されてもよい。
【0088】
プレイヤオブジェクトデータDbは、仮想空間に配置されているプレイヤオブジェクトPOの配置位置、配置方向、および配置姿勢や、仮想空間における動作や状態等を示すデータである。
【0089】
敵オブジェクトデータDcは、仮想空間に配置されている敵オブジェクトEOの配置位置、配置方向、および配置姿勢や、仮想空間における動作や状態等を示すデータである。
【0090】
ターゲットオブジェクトデータDdは、敵オブジェクトEOそれぞれに設定されているターゲットオブジェクトTOおよびその配置位置および配置姿勢や、仮想空間における状態等を示すデータである。
【0091】
仮想カメラデータDeは、仮想空間に配置されている仮想カメラの位置、視線方向、および注視点等を示すデータである。
【0092】
目標データDfは、仮想カメラを移動させる目標となる目標注視点、目標位置、および目標視線方向を示すデータである。
【0093】
ロックフラグデータDgは、仮想カメラの制御モードが第2モードに設定されている場合にオンに設定されるロックフラグを示すデータである。
【0094】
画像データDhは、表示画面(例えば、本体装置2のディスプレイ12)に画像(例えば、プレイヤオブジェクトの画像、敵キャラクタの画像、他のキャラクタの画像、仮想オブジェクトの画像、仮想空間のフィールドの画像、背景画像等)を表示するためのデータである。
【0095】
次に、
図9~
図11を参照して、本実施例における情報処理の一例であるゲーム処理の詳細な一例を説明する。
図9は、ゲームシステム1で実行されるゲーム処理の一例を示すフローチャートである。
図10は、
図9のステップS127における第1モード処理の一例を示すサブルーチンである。
図11は、
図9のステップS128における第2モード処理の一例を示すサブルーチンである。本実施例においては、
図9~
図11に示す一連の処理は、プロセッサ81が各種プログラムPaに含まれる所定のアプリケーションプログラム(ゲームプログラム)を実行することによって行われる。また、
図9~
図11に示すゲーム処理が開始されるタイミングは任意である。
【0096】
なお、
図9~
図11に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて(または代えて)別の処理が実行されてもよい。また、本実施例では、上記フローチャートの各ステップの処理をプロセッサ81が実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を、プロセッサ81以外のプロセッサや専用回路が実行するようにしてもよい。また、本体装置2において実行される処理の一部は、本体装置2と通信可能な他の情報処理装置(例えば、本体装置2とネットワークを介して通信可能なサーバ)によって実行されてもよい。すなわち、
図9~
図11に示す各処理は、本体装置2を含む複数の情報処理装置が協働することによって実行されてもよい。
【0097】
図9において、プロセッサ81は、ゲーム処理における初期設定を行い(ステップS121)、次のステップに処理を進める。例えば、上記初期設定では、プロセッサ81は、以下に説明する処理を行うためのパラメータを初期化して、各データを更新する。一例として、プロセッサ81は、仮想空間のフィールド上に複数のオブジェクト(例えば、複数の敵オブジェクトEOや他の仮想オブジェクト)を配置することによって初期状態の仮想空間を生成するとともに、敵オブジェクトEOそれぞれにターゲットオブジェクトTOを設定して、敵オブジェクトデータDcおよびターゲットオブジェクトデータDdを設定する。また、プロセッサ81は、初期状態の仮想空間におけるデフォルト位置に所定の姿勢のプレイヤオブジェクトPOを配置してプレイヤオブジェクトデータDbを設定するとともに、当該プレイヤオブジェクトPOの位置および方向に基づいて仮想カメラをデフォルト位置に所定の姿勢で配置して仮想カメラデータDeを設定する。
【0098】
次に、プロセッサ81は、左コントローラ3、右コントローラ4、および/または本体装置2から操作データを取得して操作データDaを更新し(ステップS122)、次のステップに処理を進める。
【0099】
次に、プロセッサ81は、プレイヤオブジェクト動作制御処理を行い(ステップS123)、次のステップに処理を進める。例えば、プロセッサ81は、操作データDaに基づいて、プレイヤオブジェクトPOの動作を設定する。一例として、プロセッサ81は、操作データDaが示す操作入力および仮想空間における仮想的な物理演算等に基づいて、プレイヤオブジェクトPOの位置、方向、姿勢、動作、および状態等を設定して、プレイヤオブジェクトデータDbを更新する。
【0100】
次に、プロセッサ81は、敵オブジェクト動作制御処理を行い(ステップS124)、次のステップに処理を進める。例えば、プロセッサ81は、設定された演出の進行、自動制御する敵オブジェクトEOにおける動作アルゴリズム、仮想空間における仮想的な物理演算、プレイヤオブジェクトPOの動作等に基づいて、敵オブジェクトEOそれぞれの位置、方向、姿勢、動作、および状態等を設定して、敵オブジェクトデータDcを更新する。また、プロセッサ81は、プレイヤオブジェクトPOの動作や敵オブジェクトEOの動作により、仮想空間から敵オブジェクトEOが退場(消滅)する場合、退場(消滅)する敵オブジェクトEOに対応する敵オブジェクトデータDcを抹消する。
【0101】
次に、プロセッサ81は、ターゲットオブジェクト設定処理を行い(ステップS125)、次のステップに処理を進める。例えば、プロセッサ81は、プレイヤオブジェクトPOの動作や敵オブジェクトEOの動作により、ターゲットオブジェクトTOが破損した場合、当該破損に応じた処理を行う。第1の例として、プロセッサ81は、ターゲット設定ルールに基づいて、ターゲットオブジェクトTOが破損した敵オブジェクトEOにおいて新たなターゲットオブジェクトTOを設定する場合、破損したターゲットオブジェクトTOに替えて新たなターゲットオブジェクトTOを当該敵オブジェクトEOに設定して、ターゲットオブジェクトデータDdを更新する。第2の例として、プロセッサ81は、ターゲット設定ルールに基づいて、ターゲットオブジェクトTOが破損した敵オブジェクトEOにおいて新たなターゲットオブジェクトTOが設定されずに、当該敵オブジェクトEOからターゲットオブジェクトTOが消滅する場合、消滅したターゲットオブジェクトTOに対応するターゲットオブジェクトデータDdを抹消する。第3の例として、プレイヤオブジェクトPOの動作や敵オブジェクトEOの動作により、仮想空間から敵オブジェクトEOが消滅する場合、当該敵オブジェクトEOに設定されているターゲットオブジェクトTOに対応するターゲットオブジェクトデータDdを抹消する。そして、第2の例および第3の例において、プロセッサ81は、仮想カメラの制御に用いられているターゲットオブジェクトTOが消滅した場合、ロックフラグをオフに設定してロックフラグデータDgを更新する。
【0102】
次に、プロセッサ81は、現時点が第1モードであるか否かを判定する(ステップS126)。例えば、プロセッサ81は、ロックフラグデータDgが示すロックフラグがオフに設定されている場合、現時点が第1モードであると判定する。そして、プロセッサ81は、現時点が第1モードである場合、ステップS127に処理を進める。一方、プロセッサ81は、現時点が第1モードでない(すなわち、第2モードである)場合、ステップS128に処理を進める。
【0103】
ステップS127において、プロセッサ81は、第1モード処理を行い、ステップS129に処理を進める。以下、
図10を参照して、上記ステップS127において行われる第1モード処理について説明する。
【0104】
図10において、プロセッサ81は、プレイヤオブジェクトデータDbを参照して、プレイヤオブジェクトPOの位置を基準として定まる位置に仮想カメラの目標注視点を設定して(ステップS140)、次のステップに処理を進める。例えば、プロセッサ81は、仮想空間におけるプレイヤオブジェクトPOの座標位置からY軸方向に所定距離だけ離れた位置に目標注視点を設定して、目標データDfを更新する。
【0105】
次に、プロセッサ81は、目標注視点に基づいて、仮想カメラを移動させる目標位置および目標視線方向を設定し(ステップS141)、次のステップに処理を進める。例えば、プロセッサ81は、上記ステップS140において設定された目標注視点を注視点とする仮想カメラの位置および視線方向を新たな目標位置および目標視線方向として設定して、目標データDfを更新する。一例として、プロセッサ81は、プレイヤオブジェクトPOが移動している方向の後方から俯角が所定角度となる姿勢であって、上記ステップS140において設定された目標注視点からの距離が第1距離となる仮想カメラの位置および視線方向を新たな目標位置および目標視線方向として設定する。なお、プロセッサ81は、上記ステップS141の処理において、プレイヤオブジェクトPOが配置されている仮想空間における環境に応じて、上記第1距離を変化させてもよい。また、プロセッサ81は、上記ステップS141の処理において、上記目標注視点からの仮想カメラの鉛直方向の距離が現注視点からの仮想カメラの鉛直方向の距離から変化しないように、上記目標位置を新たに設定してもよい。
【0106】
次に、プロセッサ81は、目標位置および目標視線方向に近づくように仮想カメラの位置および視線を設定して(ステップS142)、次のステップに処理を進める。例えば、プロセッサ81は、目標データDfが示す目標位置および目標視線方向に仮想カメラの位置および視線を近づけることによって当該仮想カメラの注視点が上記目標注視点に近づくように仮想カメラを移動させて、仮想カメラデータDeを更新する。なお、プロセッサ81は、上記ステップS142の処理において、仮想空間における仮想カメラの姿勢(水平方向周りの移動や姿勢)を変化させずに、上記目標位置および目標視線方向に近づくように仮想カメラを制御してもよい。
【0107】
次に、プロセッサ81は、ユーザの仮想カメラ移動操作が行われたか否かを判定する(ステップS143)。例えば、プロセッサ81は、操作データDaを参照して、ユーザが仮想カメラ移動操作(例えば、右スティック52を傾倒する操作)を行っている場合、上記ステップS143において肯定判定する。そして、プロセッサ81は、ユーザの仮想カメラ移動操作が行われた場合、ステップS144に処理を進める。一方、プロセッサ81は、ユーザの仮想カメラ移動操作が行われていない場合、ステップS145に処理を進める。
【0108】
ステップS144において、プロセッサ81は、ユーザの仮想カメラ移動操作に応じて、仮想カメラの位置を変更して、ステップS145に処理を進める。例えば、プロセッサ81は、操作データDaおよび仮想カメラデータDeを参照して、仮想カメラ移動操作に応じて、仮想カメラの注視点を通る仮想空間の鉛直方向周りおよび/または水平方向周りに仮想カメラが現時点の配置位置から回転移動するように新たな目標位置および目標視線方向を設定して、目標データDfを更新する。なお、第1モードにおけるユーザの操作入力に応じた仮想カメラの移動については、上述した
図4を用いた説明と同様であるため、ここでは詳細な説明を省略する。
【0109】
ステップS145において、プロセッサ81は、仮想カメラデータDeおよびターゲットオブジェクトデータDdを用いて判定角度αを算出して、次のステップに処理を進める。なお、判定角度αの算出方法については、上述した
図6を用いた説明と同様であるため、ここでは詳細な説明を省略する。
【0110】
次に、プロセッサ81は、判定角度αが第1角度A未満であるか否かを判定する(ステップS146)。そして、プロセッサ81は、判定角度αが第1角度A未満である場合、ステップS147に処理を進める。一方、プロセッサ81は、判定角度αが第1角度A未満でない場合、当該サブルーチンによる処理を終了する。なお、第1角度Aについては、上述した説明と同様であるため、ここでは詳細な説明を省略する。
【0111】
ステップS147において、プロセッサ81は、ロックフラグをオンに設定してロックフラグデータDgを更新して、当該サブルーチンによる処理を終了する。
【0112】
図9に戻り、上記ステップS126において現時点が第2モードであると判定された場合、プロセッサ81は、第2モード処理を行い(ステップS128)、ステップS129に処理を進める。以下、
図11を参照して、上記ステップS128において行われる第2モード処理について説明する。
【0113】
図11において、プロセッサ81は、プレイヤオブジェクトデータDbを参照して、プレイヤオブジェクトPOの位置を基準として定まる位置に仮想カメラの目標注視点を設定して(ステップS150)、次のステップに処理を進める。例えば、プロセッサ81は、上記ステップS140と同様に、仮想空間におけるプレイヤオブジェクトPOの座標位置からY軸方向に所定距離だけ離れた位置に目標注視点を設定して、目標データDfを更新する。
【0114】
次に、プロセッサ81は、目標注視点およびターゲットオブジェクトTOの位置に基づいて、仮想カメラを移動させる目標位置および目標視線方向を設定し(ステップS151)、次のステップに処理を進める。例えば、プロセッサ81は、ターゲットオブジェクトデータDdを参照して、仮想カメラの制御の対象となっているターゲットオブジェクトTO(すなわち、判定角度αが第1角度A未満となる位置に配置されていると判定されたターゲットオブジェクトTO)の位置を取得する。そして、プロセッサ81は、目標注視点および取得したターゲットオブジェクトTOの位置を基準として、仮想カメラの視線が目標注視点(すなわち、プレイヤオブジェクトPO)およびターゲットオブジェクトTOの方を向き、仮想カメラ、目標注視点、およびターゲットオブジェクトTOの順に、仮想空間の鉛直上方向から見て視線に沿った直線上に並ぶように当該仮想カメラの目標位置および目標視線方向を設定して目標データDfを更新する。一例として、プロセッサ81は、仮想カメラの俯角が所定角度となってプレイヤオブジェクトPOを見下ろす位置および姿勢であって、上記ステップS150において設定された目標注視点からの距離が第1距離となる仮想カメラの位置を新たな目標位置および目標視線方向として設定する。なお、プロセッサ81は、上記ステップS151の処理において、上記ステップS141と同様に、プレイヤオブジェクトPOが配置されている仮想空間における環境に応じて、上記第1距離を変化させてもよい。また、プロセッサ81は、上記ステップS151の処理において、上記ステップS141と同様に、上記目標注視点からの仮想カメラの鉛直方向の距離が現注視点からの仮想カメラの鉛直方向の距離から変化しないように、上記目標位置および目標視線方向を新たに設定してもよい。
【0115】
次に、プロセッサ81は、目標位置および目標視線方向に近づくように仮想カメラの位置および姿勢を設定して(ステップS152)、次のステップに処理を進める。例えば、プロセッサ81は、目標データDfが示す目標位置および目標視線方向に仮想カメラの位置および姿勢を近づけながら当該仮想カメラの注視点が上記目標注視点に近づくように仮想カメラを移動させて、仮想カメラデータDeを更新する。なお、プロセッサ81は、上記ステップS152の処理において、仮想空間における仮想カメラの姿勢(水平方向周りの移動や姿勢)を変化させずに、上記目標位置および目標視線方向に近づくように仮想カメラを制御してもよい。
【0116】
次に、プロセッサ81は、ユーザの仮想カメラ移動操作が行われたか否かを判定する(ステップS153)。例えば、プロセッサ81は、操作データDaを参照して、ユーザが仮想カメラ移動操作(例えば、右スティック52を傾倒する操作)を行っている場合、上記ステップS153において肯定判定する。そして、プロセッサ81は、ユーザの仮想カメラ移動操作が行われた場合、ステップS154に処理を進める。一方、プロセッサ81は、ユーザの仮想カメラ移動操作が行われていない場合、ステップS157に処理を進める。
【0117】
ステップS154において、プロセッサ81は、ユーザの仮想カメラ移動操作に応じて、仮想カメラの位置を変更して、次のステップに処理を進める。例えば、プロセッサ81は、操作データDaおよび仮想カメラデータDeを参照して、仮想カメラ移動操作に応じて、仮想カメラの俯角が所定角度となり、仮想カメラの注視点を通る仮想空間の鉛直方向周りに仮想カメラが現時点の配置位置から回転移動するように新たな目標位置および目標視線方向を設定して、目標データDfを更新する。なお、第2モードにおけるユーザの操作入力に応じた仮想カメラの移動については、上述した
図7を用いた説明と同様であるため、ここでは詳細な説明を省略する。
【0118】
次に、プロセッサ81は、仮想カメラデータDeおよびターゲットオブジェクトデータDdを用いて判定角度αを算出して(ステップS155)、次のステップに処理を進める。なお、判定角度αの算出方法については、上述した
図6を用いた説明と同様であるため、ここでは詳細な説明を省略する。
【0119】
次に、プロセッサ81は、判定角度αが第2角度B以上であるか否かを判定する(ステップS156)。そして、プロセッサ81は、判定角度αが第2角度B以上でない場合、ステップS157に処理を進める。一方、プロセッサ81は、判定角度αが第2角度B以上である場合、ステップS158に処理を進める。なお、第2角度Bについては、上述した説明と同様であるため、ここでは詳細な説明を省略する。
【0120】
ステップS157において、プロセッサ81は、プレイヤオブジェクトPOとターゲットオブジェクトTOとが接近しているか否かを判定する。例えば、プロセッサ81は、プレイヤオブジェクトデータDbが示すプレイヤオブジェクトPOの位置とターゲットオブジェクトデータDdが示す制御対象となっているターゲットオブジェクトTOの位置との間の距離が所定の閾値未満である場合、上記ステップS157において肯定判定する。そして、プロセッサ81は、プレイヤオブジェクトPOとターゲットオブジェクトTOとが接近している場合、ステップS158に処理を進める。一方、プレイヤオブジェクトPOとターゲットオブジェクトTOとが接近していない場合、当該サブルーチンによる処理を終了する。
【0121】
ステップS158において、プロセッサ81は、ロックフラグをオフに設定してロックフラグデータDgを更新して、当該サブルーチンによる処理を終了する。
【0122】
図9に戻り、ステップS129において、プロセッサ81は、表示制御処理を行い、次のステップに処理を進める。一例として、プロセッサ81は、プレイヤオブジェクトデータDb、敵オブジェクトデータDc、ターゲットオブジェクトデータDd等に基づいて、仮想空間にプレイヤオブジェクトPOや敵オブジェクトEO等が配置された仮想空間を生成する。そして、プロセッサ81は、仮想カメラデータDeに基づいて、仮想空間に仮想カメラを設定して、当該仮想カメラから見た仮想空間の画像を生成して、ディスプレイ12に表示する処理を行う。
【0123】
次に、プロセッサ81は、ゲーム処理を終了するか否かを判定する(ステップS130)。上記ステップS130においてゲーム処理を終了する条件としては、例えば、ゲーム処理が終了される条件が満たされたことや、ユーザがゲーム処理を終了する操作を行ったこと等がある。プロセッサ81は、ゲーム処理を終了しない場合に上記ステップS122に戻って処理を繰り返し、ゲーム処理を終了する場合に当該フローチャートによる処理を終了する。以降、ステップS122~ステップS130の一連の処理は、ステップS130で処理を終了すると判定されるまで繰り返し実行される。
【0124】
なお、他の実施例において、第2モードでユーザによる仮想カメラ移動操作が行われた場合、即時に第1モードに移行してもよい。この場合、上記ステップS153において肯定判定されることにより、上記ステップS155およびS156の処理を省略して上記ステップS158の処理を行ってもよい。そして、上述したステップS146における判定処理は、上記ステップS158の処理が行われた後、一定時間が経過することにより肯定判定可能としてもよい。
【0125】
このように、本実施例においては、ターゲットオブジェクトTOが仮想カメラの視線を基準とする範囲内に配置されると、プレイヤオブジェクトPOおよびターゲットオブジェクトTOの両方に向くように仮想カメラの視線がプレイヤオブジェクトPOおよびターゲットオブジェクトTOに追従して制御される第2モードに移行する。そして、上記第2モードにおいて、ユーザが仮想カメラの位置を操作することに基づいて、上記追従制御が解除された第1モードに移行される。これにより、ユーザが自由に仮想カメラの位置を変更できる自由度を確保しながら、ユーザのプレイを阻害することなく、自然に注目させたいターゲットオブジェクトTOに注目させる仮想カメラ制御を実現することができる。
【0126】
なお、各種操作、例えばユーザの仮想カメラ移動操作やプレイヤオブジェクトPOを移動させる操作は、他の操作ボタンを用いる操作、タッチパネル13に対するタッチ操作、あるいは、本体装置2、左コントローラ3、および/または右コントローラ4の動きおよび/または姿勢を変化させる操作等によって行われてもよい。
【0127】
また、上述した説明では、プレイヤオブジェクトPOおよび敵オブジェクトEO(ターゲットオブジェクトTO)を仮想カメラの表示対象とするゲームを用いたが、本実施例は、他の情報処理にも適用されてもよい。例えば、カーソル位置および表示範囲をユーザが操作可能な文字情報や地図情報を表示する処理の場合、ユーザに注目させたい特定文字情報や特定地図情報が所定の表示範囲内に入った場合に第2モードに移行し、カーソル位置または表示範囲を移動させるユーザ操作によって当該特定文字情報や特定地図情報が当該表示範囲から外れた場合に第1モードに移行するような処理が考えられる。
【0128】
また、ゲームシステム1は、どのような装置であってもよく、携帯型のゲーム装置、任意の携帯型電子機器(PDA(Personal Digital Assistant)、携帯電話、パーソナルコンピュータ、カメラ、タブレット等)等であってもよい。
【0129】
また、上述した説明では情報処理(ゲーム処理)をゲームシステム1で行われる例を用いたが、上記処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、ゲームシステム1がさらに他の装置(例えば、サーバ、他の情報処理装置、他の画像表示装置、他のゲーム装置、他の携帯端末)と通信可能に構成されている場合、上記処理ステップは、さらに当該他の装置が協働することによって実行してもよい。このように、上記処理ステップの少なくとも一部を他の装置で行うことによって、上述した処理と同様の処理が可能となる。また、上述した情報処理は、少なくとも1つの情報処理装置により構成される情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施例においては、ゲームシステム1のプロセッサ81が所定のプログラムを実行することによって情報処理を行うことが可能であるが、ゲームシステム1が備える専用回路によって上記処理の一部または全部が行われてもよい。
【0130】
ここで、上述した変形例によれば、いわゆるクラウドコンピューティングのシステム形態や分散型の広域ネットワークおよびローカルネットワークのシステム形態でも本発明を実現することが可能となる。例えば、分散型のローカルネットワークのシステム形態では、据置型の情報処理装置(据置型のゲーム装置)と携帯型の情報処理装置(携帯型のゲーム装置)との間で上記処理を協働により実行することも可能となる。なお、これらのシステム形態では、上述した処理をどの装置で行うかについては特に限定されず、どのような処理分担をしたとしても本発明を実現できることは言うまでもない。
【0131】
また、上述した情報処理で用いられる処理順序、設定値、判定に用いられる条件等は、単なる一例に過ぎず他の順序、値、条件であっても、本実施例を実現できることは言うまでもない。
【0132】
また、上記プログラムは、外部メモリ等の外部記憶媒体を通じてゲームシステム1に供給されるだけでなく、有線または無線の通信回線を通じて当該装置に供給されてもよい。また、上記プログラムは、当該装置内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、CD-ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、などでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを記憶する揮発性メモリでもよい。このような記憶媒体は、コンピュータ等が読み取り可能な記録媒体ということができる。例えば、コンピュータ等に、これらの記録媒体のプログラムを読み込ませて実行させることにより、上述で説明した各種機能を提供させることができる。
【0133】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。また、当業者は、本発明の具体的な実施例の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。
【産業上の利用可能性】
【0134】
以上のように、本発明は、ユーザのゲームプレイを阻害することなく、ユーザに注目させたい位置に仮想カメラが向く制御を可能とすること等を目的として、情報処理プログラム、情報処理システム、および情報処理方法等として有用である。
【符号の説明】
【0135】
1…ゲームシステム
2…本体装置
3…左コントローラ
4…右コントローラ
12…ディスプレイ
81…プロセッサ
82…ネットワーク通信部
83…コントローラ通信部
85…DRAM