以下、本発明の実施形態の例について図面に基づき詳細に説明する。本発明に係る移動制御装置(コンピュータ)は、例えば、携帯端末(スマートフォン等の携帯電話機、及び、タブレット型コンピュータ等の携帯情報端末を含む)、ゲーム装置、及びパーソナルコンピュータ等により実現される。本実施形態では、移動制御装置が、携帯端末を用いて実現される場合を説明する。
[1.携帯端末のハードウェア構成]
図1は、携帯端末の外観の一例を示す図である。また、図2は、携帯端末のハードウェア構成の一例を示す図である。図1及び図2に示すように、携帯端末10は、制御部11、記憶部12、通信部13、操作部14、タッチパネル15、及び表示部16を含む。
制御部11は、例えば、一又は複数のマイクロプロセッサを含む。制御部11は、記憶部12に記憶されたオペレーティングシステム又はその他のプログラムに従って、処理を実行する。
記憶部12は、メインメモリと不揮発性メモリとを含む。不揮発性メモリには、制御部11によって実行されるプログラムが記憶される。例えば、このプログラムは、インターネット等の通信ネットワークを介してサーバ装置からダウンロードされて不揮発性メモリに格納される。または、このプログラムは、メモリカード等のコンピュータ読み取り可能な情報記憶媒体から複写されて不揮発性メモリに格納される。メインメモリには、不揮発性メモリから読み出されるプログラムや、制御部11が処理を実行する場合に必要なデータが書き込まれる。
通信部13は、データ通信を行うためのものである。例えば、通信部13は、制御部11からの指示に従ってデータ通信を実行する。
操作部14は、例えば、ボタン、スティック(レバー)、又はキーボード等を含み、ユーザが操作を行うために用いられる。
タッチパネル15は、一般的なタッチパネルであり、ユーザによって接触された複数の位置を検出する。タッチパネル15としては、例えば、静電容量方式のタッチパネルが用いられる。静電容量方式のタッチパネルでは、タッチパネルの表面がユーザによって接触された場合に生じる電荷の変化に基づいて、ユーザによって接触された位置が検出される。ユーザによって接触された位置は、例えば、図1に示すような、タッチパネル15の左上頂点を原点Oとし、かつ、右方向及び下方向をそれぞれXs軸正方向及びYs軸正方向とするXs−Ys座標系の座標値によって表される。オペレーティングシステムは、タッチパネル15から供給される情報に基づいて、ユーザによって接触されている位置を取得する。
なお、タッチパネル15は、仮想空間の様子を表示する表示部16に重畳して設けられる。このため、ユーザはタッチパネル15の表面を触ることによって、表示部16に表示される画面内の位置を指定することができる。なお、ユーザは自らの指(手)をタッチパネル15の表面に接触させるようにしてもよいし、ユーザが指(手)以外の部位をタッチパネル15の表面に接触させるようにしてもよい。他にも例えば、ユーザが把持する物体(タッチペン等)をタッチパネル15の表面に接触させるようにしてもよい。
表示部16は、例えば、液晶パネルである。表示部16は、制御部11からの指示に従って画面を表示する。
なお、携帯端末10は光ディスクドライブ又はメモリカードスロットを含むようにしてもよい。光ディスクドライブは、光ディスク(情報記憶媒体)に記録されたプログラムやデータを読み出すためのものである。メモリカードスロットは、メモリカード(情報記憶媒体)に記憶されたプログラムやデータを読み出すためのものである。プログラムやデータは、光ディスク又はメモリカードを介して携帯端末10に供給され、記憶部12(不揮発性メモリ)に記憶されるようにしてもよい。また、情報記憶媒体に記憶されているものとして説明するプログラムやデータは、通信部13を介してネットワークから取得されるようにしてもよい。
[2.携帯端末において実行されるゲーム]
携帯端末10は、記憶部12から読み出したプログラムを実行することによって、仮想空間において移動対象(例えば、ボール)を移動させるゲームを実行する。本実施形態では、ゲーム空間において、キャラクタがボールを移動させてサッカーの試合を行うサッカーゲームが実行される場合について説明する。サッカーゲームが開始されると、例えば、ゲーム空間が記憶部12に構築される。
図3は、ゲーム空間の一例を示す図である。ゲーム空間20は、互いに直交する三つの座標軸(Xw軸、Yw軸、及びZw軸)が設定された仮想的な3次元空間である。ゲーム空間20に配置される各オブジェクトの位置は、例えば、ワールド座標系(Xw−Yw−Zw座標系)の3次元座標で特定される。
図3に示すように、ゲーム空間20には、サッカーフィールドを表すオブジェクトであるフィールド22が配置される。フィールド22上では、ユーザが操作するチーム(以降、「ユーザチーム」という。)と、対戦相手(コンピュータ又は他のユーザ)が操作するチーム(以降、「対戦相手チーム」という。)と、の間でサッカーの試合が行われる。
フィールド22上には、サッカーのゴールを表すオブジェクトであるゴール24が配置され、2本のゴールライン26及び2本のタッチライン28が表されている。ゴールライン26及びタッチライン28によって囲まれたピッチ30及び当該ピッチ30の周囲(ゴールライン26又はタッチライン28に接するピッチ30外の所定領域)において、試合が行われる。
更に、フィールド22上には、ユーザチームに所属するサッカー選手を表すオブジェクトであるキャラクタ32と、対戦相手チームに所属するサッカー選手を表すオブジェクトであるキャラクタ34と、サッカーボールを表すオブジェクトであるボール36(移動対象)と、が配置される。なお、図3では省略されているが、フィールド22上には、ユーザチームに所属する11体のキャラクタ32と、対戦相手チームに所属する11体のキャラクタ34と、が配置される。
ユーザチームに所属するキャラクタ32の何れかは、ユーザの操作に基づいて動作する操作対象となる。ユーザの操作対象は、ユーザが指示した方向に移動したり、ユーザが指示した動作を行ったりする。ユーザの操作対象以外のキャラクタ32及び対戦相手チームに所属するキャラクタ34は、所与の行動アルゴリズムのもとで自律的に動作する。
また、キャラクタ32(34)とボール36とが近づくと、所定条件のもとで、キャラクタ32(34)とボール36とが関連付けられる。以降、キャラクタ32(34)とボール36とが関連付けられた状態を、「キャラクタ32(34)がボール36を保持する」と記載する。ボール36を保持するキャラクタ32(34)は、ドリブル動作、パス動作、又はシュート動作をすることにより、ボール36を移動させることができる。例えば、ユーザの操作対象がボール36を保持している場合、ユーザの操作対象がドリブルすると、ボール36はユーザの操作対象とともに移動することになる。
また、ゲーム空間20には、仮想カメラ38(視点)が設定される。ゲーム空間20を仮想カメラ38から見た様子を表すゲーム画面が、表示部16に表示される。ゲーム画面は、ゲーム空間20に配置された各オブジェクトの頂点座標が、所定の座標変換演算を用いてワールド座標系からスクリーン座標系に座標変換されることによって生成される。
図4は、ゲーム画面の一例を示す図である。図4に示すように、ゲーム画面40には、仮想カメラ38の視野に含まれるオブジェクトが表示される。仮想カメラ38の位置及び視線方向は、ユーザの操作対象の位置及び代表方向(例えば、移動方向又は体の向き)に基づいて設定される。ここでは、仮想カメラ38の位置及び視線方向と、ユーザの操作対象の位置及び代表方向と、が略一致するものとする。なお、略一致とは、これらのずれ量が基準量以内となることをいう。ゲーム画面40には、ユーザの操作対象の足が届く範囲を示すライン42やユーザの操作対象の立ち位置を表す立ち位置画像44が表示されるようにしてもよい。
本実施形態では、ユーザの操作対象がボール36を蹴る場面で、ユーザが指でタッチパネル15に触れたまま指を移動させて軌跡を描いた後に、タッチパネル15から指を離すと、その軌跡と、軌跡の終点の位置と、ボール36の現在位置と、の3つの要素に基づいて、ボール36が移動するときの軌道が制御される。
図5は、ユーザがタッチパネル15に触れたまま指をスライドさせたときの軌跡を示す図である。図6は、ゲーム空間20内でボール36が移動するときの軌道を示す図である。ここでは、ユーザがタッチパネル15に触れたまま指をスライドさせたときの軌跡に基づく軌道でボール36がゲーム空間20内を移動し、終点の位置に基づく位置にボール36が到達する。更に、ここでは、ボール36の速さが、終点の位置に基づいて決まるようになっている。例えば、終点の位置がゴール24の内部であれば、ユーザの操作対象がシュート動作を行いボール36が比較的速くなり、終点の位置がピッチ30上であれば、ユーザの操作対象がパス動作を行いボール36が比較的遅くなる。
図5に示すゲーム画面40は、ユーザが見ている画面である。始点の位置P1は、ユーザから見てボール36よりも左側の位置(Xs座標が小さい位置)であり、終点の位置Q1は、対戦相手チームのゴール24内部の中央付近の位置である。これら始点の位置P1と終点の位置Q1とを結ぶ軌跡S1は、図5に示すように、ユーザから見て、左に膨らんでおり(右回りの弧を描いており)、かつ、曲がり具合が比較的小さい。なお、曲がり具合とは、カーブの大きさ又は角度であり、例えば、曲率で示される。この場合、終点の位置Q1がゴール24内部なので、ユーザの操作対象はシュート動作を行い、図6に示すように、ボール36は、軌道T1でゴール24の中央付近の位置E1に向かうように、比較的速い速度で移動する。軌道T1は、ユーザの操作対象又は仮想カメラ38から見て、比較的小さい曲がり具合で、左に膨らんでいる。なお、このときのボール36の回転(自転)方向は、ボール36の中心(又は回転軸)から見て右回りとなり、ボール36の回転数は、比較的少ない。
また、始点の位置P2は、始点の位置P1よりも左側(Xs座標が小さい位置)であり、終点の位置Q2は、対戦相手チームのゴール24内部の左端部付近の位置である。これら始点の位置P2と終点の位置Q2とを結ぶ軌跡S2は、ユーザから見て、左に膨らんでおり(右回りの弧を描いており)、かつ、曲がり具合が比較的大きい。この場合、終点の位置Q2がゴール24内部なので、ユーザの操作対象はシュート動作を行い、図6に示すように、ボール36は、軌道T2でゴール24の左端(ユーザの操作対象又は仮想カメラ38から見てゴール24の左端)付近の位置E2に向かうように、比較的速い速度で移動する。軌道T2は、ユーザの操作対象又は仮想カメラ38から見て、比較的大きい曲がり具合で左に膨らんでいる。なお、このときのボール36の回転(自転)方向は、ボール36の中心(又は回転軸)から見て右回りとなり、ボール36の回転数は、比較的大きい。
また、始点の位置P3は、ユーザから見てボール36よりも右側(Xs座標が大きい位置)であり、終点の位置Q3は、対戦相手チームのゴール24内部の中央付近の位置である。これら始点の位置P3と終点の位置Q3とを結ぶ軌跡S3は、ユーザから見て、右に膨らんでおり(左回りの弧を描いており)、かつ、曲がり具合が比較的小さい。この場合、終点の位置Q3がゴール24内部なので、ユーザの操作対象はシュート動作を行い、図6に示すように、ボール36は、軌道T3でゴール24の中央付近の位置E3に向かうように、比較的速い速度で移動する。軌道T3は、ユーザの操作対象又は仮想カメラ38から見て、比較的小さい曲がり具合で右に膨らんでいる。なお、このときのボール36の回転(自転)方向は、ボール36の中心(又は回転軸)から見て左回りとなり、ボール36の回転数は、比較的少ない。
また、始点の位置P4は、始点の位置P3よりも右側(Xs座標が大きい位置)であり、終点の位置Q4は、対戦相手チームのゴール24内部の右端部付近の位置である。これら始点の位置P4と終点の位置Q4とを結ぶ軌跡S4であり、ユーザから見て、右に膨らんでおり(左回りの弧を描いており)、かつ、曲がり具合が比較的大きい。この場合、終点の位置Q4がゴール24内部なので、ユーザの操作対象はシュート動作を行い、図6に示すように、ボール36は、軌道T4でゴール24の右端付近の位置E4に向かうように、比較的速い速度で移動する。軌道T4は、ユーザの操作対象又は仮想カメラ38から見て、比較的大きい曲がり具合で右に膨らんでいる。なお、このときのボール36の回転(自転)方向は、ボール36の中心(又は回転軸)から見て左回りとなり、ボール36の回転数は、比較的大きい。
上記のように、本実施形態では、終点の位置に基づいてボール36の到達位置が決まり、終点の位置がゴール24の内部であればユーザの操作対象はシュート動作を行うので、図5に示す各軌跡の場合には、図6に示すようにボール36がゴール24の内部に向かって比較的速い速度で移動する。一方、終点の位置がピッチ30上であれば、ユーザの操作対象はパス動作を行い、ボール36が、終点の位置に対応するピッチ30上の位置に向かって比較的遅い速度で移動する。
図7は、ユーザがタッチパネル15上で指を直線的にスライドさせた場合の軌跡を示す図である。図8は、ボール36が移動する様子を示す図である。ここでは、図7に示す軌跡S5〜S6のときに、それぞれ、図8に示す軌道T5〜T6でボール36がゲーム空間20内を移動する。
始点の位置P5は、ユーザから見てボール36よりも左側の位置(Xs座標が小さい位置)であり、終点の位置Q5は、ユーザから見て始点の位置P5に対して左上(Xs座標及びYs座標が小さい位置)のピッチ30上の位置である。これら始点の位置P5と終点の位置Q5とを結ぶ左向きの略直線の軌跡S5は、終点の位置Q5がピッチ30上なので、ユーザの操作対象はパス動作を行い、図8に示すように、ボール36は、ユーザの操作対象又は仮想カメラ38から見て左向きに、シュート動作に比べて遅い速度でピッチ30上を転がりながら、終点の位置Q5に対応するピッチ30上の位置E5に向けて移動する。
始点の位置P6は、ユーザから見てボール36よりも右側の位置(Xs座標が大きい位置)であり、終点の位置Q6は、ユーザから見て始点の位置P6に対して右上(Xs座標が大きく及びYs座標が小さい位置)のピッチ30上の位置である。即ち、これら始点の位置P6と終点の位置Q6とを結ぶ右向きの略直線の軌跡S6は、終点の位置Q6がピッチ30上なので、ユーザの操作対象はパス動作を行い、図8に示すように、ボール36は、ユーザの操作対象又は仮想カメラ38から見て右向きに、シュート動作に比べて遅い速度でピッチ30上を転がりながら、終点の位置Q6に対応するピッチ30上の位置E6に向けて移動する。
上記のように、携帯端末10は、タッチパネル15上の始点の位置及び終点の位置を結ぶ軌跡と、軌跡の終点の位置と、ボール36の現在位置と、の3つの要素に基づいて、ボール36が移動するときの軌道を制御する構成になっている。以降、この構成について、詳細に説明する。
[3.携帯端末において実現される機能]
図9は、携帯端末10の機能ブロック図である。図9に示すように、携帯端末10は、ゲームデータ記憶部50、取得部52、位置変化速度取得部54、及び移動制御部56を含む。携帯端末10は、記憶部12に記憶されたプログラムを実行することによって、図9に示す各機能を実現する。ゲームデータ記憶部50は、例えば、記憶部12を主として実現され、他の各機能は、制御部11を主として実現される。
[3−1.ゲームデータ記憶部]
ゲームデータ記憶部50は、実行中のゲームの状況を示すゲーム状況データを記憶する。ゲーム状況データには、ゲーム空間20の現在の様子を示すデータが格納される。例えば、ゲーム状況データには、ユーザの操作対象を識別する情報、キャラクタ32(34)の状態(例えば、位置、移動方向、及び移動速度)、ボール36の状態(例えば、位置、移動方向、移動速度、回転方向、及び回転数)、仮想カメラ38の状態(例えば、位置及び視線方向等)、及び試合の状況(例えば、残り時間や得点等)が格納される。なお、ボール36の回転とは、ボール36の自転のことである。
また、ゲームデータ記憶部50は、取得部52が検出した位置を時系列的に格納する。図10は、取得部52が検出した位置を時系列的に格納される様子を示す図である。図10に示すように、座標データと、当該座標データが取得されたタイミングと、が関連付けられてゲームデータ記憶部50に記憶される。
なお、ゲームデータ記憶部50に記憶されるデータは、上記の例に限られない。例えば、ゲームデータ記憶部50は、各キャラクタ32(34)に関するパラメータ(例えば、能力値)を記憶するようにしてもよい。他にも例えば、ゲームデータ記憶部50は、後述する図11〜図14の各関連付けのデータを記憶するようにしてもよい。ゲームデータ記憶部50は、ゲーム空間20においてボール36を移動させるために必要なデータを記憶すればよい。
[3−2.取得部]
取得部52は、ゲーム画面40上において指示された始点の位置、終点の位置、及び始点の位置と終点の位置を結ぶ軌跡を取得する。取得部52は、タッチパネル15からの検出信号に基づいて、ユーザにより接触されたタッチパネル15上の接触位置を示す情報(例えば、座標データ)を取得する。取得部52は、座標データを時系列でゲームデータ記憶部50に記録する。
始点の位置とは、位置の検出を開始した位置(例えば、タッチパネル15への接触の開始位置)、又は、位置の検出を開始した時点(例えば、タッチパネル15への接触の開始タイミング)の所定時間後の位置である。即ち、始点の位置は、軌跡の始まりを示す位置であればよく、必ずしもタッチパネル15への接触を開始した位置に限られない。例えば、タッチパネル15の感度によっては、ユーザがタッチパネル15に接触しても、その後しばらくたってから始点の位置が検出されることがあるので、ここでの始点の位置とは、ユーザが指を触れた位置に限られない。
終点の位置とは、位置の検出を終了した位置(例えば、タッチパネル15への接触の終了位置)、又は、位置の検出を終了した時点(例えば、タッチパネル15への接触の終了タイミング)の所定時間前の位置である。即ち、終点の位置は、軌跡の終わりを示す位置であればよく、必ずしもタッチパネル15への接触が終了した位置に限られない。例えば、タッチパネル15の感度によっては、ユーザがタッチパネル15に接触中であっても、終点の位置が検出されることがあるので、ここでの終点の位置とは、ユーザが指を離した位置に限られない。
取得部52が取得する始点の位置と終点の位置を結ぶ軌跡は、言い換えると始点の位置と終点の位置との間の軌跡である。取得部52は、ユーザが位置を指示するための操作(例えば、タッチパネル15に触れる行為)が終了する前に、その位置が変化した場合の軌跡を取得するともいえる。取得部52は、座標データの時系列的な変化に基づいて軌跡を特定する。例えば、取得部52は、始点の位置を取得してから、終点の位置を取得するまでの間に取得された位置の時系列的な変化を特定しているともいえる。
[3−3.位置変化速度取得部]
位置変化速度取得部54は、取得部52により取得された始点の位置と終点の位置との間における位置変化速度を取得する。位置変化速度とは、一定期間における位置変化量のことであり、例えば、単位時間当たりの位置変化量である。位置変化速度は、始点の位置が検出された時点から、終点の位置が検出された時点までの全期間の平均値であってもよいし、当該全期間内の一部の期間における位置変化速度であってもよい。
[3−4.移動制御部]
移動制御部56は、取得部52により取得された軌跡及び終点の位置と、ゲーム空間20内のボール36の位置と、に基づいて、ボール36が移動するときの軌道を制御する。本実施形態では、移動制御部56は、取得部52により取得された終点の位置に対応するゲーム空間20内の位置を特定する。移動制御部56は、終点の位置が示すスクリーン座標を所与の座標変換処理のもとワールド座標に変換することで、ゲーム空間20内の位置を特定する。別の言い方をすれば、移動制御部56は、終点の位置に表示されているゲーム空間20内のオブジェクトの位置を特定する。そして、移動制御部56は、当該特定された位置に向けてボール36が移動するように、移動対象が移動するときの軌道を制御する。即ち、移動制御部56は、終点の位置に基づいて、ゲーム空間20におけるボール36の到達地点を決定している。
図11は、ボール36の軌道を決定するための情報を示す図である。図11に示すように、ここでは、タッチパネル15上の接触位置の軌跡に関する軌跡条件と、ボール36の軌道を示す軌道情報と、が関連付けられている。この関連付けは、数式形式のデータであってもよいし、テーブル形式のデータであってもよく、ゲームデータ記憶部50に記憶されている。なお、この点は、後述する図12〜図14に示す関連付けも同様である。
軌跡条件は、ユーザが描いた軌跡の形状に関する条件であり、例えば、軌跡が曲がっている方向や軌跡の曲がり具合である。軌道情報は、ボール36の軌道の形状に関する情報であり、ボール36をどのようにゲーム空間20内を移動させるかを定義した情報であるともいえる。例えば、軌道情報は、ボール36の位置や移動方向の時系列的な変化を示す。
移動制御部56は、取得部52が取得した軌跡が満たす軌跡条件に関連付けられた軌道情報に基づいて、ボール36が移動するときの軌道を制御する。例えば、移動制御部56は、ボール36の現在位置から、軌道情報が示す形状で、終点の位置に対応するゲーム空間20内の位置に向けて移動するように、ボール36の軌道を制御する。
例えば、移動制御部56は、取得部52が取得した軌跡の曲がり具合に基づいて、ボール36が移動するときの軌道の曲がり具合を制御する。移動制御部56は、取得部52が取得した軌跡の曲がり具合が大きいほど、ボール36の軌道の曲がり具合が大きくなるようにする。別の言い方をすれば、移動制御部56は、取得部52が取得した軌跡の曲がり具合が小さいほど、ボール36の軌道の曲がり具合が小さくなるようにする。
また、移動制御部56は、取得部52により取得された終点の位置に対応するゲーム空間20内の位置を特定し、当該特定された位置に基づいて、ボール36が移動するときの移動速度を制御するようにしてもよい。図12は、終点の位置に対応するゲーム空間20内の位置に関する位置条件と、速度を示す速度情報と、の関連付けを示す図である。移動制御部56は、取得部52により取得された終点の位置に対応するゲーム空間20内の位置が満たす位置条件に関連付けられた速度情報に基づいて、ボール36の移動速度を制御する。ここでは、移動制御部56は、終点の位置に対応するゲーム空間20内の位置にあるオブジェクトの種類に応じて、ボール36の移動速度を変化させる。例えば、移動制御部56は、終点の位置にあるのがゴール24であれば、ピッチ30である場合よりも、ボール36を速く移動させる。
また、移動制御部56は、取得部52が取得した軌跡に基づいて、ボール36が移動するときの回転を制御するようにしてもよい。図13は、タッチパネル15上の接触位置の軌跡に関する軌跡条件と、ボール36の回転を示す回転情報と、の関連付けを示す図である。移動制御部56は、取得部52が取得した軌跡が満たす軌跡条件に関連付けられた回転情報に基づいて、ボール36の回転を制御する。例えば、移動制御部56は、取得部52が取得した軌跡の曲がり具合が大きいほど、ボール36の回転数を多くする。別の言い方をすれば、移動制御部56は、取得部52が取得した軌跡の曲がり具合が小さいほど、ボール36の回転数を少なくする。更に、移動制御部56は、取得部52が取得した軌跡が曲がっている方向に基づいて、ボール36の回転方向を決定する。例えば、移動制御部56は、取得部52が取得した軌跡が左側に膨らんでいれば(右回りであれば)、ボール36を右回りに回転させ、取得部52が取得した軌跡が右側に膨らんでいれば(左回りであれば)、ボール36を左回りに回転させる。
また、移動制御部56は、位置変化速度取得部54により取得された位置変化速度に基づいて、ボール36が移動するときの移動速度を制御するようにしてもよい。図14は、位置変化速度取得部54が取得した位置変化速度と、速度を示す速度情報と、の関連付けを示す図である。移動制御部56は、位置変化速度取得部54が取得した位置変化速度に関連付けられた速度情報に基づいて、ボール36の移動速度を制御する。例えば、移動制御部56は、位置変化速度取得部54が取得した位置変化速度が速いほど、ボール36を速く移動させる。別の言い方をすれば、移動制御部56は、位置変化速度取得部54が取得した位置変化速度が遅いほど、ボール36を遅く移動させる。
[4.携帯端末において実行される処理]
図15は、携帯端末10が実行する処理を示すフロー図である。制御部11は、記憶部12に記憶されたプログラムに従って、図15に示す処理を実行する。図15に示す処理が実行されることによって、図9に示す各機能が実現される。以降説明する処理は、例えば、ゲームの開始指示が行われた場合に実行される。
まず、図15に示すように、制御部11は、ゲームを開始し、ゲーム空間20を構築する(S1)。S1においては、制御部11は、ゲーム状況データを生成して記憶部12に記録する。例えば、制御部11は、各キャラクタ32(34)及びボール36を初期位置に配置する。また例えば、制御部11は、所与の条件のもとでユーザの操作対象を設定し、ユーザの操作対象及びボール36の位置に基づいて、仮想カメラ38の位置及び視線方向を設定する。なお、以降はゲームプログラムに定められたアルゴリズムのもと、ゲーム状況データが随時更新される。
制御部11は、仮想カメラ38からゲーム空間20を見た様子を示すゲーム画面40を表示させる(S2)。本実施形態では、制御部11は、ユーザの操作対象の位置や移動方向などに基づいて、仮想カメラ38の位置及び視線方向を設定する。
制御部11は、ユーザの操作対象がボール36を保持しているか否かを判定する(S3)。S3においては、制御部11は、ゲーム状況データを参照して、ユーザの操作対象にボール36が関連付けられているか否かを判定する。
ユーザの操作対象がボール36を保持していると判定された場合(S3;Y)、制御部11は、タッチパネル15への接触が開始されたか否かを判定する(S4)。S4においては、制御部11は、タッチパネル15から座標データの取得を開始したか否かを判定する。他にも、制御部11は、接触を開始したことを示す所定の合図をタッチパネル15から受信したか否かを判定するようにしてもよい。
タッチパネル15への接触が開始されたと判定された場合(S4;Y)、制御部11は、タッチパネル15から取得した座標データを、始点の位置として記憶部12に記憶する(S5)。なお、ここでは、接触が開始されて初めて取得された座標データを始点の位置とするが、所定時間だけ後の座標データを始点の位置とするようにしてもよい。
制御部11は、タッチパネル15への接触が解除されたか否かを判定する(S6)。S6においては、制御部11は、タッチパネル15から座標データの取得が停止したか否かを判定する。他にも、制御部11は、接触が解除されたことを示す所定の合図をタッチパネル15から受信したか否かを判定するようにしてもよい。
タッチパネル15への接触が解除されていないと判定された場合(S6;N)、制御部11は、タッチパネル15から取得した座標データを、記憶部12に記録する(S7)。S7においては、制御部11は、座標データを時系列的に記憶部12に記録する。
タッチパネル15への接触が解除されたと判定された場合(S6;Y)、制御部11は、直近の座標データを終点の位置として、始点の位置と終点の位置とを結ぶ軌跡を取得する(S8)。S8においては、制御部11は、始点の位置から終点の位置までの間の座標データの時系列的な変化を取得する。例えば、制御部11は、座標データが示す座標をつなぐことによって軌跡を取得する。
制御部11は、始点の位置と終点の位置との間の位置変化速度を取得する(S9)。S9においては、制御部11は、単位時間当たりの位置変化量を計算する。なお、先述したように、制御部11は、始点の位置が検出されてから終点の位置が検出されるまでの間の全期間の位置変化速度を計算してもよいし、この期間内のうちの所定期間における位置変化速度を計算してもよい。
制御部11は、S8で特定した軌跡及び終点の位置と、ボール36の現在位置と、S9で取得した位置変化速度と、に基づいて、ボール36の軌道、回転、及び移動速度を決定する(S10)。S10においては、制御部11は、S8で特定した軌跡に基づいて、ボール36の軌道の形状を決定する。そして、制御部11は、ボール36の現在位置から、終点の位置に対応するゲーム空間20内の位置に向けて(終点に対応するゲーム空間20内の位置に到達するように)、当該決定した形状の軌道で移動するように、ボール36の軌道を決定する。更に、制御部11は、S8で特定した軌跡に基づいて、ボール36の回転方向及び回転速度を決定する。制御部11は、終点の位置に対応するゲーム空間20内の位置及び位置変化速度に基づいて、ボール36の移動速度を決定する。
制御部11は、S10において決定した軌跡、回転、及び移動速度で、ボール36を移動させる(S11)。S11においては、制御部11は、S10で決定した軌跡、回転、及び移動速度に基づいて、ボール36を現在の位置から移動させる。
制御部11は、終了条件が満たされるか否かを判定する(S12)。終了条件は、本処理を終了するための条件であればよく、例えば、試合の終了時間が到来したか否か、又は、ユーザが所与の終了操作を行ったか否かである。終了条件が満たされると判定された場合(S12;Y)、本処理は終了する。一方、終了条件が満たされないと判定された場合(S12;N)、S2の処理に戻る。
以上説明した携帯端末10によれば、タッチパネル15上の始点の位置及び終点の位置を結ぶ軌跡と、軌跡の終点の位置と、ボール36の現在位置と、の3つの要素に基づいてボール36が移動するときの軌道を制御するので、ボール36が移動するときの軌道とボール36の到達位置を簡単な操作で指示できるようになる。また、ゲーム画面40に表示されたボール36を指で触って移動させたい方向を指示するような場合には、動いているボール36を触らなければならないため操作が難しくなり、更に、詳細な軌道も指示することができないが、携帯端末10によれば、始点の位置がどこであったとしても、その後の軌跡と終点の位置とボール36の位置に基づいて軌道を指示することができるので操作が簡単になる。別の言い方をすれば、移動制御部56は、始点の位置が異なっていたとしても、軌跡の形状及び終点の位置が同じであれば、同じ軌道でボール36を移動させるため、ユーザは、始点の位置を意識せずにボール36の軌道を指示することができるので、操作が簡単になる。
また、ユーザが指示した終点の位置に対応するゲーム空間20内の位置に向かうようにボール36を移動させることで、ボール36が向かう方向を終点の位置から予想させてその方向に移動させることができるので、より直感的な操作を可能とする。例えば、ユーザは、ゲーム画面40を見てゲームの状況を判断し、ボール36が向かうべき位置で指を離せばよいので、ボール36の軌道を予想しやすくなる。
また、ユーザが描いた軌跡の曲がり具合に応じて、ボール36が移動するときの曲がり具合を制御することができ、ボール36が移動するときの曲がり具合を予想させてその曲がり具合で移動させることができるので、ボール36を曲げたいときに直感的な操作を提供することができる。例えば、ユーザが描いた軌跡の曲がり具合と、ボール36の軌道の曲がり具合と、に関連性を持たせることで、ユーザは、ボール36の軌道の曲がり具合を予想しやすくなる。
また、ユーザが指示した終点の位置に対応するゲーム空間20内の位置に応じてボール36が移動するときの移動速度を制御することで、ゲーム空間20の状況に応じた移動速度の制御を可能とする。例えば、ユーザは、ゲーム画面40を見てゲームの状況を判断し、所望の移動速度が得られる位置で指を離せばよいので、ボール36の移動速度を予想しやすくなる。
また、ユーザがタッチパネル15上で描いた軌跡に応じてボール36の回転方向や回転速度を制御することで、ボール36に回転をかけたいときに、ボール36が移動するときの回転を予想させてその回転で移動させることができるので、直感的な操作を提供することができる。例えば、ユーザが描いた軌跡の曲がり具合と、ボール36の回転方向や回転速度と、に関連性を持たせることで、ユーザは、ボール36が移動するときの回転を予想しやすくなる。
また、ユーザがタッチパネル15上を接触した位置の変化速度に応じてボール36の移動速度が変化するので、ボール36の移動速度を指示したいときに、ボール36の移動速度を予想させてその速度で移動させることができるので、直感的な操作を提供することができる。例えば、ユーザは、所望の移動速度が得られる速度でタッチパネル15上で軌跡を描けばよいので、ボール36の移動速度を予想しやすくなる。
[5.変形例]
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
(1)例えば、ボール36を移動させるための操作以外にも、タッチパネル15上で種々の操作をさせることが考えられるので、これらの操作と区別するために、位置変化速度がある程度速い場合に、ボール36を移動させるようにしてもよい。この場合、ユーザがタッチパネル15を用いて行う操作と、その操作が行われた場合のユーザの操作対象の動作と、の関連付けがゲームデータ記憶部50に記憶されており、携帯端末10は、ユーザがタッチパネル15上で行った操作に関連付けられた動作を、ユーザの操作対象にさせることになる。例えば、ユーザがタッチパネル15上で描いた軌跡の形状と、その形状の軌跡が描かれた場合の動作の種類と、が関連付けられているようにしてもよい。
移動制御部56は、取得部52により取得された位置変化速度が基準速度以上である場合に、ボール36が移動するときの軌道を制御する。即ち、移動制御部は、取得部52により取得された位置変化速度が基準速度以上である場合には、ボール36の軌道を制御しない。携帯端末10は、位置変化速度が基準速度未満である場合は、ユーザの操作対象に、ユーザが行った操作に関連付けられた動作をさせる。なお、基準速度は、予め定められた速度であればよく、基準速度を示す数値は、ゲームデータ記憶部50に記憶されているものとする。基準速度は、固定値であってもよいし、ユーザの操作により変更されてもよい。
変形例(1)によれば、ユーザが、ある速度以上で軌跡を変化させたときにボール36の軌道の制御を行うので、他の操作と間違うことを防止することができる。例えば、比較的遅い速度で軌跡を描いた場合には、ユーザの操作対象に別の動作をさせることができ、タッチパネル15を使って指示することができる操作の種類を多くすることができる。
(2)また例えば、上記においては、ボール36が移動対象に相当する場合を説明したが、移動対象は、これに限られない。仮想空間において移動するオブジェクトが、移動対象であればよい。また例えば、ゲーム空間20を、図2に示すような3次元空間として説明したが、本発明に係るゲーム空間は、キャラクタ32(34)やボール36の位置等が、2つの座標要素で管理されるような2次元ゲーム空間であってもよい。
また例えば、本発明は、サッカーゲーム以外のゲームを実行する携帯端末にも適用することができる。仮想空間において操作対象を移動させるゲームであればよく、例えば、サッカーゲーム以外のスポーツゲームを実行する携帯端末にも、本発明を適用することができる。他にも例えば、アクションゲーム、ロールプレイングゲーム等を実行する携帯端末にも適用することができる。また、ゲームに限られず、現実世界での移動物体のシミュレーションにも、本発明に係る移動制御を適用することができる。
また例えば、本発明に係る移動制御装置は、携帯端末以外の種々のコンピュータにも適用することができる。例えば、ユーザが操作する端末にネットワーク接続されたサーバ装置が、移動制御装置に相当するようにしてもよい。この場合、ユーザが操作する端末では、主に、ユーザによる操作の検出及び画面の表示が行われ、サーバ装置において、各機能ブロックが実現される。
また例えば、ユーザが指を使って操作を行う場合を説明したが、タッチパネル15に触れるのは、指に限られない。ユーザは、ユーザ自身又はユーザが把持する物体を用いてタッチパネル15に触れるようにすればよい。他にも例えば、ユーザは、両手の指を使ってタッチパネル15に触れるようにしてもよい。更に、仮想空間内又は画面上の位置を指示するために、種々のポインティングデバイスを適用可能であり、入力手段はタッチパネル15に限られない。他にも、マウス等を入力手段として用いてもよい。
[6.発明のまとめ]
以上のような記載から、本発明は例えば以下のように把握される。
本発明に係る移動制御装置(10)は、仮想空間(例えば、ゲーム空間20)において移動対象(例えば、ボール36)を移動させる移動制御装置(10)であって、画面(例えば、ゲーム画面40)上において指示された始点の位置、終点の位置、及び前記始点の位置と前記終点の位置を結ぶ軌跡を取得する取得手段(52)と、前記取得手段(52)により取得された軌跡及び終点の位置と、前記仮想空間内(例えば、ゲーム空間20)の前記移動対象(例えば、ボール36)の位置と、に基づいて、前記移動対象(例えば、ボール36)が移動するときの軌道を制御する移動制御手段(56)と、を含むことを特徴とする。
また、本発明に係るプログラムは、仮想空間(例えば、ゲーム空間20)において移動対象(例えば、ボール36)を移動させるコンピュータを、画面(例えば、ゲーム画面40)上において指示された始点の位置、終点の位置、及び前記始点の位置と前記終点の位置を結ぶ軌跡を取得する取得手段(52)、前記取得手段(52)により取得された軌跡及び終点の位置と、前記仮想空間(例えば、ゲーム空間20)内の前記移動対象(例えば、ボール36)の位置と、に基づいて、前記移動対象(例えば、ボール36)が移動するときの軌道を制御する移動制御手段(58)、として機能させる。
また、本発明に係る情報記憶媒体は、上記プログラムを記録したコンピュータ読み取り可能な情報記憶媒体である。
本発明によれば、移動対象が移動するときの軌道と移動対象の到達位置を簡単な操作で指示することができる。
また、本発明の一態様では、前記移動制御手段(56)は、前記取得手段(52)により取得された終点の位置に対応する前記仮想空間(例えば、ゲーム空間20)内の位置を特定する手段(56)を含み、当該特定された位置に向けて前記移動対象(例えば、ボール36)が移動するように、前記移動対象(例えば、ボール36)が移動するときの軌道を制御する、ことを特徴とする。当該態様によれば、終点の位置に対応する仮想空間の位置に向かうように移動対象を移動させることで、移動対象が向かう方向を終点の位置から予想させてその方向に移動させることができるので、より直感的な操作を可能とする。
また、本発明の一態様では、前記移動制御手段(56)は、前記取得手段(52)により取得された軌跡の曲がり具合に基づいて、前記移動対象(例えば、ボール36)が移動するときの軌道の曲がり具合を制御する、ことを特徴とする。当該態様によれば、ユーザが描いた軌跡の曲がり具合に応じて、移動対象が移動するときの曲がり具合を制御することができるので、移動対象が移動するときの曲がり具合を予想させてその曲がり具合で移動させることができるので、移動対象を曲げたいときに直感的な操作を提供することができる。
また、本発明の一態様では、前記移動制御手段(56)は、前記取得手段(52)により取得された終点の位置に対応する前記仮想空間(例えば、ゲーム空間20)内の位置を特定する手段(56)を含み、当該特定された位置に基づいて、前記移動対象(例えば、ボール36)が移動するときの移動速度を制御する、ことを特徴とする。当該態様によれば、終点の位置に対応する仮想空間の位置に応じて移動対象が移動するときの移動速度を制御することで、仮想空間の状況に応じた移動速度の制御を可能とする。
また、本発明の一態様では、前記移動制御手段(56)は、前記取得手段(52)により取得された軌跡に基づいて、前記移動対象(例えば、ボール36)が移動するときの回転を制御する、ことを特徴とする。当該態様によれば、移動対象に回転をかけたいときに、移動物体が移動するときの回転を予想させてその回転で移動させることができるので、直感的な操作を提供することができる。
また、本発明の一態様では、前記移動制御装置(10)は、前記取得手段(52)により取得された始点の位置と終点の位置との間における位置変化速度を取得する手段(54)を更に含み、前記移動制御手段(56)は、前記取得された位置変化速度に基づいて、前記移動対象(例えば、ボール36)が移動するときの移動速度を制御する、ことを特徴とする。当該態様によれば、移動対象の移動速度を指示したいときに、移動速度を予想させてその速度で移動させることができるので、直感的な操作を提供することができる。
また、本発明の一態様では、前記移動制御装置(10)は、前記取得手段(52)により取得された始点の位置と終点の位置との間における位置変化速度を取得する手段(54)を更に含み、前記移動制御手段(56)は、前記取得された位置変化速度が基準速度以上である場合に、前記移動対象(例えば、ボール36)が移動するときの軌道を制御する、ことを特徴とする。当該態様によれば、ある速度以上で位置を変化させたときに移動対象の軌道の制御をするので、他の操作と間違うことを防止することができる。