【解決手段】ゲームプログラムは、コンピュータを、ゲーム空間生成手段31、ゲーム空間を撮影する仮想カメラ制御手段32、プレイヤオブジェクトおよび敵オブジェクトの両方が撮影範囲内に含まれているかを判定する第1判定手段33、として機能させる。そして、仮想カメラ制御手段32は、仮想カメラの近傍に障害物オブジェクトが存在し、かつプレイヤオブジェクトの姿勢の変化により、第1判定手段33によって撮影範囲内にプレイヤオブジェクトおよび敵オブジェクトの両方が含まれていると判定されない場合に、プレイヤオブジェクトおよび敵オブジェクトの両方が撮影範囲内に含まれるよう仮想カメラの位置および向きのうち少なくとも一方を水平面内で変化させる。
前記仮想カメラ制御手段は、前記第1判定手段によって前記撮影範囲内に前記プレイヤオブジェクトおよび前記敵オブジェクトの両方が含まれていると判定されない場合、前記プレイヤオブジェクトおよび前記敵オブジェクトの両方が前記撮影範囲内に含まれるように前記仮想カメラの向きの角度を変化させることを特徴とする請求項1に記載のゲームプログラム。
【発明を実施するための形態】
【0021】
本発明において、下記の本実施形態に記載される事項は一例であり、これに限定されるものではない。また、本実施形態に記載されない事項は意識的に除外したものでもない。本実施形態において上位概念化して記載された事項は、本実施形態に記載されていない当業者において公知であるものも含み、出願時点において存在し得ないものも含む。
【0022】
また、各フローチャートの処理手順について、本実施形態に限定されるものではなく、各処理を実行する手段および手順などは適宜選択し得るものである。また、下記実施形態では、据置型のゲーム装置を例に、本発明を説明するが、ゲーム装置は、例えば、スマートフォン、フィーチャーフォン、タブレットPC(Personal Computer)、PDA(Personal Digital Assistant)、サーバ装置等であってもよい。
【0023】
<実施形態>
以下、本発明の実施形態に係るゲームプログラム、記憶媒体、およびゲーム装置について、図面を参照しつつ説明する。なお実施形態に係るゲームプログラムにより実現されるゲームは、いわゆるハンティングアクションゲームであって、プレイヤによる所定操作により、プレイヤキャラクタを仮想のゲーム空間内で行動させ、モンスター等の敵キャラクタの討伐(以下、クエストとも記載する)を遂行するものを例示する。
【0024】
<ゲーム装置>
図1は、実施形態に係るゲーム装置1の内部構成を示すブロック図である。
図1に示すようにゲーム装置1は制御部30、VRAM(Video-RAM)16、アンプ19、スピーカ20、イヤホン端子21、操作部22、メディアインタフェース23、無線LANモジュール24、およびバス25を備える。
【0025】
制御部30には、CPU11、描画データ生成プロセッサ12、RAM(Random Access Memory)13、ROM(Read Only Memory)14、描画処理プロセッサ15、および音声処理プロセッサ18が含まれる。ゲーム装置1においては、CPU11、描画データ生成プロセッサ12、RAM13、ROM14、描画処理プロセッサ15、音声処理プロセッサ18、操作部22、メディアインタフェース23、および無線LANモジュール24が、バス25によって相互にデータ伝送可能に接続されている。
【0026】
操作部22は、十字キー等の方向キーとその他のボタン群(図示せず)を含んでおり、プレイヤの操作を受け付けて、その操作内容に応じた操作信号をCPU11に入力する。また、方向キーおよびボタン群が備える各種のボタンは、プレイヤキャラクタの特定の動作を指示するための操作子である。また、操作部22には、これら操作子以外にゲーム装置1の電源の入/切を行うための電源スイッチ等が含まれている。
【0027】
メディアインタフェース23は、図示しないメディア装着部にセットされたゲームメディア5にアクセスしてゲームプログラム5aおよびゲームデータ5bを読み出す。このうちゲームプログラム5aは、上述したアクションゲームをゲーム装置1に実行させるものである。
【0028】
また、ゲームデータ5bには、上記ゲームを実行する上で必要なデータとして、キャラクタおよび背景の画像データ、ステータスなどの情報表示用の画像データ、効果音およびBGMなどの音声データ、文字および記号によるメッセージデータ等が含まれている。
【0029】
なお、記憶媒体であるゲームメディア5は、半導体メモリのほか、光ディスクの一種であるUMD(Universal Media Disc)(登録商標)を採用することができる。ここで、一変形例として、ゲームメディア5からデータを読み出す代わりに、別のサーバ装置等から無線LANモジュール24を介して、ゲームプログラム5aおよびゲームデータ5bをダウンロードして利用する構成であってもよい。
【0030】
RAM13には、ゲームの進行に応じてゲームメディア5から読み込まれたゲームプログラム5aおよびゲームデータ5bを格納するロードエリア、並びに、CPU11がゲームプログラム5aを処理する際に使用するためのワークエリアが設定されている。ROM14には、ディスクローディング機能などのゲーム装置1の基本的機能の処理と、ゲームメディア5に記憶されているゲームプログラム5aおよびゲームデータ5bの読み出し処理と、を制御する基本プログラムが記憶されている。
【0031】
CPU11は、ゲームメディア5に記録されているゲームプログラム5aおよびゲームデータ5bの全部または一部を、メディアインタフェース23を通じてRAM13に読み込み、プレイヤによる操作部22の操作に応じてこれを実行し、ゲーム進行を制御する。
【0032】
より具体的には、プレイヤに操作されることによって操作部22から操作信号が入力されると、CPU11は、ゲームプログラム5aにしたがってその操作信号に対応する所定のゲーム進行処理を行い、その処理結果を、ゲーム進行を示す画像(以下、「ゲーム画像」とも記載する)としてディスプレイ2に表示するとともに、ゲーム進行を示す音声信号(以下、「ゲーム音声」とも記載する)をスピーカ20またはイヤホン端子21に出力する。
【0033】
上記ゲーム画像の描画は、CPU11の指示により、描画処理プロセッサ15が行う。
即ち、CPU11は、操作部22から入力される操作信号に基づき、ディスプレイ2に表示すべきゲーム画像の内容を決定し、その内容に対して必要な描画データを描画データ生成プロセッサ12に生成させる。そして、その描画データを描画処理プロセッサ15に転送して描画処理を行わせる。
【0034】
描画処理プロセッサ15は、描画データに基づいて1/60秒毎にゲーム画像を生成し、生成したゲーム画像をVRAM16に書き込む。ディスプレイ2は、半透過型カラー液晶ディスプレイとバックライトLED(Light Emitting Diode)とを備え、VRAM16に書き込まれたゲーム画像を表示する。
【0035】
また、CPU11は、ゲームの進行に応じて、スピーカ20から出力すべき効果音またはBGM等の音声を決定し、その音声を発音するための音声データをRAM13から読み出して音声処理プロセッサ18に入力する。即ち、CPU11は、ゲームの進行に伴って発音イベントが発生すると、その発音イベントに応じた音声データ(ゲームメディア5からロードされた音声データ)をRAM13から読み出して音声処理プロセッサ18に入力する。
【0036】
音声処理プロセッサ18は、DSP(Digital Signal Processor)で構成されており、CPU11によって入力された音声データに対して所定の効果(例えば、リバーブ、コーラスなど)を付与したのちアナログ信号に変換して、アンプ19に出力する。アンプ19は、音声処理プロセッサ18から入力された音声信号を増幅したのち、スピーカ20およびイヤホン端子21に出力する。
【0037】
無線LANモジュール24は、通信規格IEEE802.11b(使用周波数帯2.4GHz、通信速度11Mbps)に準拠した無線LANによって他のゲーム装置1とデータ通信を行い、ネットワークを構成するための通信モジュールである。
【0038】
<制御部の機能構成>
図2は、ゲーム装置1が備える制御部30の機能的な構成を示すブロック図である。制御部30は、ゲームメディア5から読み込んだゲームプログラム5aおよびゲームデータ5bを実行することにより、ゲーム空間生成手段31、仮想カメラ制御手段32、第1判定手段33、第2判定手段34、およびキャラクタ制御手段35として機能させる。
【0039】
ゲーム空間生成手段31は、プレイヤキャラクタO1(プレイヤオブジェクト)が行動する仮想ゲーム空間40(
図3〜
図9参照)を生成するものである。実施形態に係る仮想ゲーム空間40は、所定の三次元的な広がりを持つ仮想的なゲーム空間として設定されており、プレイヤキャラクタO1の移動が可能に構成されている。
【0040】
仮想ゲーム空間40としては、例えば地面上の空間があるが、これに限られず、水中または空中を含んでいてもよい。また、仮想ゲーム空間内には、プレイヤキャラクタO1以外に後述する敵キャラクタO2(敵オブジェクト)、切り立った崖、巨大な岩石、または建物の壁などの障害物O3(障害物オブジェクト)が存在する。
【0041】
キャラクタ制御手段35は、仮想ゲーム空間40におけるプレイヤキャラクタO1および敵キャラクタO2を含む様々のキャラクタの動作を制御する。なお、このプレイヤキャラクタO1とは、プレイヤが操作部22を操作することによって、仮想ゲーム空間40内での動作を直接的に制御することができるキャラクタであり、本ゲームではこのプレイヤキャラクタO1がハンターとなって敵キャラクタを討伐する。
【0042】
但し、プレイヤが操作する対象はプレイヤキャラクタO1などの人型のオブジェクトに限られず、例えば車両または航空機などのオブジェクトであってもよい。また、敵キャラクタとは、プレイヤによる操作部22の操作によっては直接的に動作を制御することができず、状況に応じてCPU11がその動作を制御するノンプレイヤキャラクタである。
【0043】
仮想カメラ制御手段32は、仮想ゲーム空間40内に配置された仮想カメラC1(
図3〜
図9参照)の位置P1および向きD1(仮想カメラC1の位置P1と仮想カメラC1の注視点(不図示)とを結ぶ線分の向き)を制御する。仮想カメラC1は、プレイヤキャラクタO1および敵キャラクタを含む仮想ゲーム空間40の様子を撮影するものであり、撮影された画像(仮想ゲーム空間40を透視変換して二次元化した画像)は、ゲーム装置1のディスプレイ2に出力(表示)される。
【0044】
また、仮想カメラ制御手段32は、仮想カメラC1(視点)の位置P1および向きD1を、プレイヤキャラクタO1および敵キャラクタO2の両方が撮影範囲S1に含まれるように、かつ、プレイヤキャラクタO1を追従するように制御する。
【0045】
また、仮想カメラ制御手段32は、仮想カメラC1の位置P1および向きD1を、プレイヤによる操作部22を介してのカメラ操作(カメラの移動指示)に基づいても制御する。具体的には、仮想カメラ制御手段32は、操作部22で受付けられるカメラ操作指示に応じて、仮想カメラC1の位置P1および向きD1を制御する。
【0046】
第1判定手段33は、プレイヤキャラクタO1および敵キャラクタO2が仮想カメラC1の撮影範囲S1内に含まれているかを判定する。また、第2判定手段34は、仮想カメラC1の移動先に障害物O3が存在するか否かを判定する。
【0047】
<仮想カメラC1の制御>
ここで、ゲーム空間内での仮想カメラ制御手段32による仮想カメラC1の位置P1および向きD1の制御について、
図3〜
図9を参照して説明する。
【0048】
なお、
図3〜
図9に示す例は、何れも、障害物O3が存在する仮想ゲーム空間40において、地面にプレイヤキャラクタO1および敵キャラクタO2が位置している様子を例示している。この地面は、プレイヤキャラクタO1、敵キャラクタO2および仮想カメラC1の何れもが移動可能なフィールド(領域)として設定されている。
【0049】
また、障害物O3は、プレイヤキャラクタO1および敵キャラクタO2の何れの進入も禁止される進入禁止フィールドとして設定されるとともに、仮想カメラC1による撮影が禁止される撮影禁止フィールドとしても設定される。
【0050】
例えば、切り立った崖、巨大な岩石、建物の壁などの障害物O3の内方から仮想ゲーム空間40を撮影した画像は、プレイヤに違和感を覚えさせる可能性があるため、仮想カメラC1がこのような画像を撮影することがないようにするのが好ましい。そのため、仮想ゲーム空間40内には仮想カメラC1を進入させて撮影させるのを禁止するフィールドとして撮影禁止フィールドが設定される。
【0051】
移動可能フィールドとしては平坦な地面に限られず、所定の傾斜面を成す地面なども含まれる。また、進入禁止フィールドおよび撮影禁止フィールドとしては切り立った崖に限られず、巨大な岩石または建物の壁などであってもよく、さらに敵キャラクタ等の他のキャラクタであってもよい。なお、進入禁止フィールドおよび撮影禁止フィールドとは重複する部分も多いが、池または海等の水面上は、撮影禁止フィールドとはならないのに対し、進入禁止フィールドとなり得る点が異なる。
【0052】
移動可能フィールドおよび進入禁止フィールドはプレイヤキャラクタO1および敵キャラクタO2に対して設定されるが、撮影禁止フィールドは、仮想カメラC1に対して設定される。
【0053】
さらに、本実施の形態では、障害物O3をプレイヤによって視認可能な所定の外観形状を備えるオブジェクトとして描画し、進入禁止フィールドおよび撮影禁止フィールドを当障害物O3の外観形状と同一領域に設定しているが、これに限られない。即ち、障害物O3の外観形状と一致しない領域として、例えば障害物O3より若干大きくまたは小さく、進入禁止フィールドを設定してもよい。
【0054】
図3は、仮想ゲーム空間内でのプレイヤキャラクタによる敵キャラクタの討伐場面を示す図である。
図3に示すように、プレイヤは、プレイヤキャラクタO1を操作して敵キャラクタO2の討伐を行う。
【0055】
前述したように、本実施形態では、切り立った崖、巨大な岩石、建物の壁などの障害物O3は、仮想カメラC1が侵入できない侵入禁止フィールドに設定されている。このため、プレイヤキャラクタO1の位置P2が障害物O3に近い場合、仮想カメラC1の位置P1とプレイヤキャラクタO1の位置P2とが近くなる。このため、
図4(a)に示すように、プレイヤキャラクタO1の姿勢の変化(例えば、転倒)により、敵キャラクタO2だけが仮想カメラC1の撮影範囲S1内に含まれ、プレイヤキャラクタO1が仮想カメラC1の撮影範囲S1内に含まれないといったこと現象が生じる。
【0056】
そこで、本実施形態では、仮想カメラC1の撮影範囲S1内にプレイヤキャラクタO1および敵キャラクタO2の両方が含まれない場合(
図4(a)に示す例では、敵キャラクタO2のみが仮想カメラC1の撮影範囲S1内に含まれている)、仮想カメラ制御手段32は、仮想カメラC1の位置および向きの少なくとも一方を変化させる。
【0057】
具体的には、
図4(b)に示すように、仮想カメラ制御手段32は、プレイヤキャラクタO1および敵キャラクタO2が仮想カメラC1の撮影範囲S1内に含まれるように仮想カメラC1の位置および向きの少なくとも一方を変化させる。このような制御を行うことで、プレイヤは、プレイヤキャラクタO1の置かれている状況をすぐに把握することができ、ストレスなくゲームをプレイすることができる。このため、プレイヤのゲームへの没入感が損なわれることを抑制することができる。以下、本実施形態における仮想カメラC1の制御について
図5〜
図9を参照して説明する。
【0058】
なお、
図4(a)および
図4(b)では、プレイヤキャラクタO1および敵キャラクタO2が1対1で戦う例を示しているが、本実施形態では、プレイヤキャラクタO1および敵キャラクタO2が1対1で戦う例に限られない。例えば、複数のプレイヤキャラクタO1が1体の敵キャラクタO2を討伐する構成としてもよいし、1体のプレイヤキャラクタO1が複数の敵キャラクタO2を討伐する構成としてもよい。また、複数のプレイヤキャラクタO1が複数の敵キャラクタO2を討伐する構成としてもよい。
【0059】
図5は、仮想ゲーム空間内での仮想カメラの動きの一例を示す図である。
図4を参照して説明したように、プレイヤキャラクタO1の後方(背中側)に障害物O3が存在する場合、仮想カメラC1の位置P1とプレイヤキャラクタO1の位置P2とが近くなっている。そのため、
図5に示すように、例えば、敵キャラクタO2の攻撃を受けて、プレイヤキャラクタO1がフィールド上に倒れると、仮想カメラC1の撮影範囲S1(点線で示した領域)内にプレイヤキャラクタO1が含まれなくなる。言い換えると、プレイヤキャラクタO1が仮想カメラC1の撮影範囲S1(点線で示した領域)から外れてしまう。
【0060】
図5では、仮想カメラC1の撮影範囲S1内にプレイヤキャラクタO1が含まれなくなった場合に仮想カメラC1の位置P1を垂直方向に降下させる例を示している。
【0061】
図5の例を用いて具体的に説明すると、第1判定手段33は、プレイヤキャラクタO1および敵キャラクタO2の両方が仮想カメラC1の撮影範囲S1内に含まれているか否かを判定する。仮想カメラ制御手段32は、第1判定手段33によって仮想カメラC1の撮影範囲S1内にプレイヤキャラクタO1および敵キャラクタO2の両方が含まれていると判定されない場合、プレイヤキャラクタO1および敵キャラクタO2の両方が撮影範囲S1内に含まれるように仮想カメラC1の位置P1を垂直方向に降下させる処理を実行させる。
【0062】
ここで、第1判定手段33は、仮想カメラC1の撮影範囲S1内にプレイヤキャラクタO1および敵キャラクタO2の両方が含まれているか否かの判定を、仮想カメラC1の撮影範囲S1にプレイヤキャラクタO1および敵キャラクタO2の輪郭線の少なくとも一部が含まれるか否かを座標計算することにより求めている。
【0063】
なお、本実施形態では、仮想カメラC1の撮影範囲S1内にプレイヤキャラクタO1および敵キャラクタO2の両方が含まれているか否かが判定できればよい。このため、第1判定手段33による上記判定には、異なる手法を採用しても構わない。
【0064】
また、
図5に示す例では、プレイヤキャラクタO1および敵キャラクタO2の両方が撮影範囲S1内に含まれるように仮想カメラC1の位置P1を垂直方向に降下させている。しかし、
図6に示すように、プレイヤキャラクタO1および敵キャラクタO2の両方が撮影範囲S1内に含まれるように仮想カメラC1の向きD1を初期位置(点線で示した位置)から下向きの角度に変化させるようにしてもよい。
【0065】
図7は、仮想ゲーム空間内での仮想カメラC1の動きの一例を示す図である。
図7では、仮想カメラC1の撮影範囲S1内にプレイヤキャラクタO1および敵キャラクタO2の両方が含まれていると判定されない場合に仮想カメラC1の位置P1を水平面内で変化させる例を示している。
【0066】
図7の例を用いて具体的に説明すると、第1判定手段33は、プレイヤキャラクタO1および敵キャラクタO2の両方が仮想カメラC1の撮影範囲S1内に含まれているか否かを判定する。仮想カメラ制御手段32は、第1判定手段33によって仮想カメラC1の撮影範囲S1内にプレイヤキャラクタO1および敵キャラクタO2の両方が含まれていると判定されない場合、プレイヤキャラクタO1および敵キャラクタO2の両方が撮影範囲S1内に含まれるように仮想カメラC1の位置P1および向きD1を水平面内で変化させる。
【0067】
図8は、仮想ゲーム空間内での仮想カメラの動きの一例を示す図である。前述したように、障害物O3の内方から仮想ゲーム空間40を撮影した画像は、プレイヤに違和感を覚えさせる可能性がある。そのため、障害物O3は、仮想カメラC1を進入させて撮影させるのを禁止する撮影禁止フィールドとして設定されている。
【0068】
図8では、仮想カメラC1の移動先に障害物O3が存在すると判定される場合、障害物O3が存在する領域を仮想カメラC1の移動先から除外する例を示している。
【0069】
図8の例を用いて具体的に説明すると、第2判定手段34は、仮想カメラC1の移動先に障害物O3が存在するか否かを判定する。仮想カメラ制御手段32は、第2判定手段34で障害物O3が存在すると判定される場合、障害物O3が存在する領域を仮想カメラC1の移動先から除外する。
【0070】
図8に示す例では、仮想カメラC1の位置P1をそのまま垂直方向に下降させると、障害物O3と衝突する。このため、仮想カメラ制御手段32は、仮想カメラC1の位置P1をそのまま垂直方向に下降させず、仮想カメラC1の位置P1を初期位置(点線で示した位置)から下降させるとともに前方側(プレイヤキャラクタO1側)へと移動させることで障害物O3との衝突を回避している。
【0071】
また、
図9に示す例では、初期位置(点線で示した状態)から仮想カメラC1の位置P1をそのまま垂直方向に下降させると障害物O3と衝突する。このため、仮想カメラ制御手段32は、仮想カメラC1の位置P1をそのまま垂直方向に下降させず、
図9(a)に示すように、仮想カメラC1の位置P1を水平方向(
図9(a)では右方向)に移動させたのち、
図9(b)に示すように、下降させることで障害物O3との衝突を回避している。
【0072】
<ゲーム装置の動作>
次に、ゲーム装置1の処理動作について
図10〜
図12を参照して説明する。以下、ゲーム装置1の動作を説明するが
図1〜
図9で説明した構成と同一の構成には、同一の符号を付して重複する説明を省略する。
【0073】
図10は、
図5を参照して説明した仮想カメラC1の動きを説明するフローチャートである。初めに、第1判定手段33は、プレイヤキャラクタO1および敵キャラクタO2の両方が仮想カメラC1の撮影範囲S1内に含まれているか否かを判定する(S101)。
【0074】
第1判定手段33によって仮想カメラC1の撮影範囲S1内にプレイヤキャラクタO1および敵キャラクタO2の両方が含まれていると判定されない場合(S101:No)、仮想カメラ制御手段32は、プレイヤキャラクタO1および敵キャラクタO2の両方が撮影範囲S1内に含まれるように仮想カメラC1の位置P1を垂直方向に降下させる(S102)。
【0075】
一方、第1判定手段33によって仮想カメラC1の撮影範囲S1内にプレイヤキャラクタO1および敵キャラクタO2の両方が含まれていると判定された場合(S101:Yes)、仮想カメラ制御手段32は、仮想カメラC1の位置を変化させずに処理を終了する。
【0076】
なお、
図6を参照して説明したように、ステップS102で、仮想カメラ制御手段32は、プレイヤキャラクタO1および敵キャラクタO2の両方が撮影範囲S1内に含まれるように、仮想カメラC1の向きD1を初期位置(点線で示した位置)から下向きの角度に変化させるようにしてもよい。
【0077】
また、ステップS102で、仮想カメラ制御手段32は、プレイヤキャラクタO1および敵キャラクタO2の両方が撮影範囲S1内に含まれるように仮想カメラC1の位置P1および向きD1を初期位置から下部方向へ移動かつ角度を下向きに変化させるようにしてもよい。
【0078】
図11は、
図7を参照して説明した仮想カメラC1の動きを説明するフローチャートである。初めに、第1判定手段33は、プレイヤキャラクタO1および敵キャラクタO2の両方が仮想カメラC1の撮影範囲S1内に含まれているか否かを判定する(S201)。
【0079】
第1判定手段33によって仮想カメラC1の撮影範囲S1内にプレイヤキャラクタO1および敵キャラクタO2の両方が含まれていると判定されない場合(S201:No)、仮想カメラ制御手段32は、プレイヤキャラクタO1および敵キャラクタO2の両方が撮影範囲S1内に含まれるように仮想カメラC1の位置P1および向きD1を水平面内で変化させる(S201)。
【0080】
一方、第1判定手段33によって仮想カメラC1の撮影範囲S1内にプレイヤキャラクタO1および敵キャラクタO2の両方が含まれていると判定された場合(S201:Yes)、仮想カメラ制御手段32は、仮想カメラC1の位置P1および向きD1を変化させずに処理を終了する。
【0081】
図12は、
図8および
図9を参照して説明した仮想カメラC1の動きを説明するフローチャートである。初めに、第1判定手段33は、プレイヤキャラクタO1および敵キャラクタO2の両方が仮想カメラC1の撮影範囲S1内に含まれているか否かを判定する(S301)。
【0082】
第1判定手段33によって仮想カメラC1の撮影範囲S1内にプレイヤキャラクタO1および敵キャラクタO2の両方が含まれていると判定されない場合(S301:No)、第2判定手段34は、仮想カメラC1を垂直方向に降下させると障害物O3に衝突するか否かを判定する(S302)。
【0083】
第2判定手段34によって仮想カメラC1を垂直方向に降下させると障害物O3に衝突しないと判定された場合(S302:No)、仮想カメラ制御手段32は、プレイヤキャラクタO1および敵キャラクタO2の両方が撮影範囲S1内に含まれるように仮想カメラC1の位置P1を垂直方向に降下させる(S303)。
【0084】
一方、第2判定手段34によって仮想カメラC1を垂直方向に降下させると障害物O3に衝突すると判定された場合(S302:Yes)、仮想カメラ制御手段32は、障害物O3が存在する領域を仮想カメラC1の移動先から除外する(S304)。
【0085】
次いで、仮想カメラ制御手段32は、仮想カメラC1の位置P1をそのまま垂直方向に下降させず、
図8に示すように、仮想カメラC1の位置P1を下降させるとともに前方側(プレイヤキャラクタO1側)へと移動させる、もしくは、
図9に示すように、仮想カメラC1の位置P1を水平方向に移動させたのち、垂直方向に下降させることで障害物O3との衝突を回避する(S305)。
【0086】
なお、第1判定手段33によって仮想カメラC1の撮影範囲S1内にプレイヤキャラクタO1および敵キャラクタO2の両方が含まれていると判定された場合(S301:Yes)、仮想カメラ制御手段32は、仮想カメラC1の位置を変化させずに処理を終了する。
【0087】
なお、
図6を参照して説明したように、ステップS303で、仮想カメラ制御手段32は、プレイヤキャラクタO1および敵キャラクタO2の両方が撮影範囲S1内に含まれるように仮想カメラC1の向きD1を初期位置(点線で示した位置)から下向きの角度に変化させるようにしてもよい。
【0088】
また、ステップS303で、仮想カメラ制御手段32は、プレイヤキャラクタO1および敵キャラクタO2の両方が撮影範囲S1内に含まれるように仮想カメラC1の位置P1および向きD1を初期位置から下部方向へ移動かつ角度を変化させるようにしてもよい。
【0089】
以上のように、本実施形態に係るゲームプログラムは、コンピュータを、仮想のゲーム空間を生成するゲーム空間生成手段31、ゲーム空間を撮影する仮想カメラC1の位置P1および向きD1を制御して、プレイヤキャラクタO1および敵キャラクタO2の両方が撮影範囲S1に含まれるように制御する仮想カメラ制御手段32、プレイヤキャラクタO1および敵キャラクタO2の両方が撮影範囲S1内に含まれているか否かを判定する第1判定手段33として機能させる。
【0090】
そして、仮想カメラ制御手段32は、第1判定手段33によって撮影範囲S1内にプレイヤキャラクタO1および敵キャラクタO2の両方が含まれていると判定されない場合、プレイヤキャラクタO1および敵キャラクタO2の両方が撮影範囲S1内に含まれるように仮想カメラC1の位置P1および向きD1の少なくとも一方を変化させる。また、本実施形態に係るゲーム装置1は、上記ゲームプログラムを記憶した記憶手段と、ゲームプログラムを実行するコンピュータとを備える。
【0091】
より具体的には、仮想カメラ制御手段32は、第1判定手段33によって撮影範囲S1内にプレイヤキャラクタO1および敵キャラクタO2の両方が含まれていると判定されない場合、プレイヤキャラクタO1および敵キャラクタO2の両方が撮影範囲S1内に含まれる位置まで仮想カメラC1の位置P1を垂直方向に降下させる。
【0092】
また、仮想カメラ制御手段32は、第1判定手段33によって撮影範囲S1内にプレイヤキャラクタO1および敵キャラクタO2の両方が含まれていると判定されない場合、プレイヤキャラクタO1および敵キャラクタO2の両方が撮影範囲S1内に含まれるように仮想カメラC1の向きD1を初期位置から下向きの角度に変化させる。
【0093】
また、仮想カメラ制御手段32は、第1判定手段33によって撮影範囲S1内にプレイヤキャラクタO1および敵キャラクタO2の両方が含まれていると判定されない場合、プレイヤキャラクタO1および敵キャラクタO2の両方が撮影範囲S1内に含まれるように仮想カメラC1の位置P1および向きD1を水平面内で変化させる。
【0094】
さらに、本実施形態に係るゲームプログラムは、コンピュータを、仮想カメラC1の移動先に障害物O3が存在するか否かを判定する第2判定手段34として機能させる。そして、仮想カメラ制御手段32は、第2判定手段34によって障害物O3が存在すると判定された場合、障害物O3が存在する領域を仮想カメラC1の移動先から除外する。
【0095】
このように、本実施形態では、仮想カメラC1の撮影範囲S1内にプレイヤキャラクタO1および敵キャラクタO2の両方が含まれていると判定されない場合、言い換えるとプレイヤキャラクタO1および敵キャラクタO2の少なくとも一方が画面に表示されない場合、仮想カメラ制御手段32は、プレイヤキャラクタO1および敵キャラクタO2の両方が仮想カメラC1の撮影範囲S1内に含まれるように仮想カメラC1の位置P1および向きD1の少なくとも一方を変化させる。
【0096】
このため、プレイヤは、プレイヤキャラクタO1の置かれている状況をすぐに把握することができ、ストレスなくゲームをプレイすることができる。この結果、プレイヤのゲームへの没入感が損なわれることを抑制することができる。
【0097】
<その他の実施の形態>
上述の実施形態は、本発明の概念の理解を助けるための具体例を示しているに過ぎず、本発明の範囲を限定することを意図されていない。実施形態は、本発明の要旨を逸脱しない範囲で、様々な構成要素の付加、削除または転換をすることができる。例えば、上記実施形態の構成要素を組み合わせる等の適宜変更が可能である。