(58)【調査した分野】(Int.Cl.,DB名)
タッチパネルを備え、当該タッチパネルに対するフリックを含むタッチ操作を受け付ける電子装置において実行されるゲームのためのプログラムであって、前記電子装置に、
プレイヤの操作によりゲームマップ上に配置されたプレイヤキャラクタを移動させるための画面を表示するステップと、
ゲームマップ上のプレイヤキャラクタの位置とゲームマップ上のプレイヤキャラクタが侵入できない移動不可能領域とに基づいて、複数の仮想コントローラから1つの仮想コントローラを決定するステップであって、前記仮想コントローラはフリック方向に対応したプレイヤキャラクタの移動方向を定めるものである、仮想コントローラを決定するステップと、
前記タッチパネルに対するフリックを検出するステップと、
前記検出されたフリックの方向を決定するステップと、
前記決定されたフリックの方向及び前記決定された仮想コントローラに基づいてプレイヤキャラクタを移動させるステップと、を実行させるプログラム。
サーバと、前記サーバにネットワークを介して接続され、タッチパネルを備え、及び当該タッチパネルに対するフリックを含むタッチ操作を受け付ける電子装置とを含むシステムであって、
プレイヤの操作によりゲームマップ上に配置されたプレイヤキャラクタを移動させるための画面を表示する画面表示手段と、
ゲームマップ上のプレイヤキャラクタの位置とゲームマップ上のプレイヤキャラクタが侵入できない移動不可能領域とに基づいて、複数の仮想コントローラから1つの仮想コントローラを決定する仮想コントローラ決定手段であって、前記仮想コントローラはフリック方向に対応したプレイヤキャラクタの移動方向を定めるものである、仮想コントローラ決定手段と、
前記タッチパネルに対するフリックを検出するフリック検出手段と、
前記検出されたフリックの方向を決定するフリック方向決定手段と、
前記決定されたフリックの方向及び前記決定された仮想コントローラに基づいてプレイヤキャラクタを移動させる移動制御手段と、
の各手段を前記サーバ又は前記電子装置が備える、システム。
サーバと、前記サーバにネットワークを介して接続され、タッチパネルを備え、及び当該タッチパネルに対するフリックを含むタッチ操作を受け付ける電子装置とを含むシステムの制御方法であって、
プレイヤの操作によりゲームマップ上に配置されたプレイヤキャラクタを移動させるための画面を表示するステップと、
ゲームマップ上のプレイヤキャラクタの位置とゲームマップ上のプレイヤキャラクタが侵入できない移動不可能領域とに基づいて、複数の仮想コントローラから1つの仮想コントローラを決定するステップであって、前記仮想コントローラはフリック方向に対応したプレイヤキャラクタの移動方向を定めるものである、仮想コントローラを決定するステップと、
前記タッチパネルに対するフリックを検出するステップと、
前記検出されたフリックの方向を決定するステップと、
前記決定されたフリックの方向及び前記決定された仮想コントローラに基づいてプレイヤキャラクタを移動させるステップと、
を備え、各ステップは前記サーバ又は前記電子装置により実行される制御方法。
【発明を実施するための形態】
【0017】
以下、図面を参照して、本発明の実施形態を説明する。本実施形態に係るゲームシステムは、ネットワークを介して複数の電子装置が接続されるシステムによって実現することができるが、一台の電子装置によっても実現することもできる。最初に一台の電子装置で実現する実施形態を説明し、その後ネットワークに接続されたシステムについて説明する。
【0018】
また本発明の実施形態に係るゲームシステムが提供するゲームは、プレイヤにより操作されるプレイヤキャラクタをゲーム上の仮想空間であるゲームフィールド(ゲームマップ)に配置させてプレイさせるものである。例えば当該ゲームは、ロールプレイングゲームを含む。以下で詳細に記載するように、当該ゲームにおいては、プレイヤはタッチ操作によりプレイヤキャラクタを移動させる。なおプレイヤとは、ゲームの実行に際して電子装置を操作するユーザであり、電子装置により操作されるキャラクタとは、プレイヤにより操作されるキャラクタを示す。なお本明細書においては主としてゲームシステムについて説明するが、ユーザが自らの操作により画面上のキャラクタを移動させる他のシステムにおいて利用することもできる。
【0019】
[電子装置により実現される実施形態]
図1は本発明の実施形態に係る電子装置100のハードウェア構成を示すブロック図である。電子装置100は処理部101、表示部102、入力部103、記憶部104、及び通信部105を備える。これらの各構成部はバス108によって接続されるが、それぞれが必要に応じて個別に接続される形態であってもかまわない。
【0020】
電子装置100は、好ましくはスマートフォンであるが、例えば、タブレット型コンピュータ、ビデオゲーム機、携帯型ビデオゲーム機、タッチパッド等の接触型入力装置を備えるコンピュータも含まれる。
【0021】
処理部101は、プログラム106、入力部103からの入力データ、又は通信部105から受信したデータに基づいて、ゲーム処理や画像生成処理などの各種の処理を行う。処理部101は、電子装置100が備える各部を制御するプロセッサを備えており、プロセッサが含むレジスタや記憶部104をワーク領域として各種処理を行う。
【0022】
表示部(ディスプレイ)102は、処理部101の制御に従って、ゲームの進行やプレイヤ操作に応じたゲーム画面を表示する。好ましくは液晶ディスプレイであるが、有機ELを用いたディスプレイやプラズマディスプレイ等であってもよい。
【0023】
記憶部104は、ハードディスク、メインメモリ、及びバッファメモリを含む。ハードディスクにはプログラム106が記憶される。ただしハードディスクは、情報を格納できるものであればいかなる不揮発性ストレージ又は不揮発性メモリであってもよく、着脱可能なものであっても構わない。また例えば電子装置100がスマートフォンである場合はROM及びRAMを含む。記憶部104には、プログラム106や当該プログラムの実行に伴って参照され得る各種のデータが記憶される。プログラム106は、オペレーティングシステム、又はビデオゲーム、ウェブブラウザ等のユーザ入力を要求するあらゆるアプリケーションのためのプログラムを含み、各種のデータには、例えばゲームに登場するオブジェクトなどの各種画像を表示するための画像データやゲーム中に記憶部104に書き込まれうるデータも含まれる。
【0024】
さらに記憶部104は、データベース107を含むことができる。この場合好ましくは、データベース107は、ゲームマップに関する情報を格納するマップ情報データベースと、プレイヤ入力に関する複数の仮想コントローラを格納するUI(ユーザインタフェース)データベースと、を含むことができる。
【0025】
通信部105は、移動体通信、無線LAN等の無線通信やイーサネット(登録商標)ケーブル、USBケーブル等を用いた有線通信を行う。この通信部105によって、プログラム106をサーバからダウンロードして、記憶部104に格納することもできる。
【0026】
入力部103は、タッチパネル、タッチパッド、キーボード、マウス、又はゲームコントローラ等のように使用者からの入力を受け付ける機能を有するものである。入力部103は、例えばタッチパネルのように、プレイヤがタッチした位置に基づいた入力を電子装置100に与える接触型入力部であるのが好ましい。電子装置100が入力部103としてタッチパネル110を備える場合、タッチパネル110は表示部102としても機能し、表示部102と入力部103は一体とした構造である。この場合タッチパネル110は、表示部102(入力部103)へのプレイヤのタッチによる入力を受け付け、プレイヤがタッチした位置に対応する座標を検出し、電子装置100に与える。検出方式は、静電容量方式などのあらゆる方式を含みうるが、タッチパネル110は、2以上の点を同時にプレイヤの指などがタッチしたことを検出し、検出した位置に対応する各座標情報を電子装置100に与えられるものであることが好ましい。表示部102と入力部103は、別の位置に配置される別個の形態であっても構わないが、本実施形態においては主に、タッチパネル110を備えた電子装置100について説明する。
【0027】
ここでタッチとは、指などがタッチパネル110に接触する動作や状態である。なおプレイヤによるタッチはプレイヤの指によるものとして説明するが、どの指によるタッチでもよく、又は例えばスタイラスペンのような、その他のものであってもよい。一方、リリースとは指などがタッチパネルから離れる動作や状態である。プレイヤは主にタッチパネル110をタッチやリリースすることにより操作する。このようなタッチ操作には、タッチ、ロングタッチ、マルチタッチ、リリース、スワイプ、タップ、ダブルタップ、ロングタップ、ドラッグ、及びフリックなどを含むことができる。例えばタップは、タッチに続いてタッチ位置を移動させずにリリースをする操作である。またフリックは、タッチに続いてタッチ位置を一方方向へ高速で変化させながらそのままリリースする操作であるが、タッチに続いてタッチ位置を変化させてそのままリリースする操作を含むこともできる。好ましくは、処理部101が、指などのタッチパネルへの接触、接触位置、接触時間又は接触回数に基づいてタッチ操作の種類の一部又は全部を判別する。
【0028】
タッチパネル110は、第1軸及び第1軸に実質的に直交する第2軸からなる座標平面を用いて、座標により位置が指定される。好ましくは
図2に示すように、第1軸は略長方形であるタッチパネル110の短辺と、第2軸はタッチパネル110の長辺と、実質的に平行であって、第1軸方向の座標軸(横軸)及び第2軸方向の座標軸(縦軸)により座標(x,y)として表される。処理部101はプログラム等を用いて、タッチパネル110により検出するタッチ位置を当該座標(x,y)データとして取得することができる。例えばタッチパネル110の検出精度が640ドット×1,136ドットである場合は、横軸方向に640ドット、縦軸方向に1,136ドットの分解能を有することができる。この場合のドットは1つの点であってもよいし、一定の領域(セル)であっても構わない。ただしドット間の距離は、通常タッチパネル(電子装置)毎に異なることに注意が必要である。本明細書において、特に言及が無い限り、「距離」は座標上の距離を表すものとする。なお
図2に示す座標設定はこの一例であり、座標軸はプログラムにより設定することもできる。また極座標を設定することもできるし、座標変換により他の座標系を設定することもできる。なお、表示部102と入力部103が別の位置に配置される別個の形態である場合、入力部103には上記のように座標を設定し、表示部102には入力部103の座標に対応する座標を設定することができる。
【0029】
図3は本発明の電子装置100の機能ブロック図の一例を示す。電子装置100は、タッチ検出手段301、画面表示手段302、仮想コントローラ決定手段303、移動制御手段304、記憶手段305、及び通信手段306を備える。
【0030】
タッチ検出手段301は、タッチパネル110上へのプレイヤによるタッチ位置やタッチ操作を検出する機能を有する。タッチ検出手段301は、好ましくはフリックを検出するフリック検出手段と、該フリックの方向を決定(又は取得)するフリック方向決定手段とを含む。フリック検出は、当分野において知られている任意の方法で実施することができ、フリック検出と同時にフリック方向を取得することもできる。
【0031】
以下にフリック検出方法の具体例を記載する。例えば、プレイヤによるタッチ開始位置S(x,y)=(x(1),y(1))、及びタッチ終了位置E(x,y)=(x(2),y(2))を検出し、変位量
を以下の式に基づいて算出する。ここで変位量は絶対値ではなく、正負を含んだ値である。
上記変位量の算出とともに、S(x,y)からE(x,y)までの経過時間Tを取得する。このように算出された変位量の絶対値D、及び経過時間Tに基づいてフリックを検出する。フリック方向の決定は、
に基づいて行う。例えば、
とのなす角度を、x(2)−x(1)及びy(2)−y(1)の正負符号とatan(アークタンジェント)とを用いて、又はatan2を用いて、算出することにより、フリック方向を決定することができる。
【0032】
画面表示手段302は、ゲームマップ(ゲームフィールド)上に配置されたプレイヤキャラクタを移動させるためのゲーム画面をタッチパネル110へ表示し、ゲームの進行やプレイヤ操作に応じたゲーム画面を表示する機能を有する。好ましくはプレイヤキャラクタをゲームマップ(ゲームフィールド)上に表示する。
【0033】
仮想コントローラ決定手段303は、ゲームマップ上のプレイヤキャラクタの位置とゲームマップ上のプレイヤキャラクタが侵入できない移動不可能領域とに基づいて、フリック方向に対応したプレイヤキャラクタの移動方向を定めるユーザインタフェースである仮想コントローラを決定する機能を有する。そして移動制御手段304は、決定されたフリック方向及び仮想コントローラに基づいてプレイヤキャラクタを移動させる機能を有する。
【0034】
記憶手段305は、プログラムやデータ等を記憶部104へ格納する機能を有し、通信手段306は無線通信、有線通信を行う機能を有する。記憶手段305は、通信手段306を介して、サーバ、光学ディスク等からプログラム又はデータを取得して、格納することができる。
【0035】
電子装置100は、プログラム106が実行されることによってこれらの機能が実現される。したがって、一つの手段の一部又は全部の機能を他の手段が有してもよい。なお、これらの機能の一部は電子回路等を構成することによっても実現できる。
【0036】
ここで仮想コントローラの決定とプレイヤキャラクタの移動制御について具体的に説明する。以下に示す例示においては、電子装置100としてスマートフォンを用い、当該スマートフォンによって実行されるゲームにおけるプレイヤキャラクタの制御について記載する。
【0037】
1つの実施例として、タッチパネル110上に表示される、仮想コントローラ決定手段303が決定した仮想コントローラ410を
図4aに示す。仮想コントローラ410は、複数の領域に分割され、かつ領域を分割する線の交点である仮想コントローラ410の円の中心点(以下「中心点」という)から、図に示す矢印の方向へのフリックを検出すると、当該矢印の方向に対応する方向へプレイヤキャラクタ401を移動させるユーザインタフェースである。すなわち、タッチパネル110上へタッチが開始された位置(円の中心点)とその後に検出されたフリックの方向(円の中心点からの放射方向)とに基づいて、プレイヤキャラクタ401を所定の方向へ移動させるユーザインタフェースである。説明を簡単にするために、本明細書の図面は円形の仮想コントローラを表示するが、仮想コントローラの形状は円形に限定されず、多角形でもよい。
図4aに示す場合、仮想コントローラ410は、中心点から領域410a方向へのフリックを検出するとプレイヤキャラクタ401を上方向へ移動させ、中心点から領域410b方向へのフリックを検出するとプレイヤキャラクタ401を右方向へ移動させ、中心点から領域410c方向へのフリックを検出するとプレイヤキャラクタ401を下方向へ移動させ、及び中心点から領域410d方向へのフリックを検出するとプレイヤキャラクタ401を左方向へ移動させる、ユーザインタフェースである。例えば
図4bに示す場合、中心点から領域410a方向へのフリックを検出すると、電子装置100はプレイヤキャラクタを上方向へ移動させる命令又は情報を受け取り、移動制御手段304はプレイヤキャラクタ401を上方向へ移動させる。
【0038】
説明を簡単にするため、本明細書の図面は、仮想コントローラをタッチパネル110上に表示するものであるが、表示しない形態が好ましい。ただしタッチパネル110の画面上の任意の場所に表示することもできるし、又は所定の透過率で半透明にして表示することもできる。前述のとおり、仮想コントローラ410はユーザインタフェースであるため、タッチパネル110上のあらゆる場所のフリックを検出し、移動制御手段304は、決定されたフリック方向及び仮想コントローラに基づいてプレイヤキャラクタを移動させることができる。なお移動制御手段304は、フリックを検出すると、プレイヤキャラクタがゲームフィールド上で移動できなくなるまで、又はタップを検出するまで、プレイヤキャラクタを移動させ続けることができる。あるいは移動制御手段304は、フリックを検出すると、検出されたフリックの距離に応じたゲームフィールド上の距離だけプレイヤキャラクタを移動させることができる。
【0039】
他の1つの例示として、タッチパネル110上に表示される仮想コントローラ決定手段303が決定した仮想コントローラ420を
図4cに示す。この場合、仮想コントローラ420は、中心点から領域420a方向へのフリックを検出するとプレイヤキャラクタ401を上方向へ移動させ、中心点から領域420b方向へのフリックを検出するとプレイヤキャラクタ401を右上方向へ移動させ、中心点から領域420c方向へのフリックを検出するとプレイヤキャラクタ401を右方向へ移動させ、中心点から領域420d方向へのフリックを検出するとプレイヤキャラクタ401を右下方向へ移動させ、中心点から領域420e方向へのフリックを検出するとプレイヤキャラクタ401を下方向へ移動させ、中心点から領域420f方向へのフリックを検出するとプレイヤキャラクタ401を左下方向へ移動させ、中心点から領域420g方向へのフリックを検出するとプレイヤキャラクタ401を左方向へ移動させ、及び中心点から領域420h方向へのフリックを検出するとプレイヤキャラクタ401を左上方向へ移動させる、ユーザインタフェースである。ただし以下の実施例において、仮想コントローラ決定手段303は、プレイヤキャラクタ401が移動不可能領域をその周囲に有さない状況においては、
図4aに示す仮想コントローラ410を仮想コントローラとして決定するものとする。
【0040】
図4dは、プレイヤキャラクタ401が移動不可能領域402に接している様子を示し、このとき仮想コントローラ決定手段303が決定した仮想コントローラ430を示す。本発明の実施形態に係るゲームシステムが提供するゲームは、プレイヤキャラクタ401をゲーム上の仮想空間であるゲームマップに配置させてプレイさせるものであるが、
図4dに示すようにゲームマップはプレイヤキャラクタ401が侵入できない移動不可能領域402を含むものである。例えば
図4dにおいて、プレイヤはプレイヤキャラクタを右方向へ移動させることができない。このようにプレイヤキャラクタが右方向へ移動できないことに対応して、仮想コントローラ決定手段303は、プレイヤキャラクタを右方向へ移動させる領域を含まない仮想コントローラ430を決定する。
【0041】
この場合、仮想コントローラ430は、中心点から領域430a方向へのフリックを検出するとプレイヤキャラクタ401を左方向へ移動させ、中心点から領域430b方向へのフリックを検出するとプレイヤキャラクタ401を上方向へ移動させ、及び中心点から領域430c方向へのフリックを検出するとプレイヤキャラクタ401を下方向へ移動させる、ユーザインタフェースである。このような仮想コントローラを決定することにより、例えばプレイヤが上方向にプレイヤキャラクタ401を移動させたい場合において右上方向にフリックした場合、プレイヤキャラクタ401を上方向に移動させることができる。これは例えば、プレイヤキャラクタ401を右方向に移動させた後、速やかにプレイヤキャラクタ401を上方向に移動させたい場合などにおいてプレイヤに没入感を持ってプレイさせることを可能にする。なお
図4dに示す仮想コントローラは、領域410dが領域430aに対応し、領域410a及び領域410bの上半分の領域が領域430bに対応し、領域410c及び領域410bの下半分の領域が領域430cに対応するユーザインタフェースであるのが好ましい。
【0042】
説明を簡単にするため、主として本明細書の図面においては、プレイヤキャラクタ401が移動不可能領域402に接して初めて当該方向へのプレイヤキャラクタ401の移動を不可能とする仮想コントローラを、仮想コントローラ決定手段303が決定する実施形態について説明する。当該実施形態においては、仮想コントローラ決定手段303は、プレイヤキャラクタが移動不可能領域と接しない限り、
図4aに示すような仮想コントローラを決定する。しかしながら仮想コントローラ決定手段303は、ゲームマップ上のプレイヤキャラクタの位置と移動不可能領域とに基づいて仮想コントローラを決定するものである。したがって、
図4eに示すようにプレイヤキャラクタ401がゲームマップ内の移動不可能領域402と所定距離X離れた位置よりも移動不可能領域に近い領域に侵入できないように、仮想コントローラを決定することもできる。なおここでの距離は、ゲームマップ上の距離である。また上述のプレイヤキャラクタ401と移動不可能領域402との位置関係の判定は、当分野において周知の技術である当たり判定処理などにより実行される。
【0043】
他の1つの例示として、
図4fは、プレイヤキャラクタ401が移動不可能領域402に接している様子を示し、このとき仮想コントローラ決定手段303が決定した仮想コントローラ440を示す。この場合、仮想コントローラ440は、中心点から領域440a方向へのフリックを検出するとプレイヤキャラクタ401を上方向へ移動させ、及び中心点から領域440b方向へのフリックを検出するとプレイヤキャラクタ401を下方向へ移動させる、ユーザインタフェースである。
【0044】
他の1つの例示として、
図4gは、プレイヤキャラクタ401が移動不可能領域402に接している様子を示し、このとき仮想コントローラ決定手段303が決定した仮想コントローラ450を示す。この場合、仮想コントローラ450は、中心点から領域450a方向へのフリックを検出するとプレイヤキャラクタ401を左方向へ移動させ、中心点から領域450b方向へのフリックを検出するとプレイヤキャラクタ401を下方向へ移動させるが、中心点から領域450c方向へのフリックを検出してもプレイヤキャラクタ401を移動させない、ユーザインタフェースである。すなわち、中心点から領域450c方向へのフリックについてはプレイヤキャラクタを移動させないように定める、仮想コントローラである。
【0045】
一方、
図4hは、無効領域を定めない場合に仮想コントローラ決定手段303が決定した仮想コントローラを示す。この場合、仮想コントローラ460は、中心点から領域460a方向へのフリックを検出するとプレイヤキャラクタ401を左方向へ移動させ、及び中心点から領域460b方向へのフリックを検出するとプレイヤキャラクタ401を下方向へ移動させる、ユーザインタフェースである。しかしながら仮想コントローラ460は、例えば中心点から右上方向へのフリックを検出した場合には、プレイヤキャラクタ401を左又は下方向へ移動させるものである。このような移動制御、すなわちプレイヤがフリックした方向と90度以上ずれた方向へプレイヤキャラクタ401を移動させる制御は、プレイヤの直感的な操作に反するものでありえ、プレイヤに没入感を持ってプレイさせることを妨げるおそれがある。仮想コントローラ450が、中心点から領域450c方向へのフリックについてプレイヤキャラクタを移動させないように定めたのはこのためである。したがって、仮想コントローラ450の方が仮想コントローラ460よりも好ましい。さらにプレイヤの操作性の観点から、
図4gに示すように、プレイヤキャラクタの移動可能方向が90度以下の場合には、このような無効領域を有する仮想コントローラを決定するのが好ましい。なお仮想コントローラ450を決定した場合、中心点から領域450c方向へのフリックについては、プレイヤキャラクタの移動以外の他の制御として利用することもできる。
【0046】
以上の実施例に示すとおり、仮想コントローラ決定手段303は、画面表示手段302がプレイヤの操作によりプレイヤキャラクタをゲームマップ上で移動させることができる画面を表示する場合に、プレイヤキャラクタの位置に対応する仮想コントローラを決定する。仮想コントローラの決定は、プレイヤキャラクタが移動したタイミングで決定してもよいし、フレームレート等に対応させて一定時間毎に(例えば1/30秒、1/60秒毎に)決定してもよい。ここで
図4iは、1つの実施形態に係るUIデータベースが格納する仮想コントローラを示す。仮想コントローラ決定手段303は、プレイヤキャラクタの現在位置における移動可能方向を含む情報を用いてUIデータベースに照会することにより、プレイヤキャラクタの移動可能方向に対応した仮想コントローラを決定することができる。
【0047】
仮想コントローラ決定における1つの実施形態として、仮想コントローラ決定手段303は、サブマップ取得手段、及び移動可能方向決定手段を含むことができる。この場合、サブマップ取得手段は、マップ情報データベースからプレイヤキャラクタの現在位置に対応するサブマップを取得する。
図4j及び
図4kはサブマップ403の1つの実施形態を示す。サブマップ403は、プレイヤキャラクタの位置、及び当該位置の周囲を含む。当該位置の周囲は、例えばプレイヤキャラクタ401の位置から上下左右に所定距離離れた外縁に含まれる領域である。サブマップの取得は、プレイヤキャラクタが移動したタイミングで取得してもよいし、フレームレート等に対応させて一定時間毎に取得してもよい。
【0048】
移動可能方向決定手段は、取得されたサブマップに含まれる移動不可能領域の有無を判断し、プレイヤキャラクタの移動可能方向を決定する。1つの実施例においては、取得されたサブマップに含まれる、プレイヤキャラクタに接する移動不可能領域の有無に基づいて、移動可能方向を決定する。好ましくはプレイヤキャラクタが移動不可能領域に接していない方向を移動可能方向として決定する。当該実施例においては、サブマップ403は、プレイヤキャラクタ401に接する領域を含んでいればよいため、
図4jに示すように比較的小さい領域とすることができる。
【0049】
他の1つの実施例においては、取得されたサブマップ内に移動不可能領域が無いと判断された場合、全方向がプレイヤキャラクタの移動可能方向であると決定し、取得されたサブマップ内に移動不可能領域が有ると判断された場合、プレイヤキャラクタの位置から移動不可能領域への方向(位置関係)及びプレイヤキャラクタの位置から移動不可能領域までの距離に基づいてプレイヤキャラクタの移動可能方向を決定する。なおここでの距離は、ゲームマップ上の距離である。例えばプレイヤキャラクタがサブマップ内の移動不可能領域と所定距離X離れた位置より移動不可能領域に近い領域に侵入できないように仮想コントローラを定める場合において、
図4kに示すようにプレイヤキャラクタ401の位置が移動不可能領域402から所定距離X離れた位置にある場合、当該移動不可能領域402のある方向へプレイヤキャラクタ401は移動できないものと判断して移動可能方向を決定する。なおこの場合においては、例えば所定距離Xを最も小さい値に設定した場合は、プレイヤキャラクタ401が移動不可能領域402に接して初めて当該方向へのプレイヤキャラクタ401の移動を不可能であると判断するため、結果的にプレイヤキャラクタに接する移動不可能領域の有無に基づいて移動可能方向を決定する場合と同じように、移動可能方向を決定することとなる。
【0050】
仮想コントローラ決定手段303は、プレイヤキャラクタの移動可能方向が決定されると、当該移動可能方向を含む情報を用いてUIデータベースに照会することにより、プレイヤキャラクタの移動可能方向に対応した仮想コントローラを決定することができる。
【0051】
仮想コントローラ決定における他の1つの実施形態として、仮想コントローラ決定手段303は、マップ情報取得手段を含むことができる。この場合、マップ情報データベースが格納する各々の位置のマップ情報は、ゲームマップ上の各々の位置に接する移動不可能領域の有無に基づいて、又はゲームマップ上の各々の位置から移動不可能領域への方向及びゲームマップ上の各々の位置から移動不可能領域までの距離に基づいて決定されるプレイヤキャラクタの移動可能方向に対応した仮想コントローラを示す識別情報を有するものである。なおここでの距離は、ゲームマップ上の距離である。このような識別情報は、ゲームマップ作成時にマップ情報の中に含ませてもよいし、ゲームマップ作成後にマップ情報データベースが管理するマップ情報に関連付けてもよい。いずれの場合も、マップ情報取得手段は、プレイヤキャラクタが位置するマップ情報を取得し、それにより当該位置のマップ情報が有する又は関連付けられる識別情報を取得することができる。仮想コントローラ決定手段303は、取得された識別情報を用いてUIデータベースに照会することにより、識別情報に対応する仮想コントローラを決定することができる。
【0052】
例えば、
図4iに示す仮想コントローラをUIデータベースが格納する場合、識別情報は以下のようにマップ情報に付加する。(1)プレイヤキャラクタの移動可能方向がすべての方向であるマップ位置のマップ情報には仮想コントローラ410を示す識別情報(例えば410など)を付加し、(2)プレイヤキャラクタの移動可能方向が、右、左、下、又は上方向のいずれか一方向以外のすべての方向であるマップ位置のマップ情報には、仮想コントローラ430、仮想コントローラ431、仮想コントローラ432、又は仮想コントローラ433を示す識別情報を付加し、(3)プレイヤキャラクタの移動可能方向が上下方向又は左右方向のみであるマップ位置のマップ情報には、仮想コントローラ440又は仮想コントローラ441を示す識別情報を付加し、(4)プレイヤキャラクタの移動可能方向が、左及び下方向、右及び下方向、左及び上方向、又は右及び上方向であるマップ位置のマップ情報には、仮想コントローラ450、仮想コントローラ451、仮想コントローラ452、又は仮想コントローラ453を示す識別情報を付加する。このようにプレイヤキャラクタの移動可能方向に対応する仮想コントローラを予めマップ情報に含ませておく又は関連付けておくことで、マップ情報から取得した識別情報に基づいて仮想コントローラを決定することができる。
【0053】
図5aは、本発明の1つの実施形態に係る仮想コントローラを用いたプレイヤキャラクタの移動制御に関する情報処理を示すフローチャートである。ステップ501において、プレイヤの操作によりゲームマップ上に配置されたプレイヤキャラクタを移動させるための画面をタッチパネルに表示しているかを判定する。表示していない場合、本フローは終了となるが、表示している場合はステップ502へ進み、プレイヤキャラクタのゲームマップ上の位置P(x,y)を取得する。なお位置を表すP(x,y)は1つの例示であって、2次元のゲームマップ上の一意に定まるポイントをxy座標により表したものである。タッチパネルの座標とは異なることに注意されたい。
【0054】
続いてステップ503においてサブマップ取得手段が、P(x,y)周辺のサブマップSubMap(x,y)をマップ情報データベースから取得し、ステップ504において移動可能方向決定手段が、取得されたSubMap(x,y)に基づいてプレイヤキャラクタの移動可能方向を決定する。プレイヤキャラクタの移動可能方向が決定されると、ステップ505において仮想コントローラ決定手段303は、当該移動可能方向を含む情報を用いてUIデータベースに照会することにより、プレイヤキャラクタの移動可能方向に対応した仮想コントローラを決定する。
【0055】
続いてステップ506においてプレイヤによるフリックの検出有無を判定する。フリックを検出しない場合、ステップ501へ戻る。フリックを検出した場合はステップ507において、検出されたフリックの方向を取得(決定)する。続いてステップ508において、取得されたフリック方向及び決定された仮想コントローラに基づいて、プレイヤキャラクタを移動させる。
【0056】
本フローチャートは、フレームレート等に対応させて一定時間毎に(例えば1/30秒、1/60秒毎に)仮想コントローラを決定するが、プレイヤキャラクタが移動したタイミングで決定するようにフローチャートを変更することも可能である。
【0057】
なお本フローチャートは、例えばゲームプログラムのメインループの一部として実行されるか、又はステップ501の判定によりメインループからの呼び出しにより実行されるものである。またフリックの検出を行うタッチイベント処理は、本フローチャートとは別のスレッドで処理され、フリック入力の有無及びフリック方向の取得を本フローチャートのステップ506及びステップ507へ返すことで実現されるのが好ましい。
【0058】
図5bは、本発明の他の1つの実施形態に係る仮想コントローラを用いたプレイヤキャラクタの移動制御に関する情報処理を示すフローチャートである。
図5bに示すフローチャートは、ステップ501〜502及びステップ506〜ステップ508については、
図5aに示すフローチャートと同じであるため、主に相違点を説明する。
【0059】
ステップ509においてマップ情報取得手段が、P(x,y)のマップ情報Map(x,y)をマップ情報データベースから取得し、Map(x,y)に含まれる又は関連付けられた識別情報を取得する。続いてステップ510において仮想コントローラ決定手段303は、取得された識別情報を用いてUIデータベースに照会することにより、識別情報に対応する仮想コントローラを決定する。
【0060】
[システムにより実現される実施形態]
図6は本発明の1つの実施形態に係るシステムの全体構成の一例を示す。システム600は、1以上の電子装置100と、サーバ700とを含んで構成される。これらはネットワーク610によって互いに接続されるが、それぞれが必要に応じて個別に接続される形態であってもかまわない。また複数の電子装置のうちの1つをサーバとしても機能させる場合、システム600はサーバを含まない構成とすることもできる。
【0061】
またシステム600は、電子装置100やサーバ700が備えうるデータベースとは別に、データベース620を含むこともできる。システム600がデータベース620を含む場合、データベース620は各種データベースを格納し、電子装置100又はサーバ700はデータベース620に照会することで、所望のデータを取得することができる。以下では主としてサーバ700内のデータベースの使用を想定しているが、ネットワークに直接接続されたデータベース620を使用した場合においても同様である。なお電子装置100のハードウェア構成は
図1に示すとおりである。
【0062】
図7は本発明の実施形態に係るサーバ700のハードウェア構成を示すブロック図である。サーバ700は、処理部701、表示部702、入力部703、記憶部704及び通信部705を備える。これらの各構成部はバス708によって接続されるが、それぞれが必要に応じて個別に接続される形態であってもかまわない。
【0063】
処理部701は、サーバ700が備える各部を制御するプロセッサを備えており、記憶部704をワーク領域として各種処理を行う。表示部702は使用者に情報を表示する機能を有する。入力部703はキーボードやマウス等のように使用者からの入力を受け付ける機能を有するものである。
【0064】
記憶部704は、ハードディスク、メインメモリ、及びバッファメモリを含む。ハードディスクにはプログラム706が記憶される。ただしハードディスクは、情報を格納できるものであればいかなる不揮発性ストレージ又は不揮発性メモリであってもよく、着脱可能なものであっても構わない。記憶部704には、プログラム706や当該プログラムの実行に伴って参照され得る各種のデータが記憶される。さらに記憶部704は、データベース707を含むことができる。この場合データベース707は、マップ情報データベースと、UIデータベースと、を含むことができる。
【0065】
通信部705はイーサネット(登録商標)ケーブル等を用いた有線通信や移動体通信、無線LAN等の無線通信を行い、ネットワーク101へ接続する。
【0066】
サーバ700は、プログラム706が実行されることによって様々な機能が実現されるが、これらの機能の一部は電子回路等を構成することによっても実現できる。
【0067】
上記の構成により、システム600は、
図3に示す各機能と同等の機能を有することができる。これらはプログラム106を電子装置100に実行させ、かつプログラム706をサーバ700に実行させることで実現される。すなわちこの場合、電子装置100及びサーバ700の少なくとも一方が
図3に示す各種機能を備える。このように各種機能がプログラム読み込みにより実現される場合は、当然ながら1つの手段の一部の機能を他の手段が有していてもよい。
【0068】
例えばシステム600の1つの実施形態としては、電子装置100が
図3に示す各機能を有し、サーバ700が
図3に示す記憶手段及び通信手段の機能を有するとともに、記憶部704にマップ情報データベース及びUIデータベースを含むデータベース707を有する。この場合、電子装置100の仮想コントローラ決定手段がデータベース707へ問い合わせを行いデータ取得する際に、電子装置100とサーバ700はデータ通信を行う。また例えばシステム600の他の1つの実施形態としては、サーバ700が
図3に示す仮想コントローラ決定手段及び移動制御手段を有するとともに、記憶部704にマップ情報データベース及びUIデータベースを含むデータベース707を有する。この場合、電子装置100から送信されるプレイヤキャラクタの位置情報に基づいてサーバ700は仮想コントローラを決定し、電子装置100から送信されるフリック及びフリック方向に応答してプレイヤキャラクタの移動制御を行う。電子装置100は、サーバ700から受信したデータに基づいてゲーム画面を表示する。
【0069】
以上に説明した処理又は動作において、あるステップにおいて、そのステップではまだ利用することができないはずのデータを利用しているなどの処理又は動作上の矛盾が生じない限りにおいて、処理又は動作を自由に変更することができる。また以上に説明してきた各実施例は、本発明を説明するための例示であり、本発明はこれらの実施例に限定されるものではない。本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。例えば、以下のような変形実施例とすることもできる。
【0070】
[他の変形実施例]
1つの変形実施例として、仮想コントローラ決定手段303が決定した仮想コントローラ810を
図8aに示す。
図8aにおいては、タッチパネル110に対するプレイヤのフリック操作の有無とは関係なく仮想コントローラ810に対応する画像がタッチパネル110に表示される。また、
図8aは
図4aと同じように見えるが、
図4aの仮想コントローラ410が、タッチパネル110上において検出されたフリックの方向に基づいてプレイヤキャラクタ401を所定の方向へ移動させるユーザインタフェースであるのに対して、
図8aの仮想コントローラ810は、タッチパネル110上において検出されたフリックの開始位置及び終了位置に基づいて、プレイヤキャラクタ401を所定の方向へ移動させるユーザインタフェースである。したがって、仮想コントローラ410が、タッチ開始位置を方向選択の中心点としたユーザインタフェースであるのに対して、仮想コントローラ810は、タッチ開始位置が必ずしも方向選択の中心点でなくともよいユーザインタフェースであるということができる。
【0071】
例えば、
図8aに示す場合、仮想コントローラ810は、検出されたフリックの開始位置と終了位置が、領域810a内である場合はプレイヤキャラクタ401を上方向へ移動させ、領域810b内である場合はプレイヤキャラクタ401を右方向へ移動させ、領域810c内である場合はプレイヤキャラクタ401を下方向へ移動させ、及び領域810d内である場合はプレイヤキャラクタ401を左方向へ移動させる、ユーザインタフェースである。しかし、検出されたフリックの開始位置及び終了位置が、領域810a、領域810b、領域810c、又は領域810dのいずれか1つの同一の領域内にない場合、例えばプレイヤキャラクタを移動させないように定める、ユーザインタフェースである。
【0072】
ただし変形実施例の仮想コントローラ810は、タッチパネル110の画面上の任意の場所に配置することができる。なお、仮想コントローラ810は、所定の透過率で半透明にして表示することもできる。
【0073】
他の1つの変形実施例として、仮想コントローラ決定手段303が決定した仮想コントローラ820を
図8bに示す。
図8bにおいては、タッチパネル110に対するプレイヤのフリック操作の有無とは関係なく仮想コントローラ820に対応する画像がタッチパネル110に表示される。また、図に示すとおり、プレイヤキャラクタ401はゲームマップ内の移動不可能領域402と所定距離X離れている状態にある。この場合、仮想コントローラ820は、4つの領域の重みづけが異なっており、これらの領域の分岐点が円の中心点ではない。また、
図8bは、検出されたフリックの開始位置と終了位置が、領域820a内である場合はプレイヤキャラクタ401を上方向へ移動させ、領域820b内である場合はプレイヤキャラクタ401を右方向へ移動させ、領域820c内である場合はプレイヤキャラクタ401を下方向へ移動させ、及び領域820d内である場合はプレイヤキャラクタ401を左方向へ移動させる、ユーザインタフェースである。しかし、検出されたフリックの開始位置及び終了位置が、領域820a、領域820b、領域820c、又は領域820dのいずれか1つの同一の領域内にない場合、例えばプレイヤキャラクタを移動させないように定める、ユーザインタフェースである。ここで領域820bは、他の領域と比較して小さいため、プレイヤが右方向へ移動操作する際は、プレイヤは比較的慎重に操作する必要がある。また、仮想コントローラ820に対応する画像がフリック前に表示されているので、そして領域820bが比較的小さいことから、プレイヤは領域820bに対応する方向へプレイヤキャラクタを移動させ難いことをフリック前に認識することができる。
【0074】
例えば、プレイヤキャラクタが所定距離X離れた位置より移動不可能領域に近い領域に進行しづらいように仮想コントローラを定める場合において、
図8bに示すようにプレイヤキャラクタ401の位置が移動不可能領域402から所定距離X離れた位置にある場合、当該移動不可能領域402のある右方向へプレイヤキャラクタ401が移動しづらい仮想コントローラ820を、仮想コントローラ決定手段303は決定することができる。
【解決手段】本発明はタッチパネルを備え、当該タッチパネルに対するフリックを含むタッチ操作を受け付ける電子装置において実行されるゲームのためのプログラムであって、電子装置に、プレイヤの操作によりゲームマップ上に配置されたプレイヤキャラクタを移動させるための画面を表示するステップと、ゲームマップ上のプレイヤキャラクタの位置とゲームマップ上のプレイヤキャラクタが侵入できない移動不可能領域とに基づいて、フリック方向に対応したプレイヤキャラクタの移動方向を定める仮想コントローラを決定するステップと、タッチパネルに対するフリックを検出するステップと、検出されたフリックの方向を決定するステップと、決定されたフリックの方向及び仮想コントローラに基づいてプレイヤキャラクタを移動させるステップと、を実行させる。