(57)【要約】【課題】  ポインティングデバイスの入力を用いたゲームにおいて、プレイヤキャラクタに多彩なアクションを行わせることが可能なゲームプログラムおよびゲーム装置を提供する。【解決手段】  ゲーム装置は、入力装置によって所定時間間隔で検出された各入力位置を、検出された順にゲーム装置のメモリに記憶させる。次に、入力面上においてプレイヤによって描かれた軌跡の少なくとも一部を示す軌跡ベクトルを各入力位置から算出する。さらに、入力面上における所定位置を始点とし、軌跡ベクトルによって決められる位置を終点とする基準ベクトルを算出する。軌跡ベクトルと基準ベクトルとのなす角の大きさに基づいてプレイヤキャラクタのアクションが決定される。【選択図】  図７
2006325695.tif 000002
【特許請求の範囲】
【請求項１】
入力面上においてプレイヤが指定した位置を検出する入力装置を備えるゲーム装置のコンピュータに実行させるゲームプログラムであって、
前記入力装置によって所定時間間隔で検出された各入力位置を、検出された順に前記ゲーム装置のメモリに記憶させる記憶ステップと、
前記入力面上においてプレイヤによって描かれた軌跡の少なくとも一部を示す軌跡ベクトルを前記各入力位置から算出する軌跡ベクトル算出ステップと、
前記入力面上における所定位置を始点とし、前記軌跡ベクトルによって決められる位置を終点とする基準ベクトルを算出する基準ベクトル算出ステップと、
前記軌跡ベクトルと前記基準ベクトルとのなす角の大きさに基づいてプレイヤキャラクタのアクションを決定するアクション決定ステップと、
前記決定されたアクションを前記プレイヤキャラクタが行う様子を表示装置に表示させる表示制御ステップとを前記コンピュータに実行させる、ゲームプログラム。
【請求項２】
前記入力装置は、表示装置の画面上を入力面として、当該画面上においてプレイヤが指定した位置を検出する装置であり、
前記画面上には、前記プレイヤキャラクタが表示されており、
前記所定位置は、前記プレイヤキャラクタが表示される位置である、請求項１に記載のゲームプログラム。
【請求項３】
前記表示制御ステップにおいては、前記プレイヤキャラクタが表示される位置から前記軌跡ベクトルの始点、中点、または終点への向きに前記プレイヤキャラクタが前記決定されたアクションを行う様子が表示される、請求項２に記載のゲームプログラム。
【請求項４】
前記所定位置は前記画面の中央の位置である、請求項３に記載のゲームプログラム。
【請求項５】
前記入力装置によって検出された入力位置に基づいて前記プレイヤキャラクタの移動方向を決定する移動決定ステップをさらに前記コンピュータに実行させ、
前記表示制御ステップは、前記移動決定ステップにおいて決定された移動方向に前記プレイヤキャラクタが移動する様子を前記表示装置に表示させるステップを含む、請求項１に記載のゲームプログラム。
【請求項６】
前記移動決定ステップは、前記アクション決定ステップによって決定されたアクションを前記プレイヤキャラクタが行っていないことを条件として、前記入力装置によって入力位置が検出される度に実行される、請求項５に記載のゲームプログラム。
【請求項７】
前記アクション決定ステップにおいては、前記軌跡ベクトルの大きさが所定値以上であるときのみ、前記プレイヤキャラクタのアクションが決定される、請求項５に記載のゲームプログラム。
【請求項８】
前記アクション決定ステップにおいては、前記軌跡ベクトルによって示される軌跡の部分が所定時間以内に入力されたときのみ、前記プレイヤキャラクタのアクションが決定される、請求項５に記載のゲームプログラム。
【請求項９】
前記軌跡ベクトル算出ステップは、前記入力面上においてプレイヤによって描かれた軌跡を１以上の直線に近似し、当該近似された各直線を示すベクトルを前記軌跡ベクトルとして当該直線毎に算出するステップを含み、
前記アクション決定ステップにおいては、各前記軌跡ベクトルについて個別に前記プレイヤキャラクタのアクションが決定され、
前記表示制御ステップにおいては、前記決定されたアクションを連続して前記プレイヤキャラクタが行う様子が前記表示装置に表示される、請求項１に記載のゲームプログラム。
【請求項１０】
前記アクション決定ステップにおいては、前記軌跡ベクトル算出ステップにおいて前記軌跡ベクトルが複数算出されるとき、前記軌跡ベクトルが１つ算出されるときとは異なるアクションが決定される、請求項９に記載のゲームプログラム。
【請求項１１】
前記軌跡ベクトル算出ステップにおいては、前記入力装置によって連続して検出された各入力位置のうちで、最初に検出された入力位置を始点とし、最後に検出された入力位置を終点とするベクトルが前記軌跡ベクトルとして算出される、請求項１に記載のゲームプログラム。
【請求項１２】
前記軌跡ベクトル算出ステップは、
前記入力装置によって連続して検出された各入力位置を検出された順に結ぶ折れ線について、互いに接続される２つの線分のなす角度が所定値以下となる頂点に対応する入力位置を選出するステップと、
前記選出された入力位置が２つ以上存在するとき、順に検出された２つの入力位置を検出順に結ぶベクトルを前記軌跡ベクトルとして算出するステップとを含む、請求項１に記載のゲームプログラム。
【請求項１３】
前記基準ベクトル算出ステップにおいて、前記軌跡ベクトルの終点の位置を基準ベクトルの終点として当該基準ベクトルが算出される、請求項１に記載のゲームプログラム。
【請求項１４】
入力面上においてプレイヤが指定した位置を検出する入力装置を備えるゲーム装置であって、
前記入力装置によって所定時間間隔で検出された各入力位置を、検出された順に前記ゲーム装置のメモリに記憶させる記憶手段と、
前記入力面上においてプレイヤによって描かれた軌跡の少なくとも一部を示す軌跡ベクトルを前記各入力位置から算出する軌跡ベクトル算出手段と、
前記入力面上における所定位置を始点とし、前記軌跡ベクトルによって決められる位置を終点とする基準ベクトルを算出する基準ベクトル算出手段と、
前記軌跡ベクトルと前記基準ベクトルとのなす角の大きさに基づいてプレイヤキャラクタのアクションを決定するアクション決定手段と、
前記決定されたアクションを前記プレイヤキャラクタが行う様子を表示装置に表示させる表示制御手段とを備える、ゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲームプログラムおよびゲーム装置に関し、より特定的には、ポインティングデバイスに対する入力をゲーム操作に用いたゲームプログラムおよびゲーム装置に関する。
【背景技術】
【０００２】
従来、マウスやタッチパネル等のポインティングデバイスを入力装置として用いたゲーム装置が考えられている。例えば、画面上の敵キャラクタをマウスで指定した状態でマウスの入力ボタンを押すことによって、プレイヤキャラクタが敵キャラクタに対して攻撃を行うゲームがある（例えば、非特許文献１参照。）。このゲームでは、プレイヤはマウスを用いてプレイヤキャラクタを移動させる。そして、敵キャラクタに対する攻撃が可能な間合いにプレイヤキャラクタを移動させ、マウスの左ボタンをクリックすることにより攻撃を行う。さらに、プレイヤは、左ボタンを連打することによって連続攻撃を行うことも可能である。
【非特許文献１】“黄昏の世界を旅する、動きの美しいアクションRPG  「Revenant」”、［ｏｎｌｉｎｅ］、１９９９年８月１８日、駒沢 丈治、［２００５年４月１３日検索］、インターネット＜ＵＲＬ：http://www.forest.impress.co.jp/article/1999/08/18/game48.html＞
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記のゲームにおける攻撃操作は、マウスの左ボタンをクリックするだけであるので、非常に単純である。プレイヤによる攻撃操作は１種類しかなく、この１種類の攻撃操作に対してプレイヤキャラクタが行う攻撃パターンが一義的に決まってしまうので、攻撃操作は非常に単調になってしまう。そのため、プレイヤが操作に慣れると攻撃操作の面白みはすぐに薄れてしまう。つまり、ポインティングデバイスの入力を用いた従来のゲーム装置では、バリエーションに富んだアクションをプレイヤキャラクタに行わせることができず、ゲーム操作が単純になってしまうという課題があった。また、ゲーム操作が単純であることから、ゲームの戦略性や興趣性が低くなってしまうという課題があった。
【０００４】
それ故、本発明の目的は、ポインティングデバイスの入力を用いたゲームにおいて、プレイヤキャラクタに多彩なアクションを行わせることが可能なゲームプログラムおよびゲーム装置を提供することである。
【課題を解決するための手段】
【０００５】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、本欄における括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【０００６】
第１の発明は、入力面上においてプレイヤが指定した位置を検出する入力装置（タッチパネル１５）を備えるゲーム装置（１０）のコンピュータ（ＣＰＵコア２１等）に実行させるゲームプログラムである。ゲームプログラムは、記憶ステップ（Ｓ５またはＳ１１）と、軌跡ベクトル算出ステップ（Ｓ４３またはＳ７２）と、基準ベクトル算出ステップ（Ｓ６２）と、アクション決定ステップ（Ｓ６４）と、表示制御ステップ（Ｓ６５）とをコンピュータに実行させる。記憶ステップにおいては、コンピュータは、入力装置によって所定時間間隔で検出された各入力位置を、検出された順にゲーム装置のメモリ（ＲＡＭ２４）に記憶させる。軌跡ベクトル算出ステップにおいては、入力面上においてプレイヤによって描かれた軌跡の少なくとも一部を示す軌跡ベクトル（ｖ１）を各入力位置から算出する。基準ベクトル算出ステップにおいては、入力面上における所定位置を始点とし、軌跡ベクトルによって決められる位置（軌跡ベクトルの始点、中点、および終点の位置を含む）を終点とする基準ベクトル（ｖ２）を算出する。アクション決定ステップにおいては、軌跡ベクトルと基準ベクトルとのなす角の大きさ（図４に示すθ１）に基づいてプレイヤキャラクタ（４１）のアクションを決定する。表示制御ステップにおいては、決定されたアクションをプレイヤキャラクタが行う様子を表示装置（第２のＬＣＤ）に表示させる。
【０００７】
また、第２の発明においては、入力装置は、表示装置の画面上を入力面として、当該画面上においてプレイヤが指定した位置を検出する装置であってもよい。このとき、画面上には、プレイヤキャラクタが表示されている。所定位置は、プレイヤキャラクタが表示される位置である。
【０００８】
また、第３の発明においては、表示制御ステップにおいては、プレイヤキャラクタの位置から軌跡ベクトルの始点、中点、または終点への向きにプレイヤキャラクタが決定されたアクションを行う様子が表示されてもよい。
【０００９】
また、第４の発明においては、所定位置は、画面の中央の位置であってもよい。
【００１０】
また、第５の発明においては、ゲームプログラムは、移動決定ステップ（Ｓ５２およびＳ５３）をさらにコンピュータに実行させてもよい。移動決定ステップにおいては、コンピュータは、入力装置によって検出された入力位置に基づいてプレイヤキャラクタの移動方向を決定する。このとき、表示制御ステップは、移動決定ステップにおいて決定された移動方向にプレイヤキャラクタが移動する様子を表示装置に表示させるステップ（Ｓ５４）を含む。
【００１１】
また、第６の発明においては、移動決定ステップは、アクション決定ステップによって決定されたアクションをプレイヤキャラクタが行っていないことを条件として、入力装置によって入力位置が検出される度に実行されてもよい。
【００１２】
また、第７の発明においては、アクション決定ステップにおいては、軌跡ベクトルの大きさが所定値以上であるときのみ、プレイヤキャラクタのアクションが決定されてもよい（図１９に示すステップＳ７３参照）。
【００１３】
また、第８の発明においては、アクション決定ステップにおいては、軌跡ベクトルによって示される軌跡の部分が所定時間以内に入力されたときのみ、プレイヤキャラクタのアクションが決定されてもよい（図１６に示すステップＳ３２、図１９に示すステップＳ７１参照）。
【００１４】
また、第９の発明においては、軌跡ベクトル算出ステップは、入力面上においてプレイヤによって描かれた軌跡を１以上の直線に近似し、当該近似された各直線を示すベクトルを軌跡ベクトルとして当該直線毎に算出するステップ（Ｓ３１，Ｓ３２およびＳ３４）を含んでいてもよい。このとき、アクション決定ステップにおいては、各軌跡ベクトルについて個別にプレイヤキャラクタのアクションが決定される。表示制御ステップにおいては、決定されたアクションを連続してプレイヤキャラクタが行う様子が表示装置に表示される。
【００１５】
また、第１０の発明においては、アクション決定ステップにおいては、軌跡ベクトル算出ステップにおいて軌跡ベクトルが複数算出されるとき、軌跡ベクトルが１つ算出されるときとは異なるアクションが決定されてもよい。
【００１６】
また、第１１の発明においては、軌跡ベクトル算出ステップにおいては、入力装置によって連続して検出された各入力位置のうちで、最初に検出された入力位置（図５に示す点Ｐ２）を始点とし、最後に検出された入力位置（図５に示す点Ｐ３）を終点とするベクトルが軌跡ベクトルとして算出されてもよい。
【００１７】
また、第１２の発明においては、軌跡ベクトル算出ステップは、次の２つのステップを含んでいてもよい。すなわち、１つ目のステップ（Ｓ３１およびＳ３２）においては、コンピュータは、入力装置によって連続して検出された各入力位置を検出された順に結ぶ折れ線について、互いに接続される２つの線分のなす角度が所定値以下となる頂点に対応する入力位置を選出する。２つ目のステップ（Ｓ３３）においては、選出された入力位置が２つ以上存在するとき、順に検出された２つの入力位置を検出順に結ぶベクトルを軌跡ベクトルとして算出する。
【００１８】
また、第１３の発明においては、基準ベクトル算出ステップにおいて、軌跡ベクトルの終点の位置を基準ベクトルの終点として当該基準ベクトルが算出されてもよい。
【００１９】
また、本発明は、上記ゲームプログラムを実行することによって実現される機能と同等の機能を有するゲーム装置の形態で提供されてもよい。
【発明の効果】
【００２０】
第１の発明によれば、プレイヤは、画面上に描く軌跡を変化させることによって複数種類のアクションを使い分けることができる。すなわち、ポインティングデバイスを用いたゲームにおいても、プレイヤキャラクタに多彩なアクションを容易に行わせることができる。例えば、攻撃のアクションについて第１の発明を適用すれば、所定位置から入力軌跡への方向と、入力軌跡が描かれた方向との関係によって、プレイヤキャラクタの攻撃パターンを変化させることができる。これによって、従来では単調となっていた敵キャラクタへの攻撃にバリエーションを持たせることができ、ゲームの戦略性や興趣性を向上することができる。
【００２１】
また、第２の発明によれば、画面上に表示されるプレイヤキャラクタと入力軌跡との関係に応じて、プレイヤキャラクタのアクションを変化させることができる。画面上におけるプレイヤキャラクタの位置は変化するので、画面上の同じ位置に同じ入力軌跡を描いたとしても、プレイヤキャラクタの位置に応じてアクションが変化する。したがって、プレイヤは、プレイヤキャラクタの位置を考慮しながら所望のアクションを行わせるための入力軌跡を描くという、従来にはないゲームの操作感を味わうことができる。
【００２２】
また、第３の発明によれば、プレイヤキャラクタは、軌跡が描かれた方向にアクションを行うので、プレイヤは、軌跡を描く操作によってアクションを行う方向を指定することができる。したがって、アクションを行う方向を指定する操作と軌跡を描く操作とを別に行う必要がないので、プレイヤの操作が簡易になり、ゲームの操作性を向上することができる。
【００２３】
また、第４の発明によれば、プレイヤは、画面中央に表示されるプレイヤキャラクタを中心として上下左右のどの方向にも軌跡を入力することができる。したがって、プレイヤは、プレイヤキャラクタにアクションを行わせる操作をどの方向であっても容易に行うことができる。
【００２４】
また、第５の発明によれば、プレイヤキャラクタを移動させる操作と、プレイヤキャラクタにアクションを行わせる操作とを単一の入力装置で行うことができるので、ゲームの操作性を向上することができる。
【００２５】
また、第６の発明によれば、所定のアクションを行っている間はプレイヤキャラクタが移動することはないので、アクション中のプレイヤキャラクタが移動するという不自然な動作を防止することができる。
【００２６】
また、第７の発明によれば、アクションを行う操作と移動操作とを区別することができる。すなわち、軌跡ベクトルの大きさが所定値よりも小さい場合には、プレイヤキャラクタの移動のみが行われる。プレイヤは、移動操作を行いたい場合には、軌跡ベクトルの大きさが所定値よりも小さくなるように軌跡を描けばよく、これにより、プレイヤが意図しないアクションが行われることがない。これによって、上記２つの操作を行う場合に操作性を向上することができる。また、プレイヤは、入力面に対する入力操作という１種類の操作方法で、２つの操作を使い分けることができる。
【００２７】
また、第８の発明によれば、アクションを行う操作と移動操作とを区別することができる。すなわち、プレイヤは、移動操作を行いたい場合には、軌跡を描く操作を所定時間よりも長く行えばよく、これにより、プレイヤが意図しないアクションが行われることがない。これによって、上記２つの操作を行う場合に操作性を向上することができる。また、プレイヤは、入力面に対する入力操作という１種類の操作方法で、２つの操作を使い分けることができる。
【００２８】
また、第９の発明によれば、プレイヤによって描かれた軌跡を１以上の直線に近似することによって、プレイヤが複雑な形状の軌跡を描いた場合でも、軌跡ベクトルを算出することができる。また、軌跡を描く１回の操作によって、複数回のアクションを連続してプレイヤキャラクタに行わせることができる。
【００２９】
また、第１０の発明によれば、プレイヤキャラクタが行うアクションのバリエーションをさらに増やすことができ、ゲームの戦略性や興趣性をさらに向上することができる。
【００３０】
また、第１１の発明によれば、プレイヤによって描かれた軌跡から軌跡ベクトルを容易に算出することができる。
【００３１】
また、第１２の発明によれば、軌跡に複数の直線部分が含まれる場合であっても近似される各直線を容易に算出することができる。また、１つの軌跡から複数の軌跡ベクトルを容易に算出することができる。
【００３２】
また、第１３の発明によれば、基準ベクトルの終点の位置を軌跡ベクトルに基づいて容易に決定することができる。
【発明を実施するための最良の形態】
【００３３】
以下、本発明の一実施形態に係るゲームプログラムおよびゲーム装置について説明する。まず、ゲームプログラムを実行するゲーム装置の一例である、携帯型のゲーム装置の構成について説明する。図１は、ゲーム装置の外観図である。図１において、ゲーム装置１０は、第１のＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）１１および第２のＬＣＤ１２を含む。ハウジング１３は上側ハウジング１３ａと下側ハウジング１３ｂとによって構成されており、第１のＬＣＤ１１は上側ハウジング１３ａに収納され、第２のＬＣＤ１２は下側ハウジング１３ｂに収納される。第１のＬＣＤ１１および第２のＬＣＤ１２の解像度はいずれも２５６ｄｏｔ×１９２ｄｏｔである。なお、第１の実施形態では表示装置としてＬＣＤを用いているが、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置など、他の任意の表示装置を利用することができる。また任意の解像度のものを利用することができる。
【００３４】
上側ハウジング１３ａには、後述する１対のスピーカ（図２の３０）からの音を外部に放出するための音抜き孔１８ａおよび１８ｂが形成されている。
【００３５】
下側ハウジング１３ｂには、入力装置として、十字スイッチ１４ａ、スタートスイッチ１４ｂ、セレクトスイッチ１４ｃ、Ａボタン１４ｄ、Ｂボタン１４ｅ、Ｘボタン１４ｆ、Ｙボタン１４ｇ、Ｌボタン１４ＬおよびＲボタン１４Ｒが設けられている。また、さらなる入力装置として、第２のＬＣＤ１２の画面上にタッチパネル１５（図１に示す２点鎖線）が装着されている。また、下側ハウジング１３ｂには、電源スイッチ１９や、メモリカード１７やスティック１６を収納するための挿入口（図１に示す一点鎖線）も設けられている。
【００３６】
タッチパネル１５としては、例えば抵抗膜方式や光学式（赤外線方式）や静電容量結合式など、任意の方式のものを利用することができる。タッチパネル１５は、その表面をスティック１６で触れると、その接触位置に対応する座標データを出力する機能を有している。タッチパネル１５は、プレイヤによる入力位置を所定のサンプリング時間間隔で検出し、上記座標データを出力する。なお、以下ではプレイヤがタッチパネル１５をスティック１６で操作するものとして説明を行うが、スティック１６の代わりにペン（スタイラスペン）や指でタッチパネル１５を操作することももちろん可能である。第１の実施形態では、タッチパネル１５として、第２のＬＣＤ１２の解像度と同じく２５６ｄｏｔ×１９２ｄｏｔの解像度（検出精度）のものを利用する。ただし、必ずしもタッチパネル１５の解像度と第２のＬＣＤ１２の解像度が一致している必要はない。
【００３７】
メモリカード１７はゲームプログラムを記録した記録媒体であり、下部ハウジング１３ｂに設けられた挿入口に着脱自在に装着される。
【００３８】
次に、図２を参照してゲーム装置１０の内部構成を説明する。図２において、ハウジング１３に収納される電子回路基板２０には、ＣＰＵコア２１が実装される。ＣＰＵコア２１には、バス２２を介して、コネクタ２３が接続されるとともに、入出力インターフェース回路（図面ではＩ／Ｆ回路と記す）２５、第１ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２６、第２ＧＰＵ２７、ＲＡＭ２４およびＬＣＤコントローラ３１が接続される。コネクタ２３には、メモリカード１７が着脱自在に接続される。メモリカード１７は、ゲームプログラムを記憶するＲＯＭ１７１と、バックアップデータを書き換え可能に記憶するＲＡＭ１７２を搭載する。メモリカード１７のＲＯＭ１７１に記憶されたゲームプログラムはＲＡＭ２４にロードされ、ＲＡＭ２４にロードされたゲームプログラムがＣＰＵコア２１によって実行される。ＲＡＭ２４には、ゲームプログラムの他にも、ＣＰＵコア２１がゲームプログラムを実行して得られる一時的なデータや、ゲーム画像を生成するためのデータが記憶される。Ｉ／Ｆ回路２５には、タッチパネル１５と、スピーカ３０と、図１の十字スイッチ１４ａやＡボタン１４ｄ等からなる操作スイッチ部１４とが接続される。スピーカ３０は、音抜き孔１８ａおよび１８ｂの内側に配置される。
【００３９】
第１ＧＰＵ２６には、第１ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）２８が接続され、第２ＧＰＵ２７には、第２ＶＲＡＭ２９が接続される。第１ＧＰＵ２６は、ＣＰＵコア２１からの指示に応じて、ＲＡＭ２４に記憶されているゲーム画像を生成するためのデータに基づいて第１のゲーム画像を生成し、第１ＶＲＡＭ２８に描画する。第２ＧＰＵ２７は、同様にＣＰＵコア２１からの指示に応じて第２のゲーム画像を生成し、第２ＶＲＡＭ２９に描画する。第１ＶＲＡＭ２８および第２ＶＲＡＭ２９はＬＣＤコントローラ３１に接続されている。
【００４０】
ＬＣＤコントローラ３１はレジスタ３２を含む。レジスタ３２はＣＰＵコア２１からの指示に応じて０または１の値を記憶する。ＬＣＤコントローラ３１は、レジスタ３２の値が０の場合は、第１ＶＲＡＭ２８に描画された第１のゲーム画像を第１のＬＣＤ１１に出力し、第２ＶＲＡＭ２９に描画された第２のゲーム画像を第２のＬＣＤ１２に出力する。また、レジスタ３２の値が１の場合は、第１ＶＲＡＭ２８に描画された第１のゲーム画像を第２のＬＣＤ１２に出力し、第２ＶＲＡＭ２９に描画された第２のゲーム画像を第１のＬＣＤ１１に出力する。
【００４１】
なお、上記のようなゲーム装置１０の構成は単なる一例に過ぎず、本発明は、少なくとも１つの表示装置を有する任意のコンピュータシステムに適用することができる。また、本発明のゲームプログラムは、メモリカード１７などの外部記憶媒体を通じてコンピュータシステムに供給されるだけでなく、有線または無線の通信回線を通じてコンピュータシステムに供給されてもよいし、さらにはコンピュータシステム内部の不揮発性記憶装置に予め記録されていてもよい。
【００４２】
以下、ゲーム装置１０においてゲームプログラムを実行することによって行われるゲームの概要を説明する。本ゲームにおいては、プレイヤによって操作されるプレイヤキャラクタおよび敵キャラクタが３次元の仮想のゲーム空間に登場する。プレイヤは、プレイヤキャラクタを操作して敵キャラクタに対して攻撃を行い、敵キャラクタを倒すことを目的としてゲームを行う。以下、本ゲームの詳細について図３〜図１２を用いて説明する。
【００４３】
図３は、ゲーム装置１０の第２のＬＣＤ１２に表示されるゲーム画面の例を示す図である。図３に示すように、本実施形態においては、プレイヤキャラクタ４１を含むゲーム空間を所定の仮想カメラから見た画像が第２のＬＣＤ１２に表示される。本実施形態においては、プレイヤキャラクタ４１は画面の中央に表示されるように仮想カメラの位置や視線方向等のパラメータが設定されるが、他の実施形態においては、プレイヤキャラクタ４１は画面の中央に常に表示されなくてもよい。なお、第１のＬＣＤ１１は使用されなくてもよいし、プレイヤキャラクタの体力や能力を示す各種パラメータや、プレイヤキャラクタが所持するアイテム等の情報が第１のＬＣＤ１１に表示されてもよい。
【００４４】
プレイヤは、タッチパネル１５に対する入力（タッチ入力）によって、プレイヤキャラクタ４１を移動させる操作（移動操作）を行うことができる。ゲーム装置１０は、プレイヤによる入力が行われた位置（入力位置）を検出すると、検出した入力位置に基づいてプレイヤキャラクタ４１の移動方向を決定する。そして、当該移動方向へプレイヤキャラクタ４１を移動させる。プレイヤキャラクタ４１は、入力位置の方向へ予め定められた所定速度で移動する。例えば、図３に示すように、プレイヤがスティック１６で点Ｐ１の位置を指定した場合、プレイヤキャラクタ４１は、点Ｐ１の方向へ所定速度で移動する（図３に示す矢印参照）。
【００４５】
また、プレイヤは、タッチパネル１５に対する入力によって、プレイヤキャラクタ４１に攻撃を行わせる操作（攻撃操作）を行うことができる。つまり、本実施形態では、プレイヤは、プレイヤキャラクタ４１に対する各操作（移動操作および攻撃操作）をタッチパネル１５を用いて行うことが可能である。さらに、プレイヤは、第２のＬＣＤ１２の画面上（タッチパネル１５の入力面上）に描く軌跡に応じて異なる複数種類の攻撃操作を行うことができる。具体的には、プレイヤは、画面上に直線状の軌跡を描く操作によって４種類の通常攻撃（突き、右斬り、左斬り、および縦斬り）をプレイヤキャラクタに行わせることができ、さらに、直線状の軌跡を連続して描く操作（スクラッチ操作）によって連続攻撃をプレイヤキャラクタに行わせることができる。以下、攻撃操作を詳細に説明する。
【００４６】
まず、プレイヤキャラクタが通常攻撃を行う際の処理について図４〜図１０を用いて説明する。図４は、プレイヤが通常攻撃の攻撃操作を行うときのゲーム画面を示す図である。図４においては、プレイヤキャラクタ４１および敵キャラクタ４２が登場するゲーム空間の画像が第２のＬＣＤに表示されている。また、図４においては、プレイヤキャラクタ４１の右側の領域において、軌跡Ｔ１がプレイヤによって描かれているとする。なお、プレイヤによって描かれた軌跡を示す画像は表示されてもよいし、表示されなくてもよい。
【００４７】
図５は、図４に示す軌跡Ｔ１を示す図である。図５に示すように、プレイヤによって描かれる軌跡は、タッチパネル１５によって連続して検出される入力位置（図５に示す黒丸）の集合として表される。以下では、連続して検出される入力位置のうちで最初に検出される入力位置（図５に示す点Ｐ２）を初期入力位置と呼ぶ。また、タッチパネル１５によって入力位置が連続して検出される間において、最新の入力位置（最後に検出された入力位置。図５に示す点Ｐ３）を現在入力位置と呼び、現在入力位置の１つ前に検出された入力位置（図５に示す点Ｐ４）を前入力位置と呼ぶ。
【００４８】
なお、本実施形態では、タッチパネル１５によって検出される位置は、画面の左下を原点とし、画面の上方向をｙ軸正方向とし、画面の右方向をｘ軸正方向とする座標系によって表現される。つまり、タッチパネル１５は、当該座標系における座標のデータを出力する。ここで、連続して検出された２つの入力位置を検出順に結ぶベクトルを差分ベクトルと呼ぶ。特に、前入力位置を始点とし現在入力位置を終点とするベクトルを、現在差分ベクトルと呼ぶ。図６は、図５に示す現在入力位置および前入力位置を示す図である。図６に示す例では、現在差分ベクトルは（ｘ１，ｙ１）として表される。また、現在差分ベクトルの１つ前のベクトルを前差分ベクトルと呼ぶ。前差分ベクトルは、前入力位置の１つ前に検出された入力位置を始点とし、前入力位置を終点とするベクトルである。
【００４９】
図４の説明に戻り、プレイヤによって軌跡が描かれたとき、ゲーム装置１０は、軌跡ベクトルおよび基準ベクトルを算出する。図７は、軌跡ベクトルおよび基準ベクトルを示す図である。なお、図７では、軌跡ベクトルｖ１および基準ベクトルｖ２を見やすくする目的でプレイヤキャラクタ４１および敵キャラクタ４２を点線で示している。また、図７に示す軌跡ベクトルｖ１および基準ベクトルｖ２は、実際には画面に表示されない。
【００５０】
軌跡ベクトルとは、プレイヤによって描かれた軌跡を示すベクトルである。ここでは、当該軌跡を１本の直線に近似することで軌跡ベクトルを算出する。具体的には、軌跡ベクトルは、軌跡の初期入力位置を始点とし、最後に検出された入力位置を終点とするベクトルとなる。
【００５１】
なお、詳細は後述するが、軌跡ベクトルは、軌跡の全体を示すベクトルに必ずしもなるわけではなく、連続して入力された軌跡の少なくとも一部を示すベクトルであることもある。例えば、上述したスクラッチ操作によって描かれる軌跡が描かれる場合には、当該軌跡の一部の直線部分を示すベクトルが軌跡ベクトルとして算出される。
【００５２】
一方、基準ベクトルｖ２は、画面上におけるプレイヤキャラクタ４１の位置を始点とし、軌跡ベクトルｖ１によって決められる位置を終点とするベクトルである。ここで、「軌跡ベクトルによって決められる位置」とは、軌跡ベクトルが決まることによって一義的に決められる位置であり、例えば、軌跡ベクトルの始点や、中点や、終点の位置である。図７に示すように、本実施形態では、軌跡ベクトルｖ１によって決められる位置は、軌跡ベクトルｖ１の終点の位置であるとする。
【００５３】
軌跡ベクトルｖ１および基準ベクトルｖ２を算出すると、ゲーム装置１０は、軌跡ベクトルｖ１と基準ベクトルｖ２とのなす角度θ１を算出する。そして、算出した角度θ１に基づいてプレイヤキャラクタの攻撃のアクションを決定する。図８は、プレイヤキャラクタの攻撃のアクションを決定する方法を説明するための図である。図８では、軌跡ベクトルｖ１と基準ベクトルｖ２との始点の位置をそろえて記載している。本実施形態においては、軌跡ベクトルｖ１と基準ベクトルｖ２とのなす角度θ１は、基準ベクトルｖ２の方向を基準方向（０°）とし、軌跡ベクトルｖ１を右回りに見たときの角度として表されるものとする。θ１のとり得る範囲は、０°≦θ１＜３６０°とする。θ１のとり得る範囲は、攻撃のアクションに応じて、第１〜第４範囲４５〜４８の４つに分割される。具体的には、各範囲は次のように設定される。
第１範囲（図８に示す領域４５）：０≦θ１≦４５°または３１５°＜θ１＜３６０°
第２範囲（図８に示す領域４６）：４５°＜θ１≦１３５°
第３範囲（図８に示す領域４７）：１３５°＜θ１≦２２５°
第４範囲（図８に示す領域４８）：２２５°＜θ１≦３１５°
プレイヤキャラクタ４１から見て基準ベクトルｖ２の方向を正面方向としたとき、第１範囲は、軌跡ベクトルｖ１がほぼ正面方向を向いている場合におけるθ１の範囲である。また、第２範囲は、軌跡ベクトルｖ１が右方向を向いている場合におけるθ１の範囲である。第３範囲は、軌跡ベクトルｖ１が左方向を向いている場合におけるθ１の範囲である。第４範囲は、軌跡ベクトルｖ１が背面方向を向いている場合におけるθ１の範囲である。
【００５４】
各範囲には、攻撃のアクションが１つずつ対応付けられる。すなわち、第１範囲には「突き」のアクションが対応付けられる。第２範囲には「左斬り」のアクションが対応付けられる。第３範囲には、「縦斬り」のアクションが対応付けられる。第４範囲には、「右斬り」のアクションが対応付けられる。
【００５５】
ゲーム装置１０は、算出したθ１の値がどの範囲に属するかを判断する。そして、プレイヤキャラクタが行うべき攻撃のアクションを、算出したθ１の値が属する範囲に対応するアクションに決定する。例えば図８に示す場合においてはθ１は第２範囲に属するので、プレイヤキャラクタが行うべき攻撃のアクションは、第２範囲に対応する「左斬り」に決定される。
【００５６】
プレイヤキャラクタの攻撃のアクションを決定すると、ゲーム装置１０は、決定したアクションをプレイヤキャラクタが行う画像を第２のＬＣＤに表示する。図９および図１０は、プレイヤキャラクタが攻撃のアクションを行う際のゲーム画面を示す図である。例えば、上記角度θ１が第１範囲に属する場合、プレイヤキャラクタ４１は、図９に示す「突き」のアクションを行う。また、角度θ１が第４範囲に属する場合、プレイヤキャラクタ４１は、図１０に示す「右斬り」のアクションを行う。このように、本実施形態では、プレイヤが描いた軌跡の方向（軌跡ベクトル）とプレイヤキャラクタから当該軌跡への方向（基準ベクトル）との関係に応じて、プレイヤキャラクタが行うアクションが変化する。
【００５７】
なお、プレイヤキャラクタ４１が攻撃のアクションを行う方向は、軌跡ベクトルに基づいて決定される。具体的には、ゲーム装置１０は、軌跡ベクトルの中点の方向に向かってアクションを行うようにプレイヤキャラクタ４１の動作を制御する。なお、他の実施形態においては、プレイヤキャラクタ４１は、現在の位置から軌跡ベクトルの始点の方向に向かってアクションを行うようにしてもよいし、軌跡ベクトルの終点の方向に向かってアクションを行うようにしてもよい。なお、軌跡ベクトルの中点または終点の方向に向かってアクションを行う場合には、敵キャラクタを斬りつけるように軌跡を描けば（図４参照）、その敵キャラクタに対して攻撃を行うことができる。つまり、この場合、プレイヤは、スティック１６を使って実際に敵キャラクタを攻撃するような感覚でゲーム操作を行えばよいので、ゲームの操作性を向上することができる。また、本実施形態では、プレイヤキャラクタ４１は画面の中央に表示されるので、プレイヤは、プレイヤキャラクタ４１を基準に上下左右のどの方向にも軌跡を容易に描くことができる。つまり、プレイヤは、プレイヤキャラクタ４１の全方向に攻撃を行わせることができる。
【００５８】
ゲーム装置１０は、プレイヤキャラクタ４１が攻撃のアクションを行った結果、当該攻撃が敵キャラクタ４２に命中したか否かを判定する。命中したと判定される場合、敵キャラクタ４２にはダメージが与えられる。本実施形態では、敵キャラクタ４２に与えられるダメージは、各アクションに応じて異なる。また、プレイヤキャラクタ４１が攻撃するまでの時間（攻撃のアクションが開始されてから敵キャラクタに攻撃が命中するまでの時間）は、各アクションに応じて異なる。例えば、「突き」のアクションについては、攻撃するまでの時間が短い（攻撃が速い）代わりに与えるダメージを小さくしたり、「縦斬り」のアクションは、攻撃するまでの時間が長い（攻撃が遅い）代わりに与えるダメージを大きくしたりすることができる。このように、各アクションによって異なるゲーム効果を設定することによって、ゲームの戦略性を向上することができる。
【００５９】
また、本実施形態では、プレイヤキャラクタ４１が攻撃のアクションを行っている間、プレイヤキャラクタ４１の移動動作は行われない。したがって、プレイヤキャラクタ４１が攻撃のアクションを行っている間にプレイヤが移動操作を行っても、その移動操作は無視される。
【００６０】
以上のように、本実施形態では、プレイヤキャラクタは４種類の通常攻撃を行うことが可能であり、プレイヤは、画面上に描く軌跡を変化させることによって４種類の攻撃のアクションを使い分けることができる。これによって、タッチパネル１５のようなポインティングデバイスを用いたゲームにおいても、プレイヤキャラクタに多彩なアクションを容易に行わせることができる。
【００６１】
また、本実施形態では、プレイヤによって描かれた軌跡をプレイヤキャラクタ４１から見たとき、当該軌跡が手前から奥に向けて描かれた場合、軌跡ベクトルｖ１は第１範囲に属することになる。したがって、この場合、プレイヤキャラクタ４１は「突き」のアクション（図９参照）を行う。また、プレイヤキャラクタ４１から見て左から右に向けて軌跡が描かれた場合、軌跡ベクトルｖ１は第２範囲に属することになり、プレイヤキャラクタ４１は「左斬り」のアクションを行う。同様に、プレイヤキャラクタ４１から見て奥から手前に向けて軌跡が描かれた場合、プレイヤキャラクタ４１は「縦斬り」のアクションを行い、プレイヤキャラクタ４１から見て右から左に向けて軌跡が描かれた場合、プレイヤキャラクタ４１は「右斬り」のアクション（図１０参照）を行う。このように、本実施形態では、プレイヤキャラクタ４１が剣を振る軌道は、プレイヤが描いた軌跡の軌道に近いものとなる。例えば、プレイヤは、「突き」で敵キャラクタ４２を攻撃したい場合、スティック１６で敵キャラクタ４２を実際に突くような感覚で、プレイヤキャラクタ４１から見て手前から奥に向けて軌跡を描けばよい。つまり、プレイヤキャラクタ４１は、プレイヤが描いた軌跡のイメージに近いアクションを行うこととなる。したがって、プレイヤは攻撃操作の操作方法をイメージしやすく、プレイヤにとってわかりやすい操作方法を提供することができる。
【００６２】
以上に述べたように、本実施形態では、画面上に軌跡を描くことによって、プレイヤは、プレイヤキャラクタに通常攻撃を行わせることができる。ただし、本実施形態では、プレイヤが描いた軌跡が、予め定められた所定の長さ以上であり、かつ、予め定められた所定時間以内に入力されたことを条件とする。つまり、プレイヤが描いた軌跡がこの条件を満たさない場合、ゲーム装置１０は、プレイヤキャラクタに通常攻撃を行わせない。なお、この場合には、プレイヤが軌跡を描いた操作は移動操作とみなされ、ゲーム装置１０は、入力位置に応じた方向へプレイヤキャラクタを移動させる処理を行う。したがって、プレイヤは、攻撃操作を行う場合、所定長さ以上の直線状の軌跡を所定の速度で描かなければならない。
【００６３】
上記の条件を設定するのは、プレイヤが行った操作が移動操作であるかそれとも攻撃操作であるかを区別するためである。本実施形態では、移動操作および攻撃操作の両方がタッチパネル１５を用いて行われる。そのため、もし上記の条件を設定しなければ、プレイヤが移動操作を行う目的で軌跡を描いた場合でも、当該軌跡を描く操作が攻撃操作とみなされて攻撃のアクションが行われてしまうことがある。そこで、本実施形態では、プレイヤが意図しない攻撃のアクションが行われることを防止するために上記条件を設定している。
【００６４】
次に、プレイヤキャラクタがスクラッチ操作を行う際の処理について図１１および図１２を用いて説明する。図１１は、プレイヤがスクラッチ操作を行うときのゲーム画面を示す図である。図１１においては、プレイヤキャラクタ４１の右側の領域において、軌跡Ｔ２がプレイヤによって描かれている。軌跡Ｔ２は、直線状の軌跡を５つ連続して描いたような折れ線状の形状である。図１１に示すように、スクラッチ操作は、直線状の軌跡を複数回反転させるように軌跡を描く操作である。
【００６５】
プレイヤによって画面上に軌跡が描かれると、ゲーム装置１０は、当該軌跡を１以上の直線に近似する。図１２は、プレイヤによって描かれた軌跡の一例を示す図である。図１２では、点Ｐ５の位置が初期入力位置であり、点Ｐ１３の位置が最後に検出された入力位置であるとする。ゲーム装置１０は、検出された各入力位置を検出された順に結ぶ折れ線について、互いに接続される２つの線分のなす角度が鋭角となる部分を検出する（後述するステップＳ３１）。具体的には、ゲーム装置１０は、新たな入力位置が検出される度に、現在差分ベクトルと前差分ベクトルとの角度差を算出する。そして、当該角度差に基づいて、互いに接続される２つの線分のなす角度が鋭角となるか否かを判断する（後述するステップＳ３２）。
【００６６】
例えば、図１２に示す折れ線を例とすると、点Ｐ６から点Ｐ７までを結ぶ線分（差分ベクトル）と、点Ｐ７から点Ｐ８までを結ぶ線分とのなす角θ２が鋭角になっている。点Ｐ６から点Ｐ７までを結ぶ線分と点Ｐ７から点Ｐ８までを結ぶ線分とのなす角θ２が鋭角になる場合とは、点Ｐ６から点Ｐ７までを結ぶ差分ベクトルと点Ｐ７から点Ｐ８までを結ぶ差分ベクトルとの角度差θ２’が、９０°＜θ２’＜２７０°の範囲内の値となることである。なお、以下では、上記折れ線の鋭角部分の頂点となる入力位置を反転位置と呼ぶ。
【００６７】
プレイヤによって描かれた軌跡について反転位置が２つ以上検出されると、ゲーム装置１０は、順に検出された２つの反転位置について、１カ所目の反転位置が検出されてから所定時間以内に２カ所目の反転位置が入力されたか否かを判定する（後述するステップＳ４２）。なお、この所定時間は予め定められている。判定の結果、所定時間以内に入力された場合、当該２つの反転位置を結ぶベクトルが軌跡ベクトルとして算出される。図１２を例にとって説明すると、点Ｐ７の入力位置（反転位置）が検出されてから所定時間以内に点Ｐ１０の入力位置（反転位置）が入力された場合、点Ｐ７から点Ｐ１０までを結ぶベクトルが軌跡ベクトルとして算出される。同様に、点Ｐ１０の入力位置が検出されてから所定時間以内に点Ｐ１２の入力位置が入力された場合、点Ｐ１０から点Ｐ１２までを結ぶベクトルが軌跡ベクトルとして算出される。
【００６８】
以上のように、軌跡を描く操作がスクラッチ操作と判断されるためには、次に示す２つの条件を満たす必要がある。第１の条件は、プレイヤによって描かれた軌跡において２つ以上の反転位置が存在することである。第２の条件は、１カ所目の反転位置が検出されてから所定時間以内に２カ所目の反転位置が入力されることである。
【００６９】
ここで、第１の条件において反転位置を２カ所以上としているのは、スクラッチ操作と移動操作とを区別するためである。もし反転位置が１カ所であった場合にスクラッチ操作と判断すれば、プレイヤキャラクタを方向転換させる場合における移動操作がスクラッチ操作と判断される場合が生じる。プレイヤキャラクタを方向転換させる移動操作を行う場合には、プレイヤによって描かれた軌跡に反転位置が含まれるからである。これを防止するため、本実施形態では、第１の条件において反転位置を２カ所以上としている。
【００７０】
また、第２の条件も第１の条件と同様、スクラッチ操作と移動操作とを区別するために設定されるものである。プレイヤが移動操作を行う際、プレイヤキャラクタを方向転換させた後しばらくして方向転換を再度行う場合も考えられる。第２の条件を設定することによって、このような場合における操作をスクラッチ操作と判断されることを防止している。
【００７１】
また、連続攻撃は、プレイヤによるタッチパネル１５への入力が継続している間に開始される。具体的には、ゲーム装置１０は、第１および第２の条件が満たされたと判断した時点で、プレイヤによるタッチパネル１５への入力が継続している間であっても、プレイヤキャラクタに１回の攻撃のアクションを行わせる。そして、プレイヤによるタッチ入力が続き、第１および第２の条件が再度満たされたと判断されると、プレイヤキャラクタに再度１回の攻撃のアクションを行わせる。したがって、プレイヤは、スクラッチ操作を連続して（タッチ入力を継続したままで）行うことによって、プレイヤキャラクタに連続攻撃を行わせることができる。
【００７２】
なお、本実施形態においては、連続攻撃におけるアクションは、通常攻撃におけるアクションと同様、軌跡ベクトルと基準ベクトルとのなす角に応じて決定される。また、他の実施形態においては、軌跡ベクトルが同じであっても、連続攻撃におけるアクションと通常攻撃におけるアクションとを異なるようにしてもよい。また、連続攻撃の回数に応じてアクションを変化させてもよい。例えば、所定回数以上の連続攻撃を行った場合には、特別なアクションを行うことができるようにしてもよい。
【００７３】
次に、ゲームプログラムを実行することによってゲーム装置１０において行われるゲーム処理の詳細を説明する。まず、ゲーム処理において用いられる主なデータについて図１３を用いて説明する。図１３は、ゲーム装置１０のＲＡＭ２４に記憶される主なデータを示す図である。図１３に示すように、ＲＡＭ２４には、現在入力位置データ５１、前入力位置データ５２、初期入力位置データ５３、第１反転位置データ５４、第２反転位置データ５５、およびキャラクタ２次元座標データ５６等の座標データが記憶される。また、ＲＡＭ２４には、現在差分ベクトルデータ５７、前差分ベクトルデータ５８、軌跡ベクトルデータ５９、および基準ベクトルデータ６０等のベクトルデータが記憶される。また、ＲＡＭ２４には、総フレームカウンタ６１、反転フレームカウンタ６２、反転フラグ６３、および攻撃フラグ６４等のゲーム処理に用いられるデータが記憶される。なお、ＲＡＭ２４には、図１３に示すデータの他、プレイヤキャラクタに関するデータ（プレイヤキャラクタの画像データや位置データ等）やゲーム空間に関するデータ（地形データ等）等、ゲーム処理に必要なデータが記憶される。
【００７４】
現在入力位置データ５１は、上記現在入力位置の座標を示すデータである。現在入力位置データ５１は、最新の入力位置を示し、タッチパネル１５が入力位置を検出する毎に、すなわち、タッチパネル１５から出力される座標データをゲーム装置１０が読み込む毎に更新される。前入力位置データ５２は、上記前入力位置の座標を示すデータである。前入力位置データ５２は、現在入力位置データ５１が更新される度に更新され、更新前の現在入力位置データ５１により示される座標が、更新後の前入力位置データ５２として記憶される。初期入力位置データ５３は、上記初期入力位置の座標を示すデータである。
【００７５】
各反転位置データ５４および５５は、上記反転位置の座標を示すデータである。第１反転位置データ５４は、最新の反転位置の座標を示し、第２反転位置データ５５は、１つ前の反転位置の座標を示す。例えば図１２に示す軌跡が描かれる場合を例にとって説明すると、点Ｐ１１の位置が現在入力位置である場合、第１反転位置データ５４は、点Ｐ１０の反転位置の座標を示し、第２反転位置データ５５は、点Ｐ７の反転位置の座標を示す。
【００７６】
キャラクタ２次元座標データ５６は、プレイヤキャラクタの画面上における位置（座標）を示すデータである。なお、図１３には示していないが、キャラクタ２次元座標データ５６の他に、プレイヤキャラクタのゲーム空間内における３次元座標を示すデータもＲＡＭ２４に記憶されている。
【００７７】
現在差分ベクトルデータ５７は、上記現在差分ベクトルを示すデータである。現在差分ベクトルデータ５７は、最新の差分ベクトルを示し、タッチパネル１５が入力位置を検出する毎に更新される。前差分ベクトルデータ５８は、上記前差分ベクトルを示すデータである。前差分ベクトルデータ５８は、現在差分ベクトルデータ５７が更新される度に更新され、更新前の現在差分ベクトルデータ５７により示される座標が、更新後の前差分ベクトルデータ５８として記憶される。また、軌跡ベクトルデータ５９は、上記軌跡ベクトルを示すデータである。基準ベクトルデータ６０は、上記基準ベクトルを示すデータである。
【００７８】
総フレームカウンタ６１は、プレイヤによるタッチ入力が開始されてからのフレーム数を示すカウンタである。反転フレームカウンタ６２は、プレイヤにより描かれた軌跡が反転してからのフレーム数を示すカウンタである。図１２を用いて説明すると、ゲーム装置１０は、点Ｐ８の入力位置が検出されると、プレイヤにより描かれた軌跡が反転したと判断して、反転フレームカウンタ６２による計測を開始する。また、軌跡の反転が再度行われる（図１２に示す点Ｐ１１の入力位置が検出される）と、ゲーム装置１０は、反転フレームカウンタ６２の値をリセットし、再度最初から計測を行う。
【００７９】
また、反転フラグ６３は、軌跡の反転が行われたか否かを示すフラグである。すなわち、軌跡の反転が行われたとき、反転フラグ６３は“ＯＮ”に設定され、軌跡の反転が行われていないとき、反転フラグ６３はＯＦＦに設定される。図１２を用いて説明すると、ゲーム装置１０は、点Ｐ８の入力位置が検出されると、プレイヤにより描かれた軌跡が反転したと判断して、反転フラグ６３を“ＯＮ”に設定する。なお、初期状態では反転フラグ６３は“ＯＦＦ”に設定されている。また、攻撃フラグ６４は、プレイヤキャラクタが攻撃のアクションを行っている途中であるか否かを示すフラグである。すなわち、プレイヤキャラクタが攻撃のアクションを開始すると、攻撃フラグ６４は“ＯＮ”に設定され、当該アクションが終了すると、攻撃フラグ６４はＯＦＦに設定される。
【００８０】
次に、ゲームプログラムを実行することによってゲーム装置１０において行われるゲーム処理の詳細を、図１４〜図１９を用いて説明する。図１４は、ゲーム装置１０において実行されるゲーム処理の流れを示すフローチャートである。ゲーム装置１０の電源が投入されると、ゲーム装置１０のＣＰＵコア２１は、図示しないブートＲＯＭに記憶されている起動プログラムを実行し、ＲＡＭ２４等の各ユニットが初期化される。そして、メモリカード１７に格納されたゲームプログラムがＲＡＭ２４に読み込まれ、ＣＰＵコア２１によって当該ゲームプログラムの実行が開始される。図１４に示すフローチャートは、以上の処理が完了した後に行われるゲーム処理を示すフローチャートである。なお、図１４〜図１９においては、ゲーム処理のうち、プレイヤキャラクタに対する移動操作および攻撃操作に関する処理について詳細に示し、本願発明と関連しない他のゲーム処理については詳細な説明を省略する。
【００８１】
図１４のステップＳ１において、まず、ゲーム空間が構築され、プレイヤキャラクタや敵キャラクタが初期位置に配置される。そして、プレイヤキャラクタとその周囲のゲーム空間を撮影する位置に仮想カメラが設定され、仮想カメラから見たゲーム空間の画像が第２のＬＣＤに表示される。このステップＳ１以降の処理において、タッチパネル等を用いたゲーム操作が受け付けられ、ゲームが進行する。ステップＳ１の次にステップＳ２の処理が行われる。
【００８２】
ステップＳ２において、タッチ入力があったか否かが判定される。具体的には、ＣＰＵコア２１は、タッチパネル１５から出力されるデータを読み込み、タッチパネル１５から座標データが出力されているか否かを判定する。タッチパネル１５から座標データが出力されている場合、タッチ入力があると判定されてステップＳ３の処理が行われる。一方、入力がないことを示すデータがタッチパネル１５から出力されている場合、タッチ入力がないと判定されて再度ステップＳ２の処理が行われる。つまり、ＣＰＵコア２１は、タッチ入力があるまでステップＳ２の処理を繰り返し、タッチ入力があるとステップＳ３の処理を行う。
【００８３】
ステップＳ３において、各データおよび各フレームカウンタが初期化される。具体的には、ＲＡＭ２４に記憶されている各データ（各座標データ５１〜５６および各ベクトルデータ５７〜６０）および各フレームカウンタ６１および６２の内容が初期化される。続くステップＳ４において、ＲＡＭ２４に記憶されている反転フラグ６３の値が“ＯＦＦ”に設定される。ステップＳ４の次にステップＳ５の処理が行われる。
【００８４】
ステップＳ５において、タッチパネル１５に対する入力位置が検出される。具体的には、ＣＰＵコア２１は、タッチパネル１５から入力位置の座標データを取得し、取得した座標データを現在入力位置データ５１としてＲＡＭ２４に記憶する。続くステップＳ６において、ステップＳ５で検出された入力位置が初期入力位置に設定される。具体的には、ＣＰＵコア２１は、ステップＳ５で取得した座標データを初期入力位置データ５３としてＲＡＭ２４に記憶する。続くステップＳ７において、ステップＳ５で取得された座標データを前入力位置データ５２としてＲＡＭ２４に記憶する。ステップＳ７の処理は、後述するステップＳ１３において現在差分ベクトルを算出する際に必要となる前入力位置データ５２を記憶しておく処理である。ステップＳ７の次にステップＳ８の処理が行われる。
【００８５】
ステップＳ８においては、メイン処理が行われる。メイン処理では、タッチパネル１５に対する入力位置が検出され、検出された入力位置に基づいてプレイヤキャラクタが移動したり攻撃のアクションを行ったりする。以下、メイン処理の詳細を図１５〜図１９を用いて説明する。
【００８６】
図１５は、図１４に示すステップＳ８の詳細な処理の流れを示すフローチャートである。メイン処理においてはまずステップＳ１１において、タッチパネル１５に対する入力位置が検出される。ステップＳ１１の処理は上記ステップＳ５の処理と同様である。なお、ステップＳ１１において、現在入力位置データ５１はＲＡＭ２４に更新して記憶される。また、メイン処理においては、１フレーム毎にステップＳ１１の処理が行われる。ステップＳ１１の次にステップＳ１２の処理が行われる。
【００８７】
ステップＳ１２においては、ＲＡＭ２４に記憶されている現在差分ベクトルデータ５７が前差分ベクトルデータ５８に代入される。つまり、ＲＡＭ２４に記憶されている現在差分ベクトルデータ５７の内容が前差分ベクトルデータ５８として記憶される。続くステップＳ１３において、現在差分ベクトルが新たに算出される。上述のように、現在差分ベクトルは、前入力位置を始点とし現在入力位置を終点とするベクトルである（図６参照）。現在差分ベクトルは、ＲＡＭ２４に記憶されている現在入力位置データ５１および前入力位置データ５２を用いて算出される。続くステップＳ１４において、ＲＡＭ２４に記憶されている総フレームカウンタ６１の値が１加算される。
【００８８】
ステップＳ１４の次のステップＳ１５において、第１行動判定処理が行われる。第１行動判定処理は、プレイヤによるタッチ入力に基づいてプレイヤの操作が移動操作であるか攻撃操作（スクラッチ操作）であるかを判断し、プレイヤの操作に従ってプレイヤキャラクタを動作させる処理である。以下、図１６〜図１８を用いて第１行動判定処理の詳細を説明する。
【００８９】
図１６は、図１５に示すステップＳ１５の詳細な処理の流れを示すフローチャートである。第１行動判定処理においてはまずステップＳ３１において、現在差分ベクトルと前差分ベクトルとの角度差が算出される。当該角度差は、ＲＡＭ２４に記憶されている現在差分ベクトルデータ５７および前差分ベクトルデータ５８を用いて算出される。続くステップＳ３２において、ステップＳ３１で算出された角度差が所定範囲内の値をとるか否かが判定される。この所定範囲は、現在差分ベクトルと前差分ベクトルとの角度差θが、９０°＜θ＜２７０°となる範囲である。当該角度差θが９０°＜θ＜２７０°となる場合、プレイヤによって描かれた軌跡を表す各入力位置を検出順に結んだ折れ線は、鋭角の部分を有することになる。例えば図１２に示す軌跡が描かれる場合を例にとって説明すると、点Ｐ８または点Ｐ１１の位置が現在入力位置である場合、ステップＳ３２の判定において上記角度差が所定範囲内の値をとると判定される。ステップＳ３２の処理は、プレイヤによって描かれた軌跡を表す各入力位置を検出順に結んだ折れ線について鋭角となる部分があるか否か、換言すれば、プレイヤによって描かれた軌跡の方向が反転したか否かを判定するための処理である。
【００９０】
ステップＳ３２の判定において、上記角度差が所定範囲内の値をとると判定される場合、ステップＳ３５の処理が行われる。ステップＳ３５以降の処理においては、所定の条件が満たされればプレイヤによる操作がスクラッチ操作であると判断され、プレイヤキャラクタの攻撃処理が行われる（後述するステップＳ４４）。なお、所定の条件が満たされなければプレイヤによる操作が移動操作であると判断され、プレイヤキャラクタの移動処理が行われる（後述するステップＳ３４またはＳ４１）。一方、ステップＳ３２の判定において、上記角度差が所定範囲内の値をとらないと判定される場合、ステップＳ３３の処理が行われる。ステップＳ３３以降の処理においては、プレイヤキャラクタの移動処理が行われる（後述するステップＳ３４またはＳ４１）。
【００９１】
ステップＳ３３においては、ＲＡＭ２４に記憶されている反転フラグ６３が“ＯＮ”に設定されているか否かが判定される。ステップＳ３３の処理は、現在入力中の軌跡が反転位置を有するか否かを判定するための処理である。例えば図１２に示す軌跡が描かれる場合を例にとって説明すると、点Ｐ８の位置が現在入力位置である時点で反転フラグ６３が“ＯＮ”に設定される（後述するステップＳ３７）。したがって、点Ｐ８よりも後の位置が現在入力位置である場合には、ステップＳ３３の判定において、反転フラグ６３が“ＯＮ”に設定されていると判定される。ステップＳ３３の判定において、反転フラグ６３が“ＯＮ”に設定されていると判定される場合、後述するステップＳ３８の処理が行われる。一方、反転フラグ６３が“ＯＮ”に設定されていない（すなわち、“ＯＦＦ”に設定されている）と判定される場合、ステップＳ３４の処理が行われる。
【００９２】
ステップＳ３４においては、移動処理が行われる。移動処理は、ゲーム空間内においてプレイヤキャラクタを移動させる処理である。以下、図１７を用いて移動処理の詳細を説明する。
【００９３】
図１７は、図１６に示すステップＳ３４の詳細な処理の流れを示すフローチャートである。移動処理においてはまずステップＳ５０において、プレイヤキャラクタが攻撃のアクションを行っている途中であるか否かが判定される。具体的には、ＲＡＭ２４に記憶されている攻撃フラグ６４が“ＯＮ”に設定されている場合、プレイヤキャラクタが攻撃のアクションを行っている途中であると判定される。この場合、ステップＳ５１〜５４の処理はスキップされ、ＣＰＵコア２１は移動処理を終了する。したがって、本実施形態では、プレイヤキャラクタが攻撃のアクションを行っていないことを条件として、プレイヤキャラクタに移動動作を行わせる処理（ステップＳ５１〜５４）が行われる。一方、ＲＡＭ２４に記憶されている攻撃フラグ６４が“ＯＦＦ”に設定されている場合、プレイヤキャラクタが攻撃のアクションを行っている途中ではないと判定される。この場合、ステップＳ５１の処理が行われる。
【００９４】
ステップＳ５１において、画面上におけるプレイヤキャラクタの位置を示す２次元座標が算出される。具体的には、ＣＰＵコア２１は、プレイヤキャラクタのゲーム空間における位置を示す３次元座標を仮想カメラの投影面の２次元座標へ変換し、当該２次元座標からタッチパネル１５上の座標系の２次元座標を算出する。算出された座標のデータは、キャラクタ２次元座標データ５６としてＲＡＭ２４に記憶される。ステップＳ５１の次にステップＳ５２の処理が行われる。
【００９５】
ステップＳ５２において、ステップＳ５１で算出されたプレイヤキャラクタの２次元座標を始点とし、現在入力位置を終点とするベクトルが算出される。このベクトルは、ＲＡＭ２４に記憶されている現在入力位置データ５１およびキャラクタ２次元座標データ５６を用いて算出される。続くステップＳ５３において、ステップＳ５２で算出されたベクトルの角度が算出される。具体的には、予め定められた基準方向を０°としたときにおける当該ベクトルの角度が算出される。続くステップＳ５４において、ステップＳ５３で算出された角度に基づいてプレイヤキャラクタがゲーム空間において移動される（図３参照）。具体的には、ＣＰＵコア２１は、ステップＳ５３で算出された角度に基づいてプレイヤキャラクタの移動方向を決定する。プレイヤキャラクタは、決定された移動方向へ所定距離だけ移動する。なお、この所定距離は、１フレームの間にプレイヤキャラクタが移動可能な距離である。所定距離は、予め定められた一定値であってもよいし、ステップＳ５２で算出されたベクトルの大きさに応じて決定されてもよい。以上に示したステップＳ５１〜Ｓ５４の処理が終了すると、ＣＰＵコア２１は移動処理を終了する。
【００９６】
図１６の説明に戻り、ステップＳ３４の処理が終了すると、ＣＰＵコア２１は第１行動判定処理を終了する。以上のように、プレイヤの描いた軌跡に反転位置がない場合（ステップＳ３２の判定結果が否定である場合）、プレイヤキャラクタはゲーム空間内を移動する動作を行う。
【００９７】
一方、上述したように、プレイヤの描いた軌跡に反転位置がある場合（ステップＳ３２の判定結果が肯定である場合）、ステップＳ３５の処理が行われる。ステップＳ３５においては、ＲＡＭ２４に記憶されている各反転位置データ５４および５５が更新される。具体的には、ＲＡＭ２４に記憶されている第１反転位置データ５４の内容を第２反転位置データ５５として記憶し、前入力位置データ５２の内容を新たな第１反転位置データ５４として記憶する。ステップＳ３５の次にステップＳ３６の処理が行われる。
【００９８】
ステップＳ３６においては、ＲＡＭ２４に記憶されている反転フラグ６３が“ＯＮ”に設定されているか否かが判定される。ステップＳ３６の処理はステップＳ３３の処理と同じである。ステップＳ３６の判定において、反転フラグ６３が“ＯＮ”に設定されていると判定される場合、後述するステップＳ４２の処理が行われる。一方、反転フラグ６３が“ＯＮ”に設定されていない（すなわち、“ＯＦＦ”に設定されている）と判定される場合、ステップＳ３７の処理が行われる。例えば図１２に示す軌跡が描かれる場合を例にとって説明すると、点Ｐ１１の位置が現在入力位置である場合、ステップＳ３２の判定結果が肯定となり、ステップＳ３６の判定結果が肯定となる。したがって、この場合、ステップＳ４２の処理へ進む。また、点Ｐ８の位置が現在入力位置である場合、ステップＳ３２の判定結果が肯定となり、ステップＳ３６の判定結果が否定となる。したがって、この場合、ステップＳ３７の処理へ進む。
【００９９】
ステップＳ３７においては、ＲＡＭ２４に記憶されている反転フラグ６３が“ＯＮ”に設定される。続くステップＳ３８においては、ＲＡＭ２４に記憶されている反転フレームカウンタ６２の値が１加算される。続くステップＳ３９において、反転フレームカウンタ６２の値が予め定められた所定値以上であるか否かが判定される。ステップＳ３９の処理は、スクラッチ操作の上記第２の条件が満たされているか否かを判定するための処理である。反転フレームカウンタ６２の値が上記所定値以上であると判定される場合、ステップＳ４０の処理が行われる。一方、反転フレームカウンタ６２の値が上記所定値よりも小さいと判定される場合、上記ステップＳ３４の移動処理が行われる。
【０１００】
ステップＳ４０においては、ＲＡＭ２４に記憶されている反転フラグ６３が“ＯＦＦ”に設定される。ステップＳ４０の処理が行われる場合には、スクラッチ操作の上記第２の条件が満たされていないからである。続くステップＳ４１において、移動処理が行われる。したがって、スクラッチ操作の上記第２の条件が満たされていない場合には、プレイヤによる操作は移動操作と判断される。なお、ステップＳ４１の移動処理は、上記ステップＳ３４の移動処理と同じである。ステップＳ４１の次に、後述するステップＳ４５の処理が行われる。
【０１０１】
一方、ステップＳ４２においては、反転フレームカウンタ６２の値が予め定められた所定値以上であるか否かが判定される。ステップＳ４２の処理は、上記ステップＳ３９の処理と同じである。反転フレームカウンタ６２の値が上記所定値以上であると判定される場合、上記ステップＳ４０の処理が行われる。一方、反転フレームカウンタ６２の値が上記所定値よりも小さいと判定される場合、ステップＳ４３の処理が行われる。
【０１０２】
ステップＳ４３においては、軌跡ベクトルが算出される。この軌跡ベクトルは、上記第２反転位置を始点とし、上記第１反転位置を終点とするベクトルである。したがって、この軌跡ベクトルは、ＲＡＭ２４に記憶されている各反転位置データ５４および５５を用いて算出することができる。ステップＳ４３の次にステップＳ４４の処理が行われる。
【０１０３】
ステップＳ４４においては、攻撃処理が行われる。攻撃処理は、ゲーム空間内においてプレイヤキャラクタに攻撃のアクションを行わせる処理である。以下、図１８を用いて攻撃処理の詳細を説明する。
【０１０４】
図１８は、図１６に示すステップＳ４４の詳細な処理の流れを示すフローチャートである。攻撃処理においてはまずステップＳ６１において、プレイヤキャラクタの画面上における位置を示す２次元座標が算出される。ステップＳ６１の処理は、図１７の上記ステップＳ５１の処理と同じである。続くステップＳ６２において、基準ベクトルが算出される。上述したように、基準ベクトルは、ステップＳ５１で算出されたプレイヤキャラクタの２次元座標を始点とし、現在入力位置を終点とするベクトルである。したがって、基準ベクトルは、ＲＡＭ２４に記憶されている現在入力位置データ５１およびキャラクタ２次元座標データ５６を用いて算出される。算出された基準ベクトルのデータは、基準ベクトルデータ６０としてＲＡＭ２４に記憶される。ステップＳ６２の次にステップＳ６３が行われる。
【０１０５】
ステップＳ６３においては、軌跡ベクトルと基準ベクトルとのなす角度が算出される。この角度は、ＲＡＭ２４に記憶されている軌跡ベクトルデータ５９および基準ベクトルデータ６０を用いて算出される。続くステップＳ６４において、ステップＳ６３で算出された角度に基づいて、プレイヤキャラクタが行うべきアクションが決定される。具体的には、ステップＳ６３で算出された角度が上記第１〜第４範囲（図８参照）のいずれに属するかによって、プレイヤキャラクタが行うべきアクションが決定される。
【０１０６】
続くステップＳ６５において、ＣＰＵコア２１は、ステップＳ６４で決定されたアクションをプレイヤキャラクタに実行させる。すなわち、プレイヤキャラクタが当該アクションを行うゲーム画像を第２のＬＣＤに表示させる。なお、プレイヤキャラクタが行うアクションのアニメーションは、複数のフレームにわたって表示される。ここで、ステップＳ６５の時点において、以前に行われた攻撃のアクションがまだ終了していない場合（すなわち、攻撃フラグ６４が“ＯＮ”の場合）、ＣＰＵコア２１は、当該アクションが終了した後に続けて、直前のステップＳ６４で決定されたアクションをプレイヤキャラクタに実行させるようにしてもよい。これによって、プレイヤキャラクタの攻撃のアクション中においてプレイヤによってさらに攻撃操作が行われた場合、連続して攻撃のアクションが行われることになる。
【０１０７】
続くステップＳ６６において、ＲＡＭ２４に記憶されている攻撃フラグ６４の内容が“ＯＮ”に設定される。ステップＳ６６の後、ＣＰＵコア２１は攻撃処理を終了する。
【０１０８】
図１６の説明に戻り、ステップＳ４４の攻撃処理の次に、ステップＳ４５の処理が行われる。すなわち、ステップＳ４５においては、ＲＡＭ２４に記憶されている反転フレームカウンタ６２の値が初期化される（すなわち、０に設定される）。ステップＳ４５の後、ＣＰＵコア２１は第１行動判定処理を終了する。以上で、第１行動判定処理の説明を終了する。
【０１０９】
図１５の説明に戻り、ステップＳ１５の行動判定処理の次にステップＳ１６の処理が行われる。すなわち、ステップＳ１６において、ＣＰＵコア２１は、ＲＡＭ２４に記憶されている現在入力位置データ５１の内容を前入力位置データ５２としてＲＡＭ２４に記憶する。ステップＳ１６の処理は、上記ステップＳ７の処理と同じ処理である。ステップＳ１６の次にステップＳ１７の処理が行われる。
【０１１０】
ステップＳ１７においては、プレイヤキャラクタの攻撃アクションが終了したか否かが判定される。すなわち、上記攻撃処理のステップＳ６５において開始された攻撃アクションのアニメーションが終了したか否かが判定される。当該アニメーションの最後のフレームが画面に表示されている場合、プレイヤキャラクタの攻撃アクションが終了したと判定され、ステップＳ１８およびＳ１９の処理が行われる。一方、当該アニメーションがまだ終了していない場合、または、当該アニメーションが表示されていない場合には、ステップＳ１８およびＳ１９の処理がスキップされてステップＳ２０の処理が行われる。
【０１１１】
ステップＳ１８においては、ＣＰＵコア２１は、敵キャラクタのダメージを計算する処理を行う。つまり、上記ステップＳ６５で実行されたアクションに応じたダメージが敵キャラクタに与えられる。具体的には、まず、ＣＰＵコア２１は、ステップＳ６５において実行されたアクションによる攻撃が敵キャラクタに命中したか否かを判定し、命中した場合にはどの敵キャラクタに命中したかを検出する。当該攻撃が命中していない場合は、ステップＳ１８の処理を終了する。ここで、ＲＡＭ２４には、プレイヤキャラクタのアクションと、そのアクションによる敵キャラクタのダメージとを対応付けたテーブルが記憶されている。上記攻撃が命中した場合、ＣＰＵコア２１は、当該テーブルを参照して、ステップＳ６５で実行されたアクションに対応するダメージを敵キャラクタに与える。すなわち、敵キャラクタの体力を示すパラメータをダメージに応じて減少させる。以上のステップＳ１８の後、ステップＳ１９の処理が行われる。ステップＳ１９においては、ＲＡＭ２４に記憶されている攻撃フラグ６４が“ＯＦＦ”に設定される。ステップＳ１９の後、ステップＳ２０の処理が行われる。
【０１１２】
ステップＳ２０においては、プレイヤがタッチオフしたか否か、すなわち、タッチ入力がなくなったか否かが判定される。ステップＳ２０の判定は、ステップＳ３と同様の方法で行われる。すなわち、ＣＰＵコア２１は、タッチパネル１５から出力されるデータを読み込み、タッチパネル１５から座標データが出力されているか否かを判定する。タッチパネル１５から座標データが出力されている場合、タッチ入力があると判定されてステップＳ１１の処理が行われる。以降、タッチ入力がないと判定されるまでステップＳ１１〜Ｓ２０の処理が繰り返される。なお、ステップＳ２０の次のステップＳ１１では、ステップＳ２０で読み込まれた座標データが現在入力位置データ５１としてＲＡＭ２４に記憶される。一方、ステップＳ２０の判定において、入力がないことを示すデータがタッチパネル１５から出力されている場合、タッチ入力がなくなったと判定されてステップＳ２１の処理が行われる。
【０１１３】
ステップＳ２１においては、第２行動判定処理が行われる。第２行動判定処理は、直前のステップＳ１１〜Ｓ２０のループにおいて検出されたプレイヤの操作が通常攻撃の攻撃操作であるか否かを判定し、通常攻撃の攻撃操作である場合にはプレイヤキャラクタに通常攻撃を行わせる処理である。以下、図１９を用いて第２行動判定処理の詳細を説明する。
【０１１４】
図１９は、図１５に示すステップＳ２１の詳細な処理の流れを示すフローチャートである。第２行動判定処理においてはまずステップＳ７１において、ＲＡＭ２４に記憶されている総フレームカウンタ６１の値が、予め定められた所定値以下であるか否かが判定される。総フレームカウンタ６１の値が所定値以下である場合、ステップＳ７２の処理が行われる。一方、総フレームカウンタ６１の値が所定値よりも大きい場合、ＣＰＵコア２１は第２行動判定処理を終了する。ステップＳ７１の処理は、直前のステップＳ１１〜Ｓ２０においてプレイヤによって描かれた軌跡が、予め定められた所定時間以内に入力されたか否かを判定するための処理である。
【０１１５】
ステップＳ７２においては、軌跡ベクトルが算出される。この軌跡ベクトルは、ステップＳ１１〜Ｓ２０においてプレイヤによって描かれた軌跡の始点から終点までを結ぶベクトルである。すなわち、軌跡ベクトルは、初期入力位置を始点とし、最後の入力位置を終点とするベクトルである。したがって、ＣＰＵコア２１は、ＲＡＭ２４に記憶されている初期入力位置データ５３および現在入力位置データ５１を用いて軌跡ベクトルを算出する。
【０１１６】
続くステップＳ７３においては、ステップＳ７２で算出された軌跡ベクトルの大きさが、予め定められた所定値以上であるか否かが判定される。軌跡ベクトルの大きさが所定値以上である場合、ステップＳ７４の処理が行われる。一方、軌跡ベクトルの大きさが所定値よりも小さい場合、ＣＰＵコア２１は第２行動判定処理を終了する。ステップＳ７３の処理は、直前のステップＳ１１〜Ｓ２０においてプレイヤによって描かれた軌跡が、予め定められた所定の長さ以上であるか否かを判定するための処理である。
【０１１７】
ステップＳ７４においては、攻撃処理が行われる。ステップＳ７４の攻撃処理は、上記ステップＳ３４の攻撃処理と同じである。ただし、第１行動判定処理における攻撃処理と、第２行動判定処理における攻撃処理とで、プレイヤキャラクタが行うアクションを異なるようにしてもよい。続くステップＳ７５において、ＣＰＵコア２１は、敵キャラクタのダメージを計算する処理を行う。ステップＳ７５の処理は上記ステップＳ１８の処理と同じである。続くステップＳ７６において、ステップＳ１９と同様のステップＳ７７の処理が行われる。ステップＳ７７の後、ＣＰＵコア２１は、図１５に示す第２行動判定処理を終了する。また、図１５において、ステップＳ１８の第２行動判定処理が終了すると、ＣＰＵコア２１はメイン処理を終了する。
【０１１８】
図１４の説明に戻り、ステップＳ８のメイン処理の次にステップＳ９の処理が行われる。すなわち、ステップＳ９において、ゲームを終了するか否かが判定される。ステップＳ９の判定は、例えば、プレイヤキャラクタの体力が０になったか否かや、プレイヤキャラクタが全ての敵キャラクタを倒したか否か等によって行われる。ステップＳ９の判定において、ゲームを終了すると判定された場合、ＣＰＵコア２１は、図１４に示すゲーム処理を終了する。一方、ゲームを終了しないと判定された場合、ステップＳ３の処理が行われ、以降、ステップＳ９においてゲームを終了すると判定されるまでステップＳ３〜Ｓ９の一連の処理が繰り返される。以上で、ゲーム処理の詳細な説明を終了する。
【０１１９】
なお、以上に説明したゲーム処理においては、敵キャラクタの動作の制御については特に触れていないが、ＣＰＵコア２１は、１フレーム毎に敵キャラクタの動作を制御する処理を行う。すなわち、予め定められたアルゴリズムに従って各敵キャラクタを移動させたり、攻撃させたりする。さらに、ゲーム処理中においては、敵キャラクタによるプレイヤキャラクタへの攻撃が命中したか否かが判定され、命中した場合には攻撃に応じたダメージをプレイヤキャラクタに与える処理が行われる。
【０１２０】
また、以上に説明したゲーム処理において、ある入力位置とその次に検出された入力位置との距離が所定長さよりも短い場合、当該次に検出された入力位置を無視するようにしてもよい。具体的には、ステップＳ１３において算出される現在差分ベクトルの大きさが、予め定められた所定長さよりも小さい場合、ステップＳ１６の処理を行わないようにしてもよい。また、この場合、現在差分ベクトルデータは更新されず、直前のステップＳ１２で更新された前差分ベクトルデータは更新前の内容に戻される。このような短い差分ベクトルがある場合、現在差分ベクトルと前差分ベクトルとの角度差を算出する処理（ステップＳ３１）において反転位置を正確に選出することができないおそれがあるからである。
【０１２１】
以上のように、本実施形態によれば、プレイヤキャラクタは、軌跡ベクトルと基準ベクトルとの角度に応じて異なる攻撃アクションを行う。したがって、プレイヤは、タッチパネル１５を用いてプレイヤキャラクタに多彩なアクションを容易に行わせることができる。
【０１２２】
なお、本実施形態においては、画面上の任意の位置を指定することができるタッチパネルを入力装置として用いて、プレイヤキャラクタの表示位置を基準ベクトルの始点位置とした。ここで、他の実施形態では、入力装置は、タッチパッドのように、入力面上の任意の位置を指定することができる装置であってもよい。このとき、基準ベクトルの始点位置は、タッチパッドの入力面上における予め定められた所定位置（例えば、入力面の中心位置）に設定される。
【産業上の利用可能性】
【０１２３】
以上のように、本発明は、ポインティングデバイスの入力を用いたゲームにおいて、プレイヤキャラクタに多彩なアクションを行わせること等を目的としてゲームプログラムおよびゲーム装置に利用することが可能である。
【図面の簡単な説明】
【０１２４】
【図１】本発明の一実施形態に係るゲーム装置の外観図
【図２】ゲーム装置の内部構成図
【図３】ゲーム装置１０の第２のＬＣＤ１２に表示されるゲーム画面の例を示す図
【図４】プレイヤが通常攻撃の攻撃操作を行うときのゲーム画面を示す図
【図５】図４に示す軌跡Ｔ１を示す図
【図６】図５に示す現在入力位置および前入力位置を示す図
【図７】軌跡ベクトルおよび基準ベクトルを示す図
【図８】プレイヤキャラクタの攻撃のアクションを決定する方法を説明するための図
【図９】プレイヤキャラクタが「突き」の攻撃アクションを行う際のゲーム画面を示す図
【図１０】プレイヤキャラクタが「右斬り」の攻撃アクションを行う際のゲーム画面を示す図
【図１１】プレイヤがスクラッチ操作を行うときのゲーム画面を示す図
【図１２】プレイヤによって描かれた軌跡の一例を示す図
【図１３】ゲーム装置１０のＲＡＭ２４に記憶される主なデータを示す図
【図１４】ゲーム装置１０において実行されるゲーム処理の流れを示すフローチャート
【図１５】図１４に示すステップＳ８の詳細な処理の流れを示すフローチャート
【図１６】図１５に示すステップＳ１５の詳細な処理の流れを示すフローチャート
【図１７】図１６に示すステップＳ３４の詳細な処理の流れを示すフローチャート
【図１８】図１６に示すステップＳ４４の詳細な処理の流れを示すフローチャート
【図１９】図１５に示すステップＳ２１の詳細な処理の流れを示すフローチャート
【符号の説明】
【０１２５】
１０  ゲーム装置
１１，１２  ＬＣＤ
２１  ＣＰＵコア
２４  ＲＡＭ
４１  プレイヤキャラクタ
４２  敵キャラクタ
５９  軌跡ベクトルデータ
６０  基準ベクトルデータ
【図１】
2006325695.tif 000003
【図２】
2006325695.tif 000004
【図３】
2006325695.tif 000005
【図４】
2006325695.tif 000006
【図５】
2006325695.tif 000007
【図６】
2006325695.tif 000008
【図７】
2006325695.tif 000009
【図８】
2006325695.tif 000010
【図９】
2006325695.tif 000011
【図１０】
2006325695.tif 000012
【図１１】
2006325695.tif 000013
【図１２】
2006325695.tif 000014
【図１３】
2006325695.tif 000015
【図１４】
2006325695.tif 000016
【図１５】
2006325695.tif 000017
【図１６】
2006325695.tif 000018
【図１７】
2006325695.tif 000019
【図１８】
2006325695.tif 000020
【図１９】
2006325695.tif 000021