以下、本発明の一実施の形態に係るゲームプログラムおよびゲームシステムについて、図面を参照しつつ説明する。
[ハードウェアの構成]
本実施の形態におけるゲームシステムは、携帯型のビデオゲーム機または携帯電話等の小型のゲーム装置に適用できる。以下ではこのようなゲーム装置を例に、本発明の実施の形態について説明する。なお、本実施の形態の適用対象は上記のような小型ゲーム装置に限られない。本実施の形態は、例えば、タッチスクリーンを有する操作デバイスと、仮想ゲーム空間を表示する液晶ディスプレイ等の表示デバイスとを別々に備えるゲームシステムにも適用可能である。
図1は、本実施の形態に係るゲーム装置1のハードウェア構成を示すブロック図である。図1に示すようにゲーム装置1は制御部30を備えている。制御部30は、CPU11、描画データ生成プロセッサ12、RAM(Random Access Memory)13、ROM(Read Only Memory)14、描画処理プロセッサ15、および音声処理プロセッサ16を備えている。さらに、ゲーム装置1は、VRAM(Video-RAM)20、操作入力インタフェース21、タッチスクリーン2、アンプ22、スピーカ23、イヤホン端子24、外部バスインタフェース26、および無線通信モジュール27を備えている。CPU11、描画データ生成プロセッサ12、RAM13、ROM14、描画処理プロセッサ15、音声処理プロセッサ16、操作入力インタフェース21、外部バスインタフェース26、および無線通信モジュール27が、バス10を介して相互にデータ伝送可能に接続されている。
外部バスインタフェース26は、ゲーム装置1をUSB(Universal Serial Bus)ケーブル等の外部バスを介して他のコンピュータ装置と接続する。外部バスインタフェース26は、接続された他のコンピュータ装置(記録媒体の一種)からゲームプログラム5aおよびゲームデータ5bをロードする。ゲームプログラム5aは、例えばプレイヤキャラクタと敵キャラクタとが仮想ゲーム空間にて対戦する内容のアクションゲームをゲーム装置1に実行させるためのコンピュータプログラムである。また、ゲームデータ5bには、上記ゲームを実行する上で必要なデータが含まれている。例えば、ゲームデータ5bは、仮想ゲーム空間を構成する背景の画像データ、ステータス等の情報表示用の画像データ、十字キー等の仮想操作子の画像データ、効果音またはBGM等の音声データ、文字または記号によるメッセージデータ等を含む。
無線通信モジュール27は、HSPA(High Speed Packet Access)等の通信規格に準拠した無線通信によって、インターネット上のサーバ装置との間でデータ通信を行う。このデータ通信により、サーバ装置からゲームプログラム5aおよびゲームデータ5bをダウンロードでき、あるいは、他のゲーム装置1との間で通信できる。本実施の形態におけるゲーム装置1は、外部バスインタフェース26または無線通信モジュール27を介してロードしたゲームプログラム5aおよびゲームデータ5bに基づいて、ゲームを実行することができる。また、無線通信モジュール27により他のゲーム装置1との間でインターネットを介して通信することにより、他のユーザが操作するキャラクタと対戦することも可能である。
RAM13には、ロードエリアおよびワークエリアが設定されている。ロードエリアには、外部バスインタフェース26または無線通信モジュール27を介してロードしたゲームプログラム5aおよびゲームデータ5bが格納される。ワークエリアは、CPU11がゲームプログラム5aを実行する際に使用される。ROM14には、外部バスインタフェース26または無線通信モジュール27を介するローディング機能等のゲーム装置1の基本プログラムが記憶されている。
CPU11は、RAM13にロードしたゲームプログラム5aを、後述する仮想操作子V2(図3参照)に対するユーザの操作に応じて実行し、ゲーム進行を制御する。すなわち、ユーザに操作されることによって仮想操作子V2から操作信号が入力されると、CPU11は、ゲームプログラム5aに従ってその操作信号に対応する所定のゲーム進行処理を行う。この処理結果は、ゲーム進行を示す画像(フレーム毎のゲーム画像)としてタッチスクリーン2に表示される。この際、CPU11は、必要に応じて、音声信号を出力し、スピーカ23またはイヤホン端子24から音声を出力させる。
より具体的には、CPU11は、ユーザにより入力された操作信号に基づき、タッチスクリーン2に表示すべきゲーム画像の内容を決定する。描画データ生成プロセッサ12は、CPU11が決定した内容に対して必要な描画データを生成し、描画処理プロセッサ15に転送する。描画処理プロセッサ15は、描画データに基づいてゲーム画像の描画処理を行う。例えば、描画処理プロセッサ15は、描画データに基づいて1/60秒毎にゲーム画像を生成し、生成したゲーム画像をVRAM20に書き込む。タッチスクリーン2は、半透過型カラー液晶ディスプレイとバックライトLED(Light Emitting Diode)とを有し、VRAM20に書き込まれたゲーム画像を表示する。
タッチスクリーン2は、上記液晶ディスプレイおよびバックライトLEDの他に、液晶ディスプレイ上に配設されたタッチパネル等の入力手段を有している。したがって、ユーザが手の指先等でタッチスクリーン2上に接触することにより、その接触位置に関する情報が、操作入力インタフェース21およびバス10を介してCPU11へ入力される。後述するように、ユーザが予め定められた操作態様で操作するようにタッチスクリーン2に触れることにより、タッチスクリーン2にボタンまたはレバー等の物理操作子を模した仮想操作子V2が表示され、ユーザの操作態様に応じた所定の操作入力を行うことができる。
また、CPU11は、ゲームの進行に応じて、スピーカ23から出力すべき効果音またはBGM等の音声を決定し、その音声を発音するための音声データ(ゲームデータ5bに含まれる音声データ)をRAM13から読み出して音声処理プロセッサ16に入力する。音声処理プロセッサ16は、DSP(Digital Signal Processor)で構成されている。音声処理プロセッサ16は、CPU11によって入力された音声データに対して所定の効果(例えば、リバーブ、コーラス等)を付与した後、アナログ信号に変換して、アンプ22に出力する。アンプ22は、音声処理プロセッサ16から入力された音声信号を増幅し、スピーカ23およびイヤホン端子24から音声を出力させる。
[制御部の機能的構成]
図2は、図1に示すゲーム装置1の機能的な構成を示すブロック図である。図3は、図1に示すゲーム装置1でのゲームのプレイ中のゲーム画像の一例を示す模式図である。上述したように、ゲーム装置1は、CPU11、描画データ生成プロセッサ12、RAM13、ROM14、描画処理プロセッサ15、および音声処理プロセッサ16等を含む制御部30を備えたコンピュータとして動作する。図2に示すように、ゲーム装置1の制御部30は、ゲームプログラム5aを実行することによって、ゲーム画面表示手段31、操作対象表示手段32、操作受付手段33、操作対象制御手段34、基準点設定手段35、操作子設定手段36、および、仮想空間生成手段37等の機能を発揮する。
仮想空間生成手段37は、プレイヤキャラクタP1が行動する仮想空間(仮想ゲーム空間)Sを生成する。仮想空間Sには、プレイヤキャラクタP1およびその他のオブジェクトが配置される。その他のオブジェクトには、例えば、敵キャラクタ等の移動オブジェクトおよび岩または木等の固定オブジェクトが含まれる。仮想空間生成手段37は、プレイヤキャラクタの移動に伴って、ゲームデータ5bに含まれるオブジェクトおよびテクスチャなどのデータを読み出し、三次元の仮想空間Sを生成する。
ゲーム画面表示手段31は、仮想空間Sに配置された所定の仮想カメラで仮想空間Sを撮影したときの二次元画像を生成し、タッチスクリーン2の第1領域A1にゲーム画面Dとして表示する。
操作対象表示手段32は、ゲーム画面にユーザの操作対象であるプレイヤキャラクタP1を表示する。操作対象表示手段32は、ゲームデータ5bに含まれるプレイヤキャラクタP1のデータを読み出し、ゲーム画面に表示する。操作対象制御手段34は、後述するユーザの操作に基づいてプレイヤキャラクタP1の動作を制御する。これによりゲーム画面に表示されるプレイヤキャラクタP1が仮想空間S内で行動する。
さらに、ゲーム画面表示手段31は、ユーザがプレイヤキャラクタP1の動作等を指示する際の操作位置の目安となる仮想操作子V2をタッチスクリーン2に表示する。制御部30は、仮想操作子V2をタッチスクリーン2に表示するために、操作受付手段33、基準点設定手段35、および、操作子設定手段36の機能を発揮する。
操作受付手段33は、ユーザがタッチスクリーン2に対して行った操作を受け付ける。より具体的には、例えばユーザがタッチスクリーン2の第1領域A1の一部の領域である第2領域A2に接触すると、操作受付手段33はその接触位置を検出し、この接触位置を含む所定の操作領域への操作があったものと判断する。なお、本明細書におけるタッチ操作(タッチスクリーン2への接触による操作)には、タッチスクリーン2への指等の接近を検知する近接検知に基づく操作が含まれる。
基準点設定手段35は、タッチスクリーン2上に所定の基準点Rを設定する。操作子設定手段36は、仮想操作子V2の第1領域A1上の位置を、基準点Rに基づき設定する。ゲーム画面表示手段31は、設定された第1領域A1上の位置に仮想操作子V2を表示する。仮想操作子V2の設定および表示態様については以下で詳述する。
[仮想操作子および操作領域について]
図3〜図5を参照して、仮想操作子V2についてより詳しく説明する。図4は、本実施の形態における仮想操作子の表示手順を例示するフローチャートである。また、図5は、図4のフローチャートに基づいて仮想操作子が設定される様子を模式的に示す図である。
仮想操作子V2は、仮想操作子V2内を移動し、当該仮想操作子V2の操作位置を示す操作位置オブジェクトV1を含んでいる。言い換えると、仮想操作子V2は、操作位置オブジェクトV1が仮想操作子V2の操作領域として仮想操作子V2の境界部内を移動可能に構成されている。
仮想操作子V2は、操作対象であるプレイヤキャラクタP1に効果を生じさせない無効操作位置V3と、プレイヤキャラクタP1に所定の効果を生じさせる一または複数の有効操作位置と、を含んでいる。本実施の形態における仮想操作子V2の有効操作位置は、仮想操作子V2の境界部内の無効操作位置V3以外の領域である。すなわち、仮想操作子V2の有効操作位置は、無効操作位置V3以外の操作領域内に連続的に設定される。
本実施の形態において、仮想操作子V2は、プレイヤキャラクタP1の移動操作を行うための操作子として構成される。より詳しくは、仮想操作子V2は、仮想カメラの撮影方向に対する移動方向を入力するための操作子として構成される。したがって、無効操作位置V3は、プレイヤキャラクタP1の移動を停止させる位置(動作停止位置)として設定され、仮想操作子V2の境界部内のその他の領域は、プレイヤキャラクタP1を移動させる位置として設定される。
操作位置オブジェクトV1および仮想操作子V2(操作位置オブジェクトV1の移動領域)は、それぞれ所定の直径を有する円として表示される。操作位置オブジェクトV1は、ユーザの継続的なタッチ操作(スライド操作)に応じて基準位置(後述する基準点Rを中心とする無効操作位置V3)に対して相対移動可能に構成されている。プレイヤキャラクタP1の動作を制御する操作対象制御手段34は、仮想操作子V2の操作位置に応じた方向に、操作対象であるプレイヤキャラクタP1が移動するように制御する。
例えば、仮想操作子V2の操作位置(操作位置オブジェクトV1)が基準位置より上方に位置する場合、操作対象制御手段34は、プレイヤキャラクタP1を仮想カメラの撮影方向(すなわち、ゲーム画面Dの奥行方向)に移動させる。なお、以下ではプレイヤキャラクタP1における仮想カメラの撮影方向への移動を単に前方への移動と称する。また、例えば、仮想操作子V2の操作位置が仮想操作子V2の基準位置より左方または右方に位置する場合、操作対象制御手段34は、プレイヤキャラクタP1を仮想カメラの撮影方向に交差する向き(すなわち、ゲーム画面Dの左方向または右方向)に移動させる。
図3に示すように、仮想操作子V2による操作を行うためのタッチスクリーン2の第2領域A2は、タッチスクリーン2の一部の領域(左半分の領域)に設定されている。すなわち、仮想操作子V2は、ユーザの左親指によるタッチ操作が行い易い位置に設定され得る。残りの第3領域A3は、他の仮想操作子(図示せず)による操作を行うための領域として設定されてもよい。また、第2領域A2の一部に他の仮想操作子が予め表示されていてもよい。この場合、他の仮想操作子が表示されている領域にユーザがタッチ操作した場合、第2領域A2内へのタッチ操作であるにもかかわらず当該他の仮想操作子に対する操作入力が行われたと判定される。
第2領域A2内へのタッチ操作が行われていない場合、図5の第1状態51に示すように、プレイヤキャラクタP1は移動停止している。この状態では、仮想操作子V2はゲーム画面Dには表示されていない。
操作受付手段33は、タッチスクリーン2へのユーザの操作を受け付ける。仮想操作子V2に関して、操作受付手段33は、第2領域A2へのタッチ操作が行われたか否かを判定する(ステップS1)。第2領域A2へのユーザのタッチ操作が行われたと判定された場合(ステップS1でYes)、基準点設定手段35は、ユーザの接触位置Tに基づいて基準点Rを設定する(ステップS2)。
なお、ここで、第2領域A2にメニュー画面等の他の仮想操作子が表示されている場合、当該他の仮想操作子が表示されている領域以外の第2領域A2にタッチ操作が行われたと判定された場合、ゲーム画面表示手段31は、当該他の仮想操作子の表示を縮小または消去する処理を行ってもよい。
図5の第2状態52は、第1状態51におけるユーザの接触位置T近傍(拡大枠51a)を拡大して示している。基準点Rは、接触位置Tに対して所定距離(オフセット距離L)下方にオフセットされた位置に設定される。また、操作子設定手段36は、仮想操作子V2の第1領域A1上の位置を、基準点Rに基づき設定する。より具体的には、操作子設定手段36は、基準点Rからオフセット距離L上方にオフセットした位置に仮想操作子V2の初期状態における操作位置(操作位置オブジェクトV1の初期位置)を設定する(ステップS3)。
さらに、操作子設定手段36は、基準点Rに基づいて仮想操作子V2の第1領域A1上の位置を設定する(ステップS4)。より具体的には、操作子設定手段36は、基準点Rを仮想操作子V2の中心位置として設定する。ゲーム画面表示手段31は、タッチスクリーン2上の設定された位置に仮想操作子V2を表示する。この結果、図5の第3状態53に示すように、仮想操作子V2の初期状態における操作位置は、ユーザの接触位置Tに設定される。
仮想操作子V2の中心位置(すなわち、基準点R)を含む一部領域は、プレイヤキャラクタP1が移動を行わない無効操作位置V3として設定される。この結果、図3および図5の第4状態54に示されるように、仮想操作子V2の初期状態における操作位置は、プレイヤキャラクタP1が移動を行わない無効操作位置V3から所定の方向(上方)にオフセットされている。すなわち、仮想操作子V2の初期状態における操作位置は、プレイヤキャラクタP1を所定の方向(前方)に移動させる位置に設定される。したがって、ユーザが最初にタッチ操作した位置でタッチ操作を継続している間、操作対象制御手段34は、プレイヤキャラクタP1を前方(仮想カメラの撮影方向)に移動させる。
本実施の形態によれば、基準点Rが設定された段階で、仮想操作子V2の初期状態における操作位置が、プレイヤキャラクタP1に所定の効果を生じさせる有効操作位置に配置される。したがって、ユーザが特別な操作を行わなくても(タッチ操作を行うだけで)プレイヤキャラクタP1に所定の効果を生じさせることができる。したがって、タッチスクリーン2に表示された仮想操作子V2を介してユーザが操作するゲームにおいて、ユーザの操作性の向上を図ることができる。
また、基準点Rがタッチスクリーン2にユーザが触れた接触位置Tに基づいて設定されるため、ユーザの接触位置Tに基づいて仮想操作子V2および仮想操作子V2の初期状態における操作位置を設定することができる。したがって、ユーザが目視によることなく直観的に操作を行うことができる。さらに、上記態様によれば、仮想操作子V2の無効操作位置V3が仮想操作子V2の初期状態における操作位置に対してオフセットした位置に配置される。このため、ユーザの接触位置Tに基づいて基準点Rの位置を設定した場合に、ユーザの接触位置Tに仮想操作子V2の初期状態における操作位置(操作位置オブジェクトV1)を表示させつつ、当該仮想操作子V2の初期状態における操作位置をプレイヤキャラクタP1が所定の動作を行う有効操作位置に設定することができる。
また、本実施の形態によれば、基準点Rが設定された段階でプレイヤキャラクタP1の移動動作が開始される。したがって、プレイヤキャラクタP1を移動させる操作を行うユーザに、操作性(操作に対する反応)がよいと感じさせることができる。しかも、仮想操作子V2の初期状態における操作位置に対応するプレイヤキャラクタP1の移動方向を仮想カメラの撮影方向とすることにより、仮想操作子V2の初期状態における操作位置に対応する移動方向がユーザの思った方向と違う方向となる確率を減らし、ユーザに違和感を生じさせないようにすることができる。
ゲーム画面表示手段31は、ユーザのタッチ操作が継続しているか否かを判定する(ステップS5)。ユーザのタッチ操作が終了し、タッチスクリーン2へのユーザの接触が解除された場合(ステップS5でYes)、仮想操作子V2をゲーム画面Dから消去する(ステップS6)。これに合わせて、基準点設定手段35は、基準点Rの設定を初期化する。この結果、プレイヤキャラクタP1は、図5の第1状態51に戻り、移動停止する。
一方、ゲーム画面表示手段31は、ユーザの接触状態が継続している場合(ステップS5でNo)、ユーザの継続的な操作(スライド操作)に応じて仮想操作子V2の操作位置(操作位置オブジェクトV1の位置)を移動させる(ステップS7)。この際、ユーザの接触位置Tが仮想操作子V2の内部から外部に移動しない限り(操作位置オブジェクトV1が仮想操作子V2の境界部に到達しない限り)、仮想操作子V2は移動しない。このため、ユーザのスライド操作に応じて仮想操作子V2の操作位置(操作位置オブジェクトV1の仮想操作子V2における位置)が変化する。上述の通り、操作対象制御手段34は、操作位置オブジェクトV1の仮想操作子V2における位置に応じた方向に、操作対象であるプレイヤキャラクタP1が移動するように制御する。また、ユーザが仮想操作子V2を無効操作位置V3に位置させるように操作した場合、操作対象制御手段34は、プレイヤキャラクタP1の移動を停止させる。これにより、ユーザのスライド操作継続中でもプレイヤキャラクタP1の移動を停止させることができる。
なお、操作位置オブジェクトV1の位置が基準点Rから外方(境界部)に向かうほどプレイヤキャラクタP1の移動速度が速くなるように制御される。この場合、仮想操作子V2の初期状態における操作位置は、プレイヤキャラクタP1の移動速度が当該プレイヤキャラクタP1の移動速度の最高速度より低速な位置(すなわち、仮想操作子V2の中心部寄り)に設定される。例えば、オフセット距離Lは、仮想操作子V2を画する境界部の半径の1/2(仮想操作子V2の中心位置から中心位置と境界部との中点までの距離)より短く設定される。
ここで、操作子設定手段36は、ユーザの接触位置Tが仮想操作子V2の境界部に到達したか否かを判定する(ステップS8)。より具体的には、操作子設定手段36は、操作位置オブジェクトV1が仮想操作子V2の境界部に到達したか否かを判定する。図6は、図1に示すゲーム装置1でのゲームのプレイ中のゲーム画像の他の一例を示す模式図である。図6に示す例では、操作位置オブジェクトV1が仮想操作子V2の中心位置より右方かつ仮想操作子V2の境界部近傍に位置している状態を示している。この場合、プレイヤキャラクタP1は、仮想カメラの撮影方向に対して右方向に移動する。
このような場合に、操作子設定手段36は、操作位置オブジェクトV1が仮想操作子V2の境界部に到達したと判定する(ステップS8でYes)。この場合、操作子設定手段36は、仮想操作子V2の境界部に近接する方向へのユーザの接触位置Tの移動(操作位置オブジェクトV1の移動)に応じて仮想操作子V2を移動させる(ステップS9)。すなわち、操作子設定手段36は、操作位置オブジェクトV1が仮想操作子V2の境界部を越えて移動しようとした場合に、当該操作位置オブジェクトV1の移動に合わせて仮想操作子V2も移動させる。ステップS7からステップS9までの処理は、ユーザの接触状態が解除されるまで(ステップS5でYesとなるまで)継続される。
図7は、図6に示すゲーム画像から仮想操作子が移動する様子を示す図である。図7の第1状態71は、図6におけるゲーム画面Dにおける仮想操作子V2の状態から、ユーザがさらに右方へスライド操作した状態を示している。図7の第1状態71における符号V1’,V2’は、図6における操作位置オブジェクトV1および仮想操作子V2の位置を示している。第1状態71において、ユーザのスライド操作に基づいて操作位置オブジェクトV1がV1’の位置からさらに右方に移動し、これに伴って仮想操作子V2もV2’の位置から右方に移動している。なお、仮想操作子V2が移動しても、操作位置オブジェクトV1の仮想操作子V2における位置が変化しない限り、プレイヤキャラクタP1の移動制御に変化は生じない。
仮想操作子V2の移動を許容することにより、ユーザが操作を継続しているつもりであるにもかかわらずユーザの操作位置が仮想操作子V2から外れ、プレイヤキャラクタP1の動作が停止してしまう等のユーザが意図しない操作入力となることを防止することができる。しかも、操作位置オブジェクトV1および仮想操作子V2の位置がユーザの接触位置Tに追従しているため、ユーザが、操作位置オブジェクトV1を仮想操作子V2の境界部に近接している方向とは異なる方向に小さい操作量で操作しても当該ユーザの操作に応じて操作位置オブジェクトV1の仮想操作子V2における位置を変化させることができる。したがって、ユーザに、操作に対する反応が悪いと感じさせることを防止することができる。
仮想操作子V2を移動させる処理においては、仮想操作子V2は、基準点Rの位置を中心として表示されるように設定され、基準点Rの位置が移動することによって仮想操作子V2が移動するようにしてもよい。これに代えて、基準点Rの位置はユーザの接触位置Tに基づいて設定された後、当該ユーザの操作継続中においては変化せず、仮想操作子V2の中心位置が基準点Rとは独立して移動可能に設定されてもよい。
本実施の形態においては、上記の通り、仮想操作子V2の初期状態における操作位置は第2領域A2においてユーザが触れた位置に設定され、第2領域A2外には設定されない。一方、図7の第2状態72に示されるように、操作位置オブジェクトV1を含む仮想操作子V2の移動は、第2領域A2を越えて第3領域A3に進入することも許容される。この場合、例えば第3領域A3に他の仮想操作子が設定されている場合、仮想操作子V2外の第3領域A3をユーザが操作した場合、これに対応する他の仮想操作子の設定および表示を実行可能である。
なお、何れの場合も仮想操作子V2の第1領域A1外への移動は、禁止される。すなわち、第1領域A1の境界部に仮想操作子V2の境界が位置すると仮想操作子V2は当該境界の方向にはそれ以上移動できなくなる。
一方、ユーザのスライド操作継続中において、図7の第1状態71における操作位置オブジェクトV1の位置から逆方向(左方)へスライド操作の方向が変化した場合、図7の第3状態73に示すように、仮想操作子V2は第1状態71と同じ位置で停止したまま操作位置オブジェクトV1が仮想操作子V2内を左方へ移動する。図7の第3状態73においては、仮想操作子V2の操作位置が中心位置より左方に位置しているため、操作対象制御手段34は、プレイヤキャラクタP1を仮想カメラの撮影方向に対して左方向に移動させるように制御する。
本実施の形態において、基準点Rの設定前(タッチ操作前)において、プレイヤキャラクタP1の向きが仮想カメラの撮影方向と一致していない場合(図5の第1状態51のようにゲーム画面DにプレイヤキャラクタP1の後姿が表示されていない場合)、ゲーム画面表示手段31は、仮想カメラの撮影方向をプレイヤキャラクタP1の向きに合わせるように仮想カメラを移動させる。仮想カメラの移動後、操作対象制御手段34はプレイヤキャラクタP1の移動を開始する。すなわち、結果的にプレイヤキャラクタP1は、タッチ操作時においてプレイヤキャラクタP1が向いている方向に移動を開始する。
仮想操作子V2の初期状態における操作位置に対応するプレイヤキャラクタP1の移動方向と仮想カメラの撮影方向とを合わせた後にプレイヤキャラクタP1の移動を開始することにより、仮想操作子V2の初期状態における操作位置に対応する移動方向がユーザの思った方向と違う方向となる確率を減らし、ユーザに違和感を生じさせないようにすることができる。
[他の実施形態]
以上、本発明の実施の形態について説明したが、本発明は上記実施の形態に限定されるものではなく、その趣旨を逸脱しない範囲内で種々の改良、変更、修正が可能である。
例えば、上記実施の形態においては、ユーザのタッチ操作に基づいて基準点Rが設定され、仮想操作子V2がタッチスクリーン2に表示される態様を説明した。これに代えて、基準点Rは、予め定められた位置に設定され、これに基づいて、仮想操作子V2は、予め表示されていてもよい。このような態様においても、基準点Rが設定された段階で、仮想操作子V2の初期状態における操作位置が、プレイヤキャラクタP1が所定の動作を行う位置に配置される。例えば、プレイヤキャラクタP1の移動画面表示中に敵キャラクタに遭遇した場合に戦闘画面に切り替わるゲームにおいて、戦闘終了後、再び移動画面に復帰した際に、上記態様で仮想操作子V2が表示されてもよい。この場合、戦闘画面から移動画面に復帰後、プレイヤキャラクタP1がユーザの操作の有無にかかわらず所定の方向に移動を開始する態様が実現できる。
このような態様においても、ユーザが特別な操作を行わなくても(タッチ操作を行わなくても)プレイヤキャラクタP1に所定の効果を生じさせることができる。したがって、タッチスクリーン2に表示された仮想操作子V2を介してユーザが操作するゲームにおいて、ユーザの操作性の向上を図ることができる。この場合、ユーザの仮想操作子V2への接触が解除されると、操作位置オブジェクトV1が初期位置に戻る、または、別の仮想操作子が操作されると、操作位置オブジェクトV1が初期位置に戻る等、何らかの初期位置復帰処理が行われてもよい。
また、上記実施の形態において、基準点Rが初期設定され、仮想操作子V2の初期状態における操作位置が設定および表示される第2領域A2は、第1領域A1の左半分の領域に設定される態様を説明した。これに代えて、第2領域A2は、右半分、左下部分、または右下部分等、タッチ操作が可能な第1領域A1内であれば自由に設定可能である。第1領域A1全域が第2領域A2に設定されてもよい。この場合、第1領域A1と第2領域A2とが同じ領域となる。
また、上記実施の形態において、第1領域A1は、ゲーム画面Dの全面に設定されているが、ゲーム画面Dの一部の領域を、ユーザがタッチ操作可能な第1領域A1として設定されてもよい。この場合、ゲーム画面Dにおける第1領域A1に設定されていない領域には、ゲームスコア、ゲームのステータス等を表示する表示領域、または、装飾画像等が表示され得る。
また、上記実施の形態において、操作位置オブジェクトV1および仮想操作子V2の形状が円である態様を例示したが、これに限られず、これらの形状を種々の形状とすることができる。
また、上記実施の形態において、仮想操作子V2は、ゲーム画面上に表示される操作位置オブジェクトV1と当該操作位置オブジェクトV1が移動可能な操作領域で構成される態様を説明した。これに代えて、例えば仮想操作子V2として基端部が基準点Rに位置する操作スティック状の仮想操作子V2が表示され、仮想操作子V2の先端部(上記説明における操作位置オブジェクトV1の位置に相当)を所定領域内で移動させることにより、当該スティック状の仮想操作子V2を先端部が位置する方向に倒し込むような表現としてもよい。また、仮想操作子V2は、それぞれをタッチ操作可能な複数の入力操作子を有していてもよい。この場合、仮想操作子V2の初期状態における操作位置は、複数の入力操作子のうちの何れかがタッチ操作されている位置に設定される。また、複数の入力操作子のうちの少なくとも1つは、何れの入力操作も行わない無効操作位置として設定される。
また、仮想操作子V2の表示態様は、上記実施の形態に限られず、例えば、仮想操作子V2は、操作位置オブジェクトV1が非透過に表示され、操作位置オブジェクトV1以外の領域(操作位置オブジェクトV1の移動領域)が仮想空間Sの映像が透過するように半透明に表示されてもよい。これに代えて、操作位置オブジェクトV1が半透明に表示されてもよい。また、操作位置オブジェクトV1以外の領域は、非表示(透明)としてもよい。この場合、仮想操作子V2の外縁(境界部)は、非透過または半透明に表示されてもよい。
また、仮想操作子V2は、操作位置オブジェクトV1を表す円が表示され、その後、基準点Rを中心とする円が所定の大きさとなるまで徐々に拡大することにより仮想操作子V2の境界部を示す円が表示される表示態様を経て表示されてもよい。これに代えて、仮想操作子V2は、操作位置オブジェクトV1を表す円が表示され、その後、同心円が所定の大きさとなるまで徐々に拡大することにより仮想操作子V2の境界部を示す円が表示され、その後、当該境界部を示す円がオフセット距離L下方に移動する表示態様を経て表示されてもよい。
また、無効操作位置V3は、タッチスクリーン2上に表示されてもよいし、表示されなくてもよい。
また、上記実施の形態において、操作位置オブジェクトV1を含む仮想操作子V2の移動は、第2領域A2を越えて第3領域A3に進入することも許容される態様を例示した。これに代えて、仮想操作子V2の第3領域A3への移動を禁止してもよい。この場合、ユーザの接触位置Tが第2領域A2を越えて第3領域A3に進入しても操作位置オブジェクトV1および仮想操作子V2は第2領域A2で停止した状態となる。このとき、ユーザのスライド操作を有効として、プレイヤキャラクタP1を引き続き右方へ移動させてもよい。これに代えて、ユーザの接触位置Tが第3領域A3に進入した時点でユーザのスライド操作を無効としてもよい。
また、上記実施の形態では、基準点Rの設定前(タッチ操作前)において、プレイヤキャラクタP1の向きが仮想カメラの撮影方向と一致していない場合、ゲーム画面表示手段31は、仮想カメラの撮影方向をプレイヤキャラクタP1の向きに合わせるように仮想カメラを移動させる態様について例示した。これに代えて、操作対象制御手段34は、仮想カメラの撮影方向にプレイヤキャラクタP1の向きを合わせるようにプレイヤキャラクタP1を回転させてから、プレイヤキャラクタP1の移動(前方への移動)を開始してもよい。
また、上記実施の形態において、操作対象がプレイヤキャラクタP1である場合を説明したが、操作対象は、例えば乗物等、ユーザがゲームにおいて操作するオブジェクトであればこれに限定されない。
また、上記実施の形態において、仮想操作子V2が初期状態である場合に、プレイヤキャラクタP1を仮想カメラの撮影方向に移動させるような態様について説明したが、これに代えて、移動方向を、その時のプレイヤキャラクタP1の方向としてもよい。
また、上記実施の形態において、仮想操作子V2の初期状態における操作位置は仮想操作子V2の中心位置より上方に位置する態様について説明したが、これに限られない。例えば、プレイヤキャラクタP1を主にタッチスクリーン2の横方向に移動させる横スクロールのゲームにおいて、プレイヤキャラクタP1を移動させる仮想操作子V2の初期状態における操作位置は仮想操作子V2の中心位置より右方または左方(プレイヤキャラクタP1が主に移動する方向)に設定されてもよい。一のゲーム内で移動方向が変化する場合には、移動方向の変化に合わせて仮想操作子V2の初期状態における操作位置が変化してもよい。
また、上記実施の形態において、仮想操作子V2の操作に基づく所定の動作として、プレイヤキャラクタP1の移動動作が設定されている態様について説明したが、これに限られない。例えば、仮想カメラの移動(撮影方向の変更)、攻撃動作等、種々の動作を行う仮想操作子V2に適用可能である。特に、上記実施の形態で説明したような前方への移動等、そのゲームにおいて、頻繁に行われる動作/長い時間操作が継続されるような動作を行う仮想操作子V2に上記実施の形態で説明した仮想操作子V2の表示および動作態様が好適に適用される。
また、上記実施の形態では、第2領域A2に仮想操作子V2が設定される態様に基づいて例示したが、第2領域A2に設定される第1仮想操作子に加えて第3領域A3に第2仮想操作子が設定されてもよい。
図8は、本実施の形態の変形例におけるゲームのプレイ中のゲーム画像の一例を示す模式図である。本変形例において、基準点設定手段35は、第2領域A2において前記タッチスクリーンにユーザが触れた位置に基づいて第1の基準点R1を設定し、第3領域A3においてタッチスクリーン2にユーザが触れた位置に基づいて第2の基準点R2を設定する。操作子設定手段36は、第1の基準点R1に基づいて第1仮想操作子V21の位置を設定し、第2の基準点R2に基づいて第2の仮想操作子V22の位置を設定する。
例えば、第1仮想操作子V21は、操作対象であるプレイヤキャラクタP1を、無効操作位置V31に対する有効操作位置に応じた方向に移動させるための仮想操作子に設定される。また、第2仮想操作子V22は、仮想カメラの位置または角度を変更させるための仮想操作子に設定される。なお、第1仮想操作子V21を第3領域A3に設定し、第2仮想操作子V22を第2領域A2に設定してもよい。
本変形例において、第1仮想操作子V21の初期状態における操作位置は、対応する有効操作位置(無効操作位置V31からオフセットされた位置)に設定され、第2仮想操作子V22の初期状態における操作位置は、対応する無効操作位置V32に設定されてもよい。本変形例においては、操作位置オブジェクトV11を含む第1仮想操作子V21はタッチスクリーン2上に表示され、操作位置オブジェクトV12を含む第2仮想操作子V22はタッチスクリーン2上に表示されない(図8において破線で示している)。これに代えて、第2仮想操作子V22のうち、操作位置オブジェクトV12のみ表示されてもよいし、第2仮想操作子V22全体が表示されてもよい。また、第2仮想操作子V21が表示されなくてもよい。
また、仮想操作子V2(操作位置オブジェクトV1の移動領域)を複数の領域に分割し、操作位置オブジェクトV1が位置する領域に応じてプレイヤキャラクタP1に異なる動作を行わせてもよい。例えば、仮想操作子V2の中心位置より上方の領域を、プレイヤキャラクタP1がジャンプする動作を行う第1領域に設定し、仮想操作子V2の中心位置より下方の領域を、プレイヤキャラクタP1がしゃがむ動作を行う第2領域に設定し、仮想操作子V2の中心位置より右方の領域を、プレイヤキャラクタP1が攻撃する第3領域に設定し、仮想操作子V2の中心位置より左方の領域を、プレイヤキャラクタP1が防御する第4領域に設定し、仮想操作子V2の中心位置を無効操作位置に設定してもよい。このとき、仮想操作子V2の初期状態における操作位置は、4つの領域のうちの何れかの領域(例えば第4領域)に含まれるように設定される。
また、上記実施の形態において、仮想空間Sが三次元である場合を例示したが、仮想空間Sは、二次元であってもよい。この場合、プレイヤキャラクタおよびその他のオブジェクトも二次元のデータが用いられる。