【文献】
"ワールドサッカーウイニングイレブン7",「電撃PlayStation Vol.251」,日本,メディアワークス,2003年10月10日,第9巻,第26号,p.126-127,(特に、p.126「利き足について」の項)
【文献】
近藤誠、外4名,"特集:スマートフォン・プログラミング事始め iPhoneのプログラミング",「ヒューマンインタフェース学会誌 Vol.12 No.3」,日本,特定非営利活動法人ヒューマンインタフェース学会,2010年 8月25日,第12巻,第3号,p.175-182,(特に、p.180「6.2.4 蹴り上げ動作、飛び上がり動作」の項)
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0019】
[1.ゲーム装置のハードウェア構成]
以下、本発明の実施形態の例について図面に基づき詳細に説明する。本発明の実施形態に係るゲーム装置は、例えば、携帯ゲーム機、携帯電話機(スマートフォン)、又は携帯情報端末等によって実現される。
【0020】
図1は、ゲーム装置の外観の一例を示す図である。また、
図2は、ゲーム装置のハードウェア構成の一例を示す図である。
図1及び
図2に示すように、ゲーム装置10は、制御部11、記憶部12、通信部13、操作部14、タッチパネル15、及び表示部16を含む。
【0021】
制御部11は、例えば、一又は複数のマイクロプロセッサを含む。制御部11は、記憶部12に記憶されたオペレーティングシステム又はその他のプログラムに従って、処理を実行する。
【0022】
記憶部12は、メインメモリと不揮発性メモリとを含む。不揮発性メモリには、制御部11によって実行されるプログラムが記憶される。例えば、このプログラムは、インターネット等の通信ネットワークを介してサーバ装置からダウンロードされて不揮発性メモリに格納される。または、このプログラムは、メモリカード等のコンピュータ読み取り可能な情報記憶媒体から複写されて不揮発性メモリに格納される。メインメモリには、不揮発性メモリから読み出されるプログラムや、制御部11が処理を実行する場合に必要なデータが書き込まれる。
【0023】
通信部13は、データ通信を行うためのものである。例えば、通信部13は、制御部11からの指示に従ってデータ通信を実行する。
【0024】
操作部14は、例えばボタン、スティック(レバー)、又はキーボード等を含み、ユーザが操作を行うために用いられる。
【0025】
タッチパネル15は、一般的なタッチパネルであり、ユーザによって接触された位置を検出する。タッチパネル15は、ユーザによって接触された複数の位置を検出できるようになっている。タッチパネル15としては、例えば、静電容量方式のタッチパネルが用いられる。静電容量方式のタッチパネルでは、タッチパネルの表面がユーザによって接触された場合に生じる電荷の変化に基づいて、ユーザによって接触された位置が検出される。ユーザによって接触された位置は、例えば、
図1に示すような、タッチパネル15の左上頂点を原点Oとし、かつ、右方向及び下方向をそれぞれXs軸正方向及びYs軸正方向とするXs−Ys座標系の座標値によって表される。
【0026】
タッチパネル15は、ユーザによって接触された位置に応じた情報をオペレーティングシステムに供給する。オペレーティングシステムは、タッチパネル15から供給される情報に基づいて、ユーザによって接触されている位置を取得する。例えば、ユーザによって複数の位置が接触されている場合、オペレーティングシステムはそれら複数の接触位置を取得し、それら複数の接触位置を示す接触位置データを記憶部12に記憶させる。オペレーティングシステムによって記憶部12に記憶された接触位置データはオペレーティングシステム以外のプログラムによって参照される。
【0027】
なお、タッチパネル15は、後述の表示部16の上に重ねて設けられる。このため、ユーザはタッチパネル15の表面を触ることによって、表示部16に表示される画面内の位置を指定することができる。なお、ユーザは自らの指(手)をタッチパネル15の表面に接触させるようにしてもよいし、ユーザが指(手)以外の部位をタッチパネル15の表面に接触させるようにしてもよい。他にも例えば、ユーザが把持する物体(タッチペン等)をタッチパネル15の表面に接触させるようにしてもよい。
【0028】
表示部16は、例えば、液晶パネルである。表示部16は、制御部11からの指示に従って画面を表示する。
【0029】
なお、ゲーム装置10は光ディスクドライブ又はメモリカードスロットを含むようにしてもよい。光ディスクドライブは、光ディスク(情報記憶媒体)に記録されたプログラムやデータを読み出すためのものである。メモリカードスロットは、メモリカード(情報記憶媒体)に記憶されたプログラムやデータを読み出すためのものである。プログラムやデータは、光ディスク又はメモリカードを介してゲーム装置10に供給され、記憶部12(不揮発性メモリ)に記憶されるようにしてもよい。また、情報記憶媒体に記憶されているものとして説明するプログラムやデータは、通信部13を介してネットワークから取得されるようにしてもよい。
【0030】
[2.ゲーム装置において実行されるゲーム]
ゲーム装置10は、記憶部12から読み出したゲームプログラムを実行することによって、接触対象に触れるゲームを実行する。本実施形態では、ユーザが操作するキャラクタが右足又は左足でボールを蹴ってボールを移動させるサッカーゲームが実行される場合について説明する。サッカーゲームが開始されると、例えば、ゲーム空間が記憶部12に構築される。
【0031】
図3は、ゲーム空間の一例を示す図である。ゲーム空間20は、互いに直交する三つの座標軸(Xw軸、Yw軸、及びZw軸)が設定された仮想的な3次元空間である。ゲーム空間20に配置される各オブジェクトの位置は、例えば、ワールド座標系(Xw−Yw−Zw座標系)の3次元座標で特定される。
【0032】
図3に示すように、ゲーム空間20には、サッカーフィールドを表すオブジェクトであるフィールド22が配置される。フィールド22上では、ユーザが操作するチーム(以降、「ユーザチーム」という。)と、対戦相手(コンピュータ又は他のユーザ)が操作するチーム(以降、「対戦相手チーム」という。)と、の間でサッカーの試合が行われる。
【0033】
フィールド22上には、サッカーのゴールを表すオブジェクトであるゴール24と、ユーザチームに所属するサッカー選手を表すオブジェクトであるキャラクタ26と、対戦相手チームに所属するサッカー選手を表すオブジェクトであるキャラクタ28と、サッカーボール(移動物体)を表すオブジェクトであるボール30と、が配置される。なお、
図3では省略されているが、フィールド22上には、ユーザチームに所属する11体のキャラクタ26と、対戦相手チームに所属する11体のキャラクタ28と、が配置される。
【0034】
ユーザチームに所属するキャラクタ26の何れかは、ユーザの操作に基づいて動作し、他のキャラクタ26及び対戦相手チームに所属するキャラクタ28は、所与の行動アルゴリズムのもとで自律的に動作する。
【0035】
また、ゲーム空間20には、仮想カメラ32(視点)が設定される。ゲーム空間20を仮想カメラ32から見た様子を表すゲーム画面が、表示部16に表示される。ゲーム画面は、ゲーム空間20に配置された各オブジェクトの頂点座標が、所定の座標変換演算を用いてワールド座標系からスクリーン座標系に座標変換されることによって生成される。
【0036】
図4は、ゲーム画面の一例を示す図である。
図4に示すように、ゲーム画面40には、仮想カメラ32の視野内に含まれるオブジェクトが表示される。なお、この画面例では、仮想カメラ32は、ボール30から所定距離の位置に、ボール30から対戦相手チームに関連付けられたゴール24に向けた方向が視線方向となるように配置される。
図4に示す状態では、ユーザは、タッチパネル15をタッチすることによって、ゲーム画面40に表示されたボール30に対する各種操作を行う。例えば、ユーザがゲーム画面40に表示されたボール30をタップすると、キャラクタ26がボール30をドリブルしたりパスをしたりする。
【0037】
本実施形態においては、ユーザが2本の指を使ってタッチパネル15上で所与の操作を行うことによって、キャラクタ26に右足でボール30を蹴るか左足でボール30を蹴るかを指定することができる。なお、ここでは、フリーキック(試合中にファウル等が発生した場合に相手の妨害を受けない形でのキック)の場面を例に挙げて、ユーザの操作方法を説明する。
【0038】
図5及び
図6は、キャラクタ26がボール30を蹴る場合のユーザの操作方法を説明するための図である。
図5に示すように、ユーザが、人差指F1でボール30の左側をタッチ(タッチ位置を位置P1とする)してから、そのまま、中指F2でボール30をタッチ(タッチ位置を位置P2とする)すると、キャラクタ26が右足でボール30をキックする。即ち、
図5に示す場合、人差指F1は、キャラクタ26がボール30を蹴る際の軸足(ここでは、左足)の役割を果たし、中指F2は、キャラクタ26がボール30を蹴る際の蹴り足(ここでは、右足)の役割を果たす。
【0039】
一方、
図6に示すように、ユーザが、中指F2でボール30の右側をタッチしてから、そのまま、人差指F1でボール30をタッチすると、キャラクタ26が左足でボール30をキックする。この場合、中指F2は、キャラクタ26がボール30を蹴る際の軸足(ここでは、右足)の役割を果たし、人差指F1は、キャラクタ26がボール30を蹴る際の蹴り足(ここでは、左足)の役割を果たす。
【0040】
このように、本実施形態のゲーム装置10は、ゲーム画面40に表示されたボール30をユーザがタッチした場合の2本の指の位置関係に応じて、キャラクタ26がボール30を蹴る方の足を指定することができる構成になっている。以降、この構成について、詳細に説明する。
【0041】
[3.ゲーム装置において実現される機能]
図7は、ゲーム装置10の機能ブロック図である。
図7に示すように、ゲーム装置10は、ゲームデータ記憶部50と、ゲーム実行部52と、表示制御部54と、位置取得部56と、位置判定部58と、決定部60と、接触制御部62と、を含む。ゲーム装置10は、記憶部12に記憶されたゲームプログラムを実行することによって、
図7に示す各機能を実現する。ゲームデータ記憶部50は、例えば、記憶部12を主として実現され、他の各機能は、制御部11を主として実現される。
【0042】
[3−1.ゲームデータ記憶部]
ゲームデータ記憶部50は、例えば、サッカーゲームを実現するために必要なデータを記憶する。例えば、ゲームデータ記憶部50は、実行中のゲームの状況を示すゲーム状況データを記憶する。ゲーム状況データは、ゲーム空間20の現在の様子を示すデータ(各オブジェクトの位置や頂点座標を示すデータや仮想カメラ32の位置及び視線方向を示すデータ等)を含む。
【0043】
また、ゲームデータ記憶部50は、キャラクタ26がボール30に触れた場合のボール30の挙動に関するアルゴリズムを記憶する。例えば、ゲームデータ記憶部50は、接触制御部62がボール30の軌道を算出するためのアルゴリズムを記憶する。本実施形態においては、このアルゴリズムは、接触(又は打撃)に関わる複数の要素(ここでは、接触強度、接触方向、接触位置の3要素とする。)に関する数値を代入するための数式を含む。
【0044】
なお、制御部11は、ゲームデータ記憶部50に記憶されたデータを取得又は更新する手段として機能する。また、ゲームデータ記憶部50に記憶されるデータは、上記の例に限られない。他にも例えば、ゲームデータ記憶部50は、ゲーム画面40に表示される各種画像に関するデータや、キャラクタ26(28)の動作を示すモーションデータ等を記憶するようにしてもよい。
【0045】
[3−2.ゲーム実行部]
ゲーム実行部52は、接触対象(例えば、ボール30)に触れるゲームを実行する。接触対象は、ゲーム空間20に配置されたオブジェクトのうち、ユーザの操作に応じて接触される所与のオブジェクトである。ここでは、キャラクタ26が蹴るボール30が、接触対象に相当する。ここでは、ゲーム実行部52は、接触対象(例えば、ボール30)に触れて移動させるゲームを実行する。キャラクタ26がボール30に触れると、所与のアルゴリズムに基づいて、ゲーム空間20内でボール30が移動する。
【0046】
[3−3.表示制御部]
表示制御部54は、接触対象を表す画像(例えば、ボール30)をゲーム画面40に表示させる。本実施形態では、表示制御部54は、ゲーム空間20を仮想カメラ32から見た様子を示す画像をゲーム画面40に表示させることによって、ボール30をゲーム画面40に表示させる。表示制御部54は、仮想カメラ32の視野内に含まれるオブジェクトを座標変換することによって、ゲーム画面40の表示制御を行う。
【0047】
なお、表示制御部54による表示制御方法は、上記の例に限られない。他にも例えば、ボールを表す画像の画像データをゲームデータ記憶部50に記憶させておき、表示制御部54は、当該画像データに基づいて、ボールを表す画像をゲーム画面40の所定位置に表示させるようにしてもよい。
【0048】
[3−4.位置取得部]
位置取得部56は、ユーザにより指定される、ゲーム画面40上の複数の位置(例えば、第1の位置と第2の位置)を取得する。位置取得部56は、一又は複数のポインティングデバイス(例えば、タッチパネル15)からの信号を受信することによって、ゲーム画面40上の複数の位置を取得する。本実施形態においては、位置取得部56は、ユーザが第1の指を用いて指し示すゲーム画面40上の第1の位置と、ユーザが第2の指を用いて指し示すゲーム画面40上の第2の位置と、に関する情報(例えば、Xs−Ys座標系の二次元座標)を、タッチパネル15から取得する。
【0049】
[3−5.位置判定部]
位置判定部58は、接触対象を表す画像(例えば、ボール30)に対応するゲーム画面40の領域(以降、対象領域という。)内に第1の位置が含まれるか否かを判定する。対象領域は、ゲーム画面40の表示領域のうちボール30の表示位置に基づいて定まる領域であり、例えば、ボール30内に設定された所定領域である。本実施形態では、ゲーム画面40の表示領域のうちボール30に含まれる画素により構成される領域が、対象領域に相当する場合を説明する。
【0050】
[3−6.決定部]
決定部60は、ユーザにより指定された第1の位置と、ユーザにより指定された第2の位置と、に基づいて(例えば、第1の位置と第2の位置との位置関係に基づいて)、ゲームにおいて接触対象(例えば、ボール30)を右手又は右足で触れるか左手又は左足で触れるかを決定する。
【0051】
本実施形態においては、決定部60は、第1の位置が対象領域(例えば、ボール30の表示領域)内に含まれると判定された場合、第1の位置又は対象領域と第2の位置との位置関係に基づいて、ゲームにおいて接触対象(例えば、ボール30)を右手又は右足で触れるか左手又は左足で触れるかを決定する。
【0052】
図8は、決定部60の処理内容を説明するための図である。
図8に示す例では、ユーザが人差指F1で指し示す位置P1がボール30内にあるので、位置P1が第1の位置に相当し、ユーザが中指F2で指し示す位置P2が第2の位置に相当する。
【0053】
例えば、決定部60は、位置P1を通るYs軸方向の直線Lでゲーム画面40を分割し、位置P2が直線Lの右側に属するか左側に属するかを判定する。例えば、決定部60は、位置P2が直線Lの右側に属する場合、キャラクタ26に左足でボール30を蹴らせると決定する。また例えば、決定部60は、位置P2が直線Lの左側に属する場合、キャラクタ26に右足でボール30を蹴らせると決定する。
【0054】
なお、
図8においては、第1の位置と第2の位置との位置関係でボール30を蹴る方の足が決定される場合を説明したが、ボール30と第2の位置との位置関係でボール30を蹴る方の足が決定されるようにしてもよい。この場合、対象領域内の代表点(例えば、ボール30の中心点)を通るYs軸方向の直線の右側に第2の位置(
図8の例では、位置P2)が属するか左側に属するかで、キャラクタ26がボール30を蹴る方の足が決定される。例えば、第2の位置がこの直線の右側に属する場合、キャラクタ26に左足でボール30を蹴らせると決定され、第2の位置がこの直線の左側に属する場合、キャラクタ26に右足でボール30を蹴らせると決定される。
【0055】
また、本実施形態においては、ユーザが、キャラクタ26の軸足に対応する第2の位置を指定してから、キャラクタ26の蹴り足に対応する第1の位置を指定する場合を説明するが、キャラクタ26の蹴り足に対応する第1の位置を指定してから、キャラクタ26の軸足に対応する第2の位置を指定するようにしてもよい。即ち、ユーザは、ボール30の内部に触れてから、そのまま、ボール30の周囲の位置に触れるようにしてもよい。この場合も、上記説明した決定部60と同様の処理が実行され、第1の位置又はボール30と、第2の位置と、の位置関係に基づいて、キャラクタ26がボール30を蹴る方の足が決定されることになる。
【0056】
[3−7.接触制御部]
接触制御部62は、決定部60の決定結果に基づいて、接触対象(例えば、ボール30)の所定の処理を実行する。所定の処理とは、ゲームにおいてボール30が触れられた場合の処理であり、ここでは、キャラクタ26とボール30との当たり判定処理及びボール30の移動制御処理である。
【0057】
ここでは、接触制御部62は、キャラクタ26が右足でボール30に触れると決定された場合、キャラクタ26に右足でボール30に触れさせ、キャラクタ26が左足でボール30に触れると決定された場合、キャラクタ26に左足でボール30に触れさせる。例えば、接触制御部62は、決定部60の決定結果に基づいて、ボール30に触れる場合の各要素(ここでは、接触強度と接触方向と接触位置)の値を決定する。接触制御部62は、当該決定された各要素の値を所与のアルゴリズムに代入することによって、ゲームにおけるボール30の接触処理を実行する。
【0058】
接触制御部62は、決定部60の決定結果に基づいて、接触対象(例えば、ボール30)を移動させる場合の軌道を制御することになる。接触制御部62は、キャラクタ26が右足でボール30に触れると決定された場合、キャラクタ26が右足でボール30に触れた場合の軌道でボール30を移動させ、キャラクタ26に左足でボール30に触れると決定された場合、キャラクタ26が左足でボール30を触れた場合の軌道でボール30を移動させる。
【0059】
例えば、接触制御部62は、キャラクタ26が右足でボール30に触れる場合、第1の接触強度と、第1の接触方向と、第1の接触位置と、に基づいて、キャラクタ26にボール30を触れさせて移動させる。また例えば、接触制御部62は、キャラクタ26が左足でボール30に触れる場合、第2の接触強度と、第2の接触方向と、第2の接触位置と、に基づいて、キャラクタ26にボール30を触れさせて移動させる。
【0060】
接触強度は、接触対象(例えば、ボール30)と接触する物体(例えば、キャラクタ26の足)が加える力の大きさであり、ここでは、キャラクタ26がボール26を蹴る場合の打撃強度(キック力)である。接触方向は、接触対象(例えば、ボール30)と接触する物体(例えば、キャラクタ26の足)の移動方向(力の方向)であり、ここでは、キャラクタ26がボール26を蹴る場合の打撃方向である。接触位置は、接触対象(例えば、ボール30)と接触する物体が触れる位置であり、ここでは、キャラクタ26がボール30を蹴る場合の打撃位置である。
【0061】
これらの打撃強度と打撃方向と打撃位置は、予め定められた値が用いられるようにしてもよいし、所与の数式による演算処理の結果で生成される値が用いられるようにしてもよい。また、第1の打撃強度と第1の打撃方向と第1の打撃位置とは、それぞれ第2の打撃強度と第2の打撃方向と第2の打撃位置と同じであってもよいし、異なっていてもよい。
【0062】
例えば、第1の打撃強度は、第2の打撃強度に比べて強くてもよいし弱くてもよい。また例えば、第1の打撃方向は、第2の打撃方向に比べて仮想カメラ32から見て左方向を向くようにしてもよい。また例えば、第1の打撃位置は、第2の打撃位置に比べて仮想カメラ32から見て右側にあるようにしてもよい。
【0063】
[4.ゲーム装置において実行される処理]
図9は、ゲーム装置10が実行する処理を示すフロー図である。制御部11は、ゲームにおいてフリーキックの場面が到来すると、記憶部12に記憶されたプログラムに従って、
図9に示す処理を実行する。
【0064】
まず、
図9に示すように、制御部11は、仮想カメラ32をボール30から所定距離の場所に配置する(S1)。S1においては、制御部11は、仮想カメラ32の視野内にボール30が含まれるように、仮想カメラ32の位置と視線方向とを決定する。
【0065】
制御部11は、ゲーム空間20を仮想カメラ32から見た様子を示す画像をゲーム画面40に表示させることによって、ボール30をゲーム画面40に表示させる(S2)。S2においては、制御部11は、仮想カメラ32の視野内に含まれるボール30等の各オブジェクトを座標変換することによって、ボール30等をゲーム画面40に表示させる。
【0066】
制御部11は、タッチパネル15からの検出信号に基づいて、ユーザが指し示すゲーム画面40上の位置(以降、タッチ位置をいう。)を取得する(S3)。本実施形態においては、複数の接触位置を検出可能なタッチパネル15が用いられるので、S3においては、制御部11は、ゲーム画面40上の複数のタッチ位置を検出することになる。
【0067】
制御部11は、S3で取得したタッチ位置の何れかが、ゲーム画面40内の対象領域の外側(例えば、ボール30の外側)にあるか否かを判定する(S4)。S4においては、制御部11は、ゲーム画面40に表示されたボール30の外に、S3で取得した二次元座標(Xs−Ys座標系で表される座標)が含まれるか否かを判定する。
【0068】
S3で取得したタッチ位置の何れかが対象領域の外側にあると判定された場合(S4;Y)、制御部11は、S3で取得したタッチ位置の何れかが、対象領域の内側(例えば、ボール30の内側)にあるか否かを判定する(S5)。S5においては、制御部11は、ゲーム画面40に表示されたボール30内に、S3で取得した二次元座標(Xs−Ys座標系で表される座標)が含まれるか否かを判定する。
【0069】
S3で取得したタッチ位置の何れかが対象領域の内側にあると判定された場合(S5;Y)、制御部11は、対象領域の内側にあるタッチ位置(第1の位置)と、対象領域の外側にあるタッチ位置(第2の位置)と、の位置関係に基づいて、キャラクタ26に右足でボール30を蹴らせるか左足でボール30を蹴らせるかを判定する(S6)。
【0070】
キャラクタ26に右足でボール30を蹴らせると判定された場合(S6;右足)、制御部11は、ゲーム空間20においてキャラクタ26に右足でボール30を蹴る動作をさせる(S7)。S7においては、制御部11は、キャラクタ26が右足でボール30を蹴るモーションを再生させる。
【0071】
制御部11は、第1の打撃強度と、第1の打撃方向と、第1の打撃位置と、に基づいてボール30の軌道を決定して移動させる(S8)。S8においては、制御部11は、キャラクタ26の右足とボール30との当たり判定を実行し、キャラクタ26の右足がボール30に接触すると、第1の打撃強度と、第1の打撃方向と、第1の打撃位置と、を所与の数式に代入して算出される軌道でボール30を移動させる。
【0072】
一方、キャラクタ26に左足でボール30を蹴らせると判定された場合(S6;左足)、制御部11は、ゲーム空間20においてキャラクタ26に左足でボール30を蹴る動作をさせる(S9)。S9においては、制御部11は、キャラクタ26が左足でボール30を蹴るモーションを再生させる。
【0073】
制御部11は、第2の打撃強度と、第2の打撃方向と、第2の打撃位置と、に基づいてボール30の軌道を決定して移動させる(S10)。S10においては、制御部11は、キャラクタ26の左足とボール30との当たり判定を実行し、キャラクタ26の左足がボール30に接触すると、第2の打撃強度と、第2の打撃方向と、第2の打撃位置と、を所与の数式に代入して得られる軌道でボール30を移動させる。
【0074】
以上説明したゲーム装置10によれば、ボール30内のタッチ位置とボール30の周囲のタッチ位置とに基づいて、キャラクタ26に右足でボール30を蹴らせるか左足でボール30を蹴らせるかを決定することができる。例えば、ユーザがゲーム画面40においてボール30をタッチした場合の指の位置関係に応じて、キャラクタ26がボール30を蹴る方の足を決定することができる。
【0075】
また、実際にボールを蹴る場合の軸足と蹴り足との関係をゲーム画面40上で表現することによって、ユーザは、キャラクタ26がボール30を蹴る方の足を指定することができるので、直感的な操作を行うことができる。また、キャラクタ26がボール30を蹴った足に応じて、ボール30の軌道を決定することができる。
【0076】
[5.変形例]
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
【0077】
図10は、変形例の機能ブロック図である。
図10に示すように、変形例のゲーム装置10は、実施形態の機能に加えて、変更部64と、位置変化判定部66と、を含む。これら各機能は、制御部11が記憶部12に記憶されるプログラムを実行することにより実現される。また、これら各機能は、制御部11を主として実現される。
【0078】
(1)例えば、ユーザのタッチ位置に応じて、ボール30の打撃強度と打撃方向と打撃位置との少なくとも一つを変化させることによって、キャラクタ26がボール30を蹴った場合のボール30の軌道を変化させるようにしてもよい。
【0079】
変形例(1)の接触制御部62は、決定部60の決定結果と、決定部60の決定処理が実行された場合の第1の位置と第2の位置との少なくとも一方と、に基づいて、接触対象(例えば、ボール30)を移動させる場合の軌道を決定する。決定部60の決定処理が実行された場合とは、ボール30内に第1の位置が含まれると判定された時点若しくは第1の位置が所与の位置変化をしたと判定された時点(変形例(3)参照)、又は、これらの時点の所定時間前若しくは後の時点である。
【0080】
接触制御部62は、決定部60の決定処理が実行された場合の第1の位置と第2の位置との少なくとも一方に基づいて、接触対象に触れる場合の接触強度(例えば、打撃強度)と接触方向(例えば、打撃方向)と接触位置(例えば、打撃位置)との少なくとも一つを決定する。接触制御部62は、決定部60の決定結果と、上記決定された打撃強度と打撃方向と打撃位置との少なくとも一つと、に基づいて、接触対象(例えば、ボール30)の所定の処理を実行する。
【0081】
例えば、接触制御部62は、対象領域と第1の位置との位置関係に基づいて、ボール30の軌道を決定する。
図11は、第1の位置に基づいてボール30の軌道が決定される場合の決定方法を説明するための図である。
図11に示すように、例えば、対象領域が複数の小領域42A〜42E(これらをまとめて単に小領域42ともいう。)に分割される。接触制御部62は、これら分割された複数の小領域42のうち第1の位置を含む小領域42に基づいて、ボール30の軌道を決定する。
【0082】
例えば、各小領域42と、打撃強度と打撃方向と打撃位置との少なくとも一つと、の関連付けがゲームデータ記憶部50に記憶されている。当該関連付けは、数式形式であってもよいし、テーブル形式であってもよい。以降説明する関連付けについても同様である。接触制御部62は、第1の位置が含まれる小領域42に関連付けられた打撃強度と打撃方向と打撃位置との少なくとも一つに基づいて、キャラクタ26にボール30を触れさせることになる。
【0083】
例えば、第1の位置がボール30の中心に近いほど、打撃強度が強く設定される。即ち、ユーザがタッチした第1の位置がボール30の中心に近いほど(キャラクタ26がボール30を蹴る位置が中心に近いほど)、キャラクタ26がボール30を強く蹴ることになる。また例えば、第1の位置がボール30の中心に近いほど、打撃方向とボール30の正面方向(又は、仮想カメラ32の視線方向)との角度が小さくなるように、打撃方向が設定される。即ち、ユーザがタッチした第1の位置がボール30の中心に近いほど(キャラクタ26がボール30を蹴る位置が中心に近いほど)、キャラクタ26がボール30を蹴る方向が正面方向(仮想カメラ32の視線方向)に近くなり、ボール30の飛び出し方向が正面方向になる。また例えば、第1の位置が打撃位置に設定される。即ち、ユーザがタッチした第1の位置に対応するボール30の表面の位置が、キャラクタ26がボール30を蹴る場合の打撃位置となる。
【0084】
また例えば、接触制御部62は、対象領域又は第1の位置と、第2の位置と、の位置関係に基づいて、ボール30の軌道を決定する。
図12は、第2の位置に基づいてボール30の軌道を決定する場合の決定方法を説明するための図である。
図12に示すように、例えば、ゲーム画面40の表示領域のうち対象領域以外の領域が複数の小領域44A〜44D(これらをまとめて単に小領域44ともいう。)に分割される。接触制御部62は、これら分割された複数の小領域44のうち第2の位置を含む小領域44に基づいて、ボール30の軌道を決定する。
【0085】
この場合も、例えば、各小領域44と、打撃強度と打撃方向と打撃位置との少なくとも一つと、の関連付けがゲームデータ記憶部50に記憶されている。接触制御部62は、第2の位置が含まれる小領域44に関連付けられた打撃強度と打撃方向と打撃位置との少なくとも一つに基づいて、キャラクタ26にボール30を触れさせることになる。
【0086】
例えば、第2の位置がボール30又は第1の位置に近いほど、打撃強度が強く設定される。即ち、第2の位置がボール30又は第1の位置に近いほど(キャラクタ26の軸足がボール30に近いほど)、キャラクタ26がボール30を強く蹴ることになる。また例えば、第2の位置がボール30又は第1の位置に近いほど、打撃方向とボール30の正面方向(又は、仮想カメラ32の視線方向)との角度が小さくなるように、打撃方向が設定される。即ち、第2の位置がボール30又は第1の位置に近いほど(キャラクタ26の軸足がボール30に近いほど)、キャラクタ26がボール30を蹴る方向が正面方向(仮想カメラ32の視線方向)に近くなり、ボール30の飛び出し方向が正面方向になる。また例えば、第2の位置から所定距離の位置が打撃位置に設定される。即ち、ユーザがタッチした第2の位置から所定距離の位置に対応するボール30の表面の位置が、キャラクタ26がボール30を蹴る場合の打撃位置となる。
【0087】
また、接触制御部62は、第1の位置を含む小領域42と、第2の位置を含む小領域44と、の組み合わせに基づいて、ボール30の軌道を決定するようにしてもよい。この場合、小領域42及び小領域44の組み合わせと、打撃強度と打撃方向と打撃位置との少なくとも一つと、の関連付けがゲームデータ記憶部50に記憶されている。接触制御部62は、第1の位置を含む小領域42と第2の位置を含む小領域44との組み合わせに関連付けられた打撃強度と打撃方向と打撃位置との少なくとも一つに基づいて、キャラクタ26にボール30を触れさせることになる。
【0088】
変形例(1)によれば、ユーザによるタッチ位置に応じて、ボール30の軌道を決定することができる。
【0089】
なお、上記においては、第1の位置及び/又は第2の位置を含む小領域に基づいてボール30の軌道が制御される場合を説明したが、対象領域内の代表点又は第1の位置と第2の位置とを結ぶベクトルの向きと大きさとの少なくとも一方に基づいて、ボール30の軌道が制御されるようにしてもよい。この場合も、例えば、上記ベクトルと、打撃強度と打撃方向と打撃位置との少なくとも一つと、の関連付けがゲームデータ記憶部50に記憶されており、当該関連付けに基づいてボール30を触れさせることになる。
【0090】
(2)また例えば、第2の位置に応じて、ボール30に対応する領域が変化するようにしてもよい。
【0091】
変形例(2)のゲーム装置10は、変更部64を含む。変更部64は、第2の位置に基づいて対象領域の位置と広さとの少なくとも一方を変更する。
【0092】
図13は、第2の位置と、対象領域の位置と広さとの少なくとも一方と、の関連付けを示す図である。当該関連付けは、ゲームデータ記憶部50に記憶されている。例えば、変更部64は、第2の位置に関連付けられた対象領域の位置に、第2の位置に関連付けられた広さの対象領域を設定する。
【0093】
例えば、第2の位置がボール30から離れるほど対象領域がボール30の端部に近づくように、かつ、狭くなるように設定されるようにしてもよい。また例えば、対象領域をボール30の中心点を通る直線で切断した場合に、第2の位置がある方向にある領域が広くなるように対象領域の位置と広さが設定されるようにしてもよい。
【0094】
変形例(2)の位置判定部58は、上記変更された対象領域内に第1の位置が含まれるか否かを判定することになる。位置判定部58は、変更部64により位置と広さとの少なくとも一方が変更された対象領域内に第1の位置があるか否かを判定する。
【0095】
例えば、変更部64により位置又は広さが変更された対象領域内に第1の位置が含まれると判定された場合、接触制御部62は、実施形態の制御方法と同様に、打撃強度と打撃方向と打撃位置とに基づいてボール30を移動させる。この場合、ユーザがタッチした位置に基づいてボール30が移動するので、キャラクタ26はユーザの指示通りに正確にボール30を蹴ることになる。
【0096】
一方、変更部64により位置又は広さが変更された対象領域内に第1の位置が含まれないと判定された場合(例えば、第1の位置がボール30内部にはあるが対象領域内にない場合)、接触制御部62は、ボール30の移動を制限する。「ボールの移動を制限する」とは、打撃強度と打撃方向と打撃位置とに基づいてボール30を移動させることを抑止することであり、例えば、打撃強度と打撃方向と打撃位置とに基づいて定まる軌道を変更することである。即ち、ユーザがタッチした位置が、変更部64により位置と広さが変更された対象領域内になければ、ボール30がユーザの意図しない方向に移動するミスキックとなるようにしてもよい。このようにすることによって、キャラクタ26の軸足の位置(即ち、ユーザがタッチした第2の位置)に応じてミスキックが発生する様子を表現することができる。
【0097】
変形例(2)によれば、第2の位置に応じて、ボール30に対応する領域が変化する。
【0098】
(3)また例えば、上記実施形態においては、ボール30をタッチするとキャラクタ26がボール30を蹴る場合を説明したが、ユーザが指をスライドさせることによって、キャラクタ26にボール30を蹴らせるようにしてもよい。
【0099】
変形例(3)のゲーム装置10は、位置変化判定部66を含む。位置変化判定部66は、第1の位置が所与の位置変化をしたか否かを判定する。所与の位置変化とは、例えば、タッチ位置の移動距離が基準距離以上となること、タッチ位置の変化方向が所与の変化方向であること、タッチ位置の速度が基準速度以上となること、の少なくとも一つである。
【0100】
決定部60は、第1の位置が所与の位置変化をしたと判定された場合の第2の位置に基づいて、ゲームにおいて接触対象(例えば、ボール30)を右手又は右足で触れるか左手又は左足で触れるかを決定する。
【0101】
図14は、変形例(3)における蹴り足の決定方法を説明するための図である。
図14に示す例では、位置P1が、第1の位置に相当し、位置P2が第2の位置に相当する。決定部60は、位置P1が所与の位置変化をした場合の軌道Cに対して位置P2が右側にあるか左側にあるかに基づいて、キャラクタ26が右足でボール30を蹴るか左足でボール30を蹴るかを決定する。例えば、位置P2が軌道Cに対して左側にある場合、キャラクタが右足でボール30を蹴ると決定され、位置P2が軌道Cに対して右側にある場合、キャラクタが左足でボール30を蹴ると決定される。
【0102】
この場合、位置P1の軌道Cに基づいて、ボール30の軌道が異なるようにしてもよい。例えば、位置P1の軌道Cと、打撃強度と打撃方向と打撃位置との少なくとも一つと、が関連付けられてゲームデータ記憶部50に記憶されている。接触制御部62は、位置P1の軌道Cに関連付けられた打撃強度と打撃方向と打撃位置との少なくとも一つに基づいて、ボール30を移動させるようにしてもよい。例えば、軌道Cと対象領域とが交わる長さが長いほど、打撃強度が強く設定される。また例えば、軌道Cのベクトルに基づいて、打撃方向が決定される。また例えば、軌道Cと対象領域とが交わる線分上の点に基づいて、打撃位置が決定される。
【0103】
また例えば、位置P1の軌道Cと位置P2との位置関係に応じてボール30の軌道が異なるようにしてもよい。位置P1の軌道Cと位置P2との位置関係と、打撃強度と打撃方向と打撃位置との少なくとも一つと、が関連付けられてゲームデータ記憶部50に記憶されているようにしてもよい。接触制御部62は、位置P1の軌道Cと位置P2との位置関係に関連付けられた打撃強度と打撃方向と打撃位置との少なくとも一つに基づいて、ボール30を移動させるようにしてもよい。例えば、軌道Cと位置P2が近いほど、打撃強度が強く設定される。また例えば、軌道Cのベクトルを位置P2に応じて補正したベクトルに基づいて、打撃方向が決定される。また例えば、軌道Cと対象領域とが交わる線分上の点を位置P2の方向に所定距離ずらした位置に基づいて、打撃位置が決定される。
【0104】
変形例(3)によれば、ユーザが指をスライドさせることによって、キャラクタ26にボール30を蹴らせることができる。
【0105】
(4)また例えば、上記においては、ユーザが第1の指でタッチパネル15上の第1の位置を指定したまま、第2の指でタッチパネル15上の第2の位置を指定する場合を説明したが、ユーザが第1の位置を指定して第1の指をタッチパネル15から離した後に、第2の位置が指定されるようにしてもよい。同様に、ユーザが第2の位置を指定して第2の指をタッチパネル15から離した後に、第1の位置が指定されるようにしてもよい。
【0106】
また例えば、接触制御部62の処理内容は、上記実施形態及び変形例に限られない。例えば、キャラクタ26が右足でボール30に触れた場合のアルゴリズムと、キャラクタ26が左足でボール30に触れた場合のアルゴリズムと、を用意しておき、決定部60の決定結果に基づいて、どちらのアルゴリズムに基づいてボール30を移動させるかが決定されるようにしてもよい。また例えば、キャラクタ26がボール30を右足で触れる場合と左足で触れる場合とで、ボール30の軌道を決定するための数式の係数を変化させるようにしてもよい。
【0107】
また例えば、実施形態においては、打撃強度と打撃方向と打撃位置とに基づいてボール30が移動する場合を説明したが、ボール30の接触に関わる各要素の値が数式に代入されることによって接触処理が実行されるようにすればよく、上記の3つの要素以外の要素が考慮されるようにしてもよい。他にも例えば、ボール30の回転方向を示す数値やボール30の飛び出し角度を示す数値等が数式に代入されることによって、ボール30の軌道が算出されるようにしてもよい。
【0108】
また例えば、ゲーム空間20に配置されたキャラクタ26がボール30を移動させる場合を説明したが、ゲーム空間20にはキャラクタ26が配置されていなくてもよい。即ち、必ずしもキャラクタ26とボール30とがゲーム空間20において接触する必要はなく、ユーザのタッチ操作に応じて、所与のアルゴリズムに基づいたボール30の接触処理が実行されるようにすればよい。
【0109】
また例えば、上記においては、ユーザがゲーム画面40上の位置を指し示すための手段としてタッチパネル15が用いられる場合を説明したが、当該手段としては、公知の種々のポインティングデバイスが適用可能である。例えば、赤外線センサが内蔵されたコントローラにより、ゲーム画面40上の位置が指し示されるようにしてもよい。
【0110】
また例えば、ゲーム空間20を、
図2に示すような3次元空間として説明したが、本発明に係るゲーム空間は、キャラクタ26(28)やボール30の位置等が、2つの座標要素で管理されるような2次元ゲーム空間であってもよい。
【0111】
また例えば、本発明は、ゲームシステムにも適用することが可能である。
図15は、ゲームシステムの全体構成を示す図である。
図15に示すように、ゲームシステム70は、ゲーム装置10とゲームサーバ72とを含んでいる。ゲームサーバ72は、例えば、制御部等を備えたサーバコンピュータである。ゲームシステム70では、ゲーム装置10とゲームサーバ72とが通信ネットワーク74を介してデータを授受することによって、ゲームが実行される。
【0112】
ゲームシステム70では、ゲームサーバ72に備えられた記憶部、又はゲームサーバ72からアクセス可能な装置に備えられた記憶部にゲーム状況データ等が記憶される。例えば、ゲームシステム70では、ゲーム装置10において行われた操作に関するデータがゲーム装置10からゲームサーバ72に送信される。ゲームサーバ72では、ゲーム装置10から送信されたデータに基づいて、ユーザが指し示すゲーム画面40上の位置を特定する。ゲーム装置10では、ゲームサーバ72から送信されたゲーム状況データに基づいて、ゲーム画面40が表示される。
【0113】
ゲームシステム70では、機能ブロックの各々について、ゲーム装置10とゲームサーバ72との何れかで実現される。即ち、機能ブロック図で示した各機能が、ゲーム装置10とゲームサーバ72とで分担されるようにしてもよい。
【0114】
例えば、ゲームデータ記憶部50がゲームサーバ72において実現されるようにしてもよい。この場合、ゲームデータ記憶部50の記憶内容がゲームサーバ72からゲーム装置10に送信されるようにすればよい。
【0115】
また例えば、ゲーム実行部52がゲームサーバ72において実現されるようにしてもよい。この場合、ゲームデータ記憶部50の記憶内容がゲーム装置10からゲームサーバ72に送信されるようにすればよい。
【0116】
また例えば、表示制御部54がゲームサーバ72において実現されるようにしてもよい。この場合、ゲームサーバ72からゲーム装置10に画像データが送信されることによって、ゲーム画面40の表示制御が行われる。
【0117】
また、位置取得部56、位置判定部58、決定部60、及び接触制御部62がゲームサーバ72において実現されるようにしてもよい。この場合、ゲームサーバ72は、ユーザが触れたタッチパネル15上の位置に関する情報をゲーム装置10から取得し、キャラクタ26がボール30を右足で触れるか左足で触れるかを決定することになる。
【0118】
なお、ゲームサーバ72が、本発明に係るゲーム装置に相当するようにしてもよい。この場合、ゲームサーバ72により、上記説明した各機能が実現され、ゲーム装置10は、ユーザの操作をゲームサーバ72に送信したり、ゲームサーバ72から受信した画像データに基づいてゲーム画面40を表示させたりすることになる。
【0119】
また、機能ブロック図に示した機能のうち、必須の構成は、表示制御部54、位置取得部56、位置判定部58、決定部60、及び接触制御部62であり、他の機能については省略してもよい。
【0120】
また例えば、本発明は、サッカーゲーム以外のゲームを実行するゲーム装置にも適用することができる。本発明は、接触対象に触れるゲームに適用できる。例えば、ボクシングゲームを実行するゲーム装置にも、本発明を適用することができる。この場合には、接触対象は、対戦相手のキャラクタとなる。ゲーム画面上の位置に基づいて、キャラクタを右手で触れるか左手で触れるかが決定されることになる。この場合も実施形態や上記変形例と同様の処理が実行される。例えば、実施形態及び上記変形例の「右足」を「右手」と読み替え、「左足」を「左手」と読み替えることが可能である。他にも例えば、アクションゲーム、ロールプレイングゲーム等を実行するゲーム装置にも適用することができる。