以下、本発明の一実施の形態の例について図面を参照して説明する。
図1は、本発明の一実施の形態におけるビデオゲーム処理装置100の構成例を示すブロック図である。図1に示すように、ビデオゲーム処理装置100は、ゲームプログラム読取部10、制御部11、記憶部12、表示部13、音声出力部14、およびプレイヤ操作受付部15と、通信部16とを含む。
プログラム読取部10は、各種ビデオゲームプログラムが格納された記憶媒体を内蔵する記憶媒体から必要なビデオゲームプログラムを読み出す機能を有する。なお、本例においては、プログラム読取部10は、ビデオゲームプログラムが格納された着脱可能なゲームカートリッジ20を装着する装着部を有し、プレイヤ(ビデオゲーム処理装置100の操作者(ユーザ))により装着部に装着されたゲームカートリッジ20の記憶媒体からゲームプログラムを読み出し、記憶部12に格納する。なお、本例で用いられるビデオゲームプログラムに従って実行されるビデオゲームは、RPG、シミュレーションゲーム、バトルゲームなど、プレイヤによる操作入力に応じて仮想空間内に配置されたキャラクタが移動する様子が表示されるビデオゲームであればどのようなものであってもよい。すなわち、直接的又は間接的に、プレイヤが仮想カメラの位置を操作できるビデオゲームであればよい。
制御部11は、プログラム読取部10により読み取られ記憶部12に格納されたゲームプログラムを実行し、プレイヤの操作に応じてビデオゲームを進行するための各種の制御を実行する機能を有する。
記憶部12は、ビデオゲームを進行する際に必要なビデオゲームプログラムや各種のデータを記憶する記憶媒体である。記憶部12は、例えばRAMなどの不揮発性のメモリによって構成される。記憶部12には、ゲームの進行に従って登録・更新される各種の情報や、ゲームカートリッジ20に内蔵される記憶媒体から読み出されたゲームにおいて使用される各種の情報が格納される。
なお、ビデオゲーム処理装置100が、ビデオゲームプログラムを図示しないゲームプログラム提供サーバからインターネット等の通信ネットワークを介してダウンロードして記憶部12に格納する構成としてもよい。
本例においては、記憶部12は、仮想カメラ情報記憶部12aを含む。
仮想カメラ情報記憶部12aは、仮想カメラに関する情報である仮想カメラ情報を記憶する記憶媒体である。本例においては、制御部11は、仮想カメラ情報に基づいて3次元仮想空間における仮想カメラの位置を特定し、特定した位置に応じて表示装部13の表示画面に表示する画像を生成する。
図2は、仮想カメラ情報記憶部12aに記憶された仮想カメラ情報の格納状態の例を示す説明図である。図2に示すように、仮想カメラ情報は、仮想カメラの位置と、向きと、動作モードフラグとを含む。
ここで、本例における仮想カメラの動作モードについて説明する。本例においては、仮想カメラの動作モードが3つ(前進モード、回転モード、追従モード)に分類される。なお、仮想カメラの動作モードとは、操作入力に応じて仮想カメラの位置や向きが移動させる方法の違いによって分類される。すなわち、一般的な3Dゲームにおける主体(制御対象の中心)がプレイヤキャラクタであり、プレイヤキャラクタの移動や旋回に仮想カメラが追従するのに対して、本例においては、原則、主体が仮想カメラであり、プレイヤキャラクタは仮想カメラの移動や旋回に応じて表示態様が決定される。
前進モードは、3次元仮想空間において仮想カメラを所定方向に前進又は後退させる動作規則(前進規則)に従って動作するモードである。本例においては、制御部11は、移動フィールド(プレイヤキャラクタがプレイヤによる操作に応じて移動可能な仮想空間)においてプレイヤキャラクタが前進する場合に、プレイヤキャラクタが前進する距離及び速度に合わせて仮想カメラを前進させる。なお、前進モードにおいて仮想カメラの位置を決定するための基準位置としては、仮想空間におけるプレイヤキャラクタの位置を用いるものとする。ただし、基準位置の構成はこれに限定されず、例えばプレイヤキャラクタの視点位置や、仮想空間におけるプレイヤキャラクタと他のオブジェクトとを俯瞰可能な位置など、仮想空間において仮想カメラの位置を定義するための基準となる構成であればよい。
回転モードは、3次元仮想空間中の点を中心として仮想カメラを回転させる動作規則(回転規則)に従って動作するモードである。本例においては、制御部11は、仮想空間において設定された基準位置を中心として仮想カメラを回転させる。なお、基準位置の構成は特に限定されず、例えば前進モードにおいて利用される基準位置と同じ位置や、プレイヤキャラクタの位置など、回転方向を定義するための基準となる構成であればよい。
追従モードは、3次元仮想空間において仮想カメラを特定のオブジェクトに追従させる動作規則(追従規則)に従って動作するモードである。本例においては、制御部11は、移動フィールドにおけるプレイヤキャラクタが進行方向を変えて前進する場合に、プレイヤキャラクタが進行方向を変えて前進する距離及び速度に合わせて仮想カメラをプレイヤキャラクタに追従(あるいは、追随)させる。すなわち、本例における追従モードとは、他の2つのモード(前進モードと回転モード)によって仮想カメラが動作するモードである。
タッチパネルを備えた1つの入力インタフェースにより複数の動作モードによる仮想カメラの移動を制御するために、本例における仮想カメラ情報記憶部12aには、動作モードフラグが含まれる。本例における動作モードフラグは、前進モードと、回転モードと、追従モードとに対応するフラグを含む。制御部11は、ビデオゲームの進行に応じて、プレイヤの操作を受け付ける状態のモード(いわゆる、アクティブなモード)に対応するフラグを立て(例えば、対応するセルに「1」を設定し)、プレイヤの操作を受け付けない状態のモードに対応するフラグを折る(例えば、対応するセルに「0」を設定する)。各モードの切り替えについては、後で詳しく説明する。
表示部13は、制御部11の制御に従って、ビデオゲームの進行やプレイヤ操作に応じたゲーム画面を表示する表示装置である。本例においては、制御部11によって、仮想カメラにより撮影された画像を含むゲーム画面を生成する処理(レンダリング)が実行される。表示部13は、例えば、液晶表示装置によって構成される。
音声出力部14は、制御部11の制御に従って、ビデオゲームの進行やプレイヤ操作に応じて音声を出力する。
プレイヤ操作受付部15は、プレイヤ操作に応じた操作信号を受け付け、その結果を制御部11に通知する。本例においては、操作受付部15は、表示部13に設けられたタッチパネルを介してプレイヤの操作を受け付ける。
通信部16は、インターネットなどの通信ネットワークに無線あるいは有線によって接続し、各種情報を送受信する。
次に、本例のビデオゲーム処理装置100の動作について説明する。
図3は、ビデオゲーム処理装置100が実行する表示処理の例を示すフローチャートである。表示処理では、仮想空間におけるプレイヤキャラクタの様子(状況)を示すゲーム画面を表示するための処理が行われる。なお、本発明に関係しない処理については、その内容を省略している場合がある。また、本例における「表示処理」とは、以下で説明するフローチャートの内容を限定するものではなく、処理名を定義したものである。
表示処理は、例えばビデオゲームの進行に応じて移動フィールドに配置されたプレイヤキャラクタを示す画面(移動フィールド表示画面)が表示されたときに開始される。
図4は、移動フィールド表示画面の例を示す説明図である。図4に示すように、移動フィールド表示画面には、プレイヤキャラクタPCを含む3次元仮想空間が表示される。
表示処理において、先ず、制御部11は、プレイヤによるタッチ操作を受け付ける(ステップS101)。本例においては、制御部11は、移動フィールド表示画面における所定の領域(例えば、プレイヤキャラクタ上を含む表示画面全体)をタッチ操作受付領域とする。すなわち、制御部11は、移動フィールド表示画面における所定の領域に対してタッチ操作(例えば、タッチパネルにプレイヤの指が接触したこと)を検出すると、タッチ操作を受け付けたと判定する。なお、タッチ操作受付領域の構成はこれに限定されず、例えばゲーム画面に設けられた閉じた領域(例えば、仮想コントローラ)でプレイヤによる接触を検出する構成としてもよいし、プレイヤキャラクタPCを示す領域以外の領域でプレイヤによる接触を検出する構成としてもよい。
ここで、タッチ操作を受け付けていないと判定すると(ステップS101のN)、制御部11は、後述するステップS105の処理に移行する。一方、タッチ操作を受け付けたと判定すると(ステップS101のY)、制御部11は、タッチ操作を受け付けた位置(初期位置)を設定する(ステップS102)。本例においては、制御部11は、タッチパネルにおいてプレイヤの指が接触した位置を示す座標を初期タッチ位置(初期位置)に設定する。本例においては、制御部11は、座標を示す情報を記憶12における所定の記憶領域に登録することで、表示処理で利用する「初期位置」を設定する。
初期位置を設定すると、制御部11は、タッチ位置が移動したか否かを判定する(ステップS103)。ここで、タッチ位置が移動していないと判定すると(ステップS103のY)、制御部11は、初期位置を設定してから所定時間(例えば、1秒間)が経過したか否かを判定する(ステップS104)。すなわち、制御部11は、プレイヤが移動フィールド表示画面の略1点(具体的には、遊びの領域を持った面積のある範囲)を所定時間触り続けたか否かを判定する。
ここで、所定時間が経過していないと判定すると(ステップS104のN)、制御部11は、ステップS103の処理に移行する。一方、所定時間が経過したと判定すると(ステップS104のY)、制御部11は、設定してある初期位置を、所定時間継続してタッチされた位置として、他の処理(本例においては、後述する移動関連処理)において起点とする起点タッチ位置(起点位置)に設定する(ステップS105)。
起点位置を設定すると、制御部11は、プレイヤキャラクタPCを移動させることに関連する処理(移動関連処理)を実行する(ステップS200)。本例における移動関連処理では、プレイヤの操作に応じて仮想カメラの位置や向きを移動させるとともに、プレイヤキャラクタを移動させるための処理が実行される。移動関連処理については後で詳しく説明する(図6参照)。
移動関連処理を実行すると、制御部11は、表示処理(図3参照)を終了するか否かを判定する(ステップS106)。本例においては、制御部11は、ビデオゲームの進行に対応する表示処理の終了条件(例えば、いわゆるクエストのクリアやタイムアップなど)に基づいて、表示処理を終了するか否かを判定する。ここで、表示処理を終了しないと判定すると(ステップS106のN)、制御部11は、ステップS101の処理に移行する。一方、表示処理を終了すると判定すると(ステップS106のY)、制御部11は、ここでの処理を終了する。
また、表示処理におけるステップS103の処理において、タッチ位置が移動したと判定すると(ステップS103のY)、制御部11は、プレイヤによるスライド操作を受け付けたか否かを判定する(ステップS107)。本例においては、制御部11は、設定された初期位置と、現在のタッチ位置との距離に基づいて、スライド操作を受け付けたか否かを判定する。
ここで、例えば初期位置と現在プレイヤの指が表示画面に接触している位置(現在タッチ位置。すなわち、移動後または移動中のタッチ位置)との距離が所定距離未満であることにより、スライド操作を受け付けていないと判定すると(ステップS107のN)、制御部11は、初期位置を現在タッチ位置(現在位置)に更新して(ステップS111)、上述したステップS104の処理に移行する。この場合、制御部11は、更新後の初期位置に対するタッチ操作の時間を踏まえて初期位置に対するタッチ操作を所定時間検出したか否かを判定する。すなわち、本例においては、制御部11は、所定距離未満のタッチ位置移動操作(例えば、プレイヤによる、タッチパネルに触れている指先をタッチパネルに触れた状態で上下左右に移動させる操作)については誤操作とみなし、スライド操作として取り扱わない。つまり、この初期位置を示す1点からこの「所定距離」で定義される範囲がいわゆる遊び領域となる。なお、制御部11が誤操作とみなす基準(誤操作判定基準)は特に限定されず、ビデオゲームの内容やゲーム画面の大きさに応じて考慮されたものであることが好ましい。
一方、例えば初期位置と現在のタッチ位置との距離が所定距離以上であることにより、スライド操作を受け付けたと判定すると(ステップS107のY)、制御部11は、現在のタッチ位置に応じて仮想カメラの位置を変更する(ステップS108)。本例においては、制御部11は、仮想カメラの動作モードを回転モードに設定し、初期位置に対して現在のタッチ位置が位置する方向に応じて仮想カメラの位置を回転させる。
図5は、スライド操作を受け付けた後の移動フィールド表示画面の例を示す説明図である。図4に示した移動フィールド表示画面の状態から、プレイヤによるタッチ操作を受け付け、受け付けたタッチ操作が所定時間経過前に画面上方に移動したとする。この場合、制御部11は、現在表示している仮想空間に対して上方に位置する仮想空間を表示するために、仮想カメラの位置をそれまでの位置よりも下方に変更し、仮想カメラの向きをそれまでの向きよりも上方に変更する。本例においては、制御部11は、プレイヤキャラクタの位置を基準として設けられた仮想空間内の座標(回転中心)を中心として、仮想カメラの位置をスライド操作が示す方向(初期位置からスライド操作後のタッチ位置に向かう方向の逆)、かつ、スライド操作の長さ(初期位置からスライド操作後のタッチ位置までの長さ)に応じた分だけ回転させる。このとき、制御部11は、仮想カメラの向きが回転中心を向くようにする。すなわち、本例においては、制御部11は、仮想カメラを、仮想空間における基準位置を中心とする球体の表面上を任意の速度で移動させる。
なお、仮想カメラの回転方法はこれに限定されず、例えば、制御部11、スライドの操作の長さ(範囲)を複数の段階(例えば、4段階)に分けて記憶してあり、プレイヤによるスライド操作を受け付けたことに応じて、当該スライド操作が属する段階を特定し、特定した段階に対応する回転量で仮想カメラを回転させる構成としてもよい。このような構成とし、例えばスライド操作が短い段階では、スライド操作が長い段階よりも仮想カメラの移動量が小さくなる構成とすることで、操作性を向上させることができるようになる。すなわち、制御部11が、短いスライド操作を受け付けた場合には仮想カメラをより細かく(遅く)移動し、長いスライド操作を受け付けた場合には仮想カメラをより大きく(速く)移動する構成とすることで、プレイヤの意図に応じた仮想カメラの制御を実現することができるようになる。
また、スライド操作の方向と、仮想カメラの回転方向との対応関係については、制御部11が、プレイヤによる操作に応じて対応関係を変更可能な構成とされていてもよい。すなわち、例えばいわゆるゲーム内オプション機能で、操作方向をリバースしたり、1つの操作方向に対して1つの仮想カメラの移動方向を対応付けしたりすることが可能な構成としてもよい。このような構成とすることで、必ずしもスライド操作方向を映すように仮想カメラが逆へ回転することにはならなくなり、プレイヤの嗜好に応じた操作性を実現することができるようになる。
仮想カメラの位置を変更すると、制御部11は、スライド操作が終了したか否かを判定する(ステップS109)。ここで、例えばタッチ位置の変更が継続していることにより、スライド操作が終了していないと判定すると(ステップS109のN)、制御部11は、ステップS108の処理に移行する。一方、例えばタッチ位置が特定の時間以上変化していないことにより、スライド操作が終了したと判定すると(ステップS109のY)、制御部11は、タッチ操作が終了したか否かを判定する(ステップS110)。ここで、例えばプレイヤの指がタッチパネルに触れていない場合、制御部11は、タッチ操作が終了したと判定して(ステップS110のY)、上述したステップS106の処理に移行する。
一方、例えばプレイヤの指がスライド操作後にもタッチパネルに接触していることを検出すると、制御部11は、タッチ操作が終了していないと判定して(ステップS110のN)、初期位置を更新する(ステップS111)。このような構成とすることで、プレイヤがスライド操作後に現在の位置から指を動かさないでいる場合、制御部11は、移動関連処理を開始することになる。
図6は、ビデオゲーム処理装置100が実行する移動関連処理の例を示すフローチャートである。移動関連処理では、プレイヤの操作に応じて仮想カメラの位置や向きを移動させるための処理が行われる。なお、本発明に関連しない処理については、その内容を省略している場合がある。
移動関連処理において、先ず、制御部11は、仮想カメラの移動を開始する(ステップS201)。本例においては、制御部11は、仮想カメラの移動モードを前進モードに設定し、プレイヤキャラクタの仮想カメラの向きに応じた方向(例えば、仮想空間を平面視した場合の仮想カメラの向きと同じ方向)への移動を開始する。また、このとき、仮想カメラの移動速度とプレイヤキャラクタの移動速度とを略同一にする。
仮想カメラの移動を開始すると、制御部11は、表示処理におけるステップS105の処理において設定した起点位置を基準として(図3参照)、プレイヤによるスライド操作を受け付けるための領域(または、スライド操作を受け付ける旨をプレイヤに報知するための領域)(スライド操作受付領域)を設定する(ステップS202)。本例においては、制御部11は、ゲーム画面内におけるスライド操作受付領域を設定したことに応じて、スライド操作設定領域を示す画像を表示画面に表示する。
図7は、スライド操作受付領域の例を示す説明図である。図7に示すように、制御部11は、プレイヤの指Pがタッチパネルに接触している部分に起点位置SPを示す画像と、起点位置画像を略中心とする所定形状のスライド操作受付領域SAとを表示する。
スライド操作受付領域SAを表示すると、制御部11は、スライド操作を受け付けたか否かを判定する(ステップS203)。本例においては、制御部11は、表示したスライド操作受付領域SA内でのスライド操作を受け付ける。ただし、スライド操作受付領域の形状は特に限定されず、例えば矩形であってもよいし、円形であってもよい。また、制御部11が、スライド操作受付領域を表示しない構成としてもよい。また、制御部11が、スライド操作を受け付けていることをプレイヤに報知するためだけの画像を表示する構成としてもよい。
ここで、現在のタッチ位置(現在位置)が起点位置SPとを一致していることにより(または、起点位置SPに対して特定の距離以内に位置していることにより)スライド操作を受け付けていないと判定すると(ステップS203のN)、制御部11は、後述するステップS206の処理に移行する。一方、現在位置が起点位置SPと異なる位置となったことを検出したことにより、スライド操作を受け付けたと判定すると(ステップS203のY)、制御部11は、現在位置に応じて仮想カメラの位置を変更する(ステップS204)。本例においては、制御部11は、仮想カメラの動作モードを追従モードに設定し、起点位置SPと現在位置との位置関係に応じて仮想カメラの位置を回転させる。また、本例においては、制御部11が、起点位置SPに対して現在位置が位置する方向にプレイヤキャラクタの進行方向を変更する。なお、仮想カメラの動作モードを主体とすることを優先する場合、制御部11が、プレイヤの操作入力に応じた仮想カメラの移動経路を定義し、定義した移動経路で仮想カメラを移動させるとともに(または、時間的なずれを設けてI、仮想カメラの移動にプレイヤキャラクタの移動を追従させる構成としてもよい。
図8は、スライド操作を受け付けた後の移動フィールド表示画面の例を示す説明図である。図7に示した移動フィールド表示画面の状態から、プレイヤによるスライド操作(例えば、起点位置SPに対して画面左方向へのスライド操作。図8参照。)を受け付けたとする。この場合、制御部11は、プレイヤキャラクタの進行方向を左方向に変更し、仮想カメラの位置を右方向に回転させる。その結果、例えば図7と図8とで示すように、制御部11は、仮想カメラの位置はプレイヤキャラクタに追従するように移動させる。また、本例においては、制御部11は、例えばスライド操作後のタッチ位置が初期位置に対して画面左側にある場合、仮想カメラの回転方向を右方向に設定し、仮想カメラの回転速度を初期位置から移動操作後のタッチ位置までの長さに応じて設定する。すなわち、本例においては、プレイヤがタッチ位置を起点位置SPと一致させない限り、仮想カメラは回転を続けることになる。なお、本例においては、制御部11は、スライド操作の向きと同じ方向にプレイヤキャラクタの進行方向を変更する。なお、スライド操作の向きとプレイヤキャラクタの進行方向を変更する向きや仮想カメラを移動する向きとの対応は特に限定されず、プレイヤに対して違和感を与えないように構成されることが好ましい。
仮想カメラの位置を変更すると、制御部11は、スライド操作が終了したか否かを判定する(ステップS205)。ここで、例えば現在位置が、起点位置SPまたは起点位置SPの近傍になく、かつ、スライド操作受付領域SA内にあることにより、スライド操作が終了していないと判定すると(ステップS205のN)、制御部11は、ステップS204の処理に移行する。
一方、例えば現在位置が起点位置SPの近傍にあることにより、スライド操作が終了したと判定すると(ステップS205のY)、制御部11は、タッチ操作が終了したか否かを判定する(ステップS206)。ここで、例えばプレイヤの指がタッチパネルに触れていることにより、タッチ操作が終了していないと判定すると(ステップS206のN)、制御部11は、ステップS203の処理に移行する。なお、スライド操作によりタッチ位置がスライド操作受付領域SAの外に移動した場合、制御部11は、最後にタッチ位置を検出したスライド操作受付領域SAの枠部分(端)がタッチされているものとみなして、仮想カメラの位置を制御する。ただし、タッチ位置がスライド操作受付領域SA外に移動した場合、制御部11が、仮想カメラの動作モードを変更する処理、例えば新たなスライド操作受付領域を設ける処理、仮想カメラの回転速度をスライド量と異なる基準で高める処理、あるいはプレイヤキャラクタの進行方向を変えずに仮想カメラを回転させる処理等を実行する構成としてもよい。
一方、例えばプレイヤの指がタッチパネルから離れたことを検出したことによりタッチ操作が終了したと判定すると(ステップS206のY)、制御部11は、仮想カメラの移動を終了して(ステップS207)、表示処理のステップS106の処理に移行する(図3参照)。なお、このとき制御部11は、プレイヤキャラクタの移動を停止するとともに、仮想カメラの3つの動作モードに対応するフラグをすべて「0」に設定する。すなわち、動作モードを停止モードに設定する。なお、タッチ操作の終了判定の方法はこれに限定されず、例えば、移動フィールドの表示を終了するための条件(移動フィールド終了条件)が満たされたことにより、制御部11が、タッチ操作が終了したと判定する構成としてもよい。この場合、制御部11が、満たされた移動フィールド終了条件に応じたゲーム画面を表示するための処理を開始する構成としてもよい。
以上に説明したように、上述した実施の形態では、タッチパネルを備えた表示装置(例えば、表示部13)の表示画面に仮想カメラにより撮影された仮想空間を表示することで(例えば、移動フィールド表示画面を表示することで)ビデオゲームの進行を制御するビデオゲーム処理装置100が、表示画面における所定の閉じた領域(例えば、初期位置から所定距離未満の領域。領域の形状は特に限定されず、ゲーム画面全体であってもよい。)でプレイヤによるタッチ操作を所定時間(例えば、継続して1秒間以上)検出したことに応じて、所定の第1規則(例えば、前進規則)に従って仮想カメラの位置を制御し(例えば、ステップS201)、表示画面においてプレイヤによるタッチ位置の変更操作を検出したことに応じて、所定の第2規則(例えば、回転規則または追従規則)に従って仮想カメラの位置を制御する(例えば、ステップS108,S204)構成としているので、仮想カメラの操作性を向上させることができるようになる。
すなわち、複数の規則(例えば、複数の動作モード)に応じた仮想カメラの移動に対応する複数の入力インタフェースを設けることなく、1つの入力インタフェース(特に、タッチパネルを備えた表示画面)で複数の規則を切り替えながら、仮想空間で仮想カメラを移動させることができるようになるため、ユーザ(例えば、プレイヤ)が仮想カメラを直接又は間接に操作可能な場合に、仮想カメラの操作性を向上させることができるようになる。特に、仮想カメラの動作モードの切り替えをプレイヤが片手でもできるようになるので、ビデオゲーム処理装置を携帯端末とした場合にその可搬性を向上させることができるようになる。
また、上述した実施の形態では、ビデオゲーム処理装置100が、プレイヤによるタッチ操作の内容に応じて、仮想空間におけるプレイヤキャラクタの位置を制御する(例えば、ステップS201)構成としているので、プレイヤが仮想カメラの操作を意識するだけでプレイヤキャラクタも移動させることが可能な、操作性の良いビデオゲームを提供することができるようになる。
また、上述した実施の形態では、ビデオゲーム処理装置100が、第1規則(例えば、前進規則)に従って制御される仮想カメラの位置に基づいてプレイヤキャラクタPCを前進又は後退させる(例えば、ステップS201)構成としているので、プレイヤに対して直観的に操作可能なビデオゲームを提供することができるようになる。
また、上述した実施の形態では、ビデオゲーム処理装置100が、仮想空間における基準位置(例えば、プレイヤキャラクタの位置)に対して仮想カメラの位置を近付ける又は遠ざける方向(例えば、プレイヤキャラクタが前進する方向)に仮想カメラの位置を移動させ(例えば、スキップS201)、基準位置又は基準位置とは異なる仮想空間における回転基準位置(例えば、プレイヤキャラクタの位置)を中心として仮想カメラの位置を回転させる(例えば、スキップS107,S204)構成としているので、プレイヤに対して、操作感の異なる複数の動作モードを利用して仮想カメラを操作可能なビデオゲームを提供することができるようになる。
また、上述した実施の形態では、ビデオゲーム処理装置100が、仮想カメラの位置の制御が開始されたことに応じて表示画面における操作領域(例えば、スライド操作受付領域SA)を設定し(例えば、ステップS202)、設定した操作領域に対応する算定基準と変更操作後のタッチ位置とに基づいて仮想カメラの位置を制御する(例えば、ステップS204)構成としているので、スライド操作を受け付ける範囲を容易に調整することができるようになる。
また、上述した実施の形態では、ビデオゲーム処理装置100が、タッチ操作を所定時間検出したことに応じて仮想カメラの位置の制御を開始し(例えば、ステップS201)、 仮想カメラの位置の制御を開始した後タッチ操作の終了(例えば、プレイヤが指をタッチパネルから離したことや、タッチ位置のスライド操作受付領域SA外への移動)を検出したことに応じて、仮想カメラの移動を終了する(例えば、ステップS207)構成としているので、仮想カメラ制御の開始と終了とを容易に操作可能なビデオゲームを提供することができるようになる。
また、上述した実施の形態では、ビデオゲーム処理装置100が、仮想カメラの移動が制御されているときにプレイヤによるタッチ位置の変更操作を検出した場合(例えば、ステップS203のY)、プレイヤキャラクタの移動方向を当該変更操作の内容に応じて変更する(例えば、ステップS204)構成としているので、プレイヤキャラクタの移動方向を変更するとき、仮想カメラの位置をプレイヤキャラクタに追従するように制御する場合と同様の表示画面を表示することができるようになる。
また、上述した実施の形態では、ビデオゲーム処理装置100が、タッチ操作を受け付けた位置を初期位置として設定し(例えば、ステップS102)、初期位置に対するタッチ操作を所定時間検出したか否かを判定し(例えば、ステップS104)、タッチ位置が初期位置から移動したことに応じて、当該移動がスライド操作であるか否かを所定の誤操作判定基準に従って判定し(例えば、ステップS107)、スライド操作でないと判定した場合に、初期位置を移動後のタッチ位置に更新し(例えば、ステップS111)、初期位置を更新した場合、更新後の初期位置に対するタッチ操作の時間を踏まえて初期位置に対するタッチ操作を所定時間検出したか否かを判定する構成としているので、プレイヤが意図しない入力であるか否かを効果的に判定して処理することができるようになる。
なお、初期位置を設定するための構成は上述した実施の形態に限定されず(図3のステップS102参照)、例えば、ビデオゲーム処理装置100が、タッチ操作を受け付けたことに応じて計時を開始し、タッチ位置が特定の範囲内(例えば、最初にタッチ位置を検出した位置を略中心とする特定形状の範囲内)に位置する時間が特定時間(例えば、1秒間)継続したときに、特定時間経過したときの初期位置を起点位置に設定して移動関連処理(例えば、ステップS200。図6参照。)を開始する構成としてもよい。このような構成とすることにより、プレイヤがタッチパネルの接触し、大きく位置をずらさない時間が一定時間経過した時に触れている位置を基準として仮想カメラの動作モードを変更させることができるようになる。また、この場合、上述した実施の形態と比べて、初期位置を更新する頻度を抑えることができるようになり、表示処理に要するビデオゲーム処理装置の負荷を軽減させることができるようになる。
なお、上述した実施の形態では特に言及していないが、ビデオゲーム処理装置100が、複数のタッチ位置を識別可能に検出し、タッチ位置が所定数(例えば、1ヶ所)の場合には、タッチ操作を所定時間検出したか否かにかかわらず所定の第1規則に従って仮想カメラの位置を制御し、タッチ位置が特定数(例えば、2ヶ所)の場合には、変更操作を検出したか否かにかかわらず所定の第2規則に従って仮想カメラの位置を制御する(例えば、2ヶ所の場合には左方向へ回転させ、3ヶ所の場合には右方向へ回転させる)構成としてもよい。このような構成とすることにより、プレイヤがタッチパネルにタッチする指の本数を契機として仮想カメラの動作モードを切り替え可能なビデオゲームを提供することができるようになる。
なお、上述した実施の形態では特に言及していないが、ビデオゲーム処理装置100が、複数の動作モードに対する操作入力を受け付ける構成としてもよい。すなわち、例えば制御部11が、1ヶ所のタッチ操作に応じて仮想カメラを前進または追従するように制御しているときに、タッチパネルにおける他の位置に対するスライド操作を受け付けた場合には、当該スライド操作を回転モードに対する操作入力であるとみなして仮想カメラの位置をプレイヤキャラクタの位置を中心に回転させる構成としてもよい。このような構成とすることにより、例えばプレイヤが、中指で前進モードや追従モードに対する操作入力を行いつつ(すなわち、プレイヤキャラクタと仮想カメラとを移動させつつ)、人差し指で仮想カメラの位置のみを移動させることが可能なビデオゲームを提供することができるようになる。
なお、上述した実施の形態では、ビデオゲーム処理装置100が、タッチパネルを備える場合を例にして説明したが、本発明の実施形態の構成はこれに限定されず、例えばビデオゲーム処理装置が、タッチパネル以外の操作受付手段(例えば、操作ボタン、操作スイッチ、操作キー、もしくは加速度センサまたはこれらを組み合わせて構成されたコントローラ)を備える構成としてもよい。すなわち、少なくともタッチパネル以外のコントローラを備えるビデオゲーム処理装置200が(図示せず)、コントローラの操作内容に応じて、表示装置の表示画面に仮想カメラにより撮影された仮想空間を表示することでビデオゲームの進行を制御する場合に、コントローラが備える操作部材(例えば、機械式ボタン)に対する押下操作を所定時間検出したことに応じて、所定の第1規則に従って仮想カメラの位置を制御し、押下操作の検出後所定時間の経過前に当該押下操作の終了を検出したことに応じて、所定の第2規則に従って仮想カメラの位置を制御する構成としてもよい。
なお、少なくともタッチパネル以外のコントローラを備えるビデオゲーム処理装置200が、コントローラの操作内容に応じて、仮想空間におけるプレイヤキャラクタの位置を制御する構成としてもよい。また、ビデオゲーム処理装置200が、第1規則(例えば、前進規則)に従って制御される仮想カメラの位置に基づいてプレイヤキャラクタを前進又は後退させる構成としてもよい。また、ビデオゲーム処理装置200が、仮想空間における起点位置に対して仮想カメラの位置を近付ける又は遠ざける方向に仮想カメラの位置を移動させ、基準位置又は基準位置とは異なる仮想空間における回転基準位置を中心として仮想カメラの位置を回転させる構成としてもよい。また、ビデオゲーム処理装置200が、押下操作を所定時間検出したことに応じて仮想カメラの位置の制御を開始し、仮想カメラの位置の制御を開始した後押下操作の終了を検出したことに応じて、仮想カメラの位置の制御を終了する構成としてもよい。
また、上述した実施の形態では特に言及していないが、ビデオゲーム処理装置100が、タッチパネルを備えた表示装置の表示画面に仮想カメラにより撮影された仮想空間を表示することでビデオゲームの進行を制御する場合に、表示画面に対するタッチ操作を検出したことに応じて、検出したタッチ位置を起点位置として設定し、起点位置を設定したことに応じて、特定の時間間隔(または、特定数のフレーム間隔)で現在のタッチ位置を現在位置として特定し、現在位置が一定時間変更しなかったことに応じて起点位置を当該現在位置に向かう方向に更新し、起点位置と現在位置との位置関係に応じて実行すべき処理(例えば、起点位置と現在位置との距離に応じた速度で、起点位置から現在位置に向かう方向に仮想カメラを移動させる処理)を特定し、特定した処理を実行する構成としてもよい。すなわち、例えばビデオゲーム処理装置100が、表示画面に対するタッチ操作を検出したことに応じて、検出したタッチ位置を起点位置として設定し、起点位置を設定したことに応じて、特定の時間間隔で現在のタッチ位置を現在位置として特定し、現在位置が一定時間変更しなかったことに応じて起点位置を当該現在位置に向かう方向に更新し、起点位置と現在位置との位置関係に基づいてタッチ位置の変更操作の内容を特定し、特定した変更操作の内容に基づいて仮想カメラの位置を制御する構成としてもよい。
図9は、ビデオゲーム処理装置100が起点位置を更新する場合の例を示す説明図である。移動フィールド表示画面が図8に示した状態で表示されている場合に(起点位置は更新されていないものとする)、プレイヤの指Pが図8に示す位置に一定時間停止していたとする。その場合、制御部11は、起点位置SPを、現在にタッチ位置(現在位置)に向かう方向に更新する(具体的には、位置情報を更新する)。すなわち、プレイヤの指Pが図8に示す位置に停止した状態が継続すると、制御部11は、図9に示すように、初期位置FPに対応する起点位置SPを、現在位置CPに対応する位置に向けて所定の速度で移動する。また、制御部11は、起点位置SPを更新することで、スライド操作受付領域SAを、初期位置FPに対応する位置から、現在位置CPに対応する位置に向かう方向に更新する。
なお、ビデオゲーム処理装置100が起点位置を更新する構成とする場合、制御部11が、起点位置と現在位置との距離に基づいて、起点位置の更新速度(あるいは、起点位置を現在位置に向けて移動させる速度)を決定する構成としてもよい。すなわち、例えばビデオゲーム処理装置100が、仮想カメラの球面上における移動速度に応じて起点位置を移動させる速度を制御する構成としてもよい。具体的には、回転角度が所定の閾値よりも小さければ起点位置の移動速度を遅くし、回転角度が所定の閾値よりも大きければ起点位置の移動速度を早くする構成としてもよい。
また、ビデオゲーム処理装置100が起点位置を更新する構成とする場合、制御部11が、起点位置SPを現在位置に向けて更新する軌跡は、更新を開始する位置から、更新を開始したときの現在位置に向かう直線である構成としてもよい。この場合、例えば図9に示す場合では、ビデオゲーム処理装置100は、スライド操作受付領域SAを、初期位置に対応する位置SA(=FP)から、位置901を通過して、現在位置に対応する位置SA(CP)に移動する。なお、起点位置の更新に関する構成は、起点位置が所定速度で直線的に移動する構成に限定されず、例えばビデオゲーム処理装置100が、瞬時に起点位置SPを現在位置CPに移動する構成としてもよいし、起点位置SPがプレイヤによるタッチ位置の軌跡に沿って移動するように移動する構成としてもよい。
また、上述した実施の形態では特に言及していないが、ビデオゲーム処理装置100が、所定操作を受け付けたことに応じて、仮想カメラの位置を所定操作に応じて予め定義された移動方法で移動する構成としてもよい。すなわち、例えばビデオゲーム処理装置100が、プレイヤキャラクタPCが表示された領域に対するダブルタップを受け付けたことに応じて、瞬時に仮想カメラを現在の向きのYaw180度判定した位置に切り替える(または、仮想空間におけるプレイヤキャラクタの位置を中心に高速で180度回転させる)構成としてもよい。また、このときビデオゲーム処理装置100が、プレイヤキャラクタの向き瞬時にまたは所定速度でカメラ方向へ向かせる構成としてもよい。
なお、上述した実施の形態では、ビデオゲーム処理装置100がゲームカートリッジ20から読み取ったゲームプログラムに基づいて上述したゲーム処理などの各種の処理を実行する構成としていたが、ビデオゲーム処理装置100が、インターネットなどの通信ネットワークを介してゲームプログラムの一部又は全部を取得するようにしてもよい。また、ビデオゲーム処理装置100がゲームサーバとして機能し、通信ネットワークを介してゲームプログラムの一部又は全部をゲーム端末に提供するようにしてもよい。
また、上述した実施の形態では、ビデオゲーム処理装置100は、自己が備える記憶装置(記憶部12)に記憶されている各種制御プログラム(例えば、ビデオゲーム処理プログラム)に従って、上述した各種の処理を実行する。