以下、本発明の実施形態の例を図面に基づいて説明する。
[1.ゲームシステムの構成]図1は本発明の実施形態に係るゲームシステムの構成を示す。図1に示すように、本実施形態に係るゲームシステム1はゲーム端末10とサーバ30とを含む。ゲーム端末10はサーバ30とネットワークNを介して相互にデータ通信を行うことが可能である。
ゲーム端末10は、ユーザがゲームをプレイするために使用するコンピュータである。例えば、ゲーム端末10は、携帯電話機(スマートフォンを含む)、又は携帯情報端末(タブレット型コンピュータを含む)等である。
図1に示すように、ゲーム端末10は制御部11、記憶部12、通信部13、操作部14、表示部15、及び音出力部16を含む。制御部11は少なくとも1つのマイクロプロセッサを含み、記憶部12に記憶されたプログラムに従って情報処理を実行する。記憶部12は主記憶部(例えばRAM)及び補助記憶部(例えば、不揮発性の半導体メモリ、ハードディスクドライブ、又はソリッドステートドライブ)を含み、プログラムやデータを記憶する。通信部13は、ネットワークNを介して他の装置とデータ通信するためのものである。
操作部14は、ユーザが各種操作を行うためのものである。表示部15は各種画像を表示するためのものであり、例えば液晶ディスプレイ又は有機ELディスプレイ等である。音出力部16は音データを出力するためのものであり、例えばスピーカ又はヘッドホン等である。図1に示すように、操作部14と表示部15とはタッチパネルTPとして一体的に形成される。タッチパネルTPは、ユーザの部位(指等)又は物体(タッチペン等)によってタッチされた位置を検出可能である。各種方式のタッチパネルをタッチパネルTPとして採用できる。「タッチ」とは、ユーザの部位又は物体がタッチパネルTPに触れることである。
サーバ30は例えばサーバコンピュータである。図1に示すように、サーバ30は制御部31、記憶部32、及び通信部33を含む。制御部31、記憶部32、及び通信部33はゲーム端末10の制御部11、記憶部12、及び通信部13と同様である。サーバ30はデータベースDBにアクセスできる。データベースDBはサーバ30内に構築されてもよいし、サーバ30とは別のサーバコンピュータ内に構築されてもよい。
プログラムやデータはネットワークNを介してゲーム端末10又はサーバ30に供給されて、記憶部12又は記憶部32に記憶される。なお、情報記憶媒体(例えば光ディスク又はメモリカード等)に記憶されたプログラムやデータを読み取るための構成要素(例えば光ディスクドライブ又はメモリーカードスロット等)がゲーム端末10又はサーバ30に備えられてもよい。そして、プログラムやデータが情報記憶媒体を介してゲーム端末10又はサーバ30に供給されてもよい。
[2.ゲームの概要]ゲームシステム1では、スポーツゲーム、アクションゲーム、又はロールプレイングゲーム等の各種ゲームを実行することが可能である。
ゲームシステム1で実行されるゲームでは、ユーザはタッチパネルTPにタッチすることによって操作を行う。例えば、このゲームでは、タッチパネルTPをタッチすることによって行われる操作に応じて、ユーザの操作対象が動作する。ここで、「操作対象」とは、ユーザによる操作の対象となるオブジェクトである。言い換えれば、「操作対象」とは、ユーザの操作に従って動作したり、状態が変化したりするオブジェクトである。「オブジェクト」とは、表示部15に表示されるものであって、ユーザによる操作の対象になり得るものである。例えば、ユーザの操作に従って動作するゲームキャラクタ又は乗物や、ユーザの操作に従って移動するカーソル等が「オブジェクト」の一例に相当する。
以下では、ゲームシステム1で実行されるゲームの一例として、ユーザによって操作されるユーザチームに所属する複数のゲームキャラクタと、対戦相手によって操作される対戦相手チームに所属する複数のゲームキャラクタとが仮想世界でサッカーの試合を行うサッカーゲームについて説明する。
ここで、「仮想世界」とはゲームの中の世界である。「仮想世界」は3次元的な空間であってもよいし、2次元的な平面であってもよい。「仮想世界」は仮想空間又はゲーム空間と言い換えることができる。また、「対戦相手」とは、コンピュータ(CPU)であってもよいし、他のユーザであってもよい。
ゲームはゲーム端末10単体によって実行されるスタンドアロン方式のゲームであってもよいし、ゲーム端末10とサーバ30との間でデータ通信が行われることによって実行されるクライアント/サーバ方式のゲームであってもよい。なお以下では、基本的に、サッカーゲームがスタンドアロン形式で実行されることを前提として説明する。
図2は仮想世界の一例を示す図である。図2に示すように、仮想世界VWは、例えば、3次元空間における仮想的なサッカー場を示す。仮想世界VWには、所定の位置を原点Owとし、互いに直交するXw軸、Yw軸、及びZw軸(ワールド座標系の座標軸)が設定される。仮想世界VWにおける位置は、ワールド座標系の座標値により特定される。
図2に示すように、仮想世界VWには、Xw−Zw平面と平行になるようにピッチの3DモデルであるピッチPTが配置される。ピッチPTには、タッチラインTL、ゴールラインEL、及びハーフウェーラインHL等が描かれている。また、ピッチPT上には、ユーザキャラクタUC、対戦相手キャラクタOC、ボールの3DモデルであるボールB、及び、ゴールの3DモデルであるゴールGLが配置される。なお、ユーザキャラクタUCはユーザチームに所属するゲームキャラクタであり、対戦相手キャラクタOCは対戦相手チームに所属するゲームキャラクタである。
仮想世界VWには仮想視点VCが設定される。仮想視点VCは、仮想世界VWに設定される視点であり、例えば、仮想カメラである。仮想視点VCの位置及び視線方向は、例えば、ユーザの操作対象のユーザキャラクタUC及びボールBの少なくとも一方が視野内に含まれるように制御される。なお、仮想視点VCの位置及び視線方向は固定されてもよい。試合が開始すると、仮想視点VCから仮想世界VWを見た様子を示す仮想世界画像が表示部15に表示される。
図3は、サッカーゲームの試合中に表示部15に表示される画像の一例を示す図である。図3に示すように、表示部15には仮想世界画像G1が表示される。仮想世界画像G1は、仮想世界VWのうち、仮想視点VCの視野内の様子が座標変換されることで表示される。また図3に示すように、仮想的な第1ボタンE18−1及び第2ボタンE18−2の画像が仮想世界画像G1上の所定位置に表示される。第1ボタンE18−1や第2ボタンE18−2については後述する。
なお、表示部15の表示領域には、所定の位置(例えば、表示領域の左上)を原点Osとし、互いに直交するXs軸及びYs軸(スクリーン座標系の座標軸)が設定される。表示領域とは、例えば、表示部15の画面全体のことである。表示領域上の位置は、スクリーン座標系の座標値により特定される。例えば、表示領域の右端部のXs座標値をXmaxと記載し、表示領域のした端部Ys座標値をYmaxと記載する。本実施形態では、横幅が縦幅よりも長い状態(ゲーム端末10を横持ちにした状態)でゲームがプレイされる場合を説明するが、これとは逆に、縦幅が横幅よりも長い状態(ゲーム端末10を縦持ちにした状態)でゲームがプレイされてもよい。本実施形態では、タッチパネルTPが検出したタッチ位置もスクリーン座標系の座標値によって示されるものとするが、タッチ位置は別の座標軸の座標値で示されてもよい。
ユーザは仮想世界画像G1を見ながらサッカーゲームをプレイする。このサッカーゲームでは、ユーザチームに所属する複数のユーザキャラクタUCのうちのいずれがユーザの操作対象に設定される。操作対象のユーザキャラクタUCの足元には、操作対象に設定されていることを識別するためのカーソルCが表示される。操作対象のユーザキャラクタUCはユーザの操作に従って動作する。例えば、操作対象のユーザキャラクタUCは、ユーザが方向指示操作によって指示した方向に移動したり、ユーザが動作指示操作によって指示した動作(パス、シュート、又はスライディング等)を行ったりする。なお、操作対象以外のユーザキャラクタUCは所定のアルゴリズム等に従って自律的に行動する。
操作対象はゲーム中に複数のユーザキャラクタUCのうちで切り替わってもよいし、特定のユーザキャラクタUCに固定されてもよい。操作対象が切り替わる態様では、例えば、攻撃時に、ボールBを保有しているユーザキャラクタUCが操作対象に設定され、守備時に、ボールBを保有する対戦相手キャラクタOCの最も近くにいるユーザキャラクタUCが操作対象に設定される。なお、「攻撃時」とは、例えば、ユーザチームがボールBを保有している状態である。一方、「守備時」とは、例えば、対戦相手チームがボールBを保有している状態である。ボールBがいずれのチームにも保有されていない状態に関しては、攻撃時に分類してもよいし、守備時に分類してもよい。
操作対象のユーザキャラクタUCに対する各種操作はタッチパネルTPを介して行われる。この点、本実施形態では、タッチパネルTP上の領域が複数の操作領域に分けられている。操作領域ごとに別個の操作体系が定義されており、ユーザはタッチした操作領域に応じた操作を行う。
図4は、タッチパネルTPに設定される複数の領域の一例を示す図である。図4に示す例では、タッチパネルTPの中央を境に、左側領域LAと右側領域RAとが設定されている。例えば、左側領域LAは、Xs座標がXmax/2未満の領域であり、右側領域RAは、Xs座標がXmax/2以上の領域である。例えば、左側領域LAは、主に、ユーザキャラクタUCに対する移動指示操作を行うために用いられる。一方、右側領域RAは、主に、ユーザキャラクタUCに対する移動指示操作以外の操作を行うために用いられる。先述の第1ボタンE18−1や第2ボタンE18−2は右側領域RA内に表示されており、これらのボタンは、ユーザキャラクタUCに対する移動指示操作以外の操作を行うために用いられる。
図4では、タッチパネルTPの中央が操作領域の境界となっているが、操作領域の境界は任意の場所に設定されてもよい。また図4では、左側領域LAと右側領域RAの2つが設定されているが、タッチパネルTP上に設定される操作領域の数は2つに限られず、3つ以上であってもよい。
以下、サッカーゲームでユーザが行う具体的な操作の一例について説明する。まず、操作対象のユーザキャラクタUCを移動させるための移動指示操作について説明する。図5は移動指示操作について説明するための図である。なお、実際には、仮想視点VCの視野内に位置しているユーザキャラクタUCや対戦相手キャラクタOC等や、第1ボタンE18−1及び第2ボタンE18−2が表示部15に表示されるが、図5では説明の簡略化のために省略している。
移動指示操作を行う場合、図5に示すように、ユーザはタッチパネルTPの左側領域LAをタッチする。ユーザが指F等で左側領域LAへのタッチを開始すると、仮想的な方向パッドE10(方向ボタン)の画像が左側領域LAに表示される。方向パッドE10は、方向指示操作を受け付けるためのものであり、ユーザが方向を指示(入力)するために用いられる。なお、ユーザが右側領域RAへのタッチを開始したとしても、方向パッドE10は右側領域RAに表示されない。
図6は方向パッドE10について説明するための図であり、左側領域LAへのタッチが開始された時点の方向パッドE10を示す。図6に示すように、方向パッドE10はベース部E11とポインタ部E13とを含む。ベース部E11は方向パッドE10の本体に相当し、図6に示す例では、中心点E12を中心とする円形形状を有している。ポインタ部E13はユーザのタッチ位置Tを示し、図6に示す例では、中心点E14を中心とする円形形状を有している。ここで示す例ではベース部E11とポインタ部E13とがともに円形形状を有しているが、ベース部E11とポインタ部E13とは円形形状でなくてもよいし、互いに異なる形状であってもよい。
タッチ開始時点において、方向パッドE10の表示位置はユーザのタッチ位置Tに基づいて設定される。具体的には、方向パッドE10は、ベース部E11の中心点E12がユーザのタッチ位置Tと一致するようにして配置される。ポインタ部E13も、ポインタ部E13の中心点E14がユーザのタッチ位置Tと一致するようにして配置される。なお、ベース部E11の中心点E12は方向パッドE10全体の中心点に相当しているため、以下では、中心点E12を方向パッドE10の中心点と記載する場合がある。
ユーザがスライド操作を行うことによってタッチ位置Tを移動させた場合、ポインタ部E13はタッチ位置Tの移動に応じて移動する。「スライド操作」とは、ユーザが指F等をタッチパネルTPにタッチさせた状態のまま当該指F等を移動させ、移動後においてもタッチを維持する操作である。
本実施形態では、方向パッドE10の動作モードとして、通常モードとセンシティブモードとの二つのモードが用意されている。詳細については後述するが、通常モードとセンシティブモードとしてポインタ部E13の移動の仕方が異なる。サッカーゲームを初めてプレイする場合や、ユーザが特定の操作を行った場合に、通常モードとセンシティブモードとのいずれかの選択を受け付けるための動作モード選択画像が表示部15に表示される。動作モード選択画像を操作することによって、ユーザは通常モードとセンシティブモードとのいずれかを選択できる。
図7は動作モード選択画像の一例を示す。図7に示すように、動作モード選択画像G2は、通常モードを選択するための表示要素であるオプションボタンE20−1と、センシティブモードを選択するための表示要素であるオプションボタンE20−2と、動作モードの選択を確定するための表示要素である設定ボタンE21とを含む。オプションボタンE20−1に対してタップ操作が行われると、通常モードが選択状態となるようになっている。同様に、オプションボタンE20−2に対してタップ操作が行われると、センシティブモードが選択状態となるようになっている。また、設定ボタンE21に対してタップ操作が行われると、選択状態にある動作モードに設定されるようになっている。このため、ユーザがオプションボタンE20−1,E20−2のいずれかに対してタップ操作を行うことによって通常モードとセンシティブモードとのいずれかを選択した後、設定ボタンE21に対してタップ操作を行うと、選択した動作モードに設定される。「タップ操作」とはタッチパネルTPを1回叩く操作である。ユーザの選択結果を示すデータは記憶部12(又は記憶部32、データベースDB)に記憶され、ゲームのプレイが行われる際に参照される。
まず、通常モードについて説明する。通常モードでは、ポインタ部E13がタッチ位置Tと同じ移動方向に同じ移動速度で移動する。すなわち、ポインタ部E13が、タッチ位置Tの移動方向と同じ方向に、タッチ位置Tの移動距離と同じ距離だけ移動する。このため、ポインタ部E13の中心点E14は、タッチ位置Tと常に一致している。
図8は、通常モード時にユーザがタッチ位置Tを移動させた場合を示している。図8では、ユーザがタッチ位置Tをベース部E11の中心点E12に対して上側に移動させており、このときポインタ部E13の中心点E14も、中心点E12に対して上側に移動している。
方向パッドE10では、中心点E12からポインタ部E13の中心点E14(すなわちタッチ位置T)への方向Dがユーザによって指示された方向(指示方向)として判定される。このため、例えば図8に示すように、ユーザはタッチ位置Tを中心点E12に対して上側の位置に移動させることによって、上方向を指示することができる。また例えば、ユーザはタッチ位置Tを中心点E12に対して右側の位置に移動させることによって、右方向を指示することができる。
ユーザが指示できる方向は上、下、左、右の四方向に限られるわけではない。例えば、ユーザは中心点E12を中心として360度どの方向も指定することができる。ただし、ユーザが指示可能な方向を四方向又は八方向(上、下、左、右、左上、右上、左下、右下)等の有限数の方向に限定してもよい。例えば、ユーザが指示可能な方向を八方向に限定する場合であれば、八方向のうちで上記方向Dに最も近い方向を指示方向として判定すればよい。
操作対象のユーザキャラクタUCは、ユーザの指示方向に対応する仮想世界VWの方向に移動する。方向パッドE10における各方向は、仮想世界VWの各方向と対応付けられている。例えば、方向パッドE10における上方向、下方向、右方向、左方向は、仮想世界VWのZw軸正方向、Zw負方向、Xw正方向、Xw負方向とそれぞれ対応付けられる。そのため、ユーザが方向パッドE10で上方向を指示すると、操作対象のユーザキャラクタUCはZw軸正方向への移動動作(ボールBを保有している場合にはドリブル動作)を行う。このように、ユーザは中心点E12に対するタッチ位置Tの相対的位置を調整することによって、操作対象のユーザキャラクタUCの移動方向を指示することができる。
操作対象のユーザキャラクタUCの移動速度は、方向パッドE10の中心点E12とポインタ部E13の中心点E14(すなわちタッチ位置T)との間の距離Lに基づいて設定される。例えば、距離Lと移動速度との対応関係を示す対応関係情報が設定されており、この対応関係情報と距離Lとに基づいて、操作対象のユーザキャラクタUCの移動速度が設定される。この対応関係情報は、例えば距離Lが長いほど移動速度が速くなるように設定される。このため、ユーザは、中心点E12とタッチ位置Tとの間の距離を調整することによって、操作対象のユーザキャラクタUCの移動方向とともに移動速度も指示することができる。
また、本実施形態では、タッチ位置Tが方向パッドE10内から外に移動することに伴って方向パッドE10が移動するようになっている。つまり、タッチ位置Tが常に方向パッドE10内に位置するようになっている。
図9A及び図9Bは方向パッドE10の移動について説明するための図である。図9Aに示す状態では、方向パッドE10の中心点E12が位置PAに位置している。また、タッチ位置Tとポインタ部E13の中心点E14とが位置PB(中心点E12に対して右上側の位置)に位置している。この場合、中心点E12から中心点E14への方向DA(右上方向)が指示方向として取得される。そして、このとき、操作対象のユーザキャラクタUCは、方向DAに対応する移動方向に、中心点E12,E14の間の距離LXに対応する移動速度で移動する。
次に、このような状態から、ユーザが、指示方向を右上方向(方向DA)から右方向に変えるべく、タッチ位置Tを方向パッドE10外の位置PC(中心点E12に対して右側の位置)に向けて移動させた場合について説明する。
図9Bに示すように、タッチ位置Tが位置PCに移動すると、本実施形態では、タッチ位置Tの移動前(図9A)における中心点E12の位置である位置PAから、タッチ位置Tの移動先位置である位置PCへの方向DCを方向パッドE10の移動方向として決定する。方向DCは、位置PAから位置PBへの方向DA(すなわち、タッチ位置Tの移動前(図9A)における指示方向)と、位置PBから位置PCへの方向DB(すなわち、タッチ位置Tの移動方向)とを合成してなる方向である。つまり、方向DCは、位置PAから位置PBへのベクトルと、位置PBから位置PCへのベクトルとの合成ベクトルが示す方向である。
そして、位置PAから方向DCに延びる直線上の位置であって、位置PCから位置PAと位置PBとの間の距離LXだけ離れた位置PEを方向パッドE10の移動先位置として決定する。移動先位置を決定した後、中心点E12が位置PEと一致するようにして、方向パッドE10を方向DCに平行移動させる。ここで、「平行移動」とは、方向パッドE10のすべての点を一定の方向に一定の距離だけ動かすことである。
以上のようにして方向パッドE10が移動した場合、位置PE(方向パッドE10の中心点E12)から位置PC(ポインタ部E13の中心点E14)への方向DD(右方向)が指示方向として取得される。先述の通り、ユーザは指示方向を右方向に変えることを意図してタッチ位置Tを位置PCに移動させているところ、ユーザの意図している指示方向(右方向)がゲーム側で取得される。本実施形態によれば、タッチ位置Tの移動前における指示方向(図9A,9Bの方向DA)と、タッチ位置Tの移動方向(図9A,9Bの方向DB)との両方を考慮して、方向パッドE10の移動方向(方向DC)を決定するため、方向パッドE10の移動後においてユーザの意図している指示方向がゲーム側で取得される。このため、操作対象のユーザキャラクタUCがユーザの意図している方向に移動する。
また、タッチ位置Tの移動前(図9A)と移動後(図9B)とで中心点E12と中心点E14(タッチ位置T)との間の距離が同じ距離(LX)になるため、方向パッドE10の移動後においても操作対象のユーザキャラクタUCが同じ移動速度で移動する。
なお、以上のような方向パッドE10の移動が1又は複数回実行されることによって、方向パッドE10が右側領域RA内まで移動する場合がある。先述のように、右側領域RAはユーザキャラクタUCの移動指示操作以外の操作のための領域であるため、ユーザが右側領域RAへのタッチを開始しても、方向パッドE10は右側領域RAに表示されないが、図10に示すように、方向パッドE10が左側領域LAに表示された後でユーザのタッチ位置が右側領域RAに移動した場合には、方向パッドE10も右側領域RA内に移動するようにしている。このため、ユーザが方向パッドE10を介して方向指示操作を行っている間に、タッチ位置が右側領域RA内に入ってしまったとしても、ユーザは方向指示操作を続行できる。
次に、センシティブモードについて説明する。センシティブモードは、ポインタ部E13がタッチ位置Tと同じ移動方向に移動する点で通常モードと共通するが、ポインタ部E13がタッチ位置Tよりも速い移動速度で移動する点で通常モードと相違する。すなわち、センシティブモードでは、ポインタ部E13がタッチ位置Tの移動方向と同じ方向にタッチ位置Tの移動距離よりも長い距離移動する。
図11は、センシティブモードにおける方向パッドE10の一例を説明するための図である。図6と同様に、図11は、左側領域LAへのタッチが開始された時点における方向パッドE10を示す。図11に示すように、センシティブモードにおいても方向パッドE10はベース部E11とポインタ部E13とを含む。特にセンシティブモードでは、方向パッドE10(ベース部E11)よりも小さい領域である基準領域E15が設定される。例えば、基準領域E15はベース部E11の表示領域を1/nに縮小した領域に相当する。図11に示す例では、基準領域E15がベース部E11の表示領域を1/2に縮小した領域に相当している。すなわち、方向パッドE10(ベース部E11)が中心点E12を中心とした半径Rの円形領域であるのに対し、基準領域E15は中心点E12を中心とした半径R/2の円形領域になっている。
センシティブモードにおいても、タッチ位置Tの移動に応じてポインタ部E13が移動する。図12Aは、タッチ位置Tが中心点E12から右方向に距離L離れた位置に移動した場合を示している。この場合、ポインタ部E13は中心点E12から右方向に距離Lの2倍の距離離れた位置まで移動する。すなわち、ポインタ部E13はタッチ位置Tの移動方向と同じ方向にタッチ位置Tの移動距離の2倍の距離を移動する。
この場合、中心点E12から中心点E14への方向D(右方向)がユーザの指示方向として取得され、操作対象のユーザキャラクタUCの移動方向が当該方向Dに対応する方向に設定される。また、中心点E12,E14の間の距離(L*2)が取得され、操作対象のユーザキャラクタUCの移動速度が当該距離(L*2)に対応する速度に設定される。なお、「*」は乗算演算子である。
図12Bは、タッチ位置Tが中心点E12から左方向に距離L離れた位置に移動した場合を示している。この場合、ポインタ部E13は中心点E12から左方向に距離Lの2倍の距離離れた位置まで移動する。
この場合、中心点E12から中心点E14への方向D(左方向)がユーザの指示方向として取得され、操作対象のユーザキャラクタUCの移動方向が当該方向Dに対応する方向に設定される。また、中心点E12,E14の間の距離(L*2)が取得され、操作対象のユーザキャラクタUCの移動速度が当該距離(L*2)に対応する速度に設定される。
表示部15に表示される仮想的な方向パッドP10の場合、現実の方向パッドとは異なり、ユーザは操作している感触を得ることができないため、ユーザによってはタッチ位置Tの移動距離が小さくなる傾向がある場合がある。前記通常モードでは、ポインタ部E13がタッチ位置Tの移動距離と同じ距離しか移動しないため、上記のような傾向を有するユーザの場合、ポインタ部E13が大きく移動しないことによって、ユーザキャラクタUCの移動速度が速くならない場合がある。これに対し、センシティブモードでは、ポインタ部E13がタッチ位置Tの移動距離の2倍の距離移動するため、上記のような傾向を有するユーザであっても、ポインタ部E13が大きく移動するようになり、上記のような不都合が生じ難くなる。
また、通常モードでは、ポインタ部E13を図12Aにおける位置から図12Bにおける位置まで移動させる場合、タッチ位置Tを図12Aにおける中心点E14から図12Bにおける中心点E14の位置まで移動させる必要がある。この点、上記のような傾向を有するユーザの場合、タッチ位置Tの移動距離が十分でなく、ポインタ部E13が図12Bに示す位置まで移動せず、場合によっては、ポインタ部E13が方向パッドE10の中心点E12よりも左側の位置まで移動しない場合もある。この場合、ユーザは左方向を指示しているつもりであるのにもかかわらず、ゲーム側では右方向が指示されていると判定されることになる。これに対し、センシティブモードでは、ポインタ部E13がタッチ位置Tの移動距離の2倍の距離移動するため、上記のような傾向を有するユーザであっても、ポインタ部E13が大きく移動するようになり、上記のような不都合が生じ難くなる。
なお、センシティブモードでは、タッチ位置Tが基準領域E15内から外に向けて移動する場合に、タッチ位置Tが基準領域E15内に位置するようにすべく、方向パッドE10(ベース部E11及び基準領域E15)が移動する。図13A及び図13Bは、センシティブモード時における方向パッドE10(ベース部E11及び基準領域E15)の移動について説明するための図である。
図13Aに示すように、方向パッドE10の中心点E12が位置PFに位置している。また、タッチ位置Tが位置PG(中心点E12に対して右上の位置)に位置している。位置PGは中心点E12から距離LY離れている。ポインタ部E13の中心点E14は、中心点E12から位置PGへの方向に距離LYの2倍の距離離れた位置PI(中心点E12に対して右上の位置)に位置している。この場合、位置PF(方向パッドE10の中心点E12)から位置PI(ポインタ部E13の中心点E14)への方向DEが指示方向として取得される。そして、操作対象のユーザキャラクタUCは、方向DEに対応する移動方向に、距離LY*2に対応する移動速度で移動する。このような状態で、ユーザが指示方向を右上方向(方向DE)から右方向に変えるべく、タッチ位置Tを位置PGから基準領域E15外の位置PHに向けて移動させると、図13Bに示すように、ポインタ部E13の中心点E14はベース部E11外の位置PJに移動する。
また、このとき、方向パッドE10(ベース部E11及び基準領域E15)が図13Bに示すように右方向に移動する。図13Bにおいて、一点破線は移動前のベース部E11や基準領域E15を示している。この場合、まず、タッチ位置Tの移動前(図13A)における中心点E12の位置である位置PFから、タッチ位置Tの移動先位置である位置PHへの方向DGを方向パッドE10の移動方向として決定する。ここで、方向DGは、位置PFから位置PGへの方向DE(すなわち、移動前(図13A)における指示方向)と、位置PGから位置PHへの方向DF(すなわち、タッチ位置Tの移動方向)とを合成してなる方向である。すなわち、方向DGは、位置PFから位置PGへのベクトルと、位置PGから位置PHへのベクトルとの合成ベクトルが示す方向である。
そして、位置PFから方向DGに延びる直線上の位置であって、位置PHから距離LY(移動前(図13A)における中心点E12とタッチ位置Tとの間の距離)だけ離れた位置PKを方向パッドE10の移動先位置として決定する。そして、中心点E12が位置PKと一致するようにして、方向パッドE10(ベース部E11及び基準領域E15)を方向DGに平行移動させる。
以上のようにして方向パッドE10(ベース部E11及び基準領域E15)が移動した場合、移動後の中心点E12(位置PK)からポインタ部E13の中心点E14(位置PJ)への方向DH(右方向)が指示方向として取得される。先述の通り、ユーザは指示方向を右方向に変えることを意図してタッチ位置Tを移動させたところ、図13Bに示す移動方法によれば、ユーザの意図している指示方向(右方向)がゲーム側で取得される。図13Bに示す移動方法では、移動前における指示方向(方向DE)と、タッチ位置Tの移動方向(方向DF)との両方を考慮して、方向パッドE10の移動方向(方向DG)を決定するため、移動後においてユーザの意図している指示方向がゲーム側で取得される。このため、操作対象のユーザキャラクタUCがユーザの意図している方向に移動する。
また、図13Bに示すように、方向パッドE10の移動前(図13A)と移動後(図13B)とで中心点E12,E14の間の距離が同じ距離(LY*2)になるため、移動後においても操作対象のユーザキャラクタUCが同じ移動速度で移動する。
なお、センシティブモードにおいても、以上のような方向パッドE10(ベース部E11や基準領域E15)の移動が1又は複数回実行されることによって、方向パッドE10が右側領域RA内まで移動する場合がある。センシティブモードにおいても、通常モードと同様に(図10)、方向パッドE10が左側領域LAに表示された後でユーザのタッチ位置が右側領域RAに移動した場合には方向パッドE10も右側領域RA内に移動する。このため、ユーザが方向パッドE10を介して方向指示操作を行っている間に、タッチ位置が右側領域RA内に入ってしまったとしても、ユーザは方向指示操作を続行できる。
次に、操作対象のユーザキャラクタUCに対して移動動作以外の特定の動作(パス等)を行わせるための動作指示操作について説明する。図14は動作指示操作の一例について示す図である。なお、実際には仮想視点VCの視野内に位置しているユーザキャラクタUCや対戦相手キャラクタOC等が表示されるが、図14では説明の簡略化のために省略している。
操作対象のユーザキャラクタUCに対する動作指示操作を行う場合、ユーザはタッチパネルTPの右側領域RAに対して操作を行う。右側領域RAに表示される第1ボタンE18−1や第2ボタンE18−2は、ユーザキャラクタUCが行う動作と関連付けられている。例えば、第1ボタンE18−1は「パス」と関連付けられている。このため、例えば図14に示すように、操作対象のユーザキャラクタUCがボールBを保有していてパスを行うことが可能な状態でユーザが第1ボタンE18−1をタッチすると、操作対象のユーザキャラクタUCがパスを行う。なお、操作対象のユーザキャラクタUCがパスを行うことが可能でない状態でユーザが第1ボタンE18−1をタッチした場合には、パス準備状態とし、操作対象のユーザキャラクタUCがパスを行うことが可能な状態になるのを待って、操作対象のユーザキャラクタUCにパスを行わせるようにしてもよい。
また例えば、第2ボタンE18−2は「シュート」と関連付けられている。このため、操作対象のユーザキャラクタUCが敵陣においてボールBを保有していてシュートを行うことが可能な状態でユーザが第2ボタンE18−2に対してタップ操作を行うと、操作対象のユーザキャラクタUCがシュートを行う。この際、ユーザがタップ操作にかけた時間(すなわち、ユーザが指等を第2ボタンE18−2にタッチさせてから当該指等をタッチパネルTPから離すまでの時間)によって、シュートの強さ(又は角度)が設定されるようにしてもよい。また、操作対象のユーザキャラクタUCがシュートを行うことが可能でない状態でユーザが第2ボタンE18−2に対してタップ操作を行った場合には、シュート準備状態とし、操作対象のユーザキャラクタUCがシュートを行うことが可能な状態になるのを待って、操作対象のユーザキャラクタUCにシュートを行わせるようにしてもよい。なお、「敵陣」とは、ピッチPTのうちハーフウェーラインHLよりも対戦相手チームのゴールGL側の領域である。
また例えば、第1ボタンE18−1又は第2ボタンE18−2と関連付けられる動作は、攻撃時と守備時とで異なっていてもよい。例えば、対戦相手チームがボールBを保有している状態でユーザが第1ボタンE18−1をタッチした場合には、操作対象のユーザキャラクタUCがスライディングを行うようにしてもよい。また例えば、第1ボタンE18−1又は第2ボタンE18−2と関連付けられる動作は、操作対象のユーザキャラクタUCの位置によって異なってもよい。例えば、操作対象のユーザキャラクタUCが自陣においてボールBを保有している状態でユーザが第2ボタンE18−2に対してタップ操作を行った場合には、操作対象のユーザキャラクタUCがボールBをユーザチームのゴールGLから遠ざけるべく大きく蹴り出すようにしてもよい。「自陣」とは、ピッチPTのうちハーフウェーラインHLよりもユーザチームのゴールGL側の領域である。
なお、第1ボタンE18−1や第2ボタンE18−2のような仮想的なボタンの画像を右側領域RAに表示しないようにしてもよい。例えば、ユーザがフリック操作、タップ操作、又はダブルタップ操作等を右側領域RAの任意の位置で行った場合に、ユーザが行った操作に関連付けられた動作を操作対象のユーザキャラクタUCが行うようにしてもよい。なお、「フリック操作」とは、例えば、ユーザがタッチパネルTPをタッチした後に、タッチを維持したまま素早くタッチ位置を移動させてタッチを解除する操作である。また、「ダブルタップ操作」とは、例えば、タップ操作を2回続けて行う操作である。
[3.機能ブロック]以上に説明したようなゲームを実現するための構成について説明する。図15は、ゲームシステム1で実現される主な機能ブロックを示す機能ブロック図である。図15に示すように、ゲームシステム1は、データ記憶部100、選択受付部110、領域設定部120、操作位置取得部130、指示方向取得部140、処理実行部150、及び領域移動部160を含む。
例えば、これらの機能ブロックはゲーム端末10で実現される。すなわち、データ記憶部100は記憶部12によって実現され、他の機能ブロックは制御部11によって実現される。なお、データ記憶部100はゲーム端末10からアクセス可能な他の装置の記憶部によって実現されてもよい。また、上記の機能ブロックはサーバ30で実現されてもよい。あるいは、上記の機能ブロックのうちの一部がゲーム端末10で実現され、残りがサーバ30で実現されてもよい。
[3−1]データ記憶部100はゲームを実行するために必要なデータを記憶する。ここでは、データ記憶部100が記憶するデータの一例として、ゲーム状況データD101及び操作状況データD102について説明する。
ゲーム状況データD101は実行中のゲームの状況を示すデータである。ゲーム状況データD101はゲームの実行中に繰り返し更新される。例えば、ゲーム状況データD101は、仮想世界VWの現在の状況を示すデータや、試合の戦況を示すデータを含む。
仮想世界VWの現在の状況を示すデータは、例えば各ゲームキャラクタの状態、ボールBの状態、及び仮想視点VCの状態を示すデータを含む。また、ゲームキャラクタの状態を示すデータは、例えばユーザキャラクタUC及び対戦相手キャラクタOCの各々の識別情報、位置、向き、姿勢、移動方向、及び移動速度等を示すデータや、操作対象に設定されているユーザキャラクタUCを識別するデータを含む。また、ボールBの状態を示すデータは、例えばボールBの位置、移動方向、移動速度等を示すデータや、ボールBを保有するゲームキャラクタを識別するデータを含む。また、仮想視点VCの状態を示すデータは、例えば仮想視点VCの位置、視線方向、画角等を示すデータを含む。また、試合の戦況を示すデータは、例えばユーザチームの得点、対戦相手チームの得点、及び試合の経過時間等を示すデータを含む。
操作状況データD102はユーザの操作状況を示すデータである。例えば、操作状況データD102は、タッチパネルTPへのタッチが開始されてから現在までの間のタッチ位置の履歴を示すデータを含む。また例えば、操作状況データD102は方向パッドE10に関するデータを含む。例えば、方向パッドE10に関するデータは、方向パッドE10の動作モードを示すデータ、方向パッドE10が表示されているか否かを示すデータや、方向パッドE10(中心点E12,E14)の現在位置を示すデータを含む。
なお、データ記憶部100に記憶されるデータは上記の例に限られない。データ記憶部100には、ゲームを実行するために必要な他のデータも記憶される。例えば、左側領域LAと右側領域RAとを識別するデータ(例えば、境界や端部などの位置を示す座標データ)も記憶される。また例えば、キャラクタが動作を定義したモーションデータや、操作内容とキャラクタの動作との関係を示すデータも記憶される。
[3−2]領域設定部120は受付領域設定部121を含む。受付領域設定部121は、方向指示操作を受け付ける受付領域をタッチパネルTPに設定する。
ここで、「方向指示操作」とは、方向を指示(入力)するためにユーザが行う操作である。また、「受付領域をタッチパネルに設定する」とは、タッチパネルTPの一部領域を受付領域として設定することである。
「受付領域」とは、方向指示操作を受け付けるために用いられる領域である。「受付領域」は可視の領域であってもよいし、不可視の領域であってもよい。すなわち、「受付領域」は表示されてもよいし、表示されていなくてもよい。例えば、方向指示操作を行うための仮想的な操作部材(仮想的な方向ボタン又は方向レバー等)を表示部15に表示する場合、当該仮想的な操作部材が表示される領域が「受付領域」に相当する。なお、仮想的な操作部材が表示される領域とは別個に設定される非表示の領域が「受付領域」に相当してもよい。例えば、「受付領域」はタッチパネルTPへのタッチが開始された場合に設定される。この場合、タッチ位置に基づいて「受付領域」が設定される。例えば、タッチ位置を含むような領域が「受付領域」として設定される。なお、「受付領域」はタッチパネルTPがタッチされていない場合にも設定されていてもよい。また、「受付領域」の初期位置は予め定められた位置に設定されてもよい。上述のサッカーゲームの例では、方向パッドE10(ベース部E11)が「受付領域」の一例に相当する。すなわち、方向パッドE10(ベース部E11)が表示された領域が「受付領域」の一例に相当する。
例えば、受付領域設定部121は、タッチパネルTPの第1領域内がタッチされた場合に、タッチ位置に基づいて、第1領域内に受付領域を設定し、タッチパネルの第1領域以外の第2領域内がタッチされた場合に、受付領域を設定しない。
上述のサッカーゲームの例では、タッチパネルTPの左側領域LAが「第1領域」の一例に相当し、右側領域RAが「第2領域」の一例に相当する。または、右側領域RAが「第1領域」の一例に相当し、左側領域LAが「第2領域」の一例に相当してもよい。なお、タッチパネルTPの中央を境に設定される上側領域と下側領域とのうちの一方が「第1領域」の一例に相当し、他方が「第2領域」の一例に相当してもよい。
上述のサッカーゲームの場合、タッチパネルTPの左側領域LA(第1領域の一例)へのタッチが開始された場合に、受付領域設定部121は方向パッドE10(受付領域の一例)を左側領域LA内に表示する。この場合、受付領域設定部121は、タッチ位置Tを中心点E12として方向パッドE10を表示する。なお、タッチパネルTPの右側領域RA(第2領域の一例)へのタッチが開始されたとしても、受付領域設定部121は方向パッドE10を表示しない。
図15に示すように、領域設定部120は対応領域設定部122を含む。対応領域設定部122は上述のサッカーゲームのセンシティブモードに関連する機能ブロックである。
対応領域設定部122は、受付領域よりも小さい対応領域を設定する。なお、対応領域設定部122は、タッチパネルTPの第1領域内がタッチされた場合に、タッチ位置に基づいて、第1領域内に対応領域を設定し、タッチパネルの第1領域以外の第2領域内がタッチされた場合に、対応領域を設定しない。
ここで、「対応領域」とは、受付領域に対応する領域であって、かつ、受付領域よりも小さい領域である。例えば、「対応領域」とは、受付領域を縮小した領域に相当する領域である。具体的には、「対応領域」とは、受付領域を1/n(n:1よりも大きい正の数値)に縮小した領域に相当する領域である。通常、「対応領域」は不可視の領域であり、表示部15に表示されない。ただし、「対応領域」は可視の領域であってもよく、表示部15に表示されてもよい。例えば、「対応領域」は受付領域と互いに基準位置(例えば中心点)が一致するようにして設定される。
上述のサッカーゲームの例では、センシティブモードにおける基準領域E15が「対応領域」の一例に相当する。すなわち、上述のサッカーゲームの場合、センシティブモードが選択されている状態でタッチパネルTPの左側領域LA(第1領域の一例)へのタッチが開始された場合に、対応領域設定部122は、方向パッドE10のベース部E11の表示領域(「受付領域」の一例)を1/2に縮小した領域に相当する不可視の領域を基準領域E15として左側領域LA内に設定する。この場合、対応領域設定部122は、タッチ位置T(言い換えれば、ベース部E11の中心点E12)を中心として基準領域E15を設定する。なお、センシティブモードが選択されている状態でタッチパネルTPの右側領域RA(第2領域の一例)へのタッチが開始されたとしても、対応領域設定部122は基準領域E15を設定しない。
[3−3]操作位置取得部130は、タッチパネルTPのタッチ位置に応じた操作位置を取得(設定)する。
ここで、「タッチパネルTPのタッチ位置」とは、タッチパネルTPがタッチされている場合においてタッチされている位置である。また、「操作位置」とは、方向指示操作に関する操作位置である。すなわち、「操作位置」とは、方向を指示するための位置である。言い換えれば、「操作位置」とは、指示方向を示す位置である。上述のサッカーゲームの例では、ポインタ部E13の中心点E14が「操作位置」の一例に相当する。
「タッチ位置に応じた操作位置を取得(設定)する」とは、例えば、タッチ位置自体を操作位置として取得(設定)することである。または、「タッチ位置に応じた操作位置を取得(設定)する」とは、例えば、タッチ位置以外の位置であって、かつ、タッチ位置に基づいて得られる位置を操作位置として取得(設定)することであってもよい。例えば、「タッチ位置に応じた操作位置を取得する」とは、タッチ位置と所定の関係を有する位置を操作位置として取得(設定)することであってもよい。
操作位置取得部130は、タッチ位置の移動に応じて、操作位置を移動させる。
ここで、「タッチ位置の移動に応じて、操作位置を移動させる」とは、例えば、タッチ位置の移動方向に対応する方向に操作位置を移動させることである。「タッチ位置の移動方向に対応する方向」とは、タッチ位置の移動方向と所定の対応関係を有する方向である。例えば、「タッチ位置の移動方向に対応する方向」とは、タッチ位置の移動方向と同じ方向又は略同じ方向である。「タッチ位置の移動方向に対応する方向」は、タッチ位置の移動方向と同じ方向又は略同じ方向でなくてもよく、タッチ位置の移動方向と所定の対応関係を有する他の方向であってもよい。なお、「方向Xと略同じ方向」とは、ユーザが認識できない程度に小さく方向Xからずれた方向である。
また、「タッチ位置の移動に応じて、操作位置を移動させる」とは、例えば、タッチ位置の移動距離に対応する距離だけ操作位置を移動させることである。「タッチ位置の移動距離に対応する距離」とは、タッチ位置の移動距離と所定の対応関係を有する距離である。例えば、「タッチ位置の移動距離に対応する距離」とは、タッチ位置の移動距離と同じ距離又は略同じ距離である。または、「タッチ位置の移動距離に対応する距離」とは、タッチ位置の移動距離に所定係数(1よりも大きい正の値)を乗じることによって得られる距離であってもよいし、タッチ位置の移動距離に所定距離を足すことによって得られる距離であってもよい。なお、「距離Xと略同じ距離」とは、ユーザが認識できない程度に小さく距離Xと異なる距離である。
図15に示すように、操作位置取得部130は第1操作位置移動部131と第2操作位置移動部132とを含む。第1操作位置移動部131は上述のサッカーゲームの通常モードに関連する機能ブロックであり、第2操作位置移動部132は上述のサッカーゲームのセンシティブモードに関連する機能ブロックである。
第1操作位置移動部131は、タッチ位置の移動に応じて、操作位置を、タッチ位置の移動方向に対応する方向に、タッチ位置の移動距離移動させる。
ここで、「操作位置を、タッチ位置の移動方向に対応する方向に、タッチ位置の移動距離移動させる」とは、「現在の操作位置から、タッチ位置の移動方向に対応する方向に、タッチ位置の移動距離離れた位置」を新たな操作位置として設定することである。
第2操作位置移動部132は、タッチ位置の移動に応じて、操作位置を、タッチ位置の移動方向に対応する方向に、タッチ位置の移動距離よりも長い距離移動させる。
ここで、「タッチ位置の移動距離よりも長い距離」とは、例えば、タッチ位置の移動距離に所定係数(1よりも大きい正の値)を乗じることによって得られる距離である。また、「タッチ位置の移動距離よりも長い距離」とは、例えば、タッチ位置の移動距離に所定距離を加えることによって得られる距離であってもよい。
「操作位置を、タッチ位置の移動方向に対応する方向に、タッチ位置の移動距離よりも長い距離移動させる」とは、「現在の操作位置から、タッチ位置の移動方向に対応する方向に、タッチ位置の移動距離よりも長い距離離れた位置」を新たな操作位置として設定することである。
例えば、第2操作位置移動部132は、操作位置と受付領域に対応する基準位置との位置関係がタッチ位置と対応領域に対応する基準位置との位置関係に対応するようにして、操作位置を設定する。第2操作位置移動部132は、タッチ位置の移動に応じて、操作位置を、タッチ位置の移動方向に対応する方向に、対応領域に対する受付領域の相対的なサイズに応じてタッチ位置の移動距離を長くすることによって得られる距離移動させる。
ここで、「操作位置と受付領域に対応する基準位置との位置関係がタッチ位置と対応領域に対応する基準位置との位置関係に対応するようにして、操作位置を設定する」とは、受付領域に対応する基準位置から操作位置への方向が、対応領域に対応する基準位置からタッチ位置への方向に対応する方向となり、かつ、受付領域に対応する基準位置と操作位置との間の距離が、対応領域に対応する基準位置とタッチ位置との間の距離に対応する距離となるようにして、操作位置を設定することである。
なお、「基準位置からタッチ位置への方向に対応する方向」とは、基準位置からタッチ位置への方向と所定の対応関係を有する方向である。例えば、基準位置からタッチ位置への方向と同じ方向又は略同じ方向である。または、基準位置からタッチ位置への方向と同じ方向又は略同じ方向でなくてもよく、基準位置からタッチ位置への方向と所定の対応関係を有する他の方向であってもよい。
また、「基準位置とタッチ位置との間の距離に対応する距離」とは、基準位置とタッチ位置との間の距離と所定の対応関係を有する距離である。例えば、基準位置とタッチ位置との間の距離に所定係数(1よりも大きい正の値)を乗じることによって得られる距離であってもよいし、基準位置とタッチ位置との間の距離に所定距離を加えることによって得られる距離である。または、基準位置とタッチ位置との間の距離と同じ距離又は略同じ距離であってもよい。
また、「対応領域に対する受付領域の相対的なサイズに応じてタッチ位置の移動距離を長くすることによって得られる距離」とは、例えば、対応領域に対する受付領域の相対的なサイズに応じた係数(1よりも大きい正の数値)をタッチ位置の移動距離に乗じることによって得られる距離である。または、例えば、対応領域に対する受付領域の相対的なサイズに応じた距離をタッチ位置の移動距離に加えることによって得られる距離であってもよい。
例えば、対応領域が、受付領域を1/n(n:1よりも大きい正の数値)に縮小した領域に相当している場合、第2操作位置移動部132は、タッチ位置の移動に応じて、操作位置を、タッチ位置の移動方向に対応する方向に、タッチ位置の移動距離をn倍することによって得られる距離移動させる。
上述のサッカーゲームの場合、通常モードでは、操作位置取得部130(第1操作位置移動部131)は、タッチ位置T(操作位置の一例)を取得し、当該位置が中心点E14になるようにしてポインタ部E13を表示する。一方、センシティブモードでは、操作位置取得部130(第2操作位置移動部132)は、ベース部E11の中心点E12から、タッチ位置Tへの方向に、中心点E12とタッチ位置Tとの間の距離の2倍の距離離れた位置(操作位置の他の一例)を取得し、当該位置が中心点E14になるようにしてポインタ部E13を表示する。
[3−4]指示方向取得部140は、受付領域に対応する基準位置から操作位置への方向に基づいて指示方向を取得する。
ここで、「受付領域に対応する基準位置」とは、指示方向を取得する際の基準として用いられる位置である。例えば、受付領域の代表的な点の位置が「基準位置」として設定される。具体的には、例えば、受付領域の中心点が「基準位置」として設定される。なお、受付領域の中心点以外の位置が「基準位置」として設定されてもよい。上述のサッカーゲームの例では方向パッドE10(ベース部E11)の中心点E12が「基準位置」の一例に相当する。
「指示方向」とは、方向指示操作によって指示された方向である。言い換えれば、「指示方向」とは、ユーザによって指示(入力)された方向である。また、「基準位置から操作位置への方向に基づいて指示方向を取得する」とは、例えば、基準位置から操作位置への方向に対応する方向を指示方向として取得することである。ここで、「基準位置から操作位置への方向に対応する方向」とは、基準位置から操作位置への方向と所定の対応関係を有する方向である。例えば、「基準位置から操作位置への方向に対応する方向」とは、基準位置から操作位置への方向と同じ方向又は略同じ方向である。また、ユーザが指示可能な方向が有限数の方向(例えば四方向又は八方向等)に限定されている場合であれば、「基準位置から操作位置への方向に対応する方向」とは、それら有限数の方向のうちで、基準位置から操作位置への方向に最も近い方向である。
上述のサッカーゲームの場合、指示方向取得部140は、方向パッドE10(ベース部E11)の中心点E12からポインタ部E13の中心点E14への方向を指示方向として取得する。例えば図8に示した状態では、指示方向取得部140は上方向を指示方向として取得する。また例えば図9A,13Aに示した状態では、指示方向取得部140は右上方向を指示方向として取得する。また例えば図9B,12A,13Bに示した状態では、指示方向取得部140は右方向を指示方向として取得する。また例えば図12Bに示した状態では、指示方向取得部140は左方向を指示方向として取得する。
[3−5]処理実行部150は、指示方向取得部140によって取得された指示方向に基づいて処理を実行する。例えば、処理実行部150は指示方向に基づいてゲーム処理を実行する。処理実行部150は、指示方向と、基準位置と操作位置との間の距離とに基づいて、ゲーム処理を実行するようにしてもよい。
ここで、「ゲーム処理」とは、ゲームに関する処理である。また、「指示方向に基づいてゲーム処理を実行する」とは、例えば、ゲームに関する事項(パラメータ等)を指示方向に基づいて設定することである。例えば、ゲームに関する方向が「ゲームに関する事項」の一例に相当する。さらに、「指示方向と、基準位置と操作位置との間の距離とに基づいて、ゲーム処理を実行する」とは、ゲームに関する第1の事項(第1のパラメータ等)を指示方向に基づいて設定し、ゲームに関する第2の事項(第2のパラメータ等)を距離に基づいて設定することである。例えば、ゲームに関する方向が「第1の事項」の一例に相当し、ゲームに関する方向以外の事項が「第2の事項」の一例に相当する。
例えば、ユーザの操作対象に関する制御処理が「ゲーム処理」の一例に相当し、処理実行部150はユーザの操作対象に関する制御処理を実行する。また、ユーザの操作対象の動作に関する方向が「ゲームに関する方向」の一例に相当し、ユーザの操作対象の動作に関する程度(速さ又は強さ等)が「ゲームに関する方向以外の事項」の一例に相当する。
「操作対象」とは、ユーザによる操作の対象となるオブジェクトである。なお、「オブジェクト」とは、表示部15に表示されるものであって、ユーザによる操作の対象となり得るものである。例えば、ユーザの操作に従って動作するキャラクタ又は乗物や、ユーザの操作に従って移動するカーソル等が「オブジェクト」の一例に相当する。上述のサッカーゲームの例では、操作対象のユーザキャラクタUCが「操作対象」の一例に相当する。
「操作対象に関する制御処理」とは、例えば、操作対象の移動制御処理や、操作対象の移動制御処理以外の制御処理を含む。「操作対象の移動制御処理」とは、操作対象を移動させる処理である。「操作対象の移動制御処理以外の制御処理」とは、例えば、移動動作以外の動作を操作対象に行わせる処理である。
例えば、処理実行部150は、指示方向に基づいて、操作対象の移動制御処理を実行する。また、処理実行部150は、タッチパネルTPの第2領域内がタッチされた場合に、タッチ位置又はタッチ位置の移動軌跡に基づいて、操作対象に関する制御処理であって、移動制御処理以外の制御処理を実行する。
ここで、「指示方向に基づいて、操作対象の移動制御処理を実行する」とは、例えば、指示方向に基づく移動方向に操作対象を移動させることである。また、「タッチ位置の移動軌跡」とは、タッチ位置が移動した経路である。言い換えれば、「タッチ位置の移動軌跡」とは、ユーザが指等をタッチパネルTPにタッチさせた状態のままでスライド操作又はフリック操作を行うことによって描いた軌跡である。
「移動制御処理以外の制御処理」とは、例えば、所定の動作(移動動作以外の動作)を操作対象に行わせる処理である。また、「タッチ位置又はタッチ位置の移動軌跡に基づいて、移動制御処理以外の制御処理を実行する」とは、例えば、タッチ位置又はタッチ位置の移動軌跡に基づいて、タッチパネルTPの第2領域内に対してタップ操作、ダブルタップ操作、フリック操作、又はスライド操作が行われたか否かを判定し、当該判定結果に応じて移動制御処理以外の制御処理を実行することである。具体的には、タッチパネルTPの第2領域内に対してタップ操作、ダブルタップ操作、フリック操作、又はスライド操作が行われた場合に、行われた操作に関連付けられた動作(移動動作以外の動作)を操作対象に行わせることである。
または、「タッチ位置又はタッチ位置の移動軌跡に基づいて、移動制御処理以外の制御処理を実行する」とは、例えば、タッチ位置又はタッチ位置の移動軌跡に関連付けられた動作(移動動作以外の動作)を操作対象に行わせることであってもよい。具体的には、例えば、タッチ位置に表示要素(ボタン又はアイコン等)が表示されている場合に、当該表示要素に関連付けられた動作を操作対象に行わせることであってもよい。また例えば、タッチ位置の移動軌跡として所定の移動軌跡が入力された場合に、当該所定の移動軌跡に関連付けられた動作を操作対象に行わせることであってもよい。
上述のサッカーゲームの場合、処理実行部150は、指示方向に基づいて、操作対象のユーザキャラクタUCを移動させる処理(移動制御処理の一例)を実行する。具体的には、処理実行部150は、指示方向に基づいて、操作対象のユーザキャラクタUCの移動方向(「ユーザの操作対象の動作に関する方向」の一例)を設定する。すなわち、処理実行部150は、指示方向に対応する仮想世界VW内の方向を、操作対象のユーザキャラクタUCの移動方向として設定する。例えば、方向パッドE10における上方向が仮想世界VWのZw軸正方向と対応付けられている場合において、上方向が指示方向として取得された場合、処理実行部150はZw軸正方向を操作対象のユーザキャラクタUCの移動方向として設定する。
また、処理実行部150は、方向パッドE10の中心点E12とポインタ部E13の中心点E14との間の距離に基づいて、操作対象のユーザキャラクタUCの移動速度(「ユーザの操作対象の動作に関する程度」の一例)を設定する。すなわち、処理実行部150は、中心点E12,E14の間の距離に対応する移動速度を、操作対象のユーザキャラクタUCの移動速度として設定する。
また、処理実行部150は、タッチパネルTPの右側領域RA(「第2領域」の一例)がタッチされた場合に、タッチ位置又はタッチ位置の移動軌跡に基づいて、操作対象のユーザキャラクタUCにパス又はシュートを行わせる処理(「移動制御処理以外の制御処理」の一例)を実行する。例えば、右側領域RA内の第1ボタンE18−1がタッチされた場合に、処理実行部150は操作対象のユーザキャラクタUCにパスを行わせ、右側領域RA内の第2ボタンE18−2に対してタップ操作が行われた場合に、処理実行部150は操作対象のユーザキャラクタUCにシュートを行わせる。なお、フリック操作が右側領域RAで行われた場合に、処理実行部150は操作対象のユーザキャラクタUCにパスを行わせ、ダブルタップ操作が行われた場合に、処理実行部150は操作対象のユーザキャラクタUCにシュートを行わせるようにしてもよい。
なお、上述のサッカーゲームでは、操作対象のユーザキャラクタUCのパス方向又はシュート方向を、方向パッドE10を用いて指示できるようにしてもよい。すなわち、処理実行部150は、指示方向に基づいて、操作対象のユーザキャラクタUCのパス方向又はシュート方向(「ユーザの操作対象の動作に関する方向」の他の一例)を設定してもよい。また、処理実行部150は、中心点E12,E14の間の距離に基づいて、パス又はシュートの際の操作対象のユーザキャラクタUCのボールBを蹴る力(「ユーザの操作対象の動作に関する程度」の他の一例)を設定してもよい。
[3−6]領域移動部160は第1領域移動部161と第2領域移動部162を含む。第1領域移動部161は上述のサッカーゲームの通常モードに関連する機能ブロックであり、第2領域移動部162は上述のサッカーゲームのセンシティブモードに関連する機能ブロックである。
[3−6−1]第1領域移動部161は、受付領域内から受付領域外に操作位置が移動することに伴って、受付領域を移動させる。第1領域移動部161は、操作位置が受付領域内の第1位置から受付領域外の第2位置に向けて移動することに伴って、操作位置が第1位置であった時点での基準位置である第3位置から第2位置への方向に対応する方向に受付領域を移動させる。例えば、第1領域移動部161は、第2位置から、第3位置への方向に対応する方向に、第1位置と第3位置との間の距離に対応する距離離れた第4位置が基準位置となるようにして、受付領域を移動させる。
また、第1領域移動部161は、受付領域設定部121によって受付領域が設定された後で操作位置がタッチパネルTPの第2領域内に移動することに伴って、受付領域を第2領域内に移動させる。
ここで、「受付領域内から受付領域外に操作位置が移動することに伴って、受付領域を移動させる」とは、操作位置が受付領域内の位置から受付領域外の位置に向けて移動する場合に、当該操作位置の移動に応じて、受付領域を移動させることである。例えば、操作位置が受付領域内の位置から受付領域外の位置に向けて移動する場合に、操作位置が受付領域内に含まれるように、操作位置とともに受付領域を移動させることである。なお、「受付領域を移動させる」とは、受付領域を平行移動させること、すなわち、受付領域のすべての点を一定の方向に一定の距離だけ移動させることである。
「第3位置から第2位置への方向に対応する方向」とは、例えば、第3位置から第2位置への方向と同じ方向又は略同じ方向である。「第3位置から第2位置への方向に対応する方向に受付領域を移動させる」とは、例えば、第3位置から第2位置への方向に対応する方向に受付領域を移動させることである。例えば、第2位置が受付領域内に含まれるようにして、受付領域を、第3位置から第2位置への方向に対応する方向に移動させることである。
「第3位置への方向に対応する方向」とは、第3位置への方向と同じ方向又は略同じ方向である。また、「第1位置と第3位置との間の距離に対応する距離」とは、第1位置と第3位置との間の距離と同じ距離又略同じ距離である。「距離Xと略同じ距離」とは、例えば、ユーザが認識できない程度に小さく距離Xと異なる距離である。
上述のサッカーゲームの通常モードでは、例えば図9A,9Bに示したように、タッチ位置T(操作位置の一例)が方向パッドE10のベース部E11(受付領域の一例)内の位置PB(第1位置の一例)からベース部E11外の位置PC(第2位置の一例)に向けて移動する場合に、第1領域移動部161は、位置PA(第3位置の一例)から位置PCへの方向DCにベース部E11を移動させる。第1領域移動部161は、中心点E12(基準位置の一例)が位置PCから位置PAへの方向に距離LX離れた位置PD(第4位置の一例)になるようにして、方向パッドE10(ベース部E11)を移動させる。
また例えば図10に示したように、方向パッドE10が左側領域LA(第1領域の一例)内に表示された後で、タッチ位置T(操作位置の一例)が右側領域LB(第2領域の一例)内に移動した場合に、第1領域移動部161は、方向パッドE10(ベース部E11及びポインタ部E13)を右側領域LB内に移動させる。
[3−6−2]第2領域移動部162は、対応領域内から対応領域外にタッチ位置が移動することに伴って、対応領域と受付領域とを移動させる。
また、第2領域移動部162は、領域設定部120によって受付領域及び対応領域が設定された後でタッチ位置が第2領域内に移動することに伴って、受付領域及び対応領域を第2領域内に移動させる。
ここで、「対応領域内から対応領域外にタッチ位置が移動することに伴って、対応領域と受付領域とを移動させる」とは、タッチ位置が対応領域内の位置から対応領域外の位置に向けて移動する場合に、当該タッチ位置の移動に応じて、対応領域及び受付領域を移動させることである。例えば、タッチ位置が対応領域内の位置から対応領域外の位置に向けて移動する場合に、タッチ位置が対応領域内に含まれるように、かつ、操作位置が受付領域内に含まれるように、タッチ位置とともに対応領域及び受付領域を移動させることである。なお、「対応領域及び受付領域を移動させる」とは、対応領域を平行移動させ、かつ、受付領域を平行移動させること、すなわち、対応領域のすべての点を一定の方向に一定の距離だけ移動させ、かつ、受付領域のすべての点を一定の方向に一定の距離だけ移動させることである。
上述のサッカーゲームのセンシティブモードでは、例えば図13A,13Bに示したように、タッチ位置Tが基準領域E15(対応領域の一例)内の位置PGから基準領域E15外の位置PHに向けて移動する場合に、第2領域移動部162は、位置PFから位置PHへの方向DGにベース部E11及び基準領域E15を移動させる。第2領域移動部162は、中心点E12(基準位置の一例)が位置PHから位置PFへの方向に距離LY離れた位置PKになるようにして、方向パッドE10(ベース部E11及び基準領域E15)を移動させる。
なお、タッチ位置Tが位置PGから位置PHに向けて移動する場合とは、ポインタ部E13の中心点E14(「操作位置」の一例)がベース部E11内の位置PIからベース部E11外の位置PJに向けて移動する場合である。このため、第2領域移動部162は、ポインタ部E13の中心点E14がベース部E11内の位置PIからベース部E11外の位置PJに向けて移動する場合に、位置PFから位置PJへの方向DGに方向パッドE10(ベース部E11及び基準領域E15)を移動させるものであるということもできる。すなわち、第2領域移動部162は、中心点E12が、位置PJから位置PFへの方向に距離LYの2倍の距離離れた位置PKになるようにして、方向パッドE10(ベース部E11及び基準領域E15)を移動させるものであるということもできる。
またセンシティブモードにおいても、例えば図10に示したように、方向パッドE10が左側領域LA(第1領域の一例)内に表示された後で、タッチ位置T(操作位置の一例)が右側領域LB(第2領域の一例)内に移動した場合に、第2領域移動部162は、方向パッドE10(ベース部E11、ポインタ部E13、及び基準領域E15)を右側領域LB内に移動させる。
[3−7]選択受付部110は、操作位置を移動させるために用いる手段として、第1操作位置移動部131と第2操作位置移動部132とのいずれかの選択を受け付ける。
ここで、「第1操作位置移動部131と第2操作位置移動部132とのいずれかの選択を受け付ける」とは、第1操作位置移動部131と第2操作位置移動部132とのいずれかを選択するための画像を表示部15に表示させて、第1操作位置移動部131と第2操作位置移動部132とのいずれかを選択する選択操作を受け付けることである。または、「第1操作位置移動部131と第2操作位置移動部132とのいずれかの選択を受け付ける」とは、第1操作位置移動部131と第2操作位置移動部132とのいずれかを選択した結果を示すデータを受信することであってもよい。
上述のサッカーゲームの場合、選択受付部110は、図7に示した動作モード選択画像G2を表示部15に表示させ、第1操作位置移動部131に対応する通常モードと、第2操作位置移動部132に対応するセンシティブモードとのいずれかの選択を受け付ける。
[4.処理]次に、ゲームシステム1で実行される処理について説明する。
[4−1]図16A〜図16Cは、サッカーゲームの試合中に実行される処理のうち、操作対象のユーザキャラクタUCに対する操作を受け付ける処理の概要について主に示すフロー図である。サッカーゲームの試合中には、操作対象以外のユーザキャラクタUCや対戦相手キャラクタOCを制御する処理や、表示部15に表示される仮想世界画像G1を更新する処理等も実行されるが、ここでは省略している。制御部11が図16A〜図16Cに示す処理をプログラムに従って実行することによって、制御部11が図15に示す機能ブロック(データ記憶部100を除く)として機能する。
[4−1−1]図16Aに示すように、まず、制御部11はタッチパネルTPへのタッチが開始されたか否かを判定する(S100)。タッチパネルTPへのタッチが開始されていない場合、制御部11はタッチパネルTPへのタッチが開始されたか否かの監視を続行する(S100)。一方、タッチパネルTPへのタッチが開始された場合、制御部11はタッチ位置が左側領域LA内であるか否かを判定する(S102)。例えば、制御部11はタッチ位置のXs座標がXmax/2未満であるか否かを判定する。
タッチ位置が左側領域LA内である場合、制御部11は、予めユーザによって選択された方向パッドE10の動作モードが通常モードであるか否かを判定する(S104)。方向パッドE10の動作モードが通常モードである場合、制御部11は、通常モード時の方向指示操作受付処理を実行する(S106)。この処理については後述する(図16B参照)。
一方、方向パッドE10の動作モードが通常モードでない場合(すなわち、方向パッドE10の動作モードがセンシティブモードである場合)、制御部11は、センシティブモード時の方向指示操作受付処理を実行する(S108)。この処理については後述する(図16C参照)。
また、ステップS102において、タッチ位置が左側領域LA内でないと判定された場合(すなわち、タッチ位置が右側領域RA内である場合)、制御部11は動作指示操作受付処理を実行する(S110)。すなわち、制御部11はユーザが右側領域RAに対して行った操作を判定し、当該操作に関連付けられた動作を操作対象のユーザキャラクタUCに行わせる。
例えば、操作対象のユーザキャラクタUCがボールBを保有していてパスを行うことが可能な状態で右側領域RA内の第1ボタンE18−1がタッチされた場合、制御部11は、操作対象のユーザキャラクタUCにパスを行わせる。また例えば、操作対象のユーザキャラクタUCが敵陣でボールBを保有していてシュートを行うことが可能な状態で右側領域RA内の第2ボタンE18−2に対してタップ操作が行われた場合、制御部11は操作対象のユーザキャラクタUCにシュートを行わせる。なお、例えば、操作対象のユーザキャラクタUCがボールBを保有している状態で右側領域RAに対してフリック操作が行われた場合、制御部11は、フリック方向に対応する方向へのパスを操作対象のユーザキャラクタUCに行わせるようにしてもよい。また例えば、操作対象のユーザキャラクタUCが敵陣でボールBを保有している状態で右側領域RAに対してダブルタップ操作が行われた場合、制御部11は操作対象のユーザキャラクタUCにシュートを行わせるようにしてもよい。また例えば、対戦相手チームがボールBを保有している状態で右側領域RAに対してフリック操作が行われた場合、制御部11は、フリック方向に対応する方向にスライディングを操作対象のユーザキャラクタUCに行わせるようにしてもよい。
[4−1−2]図16Bは、ステップS106で実行される処理(通常モード時の方向指示操作受付処理)の一例の概要を示すフロー図である。図16Bに示すように、まず、制御部11は方向パッドE10を左側領域LAに表示する(S120)。この際、ベース部E11,ポインタ部E13の中心点E12,E14はともにタッチ位置に設定される。
方向パッドE10が表示されている間、制御部11はステップS122〜S140の処理を繰り返し実行する。すなわち、制御部11はタッチ位置を操作位置として取得し(S122)、操作位置が方向パッドE10(ベース部E11)内であるか否かを判定する(S124)。
操作位置が方向パッドE10(ベース部E11)内である場合、制御部11はポインタ部E13の位置を操作位置に合わせる(S132)。すなわち、制御部11は中心点E14が操作位置となるようにして、ポインタ部E13の位置を更新する。
一方、操作位置が方向パッドE10(ベース部E11)内でない場合(すなわち、操作位置が方向パッドE10(ベース部E11)外である場合)、制御部11は方向パッドE10の移動方向を決定する(S126)。すなわち、制御部11は、方向パッドE10の中心点E12の現在位置からステップS122で取得された操作位置への方向を移動方向として決定する。例えば図9A,9Bに示した例の場合、制御部11は、位置PA(中心点E12の現在位置)から位置PC(ステップS122で取得される操作位置)への方向DCを移動方向として決定する。
ステップS126の実行後、制御部11は方向パッドE10の移動先位置を決定する(S128)。まず、制御部11は、方向パッドE10の中心点E12の現在位置と、ステップS122で取得された操作位置の一つ前の時点の操作位置との間の距離を取得する。例えば図9A,9Bに示した例の場合、制御部11は、位置PA(中心点E12の現在位置)と位置PB(ステップS122で取得された操作位置の一つ前の時点の操作位置)との間の距離LXを取得する。そして、制御部11は、中心点E12の現在位置からステップS126で決定された移動方向に伸びる直線上にある位置であって、ステップS122で取得された操作位置から上記距離離れた位置を移動先位置として決定する。例えば図9A,9Bに示した例の場合、制御部11は、位置PA(中心点E12の現在位置)から方向DC(ステップS126で決定される移動方向)に伸びる直線上にある位置であって、位置PC(ステップS122で取得される操作位置)から距離LX離れた位置PEを移動先位置として決定する。
ステップS128の実行後、制御部11は方向パッドE10(ベース部E11)を移動させる(S130)。すなわち、制御部11は、中心点E12がステップS128で決定された移動先位置となるようにして、方向パッドE10(ベース部E11)を移動させる。さらに、制御部11はポインタ部E13の位置を操作位置に合わせる(S132)。
ステップS132の実行後、制御部11は、方向パッドE10の中心点E12からステップS122で取得された操作位置への方向を指示方向として取得する(S134)。また、制御部11は、方向パッドE10の中心点E12とステップS122で取得された操作位置との間の距離を取得する(S136)。
ステップS134,S136の実行後、制御部11は、ステップS134,S136で取得された指示方向及び距離に基づいて、操作対象のユーザキャラクタUCを移動させる(S138)。この際、制御部11は、操作対象のユーザキャラクタUCの移動方向を、ステップS134で取得された指示方向に対応する仮想世界VW内の方向に設定する。また制御部11は、操作対象のユーザキャラクタUCの移動速度を、ステップS136で取得された距離に対応する速度に設定する。
ステップS138の実行後、制御部11は、方向パッドE10をタッチしていた指等がタッチパネルから離れたか否かを判定する(S140)。方向パッドE10をタッチしていた指等がタッチパネルから離れていない場合、制御部11はステップS122の処理を再び実行する。一方、方向パッドE10をタッチしていた指等がタッチパネルから離れた場合、制御部11は方向パッドE10を非表示にし(S142)、本処理を終了する。すなわち、ステップS106の処理が終了する。
[4−1−3]図16Cは、ステップS108で実行される処理(センシティブモード時の方向指示操作受付処理)の一例の概要を示すフロー図である。図16Cに示すように、まず、制御部11は方向パッドE10を左側領域LAに表示し、基準領域E15も設定する(S150)。この際、方向パッドE10(ベース部E11及び基準領域E15)の中心点E12とポインタ部E13の中心点E14はともにタッチ位置に設定される。
方向パッドE10が表示されている間、制御部11はステップS152〜S172の処理を繰り返し実行する。すなわち、制御部11はタッチ位置Tを取得し(S152)、タッチ位置Tが基準領域E15内であるか否かを判定する(S154)。
タッチ位置Tが基準領域E15内である場合、制御部11は操作位置を取得する(S162)。まず、制御部11は方向パッドE10の中心点E12とタッチ位置Tとの間の距離Lを取得する。そして、制御部11は、中心点E12からタッチ位置Tへの方向に上記距離Lの2倍の距離離れた位置を操作位置として取得する。さらに、制御部11はポインタ部E13の位置を操作位置に合わせる(S164)。すなわち、制御部11は操作位置となるようにして、ポインタ部E13の位置を更新する。
一方、タッチ位置Tが基準領域E15内でない場合(すなわち、タッチ位置Tが基準領域E15外である場合)、制御部11は方向パッドE10の移動方向を決定する(S156)。すなわち、制御部11は、基準領域E15の中心点E12の現在位置からステップS152で取得されたタッチ位置Tへの方向を移動方向として決定する。例えば図13A,13Bに示した例の場合、制御部11は、位置PF(中心点E12の現在位置)から位置PH(ステップS152で取得されるタッチ位置T)への方向DGを移動方向として決定する。
ステップS156の実行後、制御部11は方向パッドE10の移動先位置を決定する(S158)。まず、制御部11は、基準領域E15の中心点E12の現在位置と、ステップS152で取得されたタッチ位置Tの一つ前の時点のタッチ位置Tとの間の距離を取得する。例えば図13A,13Bに示した例の場合、制御部11は、位置PF(中心点E12の現在位置)と位置PG(ステップS152で取得されたタッチ位置の一つ前の時点のタッチ位置)との間の距離LYを取得する。そして、制御部11は、基準領域E15の中心点E12の現在位置からステップS156で決定された移動方向に伸びる直線上にある位置であって、ステップS152で取得されたタッチ位置Tから上記距離離れた位置を移動先位置として決定する。例えば図13A,13Bに示した例の場合、制御部11は、位置PF(中心点E12の現在位置)から方向DG(ステップS156で決定される移動方向)に伸びる直線上にある位置であって、位置PH(ステップS152で取得されるタッチ位置T)から距離LY離れた位置PKを移動先位置として決定する。
ステップS158の実行後、制御部11は方向パッドE10(ベース部E11及び基準領域E15)を移動させる(S160)。すなわち、制御部11は、中心点E12がステップS158で決定された移動先位置となるようにして、方向パッドE10(ベース部E11及び基準領域E15)を移動させる。さらに、制御部11は操作位置を取得し(S162)、ポインタ部E13の位置を操作位置に合わせる(S164)。
ステップS164の実行後、制御部11は、方向パッドE10の中心点E12からステップS162で取得された操作位置への方向を指示方向として取得する(S166)。また、制御部11は、方向パッドE10の中心点E12とステップS162で取得された操作位置との間の距離を取得する(S168)。
ステップS166,S168の実行後、制御部11は、ステップS166,S168で取得された指示方向及び距離に基づいて、操作対象のユーザキャラクタUCを移動させる(S170)。ステップS170の処理はステップS138と同様である。
ステップS170の実行後、制御部11は、方向パッドE10をタッチしていた指等がタッチパネルから離れたか否かを判定する(S172)。方向パッドE10をタッチしていた指等がタッチパネルから離れていない場合、制御部11はステップS152の処理を再び実行する。一方、方向パッドE10をタッチしていた指等がタッチパネルから離れた場合、制御部11は方向パッドE10を非表示にし(S174)、本処理を終了する。すなわち、ステップS108の処理が終了する。
[4−2]図17A〜図17Eは、サッカーゲームの試合中に実行される全体の処理について示すフロー図である。
[4−2−1]図17Aは、サッカーゲームの試合中にゲーム端末10で実行される処理について示すフロー図である。図17Aに示すように、まず、制御部11はゲーム処理を実行する(S1000)。例えば、ユーザキャラクタUCや対戦相手キャラクタOCの位置、移動方向、移動速度、モーション等を更新する処理や、ボールBの位置、移動方向、移動速度等を更新する処理が実行される。
例えば、ステップS1000では、操作対象のユーザキャラクタUCの位置、移動方向、移動速度を更新する処理としては、図16BのステップS134〜S138(通常モード時)、又は図16CのステップS166〜S170(センシティブモード時)と同様の処理が実行される。
また、ステップS1000では、第1ボタンE18−1の第1エッジトリガフラグ又は第2エッジトリガフラグに基づいて、第1ボタンE18−1に対応する処理が実行される。また、第2ボタンE18−2の第1エッジトリガフラグ又は第2エッジトリガフラグに基づいて、第2ボタンE18−2に対応する処理が実行される。
ここで、第1ボタンE18−1の「第1エッジトリガフラグ」とは、第1ボタンE18−1がタッチされていない状態から、第1ボタンE18−1がタッチされた状態へと変化したか否かを示すフラグである。この第1エッジトリガフラグは、第1ボタンE18−1がタッチされていない状態から、第1ボタンE18−1がタッチされた状態へと変化した場合にONに設定される。なお、試合開始時に第1ボタンE18−1の第1エッジトリガフラグはOFFに初期設定される。
また、第1ボタンE18−1の「第2エッジトリガフラグ」とは、第1ボタンE18−1をタッチしていた指等がタッチパネルTPから離れたか否かを示すフラグである。この第2エッジトリガフラグは、第1ボタンE18−1をタッチしていた指等がタッチパネルTPから離れた場合にONに設定される。なお、試合開始時に第1ボタンE18−1の第2エッジトリガフラグはOFFに初期設定される。
なお、第2ボタンE18−2の「第1エッジトリガフラグ」や「第2エッジトリガフラグ」は、第1ボタンE18−1の第1エッジトリガフラグや第2エッジトリガフラグと同様であるため、説明を省略する。
例えば、ステップS1000では、第1ボタンE18−1が、操作対象のユーザキャラクタUCにパスを行わせるボタンであり、第1ボタンE18−1の第1エッジトリガフラグがONになっている場合に、操作対象のユーザキャラクタUCがパスを行うことが可能な状態であれば、操作対象のユーザキャラクタUCにパスモーションを開始させる処理や、パス方向へのボールBの移動を開始させる処理等が実行される。
また例えば、ステップS1000では、第2ボタンE18−2が、操作対象のユーザキャラクタUCにシュートを行わせるボタンであり、第2ボタンE18−2の第2エッジトリガフラグがONになっている場合に、操作対象のユーザキャラクタUCがシュートを行うことが可能な状態であれば、操作対象のユーザキャラクタUCにシュートモーションを開始させる処理や、シュート方向へのボールBの移動を開始させる処理等が実行される。なお、この際、第2ボタンE18−2の第1エッジトリガフラグがONになってから第2エッジトリガフラグがONになるまでの時間(すなわち、ユーザが指等を第2ボタンE18−2にタッチさせてから当該指等をタッチパネルTPから離すまでの時間)に基づいて、シュートの強さ(又は角度)が設定される。
ステップS1000の実行後、制御部11は入力クリア処理を実行する(S1002)。例えば、第1ボタンE18−1や第2ボタンE18−2の各々の第1エッジトリガフラグや第2エッジトリガフラグがOFFにリセットされる。
また、制御部11は描画処理を実行する(S1004)。例えば、仮想視点VCが設定され、仮想視点VCから見た仮想世界VWを表す仮想世界画像G1がバックバッファに描画される。また、第1ボタンE18−1や第2ボタンE18−2の画像が、バックバッファに描画された仮想世界画像G1上に描画される。さらに、後述の方向パッド描画ステータスがONである場合には、方向パッドE10の画像も、バックバッファに描画された仮想世界画像G1上に描画される。なお、方向パッドE10、第1ボタンE18−1、第2ボタンE18−2の画像を仮想世界画像G1と半透明合成してもよい。
そして、制御部11はVブランク割り込みが発生するのを待ち(S1006)、Vブランク割り込みが発生したら、バックバッファからフロントバッファに切り替える(S1008)。この切り替えによって、ステップS1004でバックバッファに描画された画像が表示部15に表示されることになる。ステップS1008の実行後、ステップS1000に戻る。このようにして、サッカーゲームの試合中には、以上に説明したステップS1000〜S1008の処理が繰り返し実行される。
[4−2−2]ゲーム端末10では、タッチパネルTPをタッチすること(DOWNアクション)、タッチパネルTPをタッチしている指等をスライド移動させること(MOVEアクション)、又は、タッチパネルTPをタッチしていた指等をタッチパネルTPから離すこと(UPアクション)等の各アクションが行われるごとに、OnTouchイベント(割り込み)が発生する。なお、OnTouchイベントの発生や、OnTouchイベントにおけるアクションの判別は、操作部14(タッチパネルTP)によるタッチの検出結果に基づいて行われる。図17Bは、サッカーゲームの試合中にOnTouchイベントが発生した場合に実行される処理について示すフロー図である。
図17Bに示すように、OnTouchイベントが発生した場合、制御部11は、OnTouchイベントにおけるアクションがDOWNアクションであるか否かを判定する(S1010)。OnTouchイベントにおけるアクションがDOWNアクションである場合とは、ユーザがタッチパネルTPをタッチした場合である。この場合、制御部11はDOWN処理を実行する(S1012)。DOWN処理は、DOWNアクションの場合に実行する処理である。詳細については後述する(図17C参照)。
また制御部11は、OnTouchイベントにおけるアクションがMOVEアクションであるか否かを判定する(S1014)。OnTouchイベントにおけるアクションがMOVEアクションである場合とは、ユーザがタッチパネルTPをタッチしている指等をスライド移動させた場合である。この場合、制御部11はMOVE処理を実行する(S1016)。MOVE処理は、MOVEアクションの場合に実行する処理である。詳細については後述する(図17D参照)。
また制御部11は、OnTouchイベントにおけるアクションがUPアクションであるか否かを判定する(S1018)。OnTouchイベントにおけるアクションがUPアクションである場合とは、ユーザがタッチパネルTPをタッチしていた指等をタッチパネルTPから離した場合である。この場合、制御部11はUP処理を実行する(S1020)。UP処理は、UPアクションの場合に実行する処理である。詳細については後述する(図17E参照)。
[4−2−3]図17Cは、ステップS1012で実行されるDOWN処理の一例を示すフロー図である。図17Cに示すように、制御部11はユーザのタッチ位置のXsYs座標を取得する(S1030)。そして、制御部11はタッチ位置のXsYs座標が左側領域LA内であるか否かを判定する(S1032)。タッチ位置のXsYs座標が左側領域LA内である場合、制御部11は左OLDIDがNULLであるか否かを判定する(S1034)。なお、タッチ位置のXsYs座標は、操作部14(タッチパネルTP)によるタッチの検出結果から取得される。
ゲーム端末10では、タッチパネルTPがタッチされるごとに、当該タッチに対してIDが割り当てられ、当該タッチの位置が当該IDと関連付けて管理される。当該タッチの位置が移動しても当該タッチとIDとの関連付けは維持され、当該タッチに関して発生したOnTouchイベントには当該IDが関連付けられる。図17Cにおいて、「現在ID」は、発生したOnTouchイベントに関連付けられたIDのことである。また、「左OLDID」は、左側領域LA内をタッチ開始位置とするタッチのIDを保持するためのものである。左OLDIDがNULLでなく、左OLDIDにIDがセットされている状態は、左側領域LA内をタッチ開始位置とするタッチが維持されている状態である。一方、左OLDIDがNULLである状態は、左側領域LA内をタッチ開始位置とするタッチが維持されていない状態である。
ステップS1034において左OLDIDがNULLでないと判定されるケースとは、左側領域LA内をタッチ開始位置とするタッチが存在されている状態で、さらに、左側領域LA内をタッチ開始位置とする別の新たなタッチがなされた場合であり、当該新たなタッチのIDが現在IDとなっている場合である。本実施形態ではこのような新たなタッチを無視して本処理を終了する。
一方、ステップS1034において左OLDIDがNULLであると判定された場合、制御部11は左OLDIDに現在IDをセットする(S1036)。さらに、制御部11は方向パッド描画ステータスをONにし(S1038)、方向パッドE10の中心点E12の座標として、ステップS1030で取得された座標をセットする(S1040)。方向パッド描画ステータスは、ステップS1004で方向パッドE10を描画するか否かを示すものである。試合開始時において方向パッド描画ステータスはOFFになっており、方向パッド描画ステータスがOFFである場合には、ステップS1004で方向パッドE10は描画されない。一方、方向パッド描画ステータスがONである場合には、ステップS1004で方向パッドE10が描画される。この際、方向パッドE10は、ステップS1040でセットされた座標を中心点E12として描画されることになる。
ステップS1032においてタッチ位置のXsYs座標が左側領域LA内でないと判定された場合、制御部11は右OLDIDがNULLであるか否かを判定する(S1042)。ここで、「右OLDID」は、左OLDIDと同様、右側領域RA内をタッチ開始位置とするタッチのIDを保持するためのものである。右OLDIDがNULLでなく、右OLDIDにIDがセットされている状態は、右側領域RA内をタッチ開始位置とするタッチが維持されている状態である。一方、右OLDIDがNULLである状態は、右側領域RA内をタッチ開始位置とするタッチが維持されていない状態である。
ステップS1042において右OLDIDがNULLでないと判定されるケースとは、右側領域RA内をタッチ開始位置とするタッチが維持されている状態で、さらに、右側領域RA内をタッチ開始位置とする別の新たなタッチがなされた場合であり、当該新たなタッチのIDが現在IDとなっている場合である。本実施形態ではこのような新たなタッチを無視してDOWN処理を終了する。
一方、ステップS1042において右OLDIDがNULLであると判定された場合、制御部11は右OLDIDに現在IDをセットする(S1044)。さらに、制御部11は、ステップS1030で取得されたタッチ位置のXsYs座標が第1ボタンE18−1の領域内であるか否かを判定する(S1046)。ここで、「第1ボタンE18−1の領域」とは、第1ボタンE18−1が表示された領域であってもよいし、第1ボタンE18−1に対して設定された別個の不可視(非表示)の領域であってもよい。
タッチ位置のXsYs座標が第1ボタンE18−1の領域内である場合、制御部11は、第1ボタンE18−1のフラグをセットする(S1048)。
例えば、制御部11は第1ボタンE18−1のオン状態フラグをONにし、第1エッジトリガフラグをONにし、第2エッジトリガフラグをOFFにする。なお、第1ボタンE18−1の「オン状態フラグ」とは、第1ボタンE18−1がタッチされているか否かを示すフラグである。このオン状態フラグは、第1ボタンE18−1がタッチされていない場合にOFFに設定され、第1ボタンE18−1がタッチされている場合にONに設定される。試合開始時に第1ボタンE18−1のオン状態フラグはOFFに初期設定される。
ステップS1046においてタッチ位置のXsYs座標が第1ボタンE18−1の領域内でないと判定された場合、制御部11はステップS1048を実行することなく、後述のステップS1050を実行する。
また、制御部11は、ステップS1030で取得されたタッチ位置のXsYs座標が第2ボタンE18−2の領域内であるか否かを判定する(S1050)。ここで、「第2ボタンE18−2の領域」とは、第1ボタンE18−1の領域と同様であり、ステップS1050の処理もステップS1046と同様である。
タッチ位置のXsYs座標が第2ボタンE18−2の領域内である場合、制御部11は、第2ボタンE18−2のフラグをセットする(S1052)。例えば、制御部11は、第2ボタンE18−2のオン状態フラグをONにし、第1エッジトリガフラグをONにし、第2エッジトリガフラグをOFFにする。なお、第2ボタンE18−2のオン状態フラグは第1ボタンE18−1のオン状態フラグと同様であるため、ここでは説明を省略する。
ステップS1050においてタッチ位置のXsYs座標が第2ボタンE18−2の領域内でないと判定された場合、制御部11はステップS1050を実行することなく、本処理を終了する。
[4−2−4]図17Dは、ステップS1016で実行されるMOVE処理の一例を示すフロー図である。図17Dに示すように、まず、制御部11は、発生したOnTouchイベント(MOVEアクション)の対象のタッチ位置のXsYs座標を取得する(S1060)。また、制御部11は左OLDIDが現在IDであるか否かを判定する(S1062)。なお、タッチ位置のXsYs座標は、操作部14(タッチパネルTP)によるタッチの検出結果から取得される。また、ここで、「現在ID」とは、発生したOnTouchイベントに関連付けられたIDであり、MOVEアクションの対象のタッチのIDである。
左OLDIDが現在IDであるケースとは、発生したOnTouchイベント(MOVEアクション)が、方向パッドE10をタッチしている指等の移動に関するものである場合である。この場合、制御部11は、ステップS1060で取得されたタッチ位置のXsYs座標が方向パッドE10の領域内であるか否かを判定する(S1064)。通常モード時の場合、制御部11は、タッチ位置のXsYs座標が方向パッドE10(ベース部E11)の表示領域内であるか否かを判定する。一方、センシティブモード時の場合、制御部11は、タッチ位置のXsYs座標が基準領域E15内であるか否かを判定する。
タッチ位置のXsYs座標が方向パッドE10の領域内でない場合、制御部11は方向パッドE10の中心点E12の座標を変更する(S1066)。ステップS1066の処理は、図16BのステップS126〜S130(通常モード時)、又は図16CのステップS156〜S160(センシティブモード時)と同様であるため、ここでは説明を省略する。
また、制御部11は、ステップS1060で取得された座標に基づいて、ポインタ部E13の中心点E14の座標をセットする(S1068)。ステップS1068の処理は、図16BのステップS122,S132(通常モード時)、又は図16CのステップS162,S164(センシティブモード時)と同様であるため、ここでは説明を省略する。
なお、ステップS1064においてタッチ位置のXsYs座標が方向パッドE10の領域内であると判定された場合、制御部11はステップS1066を実行することなく、ステップS1068を実行する。ステップS1068の実行後、制御部11は本処理を終了する。また、ステップS1062において左OLDIDが現在IDでないと判定された場合、制御部11はステップS1064〜S1068を実行することなく、本処理を終了する。
[4−2−5]図17Eは、ステップS1020で実行されるUP処理の一例を示すフロー図である。図17Eに示すように、まず、制御部11は左OLDIDが現在IDであるか否かを判定する(S1070)。ここで、「現在ID」とは、発生したOnTouchイベントに関連付けられたIDであり、UPアクションの対象のタッチのIDである。UPアクションとは、タッチパネルTPをタッチしていた指等がタッチパネルTPから離れること(すなわち、タッチが解除されること)であるため、「現在ID」とは、解除されたタッチのIDである。
ステップS1070において左OLDIDが現在IDであると判定されるケースとは、方向パッドE10をタッチしていた指等がタッチパネルTPから離れた場合である。この場合、制御部11は左OLDIDをNULLにし(S1072)、方向パッド描画ステータスをOFFにする(S1074)。さらに、制御部11は、ポインタ部E13の中心点E14の座標を、方向パッドE10(ベース部E11)の中心点E12の座標に初期化し(S1076)、本処理を終了する。
一方、ステップS1070において左OLDIDが現在IDでないと判定された場合、制御部11は右OLDIDが現在IDであるか否かを判定する(S1078)。ステップS1078において右OLDIDが現在IDであると判定されるケースとは、右側領域RAをタッチしていた指等がタッチパネルTPから離れた場合である。この場合、制御部11は右OLDIDをNULLにする(S1080)。また、制御部11は、第1ボタンE18−1のオン状態フラグがONであるか否かを判定する(S1082)。ここで、ステップS1082において第1ボタンE18−1のオン状態フラグがONであると判定されるケースとは、第1ボタンE18−1をタッチしていた指等がタッチパネルTPから離れた場合である。この場合、制御部11は第1ボタンE18−1の第2エッジトリガフラグをONにし(S1084)、第1ボタンE18−1のオン状態フラグをOFFにする(S1086)。なお、ステップS1082において第1ボタンE18−1のオン状態フラグがONでないと判定された場合、制御部11はステップS1084を実行することなく、ステップS1086を実行する。
また、制御部11は、第2ボタンE18−2のオン状態フラグがONであるか否かを判定する(S1088)。ここで、ステップS1088において第2ボタンE18−2のオン状態フラグがONであると判定されるケースとは、第2ボタンE18−2をタッチしていた指等がタッチパネルTPから離れた場合である。この場合、制御部11は第2ボタンE18−2の第2エッジトリガフラグをONにし(S1090)、第2ボタンE18−2のオン状態フラグをOFFにする(S1092)。なお、ステップS1088において第2ボタンE18−2のオン状態フラグがONでないと判定された場合、制御部11はステップS1090を実行することなく、ステップS1092を実行する。ステップS1092の実行後、制御部11は本処理を終了する。ステップS1078において右OLDIDが現在IDでないと判定された場合にも、制御部11は本処理を終了する。
[5.まとめ]以上に説明したゲームシステム1では、方向パッドE10の中心点E12から操作位置(ポインタ部E13の中心点E14)への方向に基づいて指示方向が取得され、当該指示方向に基づいてゲーム処理が実行される。
ゲームシステム1では、例えば図9A,9Bに示したように、操作位置(タッチ位置T)が方向パッドE10内の位置PBから方向パッドE10外の位置PCに向けて移動することに伴って、操作位置が位置PBであった時点の中心点E12である位置PAから位置PCへの方向DCに向けて方向パッドE10が移動する。このため、ユーザが無意識のうちに、操作位置を方向パッドE10外に向けて移動させてしまった場合であっても、方向パッドE10が移動するため、「ユーザが方向指示操作を行っているつもりでいるにもかかわらず、ゲーム側では方向指示操作が行われていないと判定されてしまう」という不都合が生じないように図ることができる。
特にゲームシステム1では、図9Bに示したように、方向パッドE10の移動方向(方向DC)が、移動前における指示方向(方向DA)と、操作位置の移動方向(方向DB)との両方を反映したものになる。先述したように、図9Bに示した移動方法によれば、ゲーム側で判定される指示方向とユーザの意図している指示方向とのずれを低減でき、その結果、操作性を向上できる。
さらにゲームシステム1では、方向パッドE10の中心点E12と操作位置(ポインタ部E13の中心点E14)との間の距離にも基づいてゲーム処理を実行するところ、図9Bに示した移動方法によれば、方向パッドE10の移動後における上記距離(位置PEから位置PCまでの距離)が移動前における上記距離(位置PAから位置PBまでの距離)と同じになるため、方向パッドE10の移動後においてゲーム側で判定される上記距離とユーザの意図している上記距離とのずれを低減でき、その結果、操作性を向上できる。
またゲームシステム1のセンシティブモードでは、タッチ位置Tの移動に応じて、操作位置(ポインタ部E13の中心点E14)が、タッチ位置Tの移動方向に対応する方向に、タッチ位置Tの移動距離よりも長い距離移動する。従来、タッチ位置の移動距離が短くなる傾向があるユーザに関しては、ユーザの意図している方向以外の方向が指示されているとゲーム側で判定されてしまうという不都合が発生するおそれがあったが、センシティブモードによれば、タッチ位置の移動距離が短くなる傾向があるユーザであっても、このような不都合が発生し難くなる。
またゲームシステム1のセンシティブモードでは、方向パッドE10を1/2に縮小してなる領域に相当する基準領域E15が設定され、操作位置と方向パッドE10の中心点E12との位置関係がタッチ位置Tと基準領域E15の中心点E12との位置関係に対応するようにして、操作位置(ポインタ部E13の中心点E14)を設定する。その結果、操作位置の移動距離をタッチ位置Tの移動距離をn倍することによって得られる距離に設定すればすむため、タッチ位置Tの移動距離よりも長く操作位置が移動するような操作位置の設定に関わる処理を簡略化できる。
またゲームシステム1では、センシティブモードにおいても、タッチ位置Tを基準領域E15内から基準領域E15外に向けて移動させてしまった場合に、方向パッドE10(ベース部E11及び基準領域E15)が当該タッチ位置Tの移動に伴って移動するため(図13A,13B)、ユーザが無意識のうちにタッチ位置Tを基準領域E15外に向けて移動させてしまった場合であっても、ユーザは方向指示操作を続行できる。
またゲームシステム1では、ユーザは、方向パッドE10の動作モードとして、通常モードとセンシティブモードとのいずれかを任意に選択できる(図7)。ユーザは自らの傾向・癖を考慮して方向パッドE10の動作モードを選択できる。
またゲームシステム1では、タッチパネルTPの左側領域LAがタッチされた場合に方向パッドE10を左側領域LA内に表示し、方向パッドE10を介して指示された方向に基づいてユーザキャラクタUCの移動制御処理を実行する。一方、右側領域RA内がタッチされた場合には方向パッドE10を表示せずに、ユーザキャラクタUCの移動制御処理以外の制御処理を実行する。このため、ゲームシステム1によれば、タッチパネルTPの左側領域LAをユーザキャラクタUCに対する移動指示操作のために用い、右側領域RAをユーザキャラクタUCに対する移動指示操作以外の操作のために用いることができる。すなわち、ユーザキャラクタUCに対する移動指示操作を行う領域と、ユーザキャラクタUCに対する移動指示操作以外の操作を行う領域とを分けることができ、ユーザが操作を行い易くなる。
またゲームシステム1では、図10に示したように、方向パッドE10が左側領域LA内に表示された後で、ユーザが無意識のうちに、タッチ位置Tを右側領域RA内に移動させてしまった場合であっても、方向パッドE10が右側領域RA内に移動するため、ユーザは方向指示操作を続行できる。
[6.変形例]本発明は以上に説明した実施形態に限定されるものではない。
[6−1]以上に説明した実施形態では、操作位置が方向パッドE10の表示領域内であるか否かを判定するようになっていたが、例えば図18に示すように、方向パッドE10の表示領域とは別に不可視(非表示)の判定領域A16(受付領域の一例)を設定してもよい。例えば図16BのステップS124では、操作位置が判定領域A16内であるか否かを判定してもよい。
[6−2]クライアント/サーバ形式のゲームの場合には、指示方向の取得等をゲーム端末10で実行し、取得した指示方向をサーバ30に送信し、ユーザキャラクタUCの制御処理をサーバ30で実行してもよい。そして、ユーザキャラクタUCの制御処理の結果に基づいて、仮想世界画像G1の生成・更新をゲーム端末10で実行してもよい。この場合、処理実行部150はサーバ30で実現され、ゲーム状況データD101もサーバ30に記憶される。なお、指示方向の取得や仮想世界画像G1の生成もサーバ30で実行してもよい。すなわち、図15に示すすべての機能ブロックがサーバ30で実現されてもよい。
[6−3]通常モード及びセンシティブモードの両方を備えていなくてもよく、いずれか一方を備えないようにしてもよい。通常モードを省略する場合には通常モードに関連する機能ブロックを省略でき、センシティブモードを省略する場合にはセンシティブモードに関連する機能ブロックを省略できる。
[6−4]以上では、本発明をサッカーゲームに適用した例について主に説明したが、本発明は他の各種ゲームにも適用することが可能である。また以上では、本発明を、情報処理システム又は情報処理装置の一例であるゲームシステム1又はゲーム端末10に適用した場合について説明したが、本発明は、ゲームシステム1又はゲーム端末10以外の情報処理システム又は情報処理装置にも適用することが可能である。方向パッドE10は、タッチパネルを備えた情報処理システム又は情報処理装置において、例えばカーソル等の操作対象を移動させるために用いることもできる。
[7.付記]以上のような記載から、本発明は例えば以下のように把握される。なお、本発明の理解を容易にするために、適宜図面に記載された符号を括弧書きで記載するが、それにより本発明が図示の態様に限定されるものではない。
1)本発明の一態様に係るゲームシステム(1)は、方向指示操作を受け付ける受付領域(E10)をタッチパネル(TP)に設定する領域設定手段(120)と、前記タッチパネル(TP)のタッチ位置(T)に応じた操作位置(E14)を設定する手段であって、前記タッチ位置(T)の移動に応じて、前記操作位置(E14)を移動させる操作位置設定手段(130,132)と、前記受付領域(E10)に対応する基準位置(E12)から前記操作位置(E14)への方向に基づいて指示方向を取得する指示方向取得手段(140)と、前記指示方向に基づいてゲーム処理を実行するゲーム処理実行手段(150)と、を含み、前記操作位置設定手段(132)は、前記タッチ位置(T)の移動に応じて、前記操作位置(E14)を、前記タッチ位置(T)の移動方向に対応する方向に、前記タッチ位置(T)の移動距離よりも長い距離移動させる。
9)本発明の一態様に係るゲーム制御装置(10又は30)は、方向指示操作を受け付ける受付領域(E10)をタッチパネル(TP)に設定する領域設定手段(120)と、前記タッチパネル(TP)のタッチ位置(T)に応じた操作位置(E14)を設定する手段であって、前記タッチ位置(T)の移動に応じて、前記操作位置(E14)を移動させる操作位置設定手段(130,132)と、前記受付領域(E10)に対応する基準位置(E12)から前記操作位置(E14)への方向に基づいて指示方向を取得する指示方向取得手段(140)と、を含み、前記操作位置設定手段(132)は、前記タッチ位置(T)の移動に応じて、前記操作位置(E14)を、前記タッチ位置(T)の移動方向に対応する方向に、前記タッチ位置(T)の移動距離よりも長い距離移動させる。
10)本発明の一態様に係るプログラムは、1)〜8)のいずれかに記載のゲームシステム(1)、又は、9)に記載のゲーム制御装置(10又は30)としてコンピュータを機能させるためのプログラムである。
11)本発明の一態様に係る情報記憶媒体は、10)に記載のプログラムを記録したコンピュータで読み取り可能な情報記憶媒体である。
12)本発明の一態様に係るゲームシステム(1)又はゲーム制御装置(10又は30)の制御方法は、方向指示操作を受け付ける受付領域(E10)をタッチパネル(TP)に設定する領域設定ステップ(S150)と、前記タッチパネル(TP)のタッチ位置(T)に応じた操作位置(E14)を設定するステップであって、前記タッチ位置(T)の移動に応じて、前記操作位置(E14)を移動させる操作位置設定ステップ(S162)と、前記受付領域(E10)に対応する基準位置(E12)から前記操作位置(E14)への方向に基づいて指示方向を取得する指示方向取得ステップ(S166)と、を含み、前記操作位置設定ステップ(S162)では、前記タッチ位置(T)の移動に応じて、前記操作位置(E14)を、前記タッチ位置(T)の移動方向に対応する方向に、前記タッチ位置(T)の移動距離よりも長い距離移動させる。
1)、9)〜12)に記載の発明では、受付領域に対応する基準位置からタッチ位置に応じた操作位置への方向に基づいて指示方向が取得され、当該指示方向に基づいてゲーム処理が実行される。このようなゲームでは、方向を指示するために必要なタッチ位置の移動距離よりも実際のユーザのタッチ位置の移動距離が短くなる傾向があるため、従来、ユーザが所望の方向に対応する領域まで操作位置が移動するようにタッチ位置を移動させたつもりでいるにもかかわらず、実際には、所望の方向に対応する領域まで操作位置が移動していないことによって、ゲーム側では所望の方向以外の方向が指示されていると判定されてしまうという不都合が発生するおそれがあったが、本発明によれば、タッチ位置の移動に応じて、操作位置を、タッチ位置の移動方向に対応する方向に、タッチ位置の移動距離よりも長い距離移動させるため、上記のような不都合が発生し難くなる。
2)本発明の一態様では、前記領域設定手段(120)は、前記受付領域(E10)よりも小さい対応領域(E15)を設定する手段(122)を含み、前記操作位置設定手段(132)は、前記操作位置(E14)と前記受付領域(E10)に対応する基準位置(E12)との位置関係が前記タッチ位置(T)と前記対応領域(E15)に対応する基準位置(E12)との位置関係に対応するようにして、前記操作位置(E14)を設定し、前記操作位置設定手段(132)は、前記タッチ位置(T)の移動に応じて、前記操作位置(E14)を、前記タッチ位置(T)の移動方向に対応する方向に、前記対応領域(E15)に対する前記受付領域(E10)の相対的なサイズに応じて前記タッチ位置(T)の移動距離を長くすることによって得られる距離移動させるようにしてもよい。
2)に記載の発明によれば、操作位置と受付領域に対応する基準位置との位置関係がタッチ位置と対応領域に対応する基準位置との位置関係に対応するようにして、操作位置を設定し、対応領域に対する受付領域の相対的なサイズに応じてタッチ位置の移動距離を長くするようにして、操作位置の移動距離を設定すればすむため、タッチ位置の移動距離よりも長く操作位置が移動するような操作位置の設定に関わる処理を簡略化できる。
3)本発明の一態様では、前記対応領域(E15)は、前記受付領域(E10)を1/n(n:1よりも大きい正の数値)に縮小した領域に相当する領域であり、前記操作位置設定手段(132)は、前記タッチ位置(T)の移動に応じて、前記操作位置(E14)を、前記タッチ位置(T)の移動方向に対応する方向に、前記タッチ位置(T)の移動距離をn倍することによって得られる距離移動させるようにしてもよい。
3)に記載の発明によれば、操作位置の移動距離をタッチ位置の移動距離をn倍することによって得られる距離に設定すればすむため、タッチ位置の移動距離よりも長く操作位置が移動するような操作位置の設定に関わる処理を簡略化できる。
4)本発明の一態様では、前記対応領域(E15)内から前記対応領域(E15)外に前記タッチ位置(T)が移動することに伴って、前記対応領域(E15)と前記受付領域(E10)とを移動させる領域移動手段(162)を含むようにしてもよい。
4)に記載の発明によれば、ユーザが無意識のうちに、タッチ位置を対応領域内から対応領域外のに向けて移動させてしまった場合であっても、対応領域と受付領域とが当該タッチ位置の移動に伴って移動するため、ユーザは方向指示操作を続行できる。
5)本発明の一態様では、前記領域設定手段(120)は、前記タッチパネル(TP)の第1領域(LA)内がタッチされた場合に、前記タッチ位置(T)に基づいて、前記第1領域(LA)内に前記受付領域(E10)及び前記対応領域を(E15)設定し、前記タッチパネル(T)の第1領域(LA)以外の第2領域(RA)内がタッチされた場合に、前記受付領域(E10)及び前記対応領域(E15)を設定しないようにしてもよい。
5)に記載の発明によれば、タッチパネルの第1領域内がタッチされた場合に、タッチされた位置に基づいて、第1領域内に受付領域を設定し、タッチパネルの第1領域以外の第2領域内がタッチされた場合に、受付領域を設定しないため、タッチパネルの第1領域を方向指示操作のために用い、タッチパネルの第2領域を方向指示操作以外の操作のために用いることができる。すなわち、方向指示操作を行う領域と、方向指示操作以外の操作を行う領域とを分けることができ、その結果、ユーザが操作を行い易くなる。
6)本発明の一態様では、前記領域移動手段(162)は、前記領域設定手段(120)によって前記受付領域(E10)及び前記対応領域(E15)が設定された後で前記タッチ位置(T)が前記第2領域(RA)内に移動することに伴って、前記受付領域(E10)及び前記対応領域(E15)を前記第2領域(RA)内に移動させるようにしてもよい。
6)に記載の発明によれば、ユーザが無意識のうちに、受付領域及び対応領域が設定された後で操作位置を第2領域内に移動させてしまった場合であっても、受付領域及び対応領域が第2領域内に移動するため、ユーザは方向指示操作を続行できる。
7)本発明の一態様では、前記ゲーム処理実行手段(150)は、ユーザの操作対象(UC)に関する制御処理を実行し、前記ゲーム処理実行手段(150)は、前記指示方向に基づいて、前記操作対象(UC)の移動制御処理を実行する手段と、前記第2領域(RA)内がタッチされた場合に、前記タッチ位置又は前記タッチ位置の移動軌跡に基づいて、前記操作対象(UC)に関する制御処理であって前記移動制御処理以外の制御処理を実行する手段と、を含むようにしてもよい。
7)に記載の発明によれば、指示方向に基づいて操作対象の移動制御処理が実行され、第2領域内がタッチされた場合に、タッチ位置又はタッチ位置の移動軌跡に基づいて、操作対象に関する制御処理であって移動制御処理以外の制御処理が実行されるため、タッチパネルの第1領域を操作対象の移動操作のために用いることができ、タッチパネルの第2領域を操作対象の移動操作以外の操作のために用いることができる。
8)本発明の一態様では、前記操作位置設定手段(130)は、前記タッチ位置(T)の移動に応じて、前記操作位置(E14)を、前記タッチ位置(T)の移動方向に対応する方向に、前記タッチ位置(T)の移動距離移動させる第1移動手段(131)と、前記タッチ位置(T)の移動に応じて、前記操作位置(E14)を、前記タッチ位置(T)の移動方向に対応する方向に、前記タッチ位置(T)の移動距離よりも長い距離移動させる第2移動手段(132)と、を含み、前記ゲームシステム(1)は、前記操作位置(E14)を移動させるために用いる手段として前記第1移動手段(131)又は前記第2移動手段(132)のいずれかの選択を受け付ける選択受付手段(110)をさらに含むようにしてもよい。
8)に記載の発明によれば、ユーザは、操作位置の移動モードとして、「操作位置を、タッチ位置の移動方向に対応する方向に、タッチ位置の移動距離よりも長い距離移動させるモード」と、「操作位置を、タッチ位置の移動方向に対応する方向に、タッチ位置の移動距離移動させるモード」のいずれかを任意に選択できる。
13)また、本発明の一態様に係る情報処理システム(1)は、方向指示操作を受け付ける受付領域(E10)をタッチパネル(TP)に設定する領域設定手段(120)と、前記タッチパネル(TP)のタッチ位置(T)に応じた操作位置(E14)を設定する手段であって、前記タッチ位置(T)の移動に応じて、前記操作位置(E14)を移動させる操作位置設定手段(130,132)と、前記受付領域(E10)に対応する基準位置(E12)から前記操作位置(E14)への方向に基づいて指示方向を取得する指示方向取得手段(140)と、前記指示方向に基づいて処理を実行する処理実行手段(150)と、を含み、前記操作位置設定手段(132)は、前記タッチ位置(T)の移動に応じて、前記操作位置(E14)を、前記タッチ位置(T)の移動方向に対応する方向に、前記タッチ位置(T)の移動距離よりも長い距離移動させる。
14)また、本発明の一態様に係る情報処理装置(10又は30)は、方向指示操作を受け付ける受付領域(E10)をタッチパネル(TP)に設定する領域設定手段(120)と、前記タッチパネル(TP)のタッチ位置(T)に応じた操作位置(E14)を設定する手段であって、前記タッチ位置(T)の移動に応じて、前記操作位置(E14)を移動させる操作位置設定手段(130,132)と、前記受付領域(E10)に対応する基準位置(E12)から前記操作位置(E14)への方向に基づいて指示方向を取得する指示方向取得手段(140)と、を含み、前記操作位置設定手段(132)は、前記タッチ位置(T)の移動に応じて、前記操作位置(E14)を、前記タッチ位置(T)の移動方向に対応する方向に、前記タッチ位置(T)の移動距離よりも長い距離移動させる。
15)本発明の一態様に係るプログラムは、13)に記載の情報処理システム(1)又は14)に記載の情報処理装置(10又は30)としてコンピュータを機能させるためのプログラムである。
16)本発明の一態様に係る情報記憶媒体は、15)に記載のプログラムを記録したコンピュータで読み取り可能な情報記憶媒体である。
16)本発明の一態様に係る情報処理システム(1)又は情報処理装置(10又は30)の制御方法は、方向指示操作を受け付ける受付領域(E10)をタッチパネル(TP)に設定する領域設定ステップ(S150)と、前記タッチパネル(TP)のタッチ位置(T)に応じた操作位置(E14)を設定するステップであって、前記タッチ位置(T)の移動に応じて、前記操作位置(E14)を移動させる操作位置設定ステップ(S162)と、前記受付領域(E10)に対応する基準位置(E12)から前記操作位置(E14)への方向に基づいて指示方向を取得する指示方向取得ステップ(S166)と、を含み、前記操作位置設定ステップ(S162)では、前記タッチ位置(T)の移動に応じて、前記操作位置(E14)を、前記タッチ位置(T)の移動方向に対応する方向に、前記タッチ位置(T)の移動距離よりも長い距離移動させる。
10)〜14)に記載の発明によれば、受付領域に対応する基準位置からタッチ位置に応じた操作位置への方向に基づいて指示方向が取得され、当該指示方向に基づいて処理が実行される。このような場合、方向を指示するために必要なタッチ位置の移動距離よりも実際のユーザのタッチ位置の移動距離が短くなる傾向があるため、従来、ユーザが所望の方向に対応する領域まで操作位置が移動するようにタッチ位置を移動させたつもりでいるにもかかわらず、実際には、所望の方向に対応する領域まで操作位置が移動していないことによって、システム又は装置側では所望の方向以外の方向が指示されていると判定されてしまうという不都合が発生するおそれがあったが、本発明によれば、タッチ位置の移動に応じて、操作位置を、タッチ位置の移動方向に対応する方向に、タッチ位置の移動距離よりも長い距離移動させるため、上記のような不都合が発生し難くなる。