[1.実施形態1]
以下、本発明に係る実施形態を図面に基づいて説明する。なお、図面において同一又は対応する構成には同一の符号を付し、繰り返しの説明を省略することがある。
[1−1.ゲームシステム及びゲーム制御装置のハードウェア構成]
図1は、ゲームシステムの全体構成を示す図である。図1に示すように、本実施形態に係るゲームシステムSは、ゲーム制御装置10と、サーバ30と、を含む。ゲーム制御装置10及びサーバ30は、インターネットなどのネットワークNに接続される。このため、ゲーム制御装置10とサーバ30との間で相互にデータ通信が可能である。
ゲーム制御装置10は、ユーザが操作するコンピュータである。例えば、ゲーム制御装置10は、携帯端末(例えば、スマートフォンなどの携帯電話又はタブレット型コンピュータ)、パーソナルコンピュータ、携帯ゲーム機、据置ゲーム機、業務用ゲーム機、又は、情報処理機能を備えた多機能型テレビジョン受像機(スマートテレビ)等である。なお、以下では、タッチパネルを備えた携帯電話がゲーム制御装置10であり、サーバ30から供給されるプログラムが携帯電話において実行される場合について説明する。なお、プログラムは、サーバ30とは異なるサーバや記録媒体等を介して供給されてもよい。
図1に示すように、ゲーム制御装置10は、制御部11、記憶部12、通信部13、操作部14、及び表示部15を含む。制御部11は、少なくとも1つのマイクロプロセッサを含む。制御部11は、オペレーティングシステムやその他のプログラムに従って処理を実行する。記憶部12は、主記憶部(例えば、RAM)及び補助記憶部(例えば、不揮発性の半導体メモリ)を含む。記憶部12は、プログラムやデータを記憶する。なお例えば、ゲーム制御装置10がパーソナルコンピュータ等である場合、記憶部12は、例えばハードディスクドライブ又はソリッドステートドライブ等の補助記憶部を含むようにしてもよい。通信部13は、ネットワークカードなどの通信インタフェースを含む。通信部13は、ネットワークNを介してデータ通信を行う。
操作部14は、入力デバイスであり、タッチパネル14Aを含む。タッチパネル14Aは、静電容量方式や抵抗膜方式などの種々の方式のタッチパネルを適用可能である。タッチパネル14Aは、タッチ位置を検出する。制御部11は、タッチパネル14Aの検出信号に基づいて、タッチ位置を示す座標情報を取得する。例えば、タッチパネル14Aは、表示部15に重畳するようにして設けられている。即ち、タッチパネル14Aは、表示部の上に配置されている。なお、タッチパネル14Aと表示部15は、一体となっていてもよいし、別体であってもよい。
なお、操作部14は、タッチパネル14A以外の入力デバイスを含んでもよい。例えば、操作部14は、ボタン、キー、レバー、ゲームコントローラ(ゲームパッド)、マウスなどのポインティングデバイス、又はキーボード等を含んでもよい。また例えば、操作部14は、ユーザが音声又はジェスチャによって入力操作を行うためのマイクやカメラを含んでもよい。
表示部15は、例えば、液晶表示パネル又は有機ELディスプレイ等であり、制御部11の指示に従って画面を表示する。なお、操作部14及び表示部15は、ゲーム制御装置10に内蔵されていなくともよく、ゲーム制御装置10に接続された外部装置であってもよい。
サーバ30は、サーバコンピュータである。図1に示すように、サーバ30は、制御部31、記憶部32、及び通信部33を含む。制御部31、記憶部32、及び通信部33のハードウェア構成は、それぞれ制御部11、記憶部12、及び通信部13と同様であってよい。例えば、サーバ30は、ゲームプログラムを記憶しており、ゲーム制御装置10からの要求に応じてゲームプログラムを配信する。
なお、記憶部12又は記憶部32に記憶されるものとして説明するプログラムやデータは、例えば、ネットワークNを介してゲーム制御装置10又はサーバ30に供給されるようにしてもよい。また、ゲーム制御装置10又はサーバ30は、情報記憶媒体(例えば、光ディスク又はメモリカード等)に記憶されたプログラム又はデータを読み取るための読取部(例えば、光ディスクドライブ又はメモリカードスロット)を含むようにしてもよい。そして、情報記憶媒体を介してゲーム制御装置10又はサーバ30にプログラムやデータが供給されるようにしてもよい。
[1−2.ゲームの概要]
ゲーム制御装置10では、タッチパネル14Aを使ったゲームが実行される。タッチパネル14Aを使ったゲームでは、例えば、ユーザは、タッチパネル14Aにタッチして操作を行う。タッチとは、例えば、タッチパネル14Aに物体が触れることである。物体は、例えば、ユーザの指などの部位であってもよいし、タッチペンなどのユーザ以外の物体であってもよい。
ユーザは、タッチパネル14Aにタッチした状態でタッチ位置を移動させてもよい。タッチ位置とは、例えば、物体が触れているタッチパネル14A上の位置であり、タッチパネル14Aが検出した座標である。タッチ位置は、例えば、フレームレートに基づいて定まる時間ごとに取得される。タッチ位置は、毎フレーム取得されるようにしてもよいし、所定フレームが経過するごとに取得されるようにしてもよい。例えば、なお、タッチパネル14Aにタッチした物体がタッチパネル14Aから離れることを、本実施形態ではタッチを解除するという。
ゲーム制御装置10では、例えば、スポーツゲーム、アクションゲーム、又はロールプレイングゲームなどの種々のタイプのゲームを実行可能であるが、本実施形態では、ユーザオブジェクトと対戦相手オブジェクトとが仮想世界で対戦するゲームを実行する。
オブジェクトとは、例えば、ゲームにおいて、使用され得る対象である。例えば、オブジェクトは、仮想世界に配置される仮想的な移動体である。例えば、オブジェクトは、仮想世界が3次元であれば3次元モデル(3Dオブジェクト)であり、仮想世界が2次元であれば画像に示された物体である。例えば、移動物体(ボール又はパック)、キャラクタ、又は乗り物(例えば、飛行機や戦車)等が「オブジェクト」の一例に相当する。さらに、スポーツゲームの場合、キャラクタの一例は、選手キャラクタである。
ユーザオブジェクトとは、例えば、ユーザがゲームで使用するオブジェクトであり、いわゆるプレイヤキャラクタ(ユーザの操作対象)である。例えば、ユーザオブジェクトは、ユーザの指示に基づいて動作するオブジェクトである。例えば、ユーザオブジェクトは、ユーザの指示に関連付けられた種類の動作をする。例えば、ユーザオブジェクトは、ユーザが指示した方向に移動したり、ユーザが指示した行動をしたりする。また例えば、ユーザオブジェクトは、ユーザの操作対象とともに戦うオブジェクトであってもよい。この場合、ユーザオブジェクトは、所定のアルゴリズムに基づいて動作する。
対戦相手オブジェクトとは、例えば、対戦相手がゲームで使用するゲームオブジェクトであり、いわゆるノンプレイヤキャラクタである。対戦相手は、例えば、コンピュータ(CPU)であってもよいし、他のユーザであってもよい。例えば、対戦相手オブジェクトは、所定のアルゴリズムに基づいて動作してもよいし、他のユーザの操作に基づいて動作してもよい。なお、アルゴリズムは、オブジェクトの動作を決定するための計算の手順(移動方向や移動速度等を決めるための数式や条件式等の集合体)を示すものである。
仮想世界とは、ゲームの中の世界であり、例えば、ゲームの中の競技場等である。仮想世界は、3次元的な空間であってもよいし、2次元的な平面であってもよい。また、仮想世界は、仮想空間といってもよいし、ゲーム空間といってもよい。
本実施形態では、オブジェクトの一例としてキャラクタを説明する。このため、以降では、ユーザオブジェクトをユーザキャラクタと記載し、対戦相手オブジェクトを対戦相手キャラクタと記載する。以降の説明で「キャラクタ」と記載した箇所については、「オブジェクト」と読み替えることができる。また、ゲームの一例として、ユーザキャラクタと対戦相手キャラクタとが仮想世界でスポーツの試合をするスポーツゲームが実行される場合を説明する。更に、スポーツゲームの一例として、サッカーゲームを説明する。例えば、ユーザチームに所属する複数のユーザキャラクタと、対戦相手チームに所属する複数の対戦相手キャラクタと、が仮想世界でサッカーの試合をするゲームが実行される。
図2は、仮想世界の一例を示す図である。図2に示すように、仮想世界VWは、例えば、3次元空間における仮想的なサッカー場を示す。仮想世界VWには、所定の位置を原点Owとし、互いに直交するXw軸、Yw軸、及びZw軸(ワールド座標系の座標軸)が設定される。仮想世界VWにおける位置は、ワールド座標系の座標値により特定される。
図2に示すように、仮想世界VWには、Xw−Yw平面と平行になるようにピッチの3DモデルであるピッチPTが配置される。ピッチPTには、例えば、タッチラインTL、ゴールラインEL、ハーフウェーラインHL、及びペナルティエリアPAが描かれている。また例えば、ピッチPT上には、ユーザキャラクタUC、対戦相手キャラクタOC、ボールの3DモデルであるボールB、及び、ゴールの3DモデルであるゴールGLが配置される。
仮想世界VWには、仮想視点VCが設定される。仮想視点VCは、仮想世界VWに設定される視点であり、例えば、仮想カメラである。仮想視点VCの位置及び視線方向は、固定されていてもよいが、本実施形態では、ユーザの操作対象のユーザキャラクタUC及びボールBLの少なくとも一方が視野内に含まれるように制御されるものとする。ゲームが開始すると、仮想視点VCから仮想世界VWを見た様子を示す仮想世界画像が表示部15に表示される。
図3は、仮想世界画像の一例を示す図である。図3に示すように、仮想世界画像G1には、仮想世界VWのうち、仮想視点VCの視野内の様子が座標変換されることで表示される。なお、表示部15の表示領域には、所定の位置(例えば、表示領域の左上)を原点Osとし、互いに直交するXs軸及びYs軸(スクリーン座標系の座標軸)が設定される。表示領域とは、例えば、表示部15の画面全体のことである。表示領域上の位置は、スクリーン座標系の座標値により特定される。
例えば、表示領域の右端部のXs座標値をXMAXと記載し、表示領域のした端部Ys座標値をYMAXと記載する。本実施形態では、横幅が縦幅よりも長い状態(ゲーム制御装置10を横持ちにした状態)でゲームがプレイされる場合を説明するが、これとは逆に、縦幅が横幅よりも長い状態(ゲーム制御装置10を縦持ちにした状態)でゲームがプレイされてもよい。本実施形態では、タッチパネル14Aが検出したタッチ位置もスクリーン座標系の座標値によって示されるものとするが、タッチ位置は、別の座標軸の座標値で示されてもよい。
ユーザは、仮想世界画像G1を見ながらタッチパネル14Aを操作してゲームをプレイする。例えば、ユーザの操作対象に設定されたユーザキャラクタUCの足元には、操作対象であることを識別するためのカーソルCが表示される。ユーザは、タッチパネル14Aから種々の操作をすることができてよいが、本実施形態では、タッチパネル14A上の領域が複数の操作領域に分けられている。操作領域ごとに別個の操作体系が定義されており、ユーザは、タッチした操作領域に応じた操作をする。
図4は、タッチパネル14Aに設定された複数の領域を示す図である。図4に示すように、本実施形態では、タッチパネル14Aの中央を境に、左側領域LAと右側領域RAとが設定されている。例えば、左側領域LAは、XS座標がXMAX/2未満の領域であり、右側領域RAは、XS座標がXMAX/2以上の領域である。例えば、左側領域LAは、主に、ユーザキャラクタUCの移動を指示するために用いられる。また例えば、右側領域RAは、主に、ボールBの移動を指示するために用いられる。
なお、ここでは、タッチパネル14Aの中央が操作領域の境界となっているが、操作領域の境界は任意の場所に設定されてよい。また、左側領域LAと右側領域RAの2つが設定される場合を説明するが、タッチパネル14A上に設定される操作領域の数は、2つに限られず、3つ以上であってもよい。
本実施形態では、攻撃時と守備時とで左側領域LA及び右側領域RAに対する操作体系が異なるようになっている。攻撃時とは、例えば、ユーザチームがボールBを保有している状態である。守備時とは、例えば、対戦相手チームがボールBを保有している状態である。なお、ボールBを誰も保有していない状態は、攻撃時に分類されてもよいし、守備時に分類されてもよい。また、ユーザチームがボールBを保有している場合であっても、ボールBが自陣にある場合には、守備時に分類されてもよい。なお、自陣とは、ピッチPTのうちハーフウェーラインHLよりもユーザチームのゴールGL側である。
まず、攻撃時の操作体系を説明する。本実施形態では、攻撃時において、ボールBを保有するユーザキャラクタUCが操作対象に設定される。このため、攻撃時においては、ユーザは、ボールBを保有するユーザキャラクタUCの動作を指示することになる。
図5は、攻撃時における左側領域LAに対する操作の一例を示す図である。なお、ここでは説明の簡略化のために、仮想世界画像G1は省略する。図5に示すように、例えば、ユーザが左側領域LAに対してスライド操作をすると、ユーザキャラクタUCがスライド方向にドリブルする。スライド操作は、例えば、ユーザがタッチパネル14Aをタッチした後に、タッチを維持したままタッチ位置を移動させ、移動後においてもタッチを維持する操作である。例えば、タッチが開始されたタッチ位置を起点とし、起点から現在のタッチ位置に向けた方向がスライド方向となる。なお、現在のタッチ位置が起点のタッチ位置から離れた場合は、現在のタッチ位置に近づくように起点が更新されてもよい。
図6〜図9は、攻撃時における右側領域RAに対する操作の一例を示す図である。図6に示すように、例えば、ユーザが右側領域RAに対してフリック操作をすると、ユーザキャラクタUCがフリック方向にグラウンダーパスをする。フリック操作は、例えば、ユーザがタッチパネル14Aをタッチした後に、タッチを維持したまま素早くタッチ位置を移動させてタッチを解除する操作である。グラウンダーパスは、例えば、味方に対して低い軌道で行うパスである。ユーザキャラクタUCがグラウンダーパスをすると、例えば、ボールBは、ピッチPT上を転がるように、受け手に向かって移動する。
図7に示すように、例えば、ユーザが右側領域RAに対してスワイプ操作をした後にタッチ位置を停止させると、ユーザキャラクタUCがスワイプ方向にグラウンダースルーパスをする。スワイプ操作は、例えば、タッチパネル14A上をタッチした後に、タッチを維持したまま、タッチ位置を一定方向に移動させる操作である。スワイプ操作は、先述したスライド操作と似ているが、スライド操作は、ユーザが指示する方向をタッチ中に変更できるのに対し、スワイプ操作は、原則として、ユーザが指示する方向をタッチ中に変更しない点で異なる。なお、以降では、図7に示す操作を、スワイプ止め操作という。グラウンダースルーパスは、例えば、味方の前方にあるスペースに対して低い軌道で行うパスである。ユーザキャラクタUCがグラウンダースルーパスをすると、例えば、ボールBは、敵の合間をぬってピッチPT上を転がるように、受け手の前方スペースに向かって移動する。
図8に示すように、例えば、ユーザが右側領域RAに対して、パスしたい方向とは逆方向に少し引いた後に、パスしたい方向に対してフリック操作をすると、ユーザキャラクタUCがフライパスをする。フライパスは、例えば、味方に対して高い軌道で行うパスである。ユーザキャラクタUCがフライパスをすると、例えば、ボールBは、高く浮き上がるように、受け手に向かって移動する。なお、以降では、図8に示す操作を、引きフリック操作という。
図9に示すように、例えば、ユーザが右側領域RAに対して、パスしたい方向とは逆方向に少し引いた後に、パスしたい方向に対してスワイプ操作をしてタッチ位置を停止させると、ユーザキャラクタUCがスワイプ方向にフライスルーパスをする。フライスルーパスは、例えば、味方の前方にあるスペースに対して高い軌道で行うパスである。ユーザキャラクタUCがフライスルーパスをすると、例えば、ボールBは、高く浮き上がるように、敵の頭上を通って受け手の前方スペースに向かって移動する。なお、以降では、図9に示す操作を、引きスワイプ止め操作という。
なお、上記説明したグラウンダーパス、グラウンダースルーパス、フライパス、及びフライスルーパスの軌道は、キッカーの能力によって決まるようにしてよい。例えば、キッカーの能力によって、理想的な軌道からのずれが決まってもよい。キッカーの能力の一例として、グラウンダーパスの精度を示すパラメータと、フライパスの精度を示すパラメータと、があるようにしてよい。また、左側領域LA及び右側領域RAに対する操作は、上記の例に限られない。例えば、ユーザが左側領域LAに対してフリック操作をすると、ユーザキャラクタUCがフリック方向にフェイントしてもよい。また例えば、ユーザが左側領域LAに対してタップ操作をすると、ユーザキャラクタUCがドリブルを停止してもよい。タップ操作は、例えば、タッチパネル14A上をタッチした後に、すぐにタッチを解除する操作である。また例えば、ユーザが右側領域RAに対してダブルタップ操作をすると、ユーザキャラクタUCがシュートしてもよい。ダブルタップ操作は、例えば、タップ操作を2回続けて行う操作である。また例えば、ボールBがタッチラインTL及び対戦相手チームのゴールラインEL付近にある場合に、ユーザが引きフリック操作又は引きスワイプ止め操作をすると、ユーザキャラクタUCがセンタリング動作をしてもよい。
また例えば、左側領域LAに対する操作と、右側領域RAに対する操作と、の組み合わせによってユーザキャラクタUCが動作してもよい。例えば、ユーザが左側領域LAに対してスライド操作をしている間に、右側領域RAに対するタッチを維持する長押し操作をすると、ユーザキャラクタUCが、通常のドリブルよりも速いダッシュドリブルをしてもよい。また例えば、ユーザが左側領域LAに対してフリック操作をしている間に、右側領域RAに対して長押し操作をすると、ユーザキャラクタUCが、ダッシュドリブルよりも速いバーストドリブルをしてもよい。また例えば、ユーザが右側領域RAに対して図6〜図9の何れかの操作をした後すぐに左側領域LAに対してフリック操作をすると、ユーザキャラクタUCがパスをした後すぐに走り出すようにしてもよい。
なお、上記では、攻撃時の操作を例に挙げたが、守備時でも、左側領域LA及び右側領域RAの各々に対する操作が行われるようにしてよい。守備時においては、ボールを保有する対戦相手キャラクタOCの最も近くにいるユーザキャラクタUCが操作対象に設定されるようにしてよいが、ユーザが操作対象を自由に切り替えることができてもよい。
例えば、ユーザが左側領域LAに対してスライド操作をすると、ユーザキャラクタUCがスライド方向に移動する。また例えば、ユーザが左側領域LAに対してスライド操作をしている間に、右側領域RAに対して長押し操作をすると、ユーザキャラクタUCが、ダッシュ移動し、対戦相手キャラクタにプレスをかける。また例えば、ユーザが右側領域RAに対してフリック操作をすると、ユーザキャラクタUCがフリック方向にスライディングする。
また例えば、ユーザキャラクタUCが自陣においてボールBを保有している場合、ユーザが左側領域LAに対してスライド操作をしている間に、右側領域RAに対してダブルタップ操作をすると、ユーザキャラクタUCがクリアする。また例えば、ユーザが右側領域RAに対してタップ操作をすると、操作対象となるユーザキャラクタUCが切り替わる。また例えば、ユーザが右側領域RAに対してスワイプ止め操作をすると、ユーザキャラクタUCがスワイプ方向にプレスをする。
上記のように、本実施形態では、タッチパネル14Aを利用して種々の操作が可能になっており、特に、引きフリック操作及び引きスワイプ止め操作のように従来にない操作が可能になっている。これにより、タッチパネル14Aを用いたゲームにおいて、ユーザが実行を指示できるゲーム処理の種類を増やすことができる。以降、この処理の詳細を説明する。なお、以降では、特に図面を参照する必要のないときは、ユーザキャラクタやボールなどの符号を省略する。
[1−3.ゲーム制御装置において実現される機能]
図10は、ゲーム制御装置10で実現される機能のうち、本発明に関連する機能を示す機能ブロック図である。本実施形態では、ゲーム制御装置10において、データ記憶部100、方向取得部101、検知部102、速度取得部103、速度判定部104、及びゲーム処理実行部105が実現される。
[1−3−1.データ記憶部]
データ記憶部100は、記憶部12を主として実現される。データ記憶部100は、ゲームを実行するために必要なデータを記憶する。ここでは、データ記憶部100が記憶するデータの一例として、ゲーム状況データDT1及びタッチ状況データDT2を説明する。
図11は、ゲーム状況データDT1の一例を示す図である。図11に示すように、ゲーム状況データDT1は、実行中のゲームの状況を示すデータである。図11に示すように、ゲーム状況データDT1には、例えば、仮想空間の状況及び試合の戦況等が格納される。例えば、現在の仮想空間の状況としては、各キャラクタの状態、ボールの状態、及び仮想視点の状態が格納される。ゲーム状況データDT1は、ゲームの実行中に適宜更新され、その履歴がデータ記憶部100に蓄積されるようにしてもよい。
例えば、キャラクタの状態としては、ユーザキャラクタ及び対戦相手キャラクタの各々を一意に識別するキャラクタIDに関連付けて、位置、向き、姿勢、及び移動方向等が格納される。なお、操作対象に設定されたユーザキャラクタを識別する操作対象フラグが、ゲーム状況データDT1に格納されてもよい。また例えば、ボールの状態としては、ボールの位置、移動方向、移動速度、及びボールを保有する保有キャラクタ等が格納される。また例えば、仮想視点の状態としては、仮想視点の位置、視線方向、画角などの情報が格納されていてもよい。試合の戦況としては、ユーザチームの得点、対戦相手チームの得点、及び試合の経過時間等が格納される。
図12は、タッチ状況データDT2の一例を示す図である。図12に示すように、タッチ状況データDT2は、ユーザがタッチパネル14Aから行った操作の履歴を示すデータである。図12に示すように、タッチ状況データDT2には、例えば、タッチ位置の履歴、ベース位置、パス入力開始フラグ、及び引き操作フラグが格納される。タッチ位置の履歴としては、例えば、試合開始から現時点までのタッチ位置の履歴が格納されてもよいし、タッチが開始されてから解除されるまでの間だけのタッチ位置の履歴が格納されてもよい。ベース位置は、ボールの移動方向を決めるための基準となるタッチ位置であり、例えば、タッチ開始後の任意のタッチ位置が格納されてよい。
パス入力開始フラグは、右側領域RAに対してパスをするため操作入力が開始されたかを識別する情報であり、例えば、フラグがオンである場合には、パスをするための操作入力が開始されたことを示し、フラグがオフである場合には、パスをするための操作入力が開始されていないことを示す。後述するように、本実施形態では、タッチ位置の移動速度が基準速度以上になった場合に、パス入力開始フラグがオンになる。
引き操作フラグは、引きフリック操作又は引きスワイプ止め操作の入力中であるかを識別する情報であり、例えば、フラグがオンである場合には、引きフリック操作又は引きスワイプ止め操作の実行中であることを示し、フラグがオフである場合には、引きフリック操作又は引きスワイプ止め操作の実行中ではないことを示す。後述するように、本実施形態では、パス入力開始フラグがオンになった場合のタッチ位置の移動方向と、その後のタッチ位置の移動方向と、のなす角度が基準角度以上になった場合に、引き操作フラグがオンになる。
なお、データ記憶部100に記憶されるデータは、上記の例に限られない。データ記憶部100は、ゲームを実行するために必要なデータを記憶すればよく、例えば、キャラクタが動作を定義したモーションデータを記憶してもよいし、操作内容とキャラクタの動作との関係を示すデータを記憶してもよい。また例えば、データ記憶部100は、左側領域LAと右側領域RAを識別するデータ(例えば、境界や端部などの位置を示す座標データ)を記憶してもよい。
[1−3−2.方向取得部]
方向取得部101は、制御部11を主として実現される。方向取得部101は、タッチパネルがタッチされた状態でタッチ位置が移動した場合に、当該タッチ位置の移動方向を取得する。移動方向とは、例えば、タッチ位置が変化した方向である。例えば、移動方向は、ある時点におけるタッチ位置と、当該時点よりも後の時点におけるタッチ位置と、を結ぶベクトルである。移動方向は、任意のタイミングで取得されてよいが、例えば、フレームレートに基づいて定まる時間ごとに取得されるようにしてよい。この場合、移動方向は、毎フレーム取得されるようにしてもよいし、所定フレームが経過するごとに取得されるようにしてもよい。
例えば、方向取得部101は、タッチ状況データDT2に格納されたタッチ位置の履歴に基づいて、タッチ位置の移動方向を取得する。例えば、方向取得部101は、ある時点(例えば、現フレーム)におけるタッチ位置と、それよりも前の時点(例えば、1つ前のフレーム)におけるタッチ位置と、に基づいて、タッチ位置の移動方向を取得する。例えば、方向取得部101は、これら2つのタッチ位置を結ぶベクトルを移動方向として取得する。なお、移動方向は、複数の時点の各々におけるタッチ位置の位置関係に基づいて取得されるようにすればよく、これらの時点は何フレーム分ずれていてもよい。
[1−3−3.検知部]
検知部102は、制御部11を主として実現される。検知部102は、方向取得部101により取得された移動方向について、所定のタイミングで取得された移動方向とのなす角度が所定角度以上の任意の移動方向に変化したことを検知する。
所定のタイミングとは、例えば、タッチ開始後の任意の時点である。例えば、所定のタイミングは、タッチが開始されてから、タッチが解除される前又はタッチ位置の移動が停止若しくは略停止する前までの間の任意のタイミングである。また例えば、所定のタイミングは、検知部102が毎フレーム判定処理を実行する場合には、現時点の所定時間前の時点における移動方向である。本実施形態では、タッチ位置の移動速度が基準速度以上になったタイミングが、所定のタイミングに相当する場合を説明する。
なす角度とは、例えば、2つのベクトルの交差角である。所定角度とは、予め定められた角度であってよく、例えば、90°である。任意の移動方向とは、所定のタイミングでの移動方向とのなす角度が所定角度以上となる方向であればどの方向でもよいという意味である。
図13は、タッチ位置の移動方向が変化する様子を示す図である。図13に示すように、ある時点t0におけるタッチ位置をP0とし、それよりも後の時点t1におけるタッチ位置をP1とし、更に後の時点t2におけるタッチ位置をP2とする。そして、時点t0〜t1におけるタッチ位置の移動方向をV01とし、時点t1〜t2におけるタッチ位置の移動方向をV12とする。検知部102は、移動方向V01とV12の内積を取ることで、これらのなす角度θを取得する。検知部102は、取得した角度θが所定角度以上であるかを判定する。本実施形態では、移動方向V01は、後述する速度判定部104によりタッチ位置の移動速度が基準速度以上であると判定された場合の移動方向である。移動方向V12は、方向取得部101が毎フレーム取得する移動方向であってよい。
[1−3−4.速度取得部]
速度取得部103は、制御部11を主として実現される。速度取得部103は、タッチパネル14Aがタッチされた状態でタッチ位置が移動した場合に、タッチ位置の移動速度を取得する。移動速度とは、例えば、単位時間(例えば、所定フレーム)あたりの移動速度である。例えば、方向取得部101は、タッチ状況データDT2に格納されたタッチ位置の履歴に基づいて、タッチ位置の移動速度を取得する。
例えば、方向取得部101は、ある時点(例えば、現フレーム)におけるタッチ位置と、それよりも前の時点(例えば、1つ前のフレーム)におけるタッチ位置と、の距離に基づいて、タッチ位置の移動速度を取得する。例えば、方向取得部101は、これら2つのタッチ位置の距離をそのまま移動速度としてもよいし、2つのタッチ位置の各々の時間間隔で当該距離を割った値を移動速度としてもよい。
[1−3−5.速度判定部]
速度判定部104は、制御部11を主として実現される。速度判定部104は、速度取得部103により取得された移動速度が基準速度以上であるかを判定する。基準速度は、予め定められた速度であればよい。なお、先述したように、本実施形態では、方向取得部101が移動方向を取得する所定のタイミングは、速度判定部104により移動速度が基準速度以上であると判定された場合の移動方向である。
[1−3−6.ゲーム処理実行部]
ゲーム処理実行部105は、制御部11を主として実現される。ゲーム処理実行部105は、方向取得部101により取得された移動方向に基づいて、第1のゲーム処理を実行する。また、ゲーム処理実行部105は、検知部102により移動方向の変化が検知された場合に、変化前又は変化後の移動方向に基づいて、第2のゲーム処理を実行する。
ゲーム処理とは、例えば、ユーザの操作に応じて実行される処理である。例えば、操作内容と、ゲーム処理の種類と、が予め関連付けられている。例えば、ゲーム処理は、タッチ位置の移動方向によって結果の変わる処理であってよい。また例えば、移動方向に移動物体を移動させる処理であってよい。なお、本実施形態では、ボールが移動物体の一例である場合を説明するが、移動物体は、仮想世界に配置されたオブジェクトであればよく、例えば、キャラクタであってもよい。
第1のゲーム処理と第2のゲーム処理とは、例えば、互いに種類が異なるゲーム処理であればよい。即ち、第1のゲーム処理と第2のゲーム処理とは、例えば、ゲーム処理の結果が異なるものであればよい。本実施形態では、第1のゲーム処理及び第2のゲーム処理の各々は、仮想世界において操作対象が移動物体を移動させる処理であり、その内容が異なる処理である場合を説明する。
例えば、第1のゲーム処理は、方向取得部101により取得された移動方向に基づいて、仮想世界においてボールを移動させる処理である。また例えば、第2のゲーム処理は、第1のゲーム処理とは異なる移動のさせ方で、仮想世界においてボールを移動させる処理である。移動のさせ方とは、ボールの軌道、速度、又は回転である。軌道は、例えば、ボールが通る軌跡であり、水平方向及び垂直方向の位置変化の履歴である。回転は、例えば、回転方向又は回転量である。例えば、本実施形態のように、ゲーム処理がボールを移動させる処理である場合、第1のゲーム処理と第2のゲーム処理とではボールの移動のさせ方が異なる処理となる。
第1のゲーム処理及び第2のゲーム処理の意味は上記の通りであるが、本実施形態では、第1のゲーム処理がグラウンダーパス又はグラウンダースルーパスであり、第2のゲーム処理がフライパスである場合を一例に挙げて説明する。先述した通り、グラウンダーパス又はグラウンダースルーパスとフライパスとは、少なくとも軌道が異なるパスである。
なお、上述した変化前とは、例えば、移動方向が変化した時点、又は、それよりも前の時点である。例えば、タッチが開始された直後であってもよいし、上記所定のタイミングであってもよい。変化後とは、例えば、移動方向が変化した時点、又は、それよりも後の時点である。例えば、タッチが解除された直前であってもよいし、タッチが停止又は略停止する直前であってもよい。本実施形態では、ゲーム処理実行部は、変化後の移動方向に基づいてゲーム処理を実行する。
例えば、本実施形態では、引きフリック操作を検知可能なので、ゲーム処理実行部105は、検知部102により移動方向の変化が検知された場合に、タッチパネル14Aへのタッチが解除されたことに応じて、フライパスを実行する。即ち、ゲーム処理実行部105は、引きフリック操作においてタッチが解除されたことをトリガーにして、フライパスを実行する。
また例えば、ゲーム処理実行部105は、検知部102により移動方向の変化が検知された場合に、変化後の移動方向の起点となるタッチ位置と、タッチパネル14Aへのタッチが解除された場合のタッチ位置と、の距離に基づいて、フライパスを実行するようにしてよい。起点とは、例えば、タッチ位置の移動方向が変化した場合の始点であり、移動方向が切り替わった位置であってよい。例えば、ゲーム処理実行部105は、当該距離が短いほどキックの強さを弱くし、当該距離が長いほどキックの強さを強くする。キックの強さが弱いと、ボールの速度が遅くなり移動距離も短くなる。キックの強さが強いと、ボールの速度が速くなり移動距離が長くなる。例えば、ゲーム処理実行部105は、キックの強さに基づいて、ボールの目標位置を決定する。
また例えば、本実施形態では、引きスワイプ止め操作が可能なので、ゲーム処理実行部105は、検知部102により移動方向の変化が検知された場合に、タッチ位置の移動が停止又は略停止したことに応じて、第3のゲーム処理を実行する。ゲーム処理の意味は先述した通りであり、第3のゲーム処理は、第1のゲーム処理及び第2のゲーム処理と異なる処理であればよい。本実施形態では、第3の処理がフライスルーパスである場合を説明する。先述したように、フライスルーパスは、少なくともボールの軌道が他のパスとは異なる。
停止とは、例えば、所定フレームが経過してもタッチ位置が変わらないことである。略停止とは、例えば、所定フレームにおけるタッチ位置の変化量が閾値未満となることである。ゲーム処理実行部105は、引きフリック操作においてタッチが停止又は略停止されたことをトリガーにして、フライスルーパスを実行する。
例えば、ゲーム処理実行部105は、検知部102により移動方向の変化が検知された場合に、変化後の移動方向の起点となるタッチ位置と、当該タッチ位置が移動した後、停止又は略停止した場合のタッチ位置と、の距離に基づいて、フライスルーパスを実行する。起点の意味は先述した通りであり、ゲーム処理実行部105は、当該距離が短いほどキックの強さを弱くし、当該距離が長いほどキックの強さを強くする。ゲーム処理実行部105は、キックの強さに基づいて、ボールの目標位置を決定する。
なお、上記説明した各種パスなどのゲーム処理は、任意のタイミングで実行可能であってよいが、本実施形態では、ゲーム処理実行部105は、操作対象がボールを保持している間、又は、操作対象がボールに触れる前において取得された移動方向に基づいて、ゲーム処理を実行するものとする。操作対象がボールを保持している間とは、例えば、操作対象の付近にボールがあり、操作対象がボールの移動を支配している状況である。本実施形態では、保有フラグが操作対象に関連付けられている間である。また、操作対象がボールに触れる前の期間とは、例えば、操作対象がボールに触れる時点の所定時間前から当該時点までの期間である。
また例えば、ゲーム処理実行部105は、操作対象がボールを保持している間、又は、操作対象がボールに触れる前の期間内において取得された移動方向に基づいて、上記説明した第1のゲーム処理を実行するようにしてよい。また例えば、ゲーム処理実行部105は、操作対象がボールを保持している間、又は、操作対象がボールに触れる前の期間内において取得された移動方向に基づいて、上記説明した第2のゲーム処理を実行するようにしてよい。即ち、ゲーム処理実行部105は、操作対象がボールを保持している間、又は、操作対象がボールに触れる前の期間以外の期間において、方向取得部101が移動方向を取得しても、ゲーム処理は実行しない。
[1−4.ゲーム制御装置において実行される処理]
図14及び図15は、ゲーム制御装置10において実行される処理の一例を示すフロー図である。ここでは、ゲームに関する処理のうち、ユーザチームの攻撃時において、フリック操作、スワイプ操作、引きフリック操作、及び引きスワイプ止め操作を検知するための処理を説明する。なお、ゲーム制御装置10では、他の処理が実行されてよく、例えば、ゲーム状況データDT1を更新する処理、攻撃時における他の操作を検知するための処理、及び守備時における操作を検知するための処理などが実行されるようにしてよい。
図14に示す処理は、制御部11が記憶部12に記憶されたプログラムに従って動作することによって実行される。下記の処理は、図10に示す各機能ブロックによる処理の一例である。例えば、下記の処理は、所定のフレームレートに基づいて定まる時間間隔(例えば、1/30秒)ごとに実行される。
図14に示すように、まず、制御部11は、ゲーム状況データDT1に基づいて、ユーザチームがボールをキープ中又はキープ前であるかを判定する(S1)。S1においては、例えば、制御部11は、ゲーム状況データDT1に格納されたボールを保有するキャラクタを参照し、ユーザキャラクタがボールを保有しているかを判定することによって、キープ中であるかを判定する。また例えば、制御部11は、ゲーム状況データDT1に格納されたボールの位置及び移動方向を参照し、ユーザキャラクタに向かってボールが移動しており、かつ、ユーザキャラクタとボールの距離が閾値未満であるかを判定することによって、キープ前であるかを判定してもよい。また例えば、制御部11は、誰もボールを保有していないルーズボールの状態で操作対象がボールを追いかけているかを判定することによって、キープ前であるかを判定してもよい。また例えば、制御部11は、対戦相手チームのフライパスなどにより、操作対象が対戦相手キャラクタと競り合う状況であるかを判定することによってキープ前であるかを判定してもよい。
ユーザチームがボールをキープ中又はキープ前であると判定されない場合(S1;N)、ボールを移動させることができないので、本処理は終了する。一方、ユーザチームがボールをキープ中又はキープ前であると判定された場合(S1;Y)、制御部11は、タッチ状況データDT2に格納されたパス入力開始フラグを参照する(S2)。なお、パス入力開始フラグの初期値はオフとする。パス入力開始フラグがオフであると判定された場合(S2;オフ)、制御部11は、タッチパネル14Aの検出信号に基づいて、タッチ位置が取得されたかを判定する(S3)。
タッチ位置が取得されたと判定されない場合(S3;N)、ユーザが操作をしていないので、本処理は終了する。一方、タッチ位置が取得されたと判定された場合(S3;Y)、制御部11は、タッチ状況データDT2にタッチ位置を格納し、タッチ位置の移動速度が基準速度以上であるかを判定する(S4)。S4においては、制御部11は、例えば、直近のフレームにおけるタッチ位置と、S3で取得した最新のタッチ位置と、の距離が基準速度以上であるかを判定する。即ち、例えば、制御部11は、1フレームあたりタッチ位置が所定ピクセル以上移動したかを判定する。なお、基準速度は、記憶部12に予め記憶されており、固定値であってもよいし、可変値であってもよい。
移動速度が基準速度以上ではないと判定された場合(S4;N)、制御部11は、タッチ状況データDT2に格納されたベース位置を更新し(S5)、本処理を終了する。S5においては、制御部11は、タッチ状況データDT2に格納されたベース位置として、S3で取得したタッチ位置を格納する。なお、ユーザがタッチパネル14Aをタッチしたばかりの時点では、まだベース位置が格納されていないので、この場合は、制御部11は、ベース位置の初期値として、S3で取得したタッチ位置を格納することになる。ベース位置を更新するのは、ユーザがタッチ位置を固定していたつもりでも徐々にずれてしまうことがあり、この場合に、最新のタッチ位置をベース位置とするためである。
一方、Sにおいて、移動速度が基準速度以上であると判定された場合(S4;Y)、制御部11は、タッチ状況データDT2を参照し、パス入力開始フラグをオンにして(S6)、初期入力方向を記録し(S7)、本処理を終了する。S7においては、制御部11は、例えば、直近のフレームにおけるタッチ位置と、S3で取得した最新のタッチ位置と、のベクトルを取得し、初期入力方向として記憶部12に格納する。
S2において、パス入力開始フラグがオンであると判定された場合(S2;オン)、直近のフレームにおいてタッチパネル14Aがタッチされていたことを示すので、制御部11は、タッチパネル14Aの検出信号に基づいて、タッチが解除されたかを判定する(S8)。S8においては、制御部11は、タッチパネル14Aからタッチ位置を示す信号を受信したかを判定することになる。
タッチが解除されたと判定されない場合(S8;Y)、即ち、タッチパネル14Aへのタッチが維持されている場合、制御部11は、タッチ状況データDT2に基づいて、タッチ位置の移度が停止又は略停止したかを判定する(S9)。S9においては、制御部11は、例えば、直近のフレームにおけるタッチ位置と、S3で取得した最新のタッチ位置と、の距離を、タッチ位置の移動速度として取得する。そして、制御部11は、取得した移動速度が基準速度以上であるかを判定する。
タッチ位置の移動が停止又は略停止したと判定されない場合(S9;N)、制御部11は、タッチ状況データDT2に基づいて、現在のタッチ位置の移動方向と初期移動方向とが一定以上の角度の差がついたかを判定する(S10)。S10においては、制御部11は、例えば、直近のフレームにおけるタッチ位置と、S3で取得した最新のタッチ位置と、のベクトルを現在のタッチ位置の移動方向として取得する。そして、制御部11は、取得した移動方向と初期移動方向との角度を取得する。制御部11は、取得した角度が閾値以上であるかを判定する。
一定以上の角度の差がついたと判定されない場合(S10;Y)、まだタッチ中なので特にパス動作は行われずに本処理は終了する。一方、一定以上の角度の差がついたと判定された場合(S10;Y)、制御部11は、タッチ状況データDT2を参照し、引き操作フラグをオンにして(S11)、ベース位置を更新し(S12)、本処理を終了する。S12においては、制御部11は、タッチ状況データDT2に格納されたベース位置として、S3で取得したタッチ位置を格納する。
一方、S8において、タッチが解除されたと判定された場合(S8;Y)、図15に移行し、制御部11は、タッチ状況データDT2に格納された引き操作フラグを参照する(S13)。引き操作フラグがオンである場合(S13;オン)、引きフリック操作が行われたことになるので、制御部11は、操作対象のユーザキャラクタにフライパスをさせ(S14)、タッチ状況データDT2を初期状態に戻し(S15)、本処理は終了する。
S14においては、制御部11は、タッチ状況データDT2を参照し、ベース位置と、タッチが解除される直前のタッチ位置と、の距離に基づいて、操作対象のキックの強さを決定する。そして、制御部11は、これらのベクトルに基づいて、ボールの移動方向を決定する。制御部11は、決定したキックの強さ及び移動方向を、フライパス用に定義された物理計算アルゴリズムに基づいて、ボールの軌道を決定する。そして、制御部11は、フライパス用に定義されたモーションデータを再生して操作対象にフライパスの動作をさせ、ボールを決定した軌道上で移動させる。なお、S15においては、タッチ位置の履歴は残したまま各フラグだけが初期値に戻ってもよいし、タッチ状況データDT2の全ての情報が初期値に戻ってもよい。
一方、引き操作フラグがオフである場合(S13;オフ)、フリック操作が行われたことになるので、制御部11は、操作対象のユーザキャラクタにグラウンダーパスをさせ(S16)、S15の処理に移行する。なお、S16において、制御部11がキックの強さ及びボールの移動方向を決定し、モーションデータを再生して操作対象にグラウンダーパスをさせる処理は、S14と同様であってよい。
一方、S9において、タッチ位置の移動が停止又は略停止したと判定された場合(S9;Y)、制御部11は、タッチ状況データDT2に格納された引き操作フラグを参照する(S17)。引き操作フラグがオンである場合(S17;オン)、引きスワイプ止め操作が行われたことになるので、制御部11は、操作対象のユーザキャラクタにフライスルーパスをさせ(S18)、S15の処理に移行する。なお、S18において、制御部11がキックの強さ及びボールの移動方向を決定し、モーションデータを再生して操作対象にフライスルーパスをさせる処理は、S14と同様であってよい。
一方、引き操作フラグがオフである場合(S17;オフ)、スワイプ止め操作が行われたことになるので、制御部11は、操作対象のユーザキャラクタにグラウンダースルーパスをさせ(S19)、本処理は終了する。なお、S19において、制御部11がキックの強さ及びボールの移動方向を決定し、モーションデータを再生して操作対象にグラウンダースルーパスをさせる処理は、S14と同様であってよい。
以上説明したゲーム制御装置10によれば、引きフリック操作や引きスワイプ止め操作のように、タッチ位置の移動方向が、所定のタイミングで取得された移動方向とのなす角度が所定角度以上の任意の移動方向に変化したことが検知されると、実行されるゲーム処理(ここではパスの種類)が変わるので、ユーザが指示可能なゲーム処理の種類を増やすことができる。即ち、タッチ位置の移動方向を切り返すような操作が可能になり、単なるフリック操作やスワイプ操作などとは異なる新規の操作をユーザに提供することができるので、タッチパネル14Aを使ったゲームにおける操作の種類を増やすことができる。更に、タッチ方向を切り返したときの角度の違いが所定角度以上であることを条件とすることで、例えばフリック操作やスワイプ操作などのような操作との区別が明確になり、ユーザにとって分かりやすい操作とすることができる。更に、フリック操作やスワイプ操作などとは判定方法が明確に異なるので、ゲーム制御装置10が上記操作を誤ってフリック操作やスワイプ操作などと誤認識してしまうことを防止することができる。また例えば、家庭用ゲーム機向けに開発されたゲームをスマートフォンなどに移植する場合には、物理的なボタンやレバーを有するゲームコントローラを使った操作と同等の操作をスマートフォンなどのタッチパネル14A上で実現すれば、家庭用ゲーム機版のゲームに慣れているユーザの操作性が向上する。しかし、タッチパネル14A上には物理的なボタンやレバーは存在しないので、例えば、ゲームコントローラと同等の操作を実現するためには、タッチ操作を工夫する必要がある。この点、実施形態1によれば、引きフリック操作や引きスワイプ止め操作のように多様な操作を実現することができるので、例えば、操作の多様性を担保することで家庭用ゲーム機の操作性に近づけることができる。
また、引きフリック操作のように、タッチ位置の移動方向を、所定のタイミングで取得された移動方向とのなす角度が所定角度以上の任意の移動方向に変化させ、かつ、タッチを解除させるという新たな操作をユーザに提供することができる。
また、引きフリック操作では、変化後の移動方向の起点となるタッチ位置(ベース位置)と、タッチが解除された場合のタッチ位置と、の距離に基づいてゲーム処理を実行することで、当該距離を調整することでゲーム処理の内容(ここでは、キックの強さ)を指示するという新たな操作を提供することができる。例えば、当該距離が長いほど、キャラクタの動作の強度(例えば、キックの強さ)を強くするようにした場合、距離と強度に相関関係が生まれるので、直感的な動作を可能とすることができる。
また、引きスワイプ止め操作のように、タッチ位置の移動方向を、所定のタイミングで取得された移動方向とのなす角度が所定角度以上の任意の移動方向に変化させ、かつ、タッチ位置の移動を停止又は略停止させるという新たな操作をユーザに提供することができる。
また、引きスワイプ止め操作では、変化後の移動方向の起点となるタッチ位置と、タッチ位置の移動が停止又は略停止した場合のタッチ位置と、の距離に基づいてゲーム処理を実行することで、当該距離を調整することでゲーム処理の内容(ここでは、キックの強さ)を指示するという新たな操作を提供することができる。例えば、当該距離が長いほど、キャラクタの動作の強度(例えば、キックの強さ)を強くするようにした場合、距離と強度に相関関係が生まれるので、直感的な動作を可能とすることができる。
また、例えばタッチパネル14Aがタッチし続ける操作をする場合には、ゲームのプレイ中にタッチ位置が自然にずれてしまうことがあるが、引きフリック操作や引きスワイプ止め操作では、タッチ位置の移動速度が基準速度以上である場合の移動方向が基準になるので、ユーザがはっきりとした意図を持って本発明に係る操作をした場合に、フライパスやフライスルーパスを実行することができる。このため、上記のように、ゲームプレイ中にタッチ位置が自然にずれてしまった場合であったとしても、引きフリック操作や引きスワイプ止め操作が行われたと判定されてしまうことを防止することができる。
また、グラウンダーパス及びグラウンダースルーパスと、フライパス及びフライスルーパスと、は軌道が異なるので、ボールの移動のさせ方を指示可能な種々の操作を提供することができる。
また、実施形態1のように操作対象がボールを移動させるゲームに引きフリック操作や引きスワイプ止め操作を適用することで、操作対象がボールを移動させるための操作の種類を増やすことができる。また、操作対象がボールに触れる前の期間内において取得された移動方向に基づいてフライパスやフライスルーパスを実行可能とする場合には、操作対象がボールに触れる前に、予め操作をさせることができるので、操作対象がボールに触れてすぐに移動させることができる。
[2.実施形態2]
次に、本発明に係る別実施形態を説明する。実施形態2では、実施形態1と同様のゲームが実行可能であってよく、実施形態1と同様の部分については説明を省略する。
[2−1.実施形態2における処理の概要]
実施形態2では、対戦相手チームが反則して、ユーザチームがフリーキックを獲得した場合の処理を一例に挙げて説明する。フリーキックは、試合中に反則行為が行われた場合に、反則を受けた側が、反則を受けた地点から相手の妨害を受けずにキックしてプレイを再開することである。なお、フリーキックでは、キックしたボールに合わせてユーザキャラクタがシュートを狙うセットプレイが行われたり、直接ゴールを狙ってキックしたりすることができる。例えば、ユーザチームがフリーキックを獲得すると、仮想視点VCが切り替わる。
図16は、仮想視点が切り替わる様子を示す図である。図16に示すように、ユーザチームがフリーキックを獲得する前(即ち、試合が進行するインプレイの状態)は、仮想視点は、ピッチPTを斜め上から見下ろすような俯瞰視点VC1となる。俯瞰視点VC1の場合、仮想視点は、ピッチPTとの距離を所定距離以上に保ち、かつ、視線方向とピッチPTとのなす角度を所定角度以上に保つ。仮想視点が俯瞰視点VC1である場合の仮想世界画像G1は、図3で説明した状態となる。
一方、ユーザチームがフリーキックを獲得すると、仮想視点は、ボールBを蹴るユーザキャラクタUCに寄り、当該ユーザキャラクタUCの背後からボールBを見るような視点(以降、背後視点VC2という。)に切り替わる。背後視点VC2の場合、仮想視点は、ピッチPTとの距離を所定距離未満に保ち、かつ、視線方向とピッチPTとのなす角度を所定角度未満に保つ。
図17は、仮想視点が背後視点VC2になった場合の仮想世界画像G1の一例を示す図である。図17に示すように、背後視点VC2になると、仮想視点がキッカーのユーザキャラクタUC(即ち、操作対象)に寄るので、ピッチPT、ユーザキャラクタUC、対戦相手キャラクタOC、ボールB、及びゴールGLなどの各オブジェクトが俯瞰視点VC1の時よりも大きく表示される。なお、キッカーとは、フリーキックを蹴る人のことである。
なお、ユーザチームがフリーキックを獲得した場合は、仮想世界画像上には、キッカーを変更するためのキッカー変更ボタンB1と、仮想視点を切り替える視点変更ボタンB2と、が表示されるようにしてよい。例えば、ユーザがキッカー変更ボタンB1を選択すると、出場中のユーザキャラクタUCの中からキッカーを変更することができる。また例えば、ユーザが視点変更ボタンB2を選択すると、仮想視点を俯瞰視点VC1に戻すことができる。仮想視点が俯瞰視点VC1になった場合の仮想世界画像G1は、図3で説明したようなアングルとなる。この場合にもユーザは視点変更ボタンB2を選択可能であり、仮想視点を再び背後視点VC2に戻すことができてよい。このように、ユーザは、視点変更ボタンB2を選択することで、仮想視点を俯瞰視点VC1と背後視点VC2との間で切り替えることができる。
図17に示すように、背後視点VC2になると、ボールBが表示領域の中央付近(X座標値がXMAX/2付近)に表示され、俯瞰視点VC1よりもピッチPTに近い位置から対戦相手チームのゴールGLを狙うようなアングルとなる。即ち、背後視点VC2では、ユーザがピッチPT上に立っているかのように仮想世界画像G1が表示され、対戦相手チームのゴールGLを狙いやすい状態となる。このため、ユーザはボールBをタッチしてなぞるような直感的な操作をしがちである。この点、実施形態1で説明した右側領域RAをそのまま変えなかったとすると、ボールBが右側領域RAの境界付近に表示されているので、ユーザがボールBをタッチして操作しようとしても、右側領域RAの外をタッチしてしまい、ボールBを移動させることができず、誤操作の原因となってしまう。
例えば、ボールBの全部が右側領域RAの外にはみ出している場合は、ユーザはボールBをタッチしても移動させることができず、誤操作の原因となってしまう。また例えば、ボールBの一部が右側領域RAの外にはみ出している場合は、ユーザはタッチした位置がわずかに右側領域RAの外になる可能性があり、この場合は、ボールBをタッチしても移動させることができず、誤操作の原因となってしまう。また例えば、ボールBがあと少しで右側領域RAからはみ出してしまう場合は、ユーザが誤って右側領域RAの外をタッチしてしまう可能性があり、誤操作の原因となってしまう。このため、実施形態2では、背後視点VC2になると、右側領域RAを全体的に左側に拡張して、十分なスペースを確保するようにしている。
図18は、実施形態2の左側領域LA及び右側領域RAを示す図である。図18に示すように、実施形態2では、背後視点VC2になると、右側領域RAが左側に拡張する。右側領域RAがどの程度拡張するかは任意であってよく、その形状も変化してよいが、図18の例では、右側領域RAは、Xs座標がXMAX/2以上の領域から、Xs座標がXMAX/3以上の領域に拡張する。なお、ユーザが視点変更ボタンB2を選択して仮想視点を俯瞰視点VC1に戻すと、右側領域RAは元の広さに戻るようにしてもよい。例えば、俯瞰視点VC1の場合の操作体系は、インプレイ時と同じ操作体系であってよいが、背後視点VC2の場合の操作体系は、インプレイ時の操作体系と異なっている。
図19は、背後視点VC2における左側領域LAに対する操作を示す図である。例えば、背後視点VC2になると、左側領域LAは、仮想視点の制御のために用いられる。図19に示すように、例えば、ユーザが左側領域LAに対してスライド操作をすると、仮想視点がスライド方向に移動したり向きを変えたりする。なお、ユーザがスライド操作を止めた場合に、仮想視点は、スライド操作を開始する前の状態に戻ってもよいし、現在の状態で固定されてもよい。
図20は、背後視点VC2における右側領域RAに対する操作を示す図である。図20に示すように、例えば、ユーザが右側領域RAに対して任意の軌道でフリック操作をすると、ボールBが当該軌道を描くように移動する。例えば、ユーザが描いた軌道上に表示されている仮想世界VW内の3次元座標を通るようにボールBが移動してもよいし、軌道上の3次元座標のうち最も高い場所を通るようにボールBが移動してもよい。先述した通り、右側領域RAは拡張しているので、ユーザがボールBに触れるスペースが十分に確保されている。なお、フリック操作の起点は、右側領域RAにあればよく、本実施形態では、必ずしも、起点がボールBである必要はないものとする。
以上のように、実施形態2のゲーム制御装置10は、ユーザがボールBをタッチして移動させたいような状況になった場合に、右側領域RAが拡張してボールBをタッチするためのスペースが十分に確保されるので、ユーザはボールBにタッチする操作が可能になり、ユーザの誤操作を防止するようになっている。以降、この処理の詳細を説明する。なお、以降では、特に図面を参照する必要のないときは、ユーザキャラクタやボールなどの符号を省略する。
[2−2.実施形態2において実現される機能]
図21は、実施形態2における機能ブロック図である。図21に示すように、実施形態2では、ゲーム制御装置10において、データ記憶部100、表示制御部106、操作領域設定部107、及び移動制御部108が実現される。なお、図21に示すように、データ記憶部100に記憶されるデータは、実施形態1と同様であってよい。
[2−2−1.表示制御部]
表示制御部106は、制御部11を主として実現される。表示制御部106は、タッチパネル14Aに対するユーザの操作に応じてボールを移動させるゲームにおいて、ボールを表示領域に表示させる。ここでの操作とは、例えば、タッチパネル14Aをタッチする操作である。例えば、タッチパネル14Aをタップする操作であってもよいし、タッチパネル14Aに触れた後にスライドさせる操作であってもよい。なお、実施形態2では、ユーザの操作に応じて移動するオブジェクトの一例としてボールを説明するので、実施形態2の説明において「ボール」と記載した箇所は、「オブジェクト」と読み替えることができる。
本実施形態では、表示領域には、ボールが配置された仮想世界を仮想視点から見た様子が表示されるので、表示制御部106は、ゲームの実行中に、仮想視点の位置及び視線方向を制御することになる。表示制御部106は、仮想視点の位置及び視線方向を任意の方法で制御可能であってよく、例えば、ボール又はユーザの操作対象と所定の位置関係を保つように、仮想視点の位置及び視線方向を制御してよい。また例えば、表示制御部106は、ボール及びユーザの操作対象の少なくとも一方が視野内に収まるように、仮想視点の位置及び視線方向を制御してもよい。
[2−2−2.操作領域設定部]
操作領域設定部107は、制御部11を主として実現される。操作領域設定部107は、表示領域のうちの第1の領域を、操作領域として設定する。第1の領域とは、例えば、タッチパネル14A上の一部の領域である。第1の領域の形状及びサイズは、任意であってよく、例えば、長方形であってもよいし、正方形であってもよいし、円形であってもよい。
ここでの操作領域とは、例えば、操作を受け付けるタッチパネル14A上の領域である。例えば、操作領域上で所定の操作が行われた場合に、当該操作領域に関連付けられた処理が実行される。当該所定の操作は、例えば、タップ操作、スライド操作、フリック操作、スワイプ操作、曲線状に軌道を描くスライド操作、スワイプ止め操作、引きフリック操作、又は引きスワイプ止め操作などである。なお、操作領域は、タッチパネル14Aに複数設けられてもよい。左側領域LA及び右側領域RAは、操作領域の一例である。ただし、実施形態2では、第1の領域が操作領域として設定されるのは右側領域RAである場合を一例に挙げて説明する。更に、第1の領域は、俯瞰視点における右側領域RAを示す場合を一例に挙げて説明する。
操作領域設定部107は、所定のゲーム状況であって、ボールの全部若しくは一部が第1の領域外に含まれることになる状況、又は、ボールが前記第1の領域の端部に配置されることになる状況では、右側領域RAを、ボールが領域の端部に配置されることのない第2の領域に変更する。
所定のゲーム状況とは、例えば、ユーザが表示されているボールに直接触れたくなるような状況である。例えば、ボールの全部若しくは一部が第1の領域外に含まれることになる状況である。即ち、例えば、表示領域のうちボールが表示された画素の全てが第1の領域外となること、又は、当該画素の一部が第1の領域外となることである。また例えば、ボールが第1の領域の端部に配置されることになる状況である。なお、第1の領域の端部とは、例えば、第1の領域の輪郭の画素であり、ボールの表示位置が当該画素から所定距離以内となることである。
例えば、所定のゲーム状況は、仮想視点とボールとの位置関係が所定の関係となる状況であってよい。位置関係は、例えば、仮想視点とボールの相対的な位置であり、仮想視点の位置とボールの位置とのずれ、又は、仮想視点の視線方向と、ボールが配置された平面の方向と、のずれである。所定の関係とは、例えば、仮想視点の位置とボールの位置とのずれが基準距離未満となること、又は、仮想視点の視線方向と、ボールが配置された平面の方向と、のずれが基準角度未満となることである。例えば、所定のゲーム状況は、ボールが画面中央付近に表示される状況である。また例えば、所定のゲーム状況は、仮想視点が俯瞰視点からフィールド上の視点に変化した状況である。この場合、仮想視点の視線方向とフィールドとのなす角度は基準角度未満であり、かつ、仮想視点とフィールドとの距離が基準距離未満となる。また例えば、サッカーのようにボールを目標位置(例えば、ゴール)に移動させるゲームでは、仮想視点の視線方向が目標位置を向くような状況である。
また例えば、所定のゲーム状況は、ゲームの実行中に、ボールが停止する状況であってよい。例えば、スポーツの試合が行われるゲームであれば、試合において反則が発生した場合である。また例えば、周囲に敵がおらずボールの目標位置を狙いやすい状態であってもよいし、敵がボールを奪いにきてはいけない状態であってもよい。また例えば、対戦ゲームにおいて、ボールを移動させるために対戦相手が邪魔をしない状況(例えば、フリーキックやPK)である。本実施形態では、フリーキックになり、かつ、背後視点になることが所定のゲーム状況に相当する。
ボールが領域の端部に配置されることのない第2の領域とは、例えば、領域の端部とボールの表示位置とが所定距離以上となり、かつ、領域の内側にボールを含まない領域である。
例えば、操作領域設定部107は、ゲームが所定のゲーム状況になった場合に、右側領域RAを、少なくとも第1の領域を含む第2の領域に拡張する。例えば、第2の領域は、第1の領域を拡張した領域である。拡張する方向は任意であってよく、例えば、第1の領域が表示領域の右側に配置されていれば左方向に拡張された領域であってもよいし、第1の領域が表示領域の左側に配置されていれば右方向に拡張された領域であってもよい。また例えば、第2の領域は、第1の領域とボールの周囲領域とを含む領域であってよい。周囲領域は、例えば、ボールから所定距離の領域である。周囲領域の形状は任意であってよく、長方形であってもよいし、正方形であってもよいし、円形であってもよい。周囲領域は、固定サイズであってもよいし、可変サイズであってもよい。なお、第2の領域は、第1の領域よりも大きくてもよいし小さくてもよいし同じサイズであってもよい。第2の領域は、第1の領域と同じ形状であってもよいし、異なる形状であってもよい。
本実施形態では、表示領域は横幅が縦幅よりも長く、操作領域設定部107は、複数の右側領域RAを設定可能であり、第1の領域及び第2の領域は、他の操作領域(ここでは、左側領域LA)よりも右側にある領域である。即ち、ユーザから見て横長の表示領域となり、フリーキックにおいて背後視点になった場合に拡張する領域は、最も右側にある右側領域RAとなる。
[2−2−3.移動制御部]
移動制御部108は、制御部11を主として実現される。実施形態1ではゲーム処理実行部105がボールを移動させる場合を説明したが、実施形態2では、移動制御部108がボールを移動させる場合を説明する。このため、移動制御部108は、ゲーム処理実行部105と同様の処理を実行可能であってよい。移動制御部108は、右側領域RAに対するユーザの操作に基づいて、ボールを移動させる。例えば、移動制御部108は、ユーザが所定の操作をした場合に、ボールを移動させる。また例えば、操作の種類とボールの移動のさせ方との関係をデータ記憶部100に定義しておき、移動制御部108は、ユーザが行った操作の種類に関連付けられた移動のさせ方でボールを移動させてもよい。例えば、ユーザが右側領域RA上でボールの移動方向を指示した場合に、移動制御部108は、ユーザが指示した方向にボールを移動させる。
本実施形態では、ユーザが行う操作は、右側領域RAをタッチした後にタッチ位置を移動させる操作であるので、移動制御部108は、タッチ位置が移動中に右側領域RAの外に移動したとしても、当該操作に基づいてボールを移動させる。即ち、移動制御部108は、タッチパネル14Aへのタッチが開始されたタッチ位置が右側領域RAであれば、その後にタッチ位置が右側領域RAにあるか否かに関係なく、その後の操作に基づいてボールを移動させる。
例えば、移動制御部108は、第1の領域が右側領域RAとして設定されている場合は(即ち、俯瞰視点の右側領域RA)、第1の領域に対する第1の操作に基づいてボールを移動させ、第2の領域が前記右側領域RAとして設定されている場合は(即ち、背後視点の右側領域RA)、第2の領域に対する第2の操作に基づいてボールを移動させる。即ち、移動制御部108は、俯瞰視点の右側領域RAが設定されている場合は、第1の操作体系に基づいてボールを移動させ、背後視点の右側領域RAが設定されている場合は、第2の操作体系に基づいてボールを移動させる。別の言い方をすれば、移動制御部108は、第1の領域が右側領域RAとして設定されている場合と(即ち、俯瞰視点の右側領域RA)、第2の領域が右側領域RAとして設定されている場合と(即ち、背後視点の右側領域RA)、で右側領域RAに対する操作体系を異ならせる。
また例えば、移動制御部108は、第1の領域が右側領域RAとして設定されている場合と(即ち、俯瞰視点の右側領域RA)、第2の領域が右側領域RAとして設定されている場合と(即ち、背後視点の右側領域RA)、でボールの移動のさせ方を異ならせる。移動のさせ方とは、ボールの軌道、速度、又は回転である。軌道は、例えば、移動物体の高さである。回転は、例えば、回転方向又は回転量である。例えば、移動制御部108は、俯瞰視点の右側領域RAに対する操作に応じてボールが移動する場合と、背後視点の右側領域RAに対する操作に応じてボールが移動する場合と、でボールの軌道、速度、及び回転の少なくとも一つが異ならせるようにしてよい。
例えば、移動制御部108は、俯瞰視点の右側領域RAの場合は、実施形態1で説明した操作に基づいてボールを移動させる。一方、移動制御部108は、背後視点の右側領域RAの場合は、ユーザが右側領域RAをなぞるようにフリック操作をした場合に、その軌道に基づいてボールを移動させる。例えば、移動制御部108は、軌道の曲がり具合に基づいてボールの曲がり具合を決定してもよい。この場合、移動制御部108は、フリック操作の開始時点のタッチ位置の移動方向と、終了時点のタッチ位置の移動方向と、の角度に基づいてボールの回転や軌跡のカーブ量を決定してもよい。また例えば、移動制御部108は、フリック操作における軌道上の任意の点に表示されている仮想世界内の3次元座標を通るようにボールを移動させてもよい。また例えば、移動制御部108は、フリック操作における軌道のうち仮想世界内の3次元座標が最も高くにある点に表示されている仮想世界内の3次元座標を通るようにボールを移動させてもよい。このようにすれば、ユーザが大きく弧を描くようにフリック操作をすると、打ち上げ気味のキックとなり、逆に直線に近いフリック操作をすると、ライナー性の弾道のキックとなる。
[2−3.ゲーム制御装置において実行される処理]
図22及び図23は、実施形態2のゲーム制御装置10において実行される処理の一例を示すフロー図である。図22及び図23に示す処理は、制御部11が記憶部12に記憶されたプログラムに従って動作することによって実行される。下記の処理は、図21に示す各機能ブロックによる処理の一例である。
図22に示すように、制御部11は、ゲーム状況データDT1に基づいて、ユーザチームがフリーキックを獲得したかを判定する(S30)。S30においては、制御部11は、ゲーム状況データDT1を参照して対戦相手キャラクタの動作を特定し、対戦相手キャラクタが所定の反則動作をしたかを判定する。反則動作は、予め定められた動作であればよく、例えば、ユーザキャラクタに接触して転ばせることであってもよいし、ボールが対戦相手キャラクタの手に接触することであってもよい。
ユーザチームがフリーキックを獲得したと判定されない場合(S30;Y)、本処理は終了する。一方、ユーザチームがフリーキックを獲得したと判定された場合(S30;Y)、制御部11は、仮想視点を背後視点に切り替える(S31)。S31においては、制御部11は、例えば、反則が発生した位置又はその付近にボールを配置する。そして、制御部11は、任意のユーザキャラクタをキッカーとして選択し、ボールの近くに配置する。制御部11は、キッカーとして選択されたユーザキャラクタの背後に回るように、仮想視点の位置及び視線方向を変更する。
制御部11は、右側領域RAを左側に拡張させる(S32)。S32においては、制御部11は、例えば、全体的に左側に伸びるように右側領域RAを拡張させる。なお、右側領域RAの拡張の程度は、固定であってもよいし、状況に応じて可変であってもよい。拡張後の右側領域RAを識別する情報は、予め記憶部12に記憶されているものとする。
制御部11は、S31で切り替えた背後視点に基づいて仮想世界画像G1を表示部15に表示させる(S33)。S33においては、制御部11は、図17の状態の仮想世界画像G1を表示部15に表示させる。制御部11は、タッチパネル14Aの検出信号に基づいて、ユーザの操作を特定する(S34)。ここでは、左側領域LAに対するスライド操作、右側領域RAに対するフリック操作、キッカー変更ボタンB1の選択、又は視点変更ボタンB2の選択の何れかが行われるものとする。
ユーザが左側領域LAに対してスライド操作をした場合(S34;左側)、制御部11は、スライド方向に移動するように仮想視点を制御し(S35)、S34に戻る。S35においては、制御部11は、スライド方向に基づいて仮想視点の移動方向を決定する。また、制御部11は、スライド操作によりタッチ位置が移動した距離に基づいて仮想視点の移動距離を決定する。
ユーザが右側領域RAに対してフリック操作をした場合(S34;右側領域)、制御部11は、フリック操作により指示された軌道に基づいて、ユーザキャラクタにボールを蹴らせ(S36)、本処理は終了する。S36においては、制御部11は、タッチ状況データを参照し、フリック操作におけるタッチ位置の履歴を特定する。制御部11は、タッチ位置に表示された仮想世界のうちで最も高い地点を特定する。制御部11は、ボールが現在の位置から当該最も高い地点を通るように軌道を決定する。そして、制御部11は、モーションデータを再生して操作対象にキックの動作をさせ、ボールを決定した軌道上で移動させる。
ユーザがキッカー変更ボタンB1を選択した場合(S34;B1)、制御部11は、出場中のユーザキャラクタの中でキッカーを変更し(S37)、S34の処理に戻る。ユーザが視点変更ボタンB2を選択した場合(S34;B2)、制御部11は、仮想視点を俯瞰視点に切り替えて(S38)、右側領域RAを元に戻す(S39)。S38においては、制御部11は、ゲーム状況データに格納された仮想視点の位置及び視線方向を俯瞰視点用のものに変更する。また、S39においては、制御部11は、右側領域RAの拡張を停止して元の状態に戻す。
図23に移行し、制御部11は、俯瞰視点に基づく仮想世界画像G1を表示部15に表示させる(S40)。制御部11は、タッチパネル14Aの検出信号に基づいて、ユーザの操作を特定する(S41)。ここでは、キッカー変更ボタンB1の選択、視点変更ボタンB2の選択、又はその他の操作が行われるものとする。その他の操作は、実施形態1で説明したインプレイ中の各操作であってよく、例えば、右側領域RAに対するフリック操作、スワイプ止め操作、引きフリック操作、又は引きスワイプ止め操作であってよい。
ユーザがキッカー変更ボタンB1を選択した場合(S41;B1)、制御部11は、出場中のユーザキャラクタの中でキッカーを変更し(S42)、S41の処理に戻る。ユーザが視点変更ボタンB2を選択した場合(S41;B2)、S2の処理に戻り、仮想視点が背後視点に切り替わって、右側領域RAが再び拡張する。ユーザが他の操作をした場合(S41;他の操作)、制御部11は、操作に応じた処理を実行し(S44)、本処理は終了する。S44においては、制御部11は、例えば、ユーザキャラクタにグラウンダーパスやフライパスなどをさせる。この処理自体は、実施形態1で説明した処理と同様であってよいので、説明を省略する。
以上説明したゲーム制御装置10によれば、ボールの全部又は一部が第1の領域(ここでは、俯瞰視点時の右側領域RA)外に含まれることになる状況、又は、ボールが第1の領域の端部に配置されることになる状況は、ユーザの誤操作が起こりやすい状況であり、このような状況において、右側領域RAが、ボールが端部に配置されることのない領域に変更され、ボールに触れる直感的な操作が可能になるので、誤操作を防止することができる。また、特に上記のような状況ではない場合(即ち、ユーザが表示されているボールに直接触れたいと思わない場合)には、ボールの表示位置付近を他の操作のために割り当てることができるので、タッチパネル14A上の領域を有効活用することもできる。また例えば、スマートフォンなどを横持ちしてプレイすることを前提としたサッカーゲームでは、画面中央を境界として、左側領域LAをバーチャルパッド領域とし、右側領域RAをアクション入力領域とすることが多い。例えば、ユーザは、仮想視点により映し出されるピッチを見ながら、バーチャルパッド領域である左側領域LAに対する操作で選手を移動させ、アクション入力領域である右側領域RAに対する操作でパスやシュート等を行って試合を進行させることが多い。実施形態2では、試合中、フリーキックのようなセットプレイ時は、俯瞰視点から背後視点に切り替わり、ユーザは、バーチャルパッド領域である左側領域LAに対する操作で仮想視点の視線方向を移動させつつ、アクション入力領域である右側領域RAに対する操作でボールをキックする操作を行う。実施形態2では、セットプレイ時のボールのキックは、アクション入力領域である右側領域RAの任意の位置をタッチしてそのままフリック操作をすることで行うものであるが(先述したように、最初にボールをタッチする必要はない)、直感的な操作をしてしまうユーザは、最初にボールをタッチしてフリック操作をしてしまいがちである。しかしながら、このようなセットプレイ時は、ボールが、左側領域LAと右側領域RAの境界となる画面中央に配置されているため、ユーザが最初にボールをタッチしようとすると、アクション入力領域でなく誤ってバーチャルパッド領域をタッチしてしまうという誤操作が起こり得る。そこで、実施形態2では、ユーザがタッチしてしまいがちなボール等のオブジェクトが画面中央に配置されるような場面では、少なくともオブジェクト全体がアクション入力領域に含まれるように右側領域RAを拡張させるようにする。これにより、直感的な操作をしてしまうユーザの誤操作を防ぐことができるようになっている。
また、背後視点になった場合に右側領域RAが変更されるので、仮想視点とボールとが特定の位置関係となり、ユーザがボールに触りたくなるような状況における誤操作を防止することができる。
また、フリーキックになった場合に右側領域RAが変更されるので、ボールが停止してユーザがじっくりと狙いを定める場合には、ユーザがボールに触りたくなるため、ユーザの誤操作をより効果的に防止することができる。
また、タッチ位置が右側領域RAの外に移動したとしても、ボールを移動させる処理が実行されるので、タッチ位置が他の操作領域に侵入したときに処理が変わってしまうことを防止することができる。
また、ユーザが表示されているボールに直接触れたくなるような特定の状況になった場合に、元々の右側領域RAが拡張し、元々の右側領域RAに対して操作することもできるので、ユーザの好みに応じた操作を提供することができる。
また、物理的なゲームコントローラでは、例えばボールを蹴って移動させるために右側のボタンを利用することが多いが、タッチパネル14Aでも、右側にある右側領域RAへの操作でボールを移動させることで、ユーザが使い慣れた自然な操作性を提供することができる。
また、設定される右側領域RAに応じて操作体系を変えることができ、状況に応じた多種多様な操作をユーザに提供することができる。
また、設定される右側領域RAに応じてボールの移動のさせ方が異なるので、ゲームの状況に応じた移動のさせ方でボールを移動させることができる。
[3.変形例]
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
[3−1.実施形態1に関する変形例]
まず、実施形態1に関する変形例を説明する。例えば、実施形態1では、ユーザが引きフリック操作及び引きスワイプ止め操作をした場合に、ユーザがタッチ位置の移動方向を切り返した位置をベース位置とし、その後の移動方向に基づいてボールの移動方向が決まる場合を説明した。これとは逆に、切り返した位置の前におけるタッチ位置の移動方向に基づいてボールの移動方向が決まってもよい。
図24及び図25は、変形例における操作を示す図である。図24に示すように、例えば、ユーザが右側領域RAに対して、パスしたい方向に対してスワイプ操作をした後に、逆方向に少しフリック操作をすると、ユーザキャラクタUCがスワイプ方向にフライパスをするようにしてもよい。この場合、例えば、実施形態1のフライパスとは異なり、ボールBがバックスピンするようにしてもよい。図24の操作を押しフリック操作と記載すると、押しフリック操作と引きフリック操作の何れかのみを有効としてもよいし、これらの両方を有効としてもよい。両方を有効とする場合には、引きフリック操作が行われたか押しフリック操作が行われたかは、タッチ開始時のタッチ位置と移動方向の切り返し位置との第1距離と、移動方向の切り返し位置とタッチの解除位置との第2距離と、の何れが長いかによって判定されてよい。第1距離が第2距離よりも短ければ引きフリック操作と判定され、第2距離が第1距離よりも短ければ押しフリック操作と判定されてよい。これらの判定は、検知部102又はゲーム処理実行部105が行えばよい。
また例えば、図25に示すように、例えば、ユーザが右側領域RAに対して、パスしたい方向に対してスワイプ操作をした後に、逆方向に少しスワイプ操作をしてタッチ位置を停止させると、ユーザキャラクタUCが最初のスワイプ方向にフライスルーパスをするようにしてもよい。この場合、例えば、実施形態1のフライスルーパスとは異なり、ボールBがバックスピンするようにしてもよい。図25の操作を押しスワイプ止め操作と記載すると、押しスワイプ止め操作と引きスワイプ止め操作の何れかのみを有効としてもよいし、これらの両方を有効としてもよい。両方を有効とする場合には、引きスワイプ止め操作が行われたか押しスワイプ止め操作が行われたかは、タッチ開始時のタッチ位置と移動方向の切り返し位置との第3距離と、移動方向の切り返し位置とタッチの停止位置との第4距離と、の何れが長いかによって判定されてよい。第3距離が第4距離よりも短ければ引きスワイプ止め操作と判定され、第4距離が第3距離よりも短ければ押しスワイプ止め操作と判定されてよい。これらの判定は、検知部102又はゲーム処理実行部105が行えばよい。
押しフリック操作及び押しスワイプ止め操作では、ゲーム処理実行部105は、検知部102が移動方向の切り返しを検知する前におけるタッチ位置と、検知部102が切り返し検知した場合のタッチ位置と、に基づいて定まる方向にボールを移動させるようにすればよい。例えば、ゲーム処理実行部105は、所定のタイミングにおける移動方向の起点となるタッチ位置と、変化後の移動方向の起点となるタッチ位置(切り返し位置)と、の方向及び距離の少なくとも一方に基づいて、フライパスやスライスルーパスを実行してよい。上記のようにすれば、例えば、ユーザキャラクタUCがバックスピンをかけてボールを移動させるような直感的な操作が可能になり、ユーザに提供可能な操作を更に増加させることができる。
なお、実施形態1と実施形態2を組み合わせてもよいが、実施形態1においては、実施形態2のように、右側領域RAを拡張する処理は必須ではなく、省略してもよい。また例えば、引きフリック操作と引きスワイプ止め操作の何れかのみが実現されてもよい。また例えば、ユーザが引きフリック操作をした場合に、特に、ベース位置と、タッチが解除される直前のタッチ位置と、の距離を考慮せずにフライパスが実行されてもよい。また例えば、ユーザが引きスワイプ止め操作をした場合に、特に、ベース位置と、タッチ位置の移動が停止又は略停止した場合のタッチ位置と、の距離を考慮せずにフライスルーパスが実行されてもよい。
[3−2.実施形態2に関する変形例]
次に、実施形態2に関する変形例を説明する。例えば、対戦相手チームが反則をしてユーザチームがペナルティキックを獲得することがある。ペナルティキックとは、ペナルティエリア内で発生した反則行為に対し、反則を行った側のチームに与えられる罰則であり、キッカーとゴールキーパーが1対1の状態でペナルティエリア内の所定位置からキックが行われる。ユーザチームがペナルティキックを獲得した場合にも、実施形態2で説明したように右側領域RAが左側に拡張するようにしてもよい。
図26は、ユーザチームがペナルティキックを獲得した場合の仮想世界画像G1を示す図である。図26に示すように、ユーザチームがペナルティキックを獲得した場合にも、仮想視点は背後視点となる。このため、ペナルティキックでは、ユーザはボールBをタッチして移動させたい状況となる。この場合に、図18と同様に、右側領域RAが左側に拡張するようにしてよい。なお、ペナルティキックでは、特に左側領域LAは操作に用いられなくてもよい。例えば、ユーザは、右側領域RAにおいてフリック操作をすることでシュートの軌道を指示することになる。
また例えば、上記とは逆に、ユーザチームが反則をして対戦相手チームがペナルティキックを獲得することがある。この場合は、ユーザは、ボールBの移動を指示できないので、その代わりに、ゴールキーパーを指示できるようにしてもよい。即ち、実施形態2で実行されるゲームは、ボールB、ユーザキャラクタ、及び対戦相手キャラクタなどの複数のオブジェクトが移動するゲームなので、このようなゲームにおいて、移動制御部108は、第1の領域が右側領域RA(即ち、俯瞰視点の右側領域RA)として設定されている場合と、第2の領域が右側領域RA(即ち、背後視点の右側領域RA)として設定されている場合と、で複数のオブジェクトの中で制御対象となるオブジェクトを異ならせるようにしてもよい。上記の場合ごとに制御対象となるオブジェクトが定義されたデータが、予めデータ記憶部100に記憶されており、移動制御部は、当該データを参照して制御対象のオブジェクトを特定する。
図27は、対戦相手チームがペナルティキックを獲得した場合の仮想世界画像G1を示す図である。図27に示すように、対戦相手チームがペナルティキックを獲得した場合にも、仮想視点は背後視点となる。ただし、この場合は、キッカーである対戦相手キャラクタOCの背後視点となる。対戦相手チームがペナルティキックを獲得した場合にも、図18と同様に、右側領域RAが左側に拡張するようにしてよい。なお、ペナルティキックでは、特に左側領域LAは操作に用いられなくてもよい。例えば、ユーザは、右側領域RAにおいてフリック操作をすることでゴールキーパーであるユーザキャラクタUCが移動する方向を指示することになる。また例えば、ゴールキーパーの能力に基づいて、シュートを防ぐための動作が変わってもよい。図27のようにすれば、ゲームの状況に応じたオブジェクトを移動させることができる。
また例えば、フリーキックになった場合に、右側領域RAが全体的に左側に拡張される場合を説明したが、元々の右側領域RAとボールの周囲領域とが合わせることで、右側領域RAが拡張してもよい。ボールの周囲領域とは、ボールから所定距離未満の位置からなる領域であり、その形状は、円形であってもよいし、楕円形であってもよいし、多角形であってもよい。また例えば、右側領域RAが拡張する場合を説明したが、左側領域LAにおいてボールの移動を指示可能な場合には、左側領域LAが拡張してもよい。また例えば、フリーキック以外の他のセットプレイが行われる場合に右側領域RAが拡張されるようにしてもよい。例えば、スローインやコーナーキックの場面で右側領域RAが拡張されてもよい。
なお、実施形態1と実施形態2を組み合わせてもよいが、実施形態2においては、実施形態1のように、引きフリック操作と引きスワイプ止め操作は必須ではなく、省略してもよい。また例えば、右側領域RAが拡張されるのは、特にフリーキックのようにゲームの進行が停止している場面でなくてもよい。また例えば、右側領域RAは、必ずしも拡張する必要はなく、ボールを含むようにサイズ及び形状の少なくとも一方が変化してもよい。また例えば、横長の表示領域を例に挙げたが、縦長の表示領域において操作領域が拡張されてもよい。また例えば、右側領域RAの拡張前後で特に操作体系が変わらなくてもよい。また例えば、右側領域RAの拡張前後でボールの移動のさせ方が同じであってもよい。
[3−3.その他変形例]
例えば、実施形態1、実施形態2、及び上記説明した変形例の2つ以上を組み合わせてもよい。
また例えば、ゲーム制御装置10において実現される各機能は、サーバ30において実現されてもよい。例えば、サーバ30によって、データ記憶部100が実現されてもよい。この場合、データ記憶部100は、記憶部32を主として実現される。ゲーム制御装置10は、サーバ30からデータを受信することによって、ゲームを実行する。ゲーム制御装置10は、ゲームの実行結果をサーバ30に送信することによって、サーバ30が記憶する各データが更新される。
また例えば、サーバ30において、ゲームの主な処理が実行されるようにしてもよい。この場合、サーバ30が本発明に係るゲーム制御装置に相当する。例えば、実施形態1において、方向取得部101、検知部102、速度取得部103、速度判定部104、及びゲーム処理実行部105がサーバ30で実現される場合、これらは制御部31を主として実現される。また例えば、実施形態2において、表示制御部106、操作領域設定部107、及び移動制御部108がサーバ30で実現される場合、これらは制御部31を主として実現される。この場合、ゲーム制御装置10は、サーバ30から画像データを受信して仮想世界画像G1を表示部15に表示させる。また、ゲーム制御装置10は、操作部14及びタッチパネル14Aが受け付けた指示を示すデータをサーバ30に送信する。サーバ30は、当該データを受信することで、ユーザの指示を特定し、ゲームを実行すればよい。また例えば、ゲーム制御装置10とサーバ30とで各機能が分担されてもよい。この場合、各機能ブロックの処理結果が、ゲーム制御装置10とサーバ30との間で送受信されるようにすればよい。
また例えば、サッカーゲームが実行される場合を説明したが、他のゲームに本発明に係る処理を適用してもよい。例えば、サッカーゲーム以外のスポーツゲーム(例えば、野球、テニス、アメリカンフットボール、バスケットボール、バレーボール等を題材としたゲーム)に本発明に係る処理を適用してもよい。また例えば、スポーツゲーム以外にも、アクションゲームやロールプレイングゲーム等のように、ゲーム形式・ジャンルを問わず種々のゲームに本発明に係る処理を適用してもよい。
[4.付記]
以上のような記載から、本発明は例えば以下のように把握される。
[4−1.実施形態1に係る発明]
1−1)本発明の一態様に係るゲーム制御装置(10,30)は、タッチパネルがタッチされた状態でタッチ位置が移動した場合に、当該タッチ位置の移動方向を取得する方向取得手段(101)と、前記方向取得手段(101)により取得された前記移動方向に基づいて、第1のゲーム処理を実行するゲーム処理実行手段(105)と、前記方向取得手段(101)により取得された前記移動方向について、所定のタイミングで取得された移動方向とのなす角度が所定角度以上の任意の移動方向に変化したことを検知する検知手段(102)と、を含み、前記ゲーム処理実行手段(105)は、前記検知手段(102)により移動方向の変化が検知された場合に、変化前又は変化後の移動方向に基づいて、第2のゲーム処理を実行する、ことを特徴とする。
1−9)本発明の一態様に係るゲームシステム(S)は、タッチパネルがタッチされた状態でタッチ位置が移動した場合に、当該タッチ位置の移動方向を取得する方向取得手段(101)と、前記方向取得手段(101)により取得された前記移動方向に基づいて、第1のゲーム処理を実行するゲーム処理実行手段(105)と、前記方向取得手段(101)により取得された前記移動方向について、所定のタイミングで取得された移動方向とのなす角度が所定角度以上の任意の移動方向に変化したことを検知する検知手段(102)と、を含み、前記ゲーム処理実行手段(105)は、前記検知手段(102)により移動方向の変化が検知された場合に、変化前又は変化後の移動方向に基づいて、第2のゲーム処理を実行する、ことを特徴とする。
1−10)本発明の一態様に係るプログラムは、1−1)〜1−8)の何れかに記載のゲーム制御装置(10,30)又は1−9)に記載のゲームシステム(S)としてコンピュータを機能させる。
1−11)本発明の一態様に係る情報記憶媒体は、1−10)のプログラムを記録したコンピュータで読み取り可能な情報記憶媒体である。
1−1)又は1−9)〜1−11)に係る発明によれば、タッチ位置の移動方向が、所定のタイミングで取得された移動方向とのなす角度が所定角度以上の任意の移動方向に変化したが検知されると、実行されるゲーム処理が変わるので、ユーザが指示可能なゲーム処理の種類を増やすことができる。即ち、タッチ位置の移動方向を切り返すような操作が可能になり、単なるフリックやスワイプなどとは異なる新規の操作をユーザに提供することができるので、タッチパネルを使ったゲームにおける操作の種類を増やすことができる。更に、角度の違いが所定角度以上であることを条件とすることで、例えばフリックやスワイプなどのような操作との区別が明確になり、ユーザにとって分かりやすい操作とすることができる。更に、フリックやスワイプなどとは判定方法が明確に異なるので、ゲーム制御装置(10,30)が上記操作を誤ってフリックやスワイプなどと誤認識してしまうことを防止することができる。
1−2)本発明の一態様では、前記ゲーム処理実行手段(105)は、前記検知手段(102)により移動方向の変化が検知された場合に、前記タッチパネルへのタッチが解除されたことに応じて、前記第2のゲーム処理を実行する、ことを特徴とする。1−2)の態様によれば、タッチ位置の移動方向を、所定のタイミングで取得された移動方向とのなす角度が所定角度以上の任意の移動方向に変化させ、かつ、タッチを解除させるという新たな操作をユーザに提供することができる。
1−3)本発明の一態様では、前記ゲーム処理実行手段(105)は、前記検知手段(102)により移動方向の変化が検知された場合に、前記変化後の移動方向の起点となる前記タッチ位置と、前記タッチパネルへのタッチが解除された場合の前記タッチ位置と、の距離に基づいて、前記第2のゲーム処理を実行する、ことを特徴とする。1−3)の態様によれば、変化後の移動方向の起点となるタッチ位置と、タッチが解除された場合のタッチ位置と、の距離に基づいてゲーム処理を実行することで、当該距離を調整することでゲーム処理の内容を指示するという新たな操作を提供することができる。例えば、当該距離が長いほど、キャラクタの動作の強度(例えば、キックの強さ)を強くするようにした場合、距離と強度に相関関係が生まれるので、直感的な動作を可能とすることができる。
1−4)本発明の一態様では、前記ゲーム処理実行手段(105)は、前記検知手段(102)により移動方向の変化が検知された場合に、前記タッチ位置の移動が停止又は略停止したことに応じて、第3のゲーム処理を実行する、ことを特徴とする。1−4)の態様によれば、タッチ位置の移動方向を、所定のタイミングで取得された移動方向とのなす角度が所定角度以上の任意の移動方向に変化させ、かつ、タッチ位置の移動を停止又は略停止させるという新たな操作をユーザに提供することができる。
1−5)本発明の一態様では、前記ゲーム処理実行手段(105)は、前記検知手段(102)により移動方向の変化が検知された場合に、前記変化後の移動方向の起点となる前記タッチ位置と、当該タッチ位置が移動した後、停止又は略停止した場合の前記タッチ位置と、の距離に基づいて、前記第3のゲーム処理を実行する、ことを特徴とする。1−5)の態様によれば、変化後の移動方向の起点となるタッチ位置と、タッチ位置の移動が停止又は略停止した場合のタッチ位置と、の距離に基づいてゲーム処理を実行することで、当該距離を調整することでゲーム処理の内容を指示するという新たな操作を提供することができる。例えば、当該距離が長いほど、キャラクタの動作の強度(例えば、キックの強さ)を強くするようにした場合、距離と強度に相関関係が生まれるので、直感的な動作を可能とすることができる。
1−6)本発明の一態様では、前記ゲーム制御装置(10,30)は、前記タッチパネルがタッチされた状態で前記タッチ位置が移動した場合に、前記タッチ位置の移動速度を取得する速度取得手段(103)と、前記速度取得手段(103)により取得された前記移動速度が基準速度以上であるかを判定する速度判定手段(104)と、を更に含み、前記所定のタイミングで取得された移動方向は、前記速度判定手段(104)により前記移動速度が前記基準速度以上であると判定された場合の移動方向である、ことを特徴とする。例えばタッチパネルがタッチし続ける操作をする場合には、ゲームのプレイ中にタッチ位置が自然にずれてしまうことがあるが、1−6)の態様によれば、タッチ位置の移動速度が基準速度以上である場合の移動方向が基準になるので、ユーザがはっきりとした意図を持って本発明に係る操作をした場合に、第2のゲーム処理を実行することができる。このため、上記のように、ゲームプレイ中にタッチ位置が自然にずれてしまった場合であったとしても、本発明に係る操作が行われたと判定されてしまうことを防止することができる。
1−7)本発明の一態様では、前記第1のゲーム処理は、前記方向取得手段(101)により取得された前記移動方向に基づいて、仮想世界において移動物体を移動させる処理であり、前記第2のゲーム処理は、前記第1のゲーム処理とは異なる移動のさせ方で、前記仮想世界において前記移動物体を移動させる処理である、ことを特徴とする。1−7)の態様によれば、移動対象の移動のさせ方を指示可能な種々の操作を提供することができる。
1−8)本発明の一態様では、前記第1のゲーム処理及び前記第2のゲーム処理の各々は、仮想世界において操作対象が移動物体を移動させる処理であり、前記ゲーム処理実行手段(105)は、前記操作対象が前記移動物体を保持している間、又は、前記操作対象が前記移動物体に触れる前において取得された移動方向に基づいて、前記第1のゲーム処理を実行し、前記ゲーム処理実行手段(105)は、前記操作対象が前記移動物体を保持している間、又は、前記操作対象が前記移動物体に触れる前の期間内において取得された移動方向に基づいて、前記第2のゲーム処理を実行する、ことを特徴とする。1−8)の態様によれば、操作対象が移動物体を移動させるための操作の種類を増やすことができる。また、操作対象が移動物体に触れる前の期間内において取得された移動方向に基づいてゲーム処理を実行可能とする場合には、操作対象が移動物体に触れる前に、予め操作をさせることができるので、操作対象が移動物体に触れてすぐに移動させることができる。
[4−2.実施形態2に係る発明]
2−1)本発明の一態様に係るゲーム制御装置(10)は、タッチパネルに対するユーザの操作に応じてオブジェクトを移動させるゲームにおいて、前記オブジェクトを表示領域に表示させる表示制御手段(106)と、前記表示領域のうちの第1の領域を、操作領域として設定する操作領域設定手段(107)と、前記操作領域に対する前記ユーザの操作に基づいて、前記オブジェクトを移動させる移動制御手段(108)と、を含み、前記操作領域設定手段(107)は、所定のゲーム状況であって、前記オブジェクトの全部若しくは一部が前記第1の領域外に含まれることになる状況、又は、前記オブジェクトが前記第1の領域の端部に配置されることになる状況では、前記操作領域を、前記オブジェクトが領域の端部に配置されることのない第2の領域に変更する、ことを特徴とする。
2−10)本発明の一態様に係るゲームシステム(S)は、タッチパネルに対するユーザの操作に応じてオブジェクトを移動させるゲームにおいて、前記オブジェクトを表示領域に表示させる表示制御手段(106)と、前記表示領域のうちの第1の領域を、操作領域として設定する操作領域設定手段(107)と、前記操作領域に対する前記ユーザの操作に基づいて、前記オブジェクトを移動させる移動制御手段(108)と、を含み、前記操作領域設定手段(107)は、所定のゲーム状況であって、前記オブジェクトの全部若しくは一部が前記第1の領域外に含まれることになる状況、又は、前記オブジェクトが前記第1の領域の端部に配置されることになる状況では、前記操作領域を、前記オブジェクトが領域の端部に配置されることのない第2の領域に変更する、を含むことを特徴とする。
2−11)本発明の一態様に係るプログラムは、2−1)〜2−9)の何れかに記載のゲーム制御装置(10)又は2−10)に記載のゲームシステム(S)としてコンピュータを機能させる。
2−12)本発明の一態様に係る情報記憶媒体は、2−11)のプログラムを記録したコンピュータで読み取り可能な情報記憶媒体である。
オブジェクトの全部又は一部が第1の領域外に含まれることになる状況、又は、オブジェクトが第1の領域の端部に配置されることになる状況は、ユーザの誤操作が起こりやすい状況であり、2−1)又は2−10)〜2−12)に係る発明によれば、このような状況において、操作領域が、オブジェクトが端部に配置されることのない領域に変更され、オブジェクトに触れる直感的な操作が可能になるので、誤操作を防止することができる。また、特に上記のような状況ではない場合(即ち、ユーザがオブジェクトに触れたいと思わない場合)には、オブジェクトの表示位置付近を他の操作のために割り当てることができるので、タッチパネル上の領域を有効活用することもできる。
2−2)本発明の一態様では、前記表示領域には、前記オブジェクトが配置された仮想世界を仮想視点から見た様子が表示され、前記表示制御手段(106)は、前記ゲームの実行中に、前記仮想視点の位置及び視線方向を制御し、前記所定のゲーム状況は、前記仮想視点と前記オブジェクトとの位置関係が所定の関係となる状況である、ことを特徴とする。2−2)の態様によれば、仮想視点とオブジェクトとが特定の位置関係となり、ユーザがオブジェクトに触りたくなるような状況における誤操作を防止することができる。
2−3)本発明の一態様では、前記所定のゲーム状況は、前記ゲームの実行中に、前記オブジェクトが停止する状況である、ことを特徴とする。2−3)の態様によれば、オブジェクトが停止してユーザがじっくりと狙いを定める場合には、ユーザがオブジェクトに触りたくなるため、ユーザの誤操作をより効果的に防止することができる。
2−4)本発明の一態様では、前記操作は、前記操作領域をタッチした後にタッチ位置を移動させる操作であり、前記移動制御手段(108)は、前記タッチ位置が移動中に前記操作領域の外に移動したとしても、前記操作に基づいて前記オブジェクトを移動させる、ことを特徴とする。2−4)の態様によれば、タッチ位置が操作領域の外に移動したとしても、オブジェクトを移動させる処理が実行されるので、タッチ位置が他の操作領域に侵入したときに処理が変わってしまうことを防止することができる。
2−5)本発明の一態様では、前記操作領域設定手段(107)は、前記ゲームが前記所定のゲーム状況になった場合に、前記操作領域を、少なくとも前記第1の領域を含む前記第2の領域に拡張する、ことを特徴とする。2−5)の態様によれば、ユーザが表示されているオブジェクトに直接触れたくなるような特定の状況になった場合に、元々の操作領域が拡張し、元々の操作領域に対して操作することもできるので、ユーザの好みに応じた操作を提供することができる。
2−6)本発明の一態様では、前記表示領域は、横幅が縦幅よりも長く、前記操作領域設定手段(107)は、複数の操作領域を設定可能であり、前記第1の領域及び前記第2の領域は、他の操作領域よりも右側にある領域である、ことを特徴とする。2−6)の態様によれば、物理的なゲームコントローラでは、例えばオブジェクトを蹴って移動させるために右側のボタンを利用することが多いが、タッチパネルでも、右側にある操作領域への操作でオブジェクトを移動させることで、ユーザが使い慣れた自然な操作性を提供することができる。
2−7)本発明の一態様では、前記移動制御手段(108)は、前記第1の領域が前記操作領域として設定されている場合は、前記第1の領域に対する第1の操作に基づいて前記オブジェクトを移動させ、前記第2の領域が前記操作領域として設定されている場合は、前記第2の領域に対する第2の操作に基づいて前記オブジェクトを移動させる、ことを特徴とする。2−7)の態様によれば、設定される操作領域に応じて操作体系を変えることができ、状況に応じた多種多様な操作をユーザに提供することができる。
2−8)本発明の一態様では、前記移動制御手段(108)は、前記第1の領域が前記操作領域として設定されている場合と、前記第2の領域が前記操作領域として設定されている場合と、で前記オブジェクトの移動のさせ方を異ならせる、ことを特徴とする。2−8)の態様によれば、ゲームの状況に応じた移動のさせ方でオブジェクトを移動させることができる。
2−9)本発明の一態様では、前記ゲームは、複数のオブジェクトが移動するゲームであり、前記移動制御手段(108)は、前記第1の領域が前記操作領域として設定されている場合と、前記第2の領域が前記操作領域として設定されている場合と、で前記複数のオブジェクトの中で制御対象となるオブジェクトを異ならせる、ことを特徴とする。2−9)の態様によれば、ゲームの状況に応じたオブジェクトを移動させることができる。