(58)【調査した分野】(Int.Cl.,DB名)
前記入力処理プログラムは、前記コンピュータを、前記仮想オブジェクト移動制御手段による前記仮想オブジェクトの移動が開始された後、所定の入力を受け付ける移動中入力受付手段として更に機能させ、
前記仮想オブジェクト移動制御手段は、前記移動中入力受付手段が入力を受け付けたとき、その入力内容に応じて前記仮想オブジェクトの移動方向を変化させる移動方向変化手段を含む、請求項1に記載の入力処理プログラム。
前記入力処理プログラムは、前記コンピュータを、前記仮想オブジェクト移動制御手段による前記仮想オブジェクトの移動が開始された後、所定の入力を受け付ける移動中入力受付手段として更に機能させ、
前記仮想オブジェクト移動制御手段は、前記入力モードが前記第1の入力モードのときにおいて前記移動中入力受付手段が入力を受け付けたときに、当該入力内容に応じて前記仮想オブジェクトの移動方向を変化させる移動方向変化手段を含む、請求項3に記載の入力処理プログラム。
前記移動方向変化手段は、前記入力モードが前記第1の入力モードのときに受け付けられた入力内容が、前記予め定められた所定の1軸とは異なる軸方向への指示であるときに、前記仮想オブジェクトの移動方向を当該指示された軸方向へ変化させる、請求項4に記載の入力処理プログラム。
前記ポインティングデバイスの入力に基づいた前記仮想オブジェクトの移動速度は、前記ポインティングデバイスとは異なる入力手段に基づいた仮想オブジェクトの移動速度よりも高速である、請求項6に記載の入力処理プログラム。
前記入力処理プログラムは、前記コンピュータを、前記始点位置と終点位置との間の距離に応じて前記仮想オブジェクトの移動速度または加速度を設定する速度設定手段として更に機能させ、
前記仮想オブジェクト移動制御手段は、前記速度設定手段で設定された移動速度または加速度に基づいて前記仮想オブジェクトを移動させる、請求項1に記載の入力処理プログラム。
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記非特許文献1のゲームでは、画面に表示されるパチンコ玉を直接タッチしてスライド操作するものであった。そのため、スライド操作を開始する位置が固定的に決められていた。
【0005】
それ故に、この発明の主たる目的は、操作性を向上することのできる、入力処理プログラム、入力処理装置、入力処理方法および入力処理システムを提供することである。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明は以下のような構成を採用した。
【0007】
本発明にかかる入力処理プログラムは、画面上の位置を指示するためのポインティングデバイスを備える入力処理装置のコンピュータを、指示入力検出手段と、始点位置設定手段と、指示状態判別手段と、終点位置設定手段と、方向特定手段と、仮想オブジェクト移動制御手段として機能させる。指示入力検出手段は、ポインティングデバイスによる画面上の位置の指示入力が行われたか否かを検出する。始点位置設定手段は、指示入力検出手段によって画面上の位置の指示が行われたことが検出されたとき、ポインティングデバイスから出力される画面上の位置を示す座標値を始点位置として設定する。指示状態判別手段は、始点位置設定手段によって始点位置が設定された後、ポインティングデバイスによる画面上の位置の指示が継続的に行われている状態から、当該ポインティングデバイスによる画面上の位置の指示が行われていない状態である非指示状態へと変化したか否かを判別する。終点位置設定手段は、指示状態判別手段によって非指示状態へ変化したことが判別されたとき、当該非指示状態となる前にポインティングデバイスから出力され、かつ、始点位置とは異なる座標値を終点位置として設定する。方向特定手段は、始点位置から終点位置への方向を特定する。仮想オブジェクト移動制御手段は、方向特定手段によって特定された方向とは異なる方向を移動方向として仮想オブジェクトを移動させる。
【0008】
上記構成により、始点位置から終点位置への変化方向とは異なる方向に仮想オブジェクトを移動させるための入力の開始位置をユーザが自由に決めることができ、仮想オブジェクトに対する操作性を向上することができる。
【0009】
他の構成例として、仮想オブジェクト移動制御手段は、始点位置と終点位置とが異なる座標値であるときに仮想オブジェクトを移動させるようにしてもよい。
【0010】
上記構成により、画面上の位置の指示操作について、継続的指示における位置の変化があったときに仮想オブジェクトを動かすことができ、直感的な操作感を提供できる。
【0011】
更に他の構成例として、入力処理プログラムは、コンピュータを、仮想オブジェクト移動制御手段による仮想オブジェクトの移動が開始された後、所定の入力を受け付ける移動中入力受付手段として更に機能させ、仮想オブジェクト移動制御手段は、移動中入力受付手段が入力を受け付けたとき、その入力内容に応じて仮想オブジェクトの移動方向を変化させる移動方向変化手段を含んでいてもよい。
【0012】
上記構成例によれば、始点位置から終点位置への方向とは異なる方向に仮想オブジェクトを移動させるための入力を行った後も、仮想オブジェクトに対してその移動方向を変化させることができ、仮想オブジェクトに対する操作性をより高めることができる。
【0013】
更に他の構成例として、入力処理プログラムは、コンピュータを、第1の入力モードと第2の入力モードとの間で入力モードを切り替える切替手段として更に機能させ、方向特定手段は、入力モードが第1のモードのときは、始点位置から終点位置への方向として、予め定められた所定の1軸の座標値に基づいて方向を特定し、第2のモードのときは、少なくとも2軸の座標値に基づいて方向を特定するようにしてもよい。
【0014】
上記構成例によれば、上記始点位置から終点位置への方向を異なる軸の座標値に基づいて特定する複数の入力モードを有するので、操作の多様性を実現することができ、仮想オブジェクトを移動させるようなゲームの興趣性を高めることが可能となる。
【0015】
更に他の構成例として、入力処理プログラムは、コンピュータを、仮想オブジェクト移動制御手段による仮想オブジェクトの移動が開始された後、所定の入力を受け付ける移動中入力受付手段として更に機能させ、仮想オブジェクト移動制御手段は、入力モードが第1のモードのときにおいて移動中入力受付手段が入力を受け付けたときに、当該入力内容に応じて仮想オブジェクトの移動方向を変化させる移動方向変化手段を含んでいてもよい。
【0016】
上記構成例によれば、上記始点位置から終点位置への方向が1軸方向に特定される入力モードにおいては、その後の方向変化を受け付けることにより、それぞれ異なる手法で方向を変化させる複数の入力モードを有することができ、操作の多様性を実現することが可能となり、仮想オブジェクトを移動させるようなゲームの興趣性を高めることが可能となる。
【0017】
移動方向変化手段は、入力モードが第1のモードのときに受け付けられた入力内容が、予め定められた所定の1軸とは異なる軸方向への指示であるときに、仮想オブジェクトの移動方向を当該指示された軸方向へ変化させるようにしてもよい。
【0018】
上記構成例によれば、仮想オブジェクトの移動を開始するときの方向とは異なる方向に、仮想オブジェクトの移動を開始した後(移動中)に移動方向を変化させることができ、移動操作の自由度を向上することが可能となる。
【0019】
更に他の構成例として、移動中入力受付手段は、ポインティングデバイスとは異なる入力手段からの入力を受け付けるようにしてもよい。
【0020】
上記構成例によれば、例えば、ポインティングデバイス以外の入力用デバイス(アナログスティック等)を用いて、移動中の仮想オブジェクトの移動方向を変化させることができ、複数種類の入力デバイスを使い分けることができ、操作性をより高めることができる。
【0021】
更に他の構成例として、入力処理プログラムは、コンピュータを、仮想オブジェクト移動制御手段による仮想オブジェクトの移動が開始された後、所定の入力を受け付ける移動中入力受付手段として更に機能させ、仮想オブジェクト移動制御手段は、移動中入力受付手段が所定の入力を受け付けたとき、その入力に応じて仮想オブジェクトの移動を停止させる停止制御手段を含んでいてもよい。
【0022】
上記構成例によれば、始点位置から終点位置への方向とは異なる方向に仮想オブジェクトを移動させるための入力を行った後に仮想オブジェクトを停止させる入力を行うことができ、仮想オブジェクトに対する操作性を高めることができる。
【0023】
更に他の構成例として、コンピュータを、画面上の位置を示す座標値として、所定時間以上継続して同じ値がポインティングデバイスから出力されたか否かを判定する長押し判定手段として更に機能させ、停止制御手段は、長押し判定手段によって、所定時間以上継続して同じ値が出力されたと判定されたとき、仮想オブジェクトの移動を停止するようにしてもよい。
【0024】
上記構成例によれば、仮想オブジェクトを停止させる操作として、例えばタッチパネルに対するロングタッチのような、直感的で判りやすい操作を提供できる。
【0025】
更に他の構成例として、方向特定手段は、少なくとも1軸の座標値に基づいて、始点位置から終点位置への方向を特定し、仮想オブジェクト移動制御手段は、方向特定手段によって特定された方向と相反する方向に対応する仮想空間内の方向を仮想オブジェクトの移動方向するようにしてもよい。
【0026】
上記構成例によれば、例えば、ユーザがタッチパネル上でスライド操作を行った方向と相反する方向に仮想オブジェクトが移動するため、入力方向に反動して仮想オブジェクトが移動するような操作を直感的な操作に実現することができる。
【0027】
更に他の構成例として、入力処理プログラムは、コンピュータを、始点位置と終点位置との間の距離に応じて仮想オブジェクトの移動速度または加速度を設定する速度設定手段として更に機能させ、仮想オブジェクト移動制御手段は、速度設定手段で設定された移動速度または加速度に基づいて仮想オブジェクトを移動させるようにしてもよい。
【0028】
上記構成例によれば、例えば、ユーザがタッチパネル上でスライド操作を行った距離に応じて仮想オブジェクトの移動速度が設定されるため、違和感の無い直感的な操作感を提供することができる。
【0029】
更に他の構成例として、入力処理装置は、第1の画面と第2の画面を備えており、ポインティングデバイスは、第2の画面上の位置を指示するために用いられ、仮想オブジェクトは第1の画面に表示されるようにしてもよい。
【0030】
上記構成例によれば、仮想オブジェクトが表示される画面とポインティングデバイスによる操作対象となる画面を分離することができ、仮想オブジェクトが表示される画面を見やすくすることが可能となる。
【0031】
更に他の構成例として、ポインティングデバイスはタッチパネルであってもよい。
【0032】
上記構成例によれば、直感的でわかりやすい操作感を提供することができる。
【0033】
本発明にかかる入力処理装置は、画面上の位置を指示するためのポインティングデバイスを備える入力処理装置であって、指示入力検出手段と、始点位置設定手段と、指示状態判別手段と、終点位置設定手段と、方向特定手段と、仮想オブジェクト移動制御手段とを備える。指示入力検出手段は、ポインティングデバイスによる画面上の位置の指示入力が行われたか否かを検出する。始点位置設定手段は、指示入力検出手段によって画面上の位置の指示が行われたことが検出されたとき、ポインティングデバイスから出力される画面上の位置を示す座標値を始点位置として設定する。指示状態判別手段は、始点位置設定手段によって始点位置が設定された後、ポインティングデバイスによる画面上の位置の指示が継続的に行われている状態から、当該ポインティングデバイスによる画面上の位置の指示が行われていない状態である非指示状態へと変化したか否かを判別する。終点位置設定手段は、指示状態判別手段によって非指示状態へ変化したことが判別されたとき、当該非指示状態となる前にポインティングデバイスから出力された座標値を終点位置として設定する。方向特定手段は、始点位置から終点位置への方向を特定する。仮想オブジェクト移動制御手段は、方向特定手段によって特定された方向とは異なる方向を移動方向として、仮想オブジェクトを移動させる。
【0034】
本発明にかかる入力処理方法は、画面上の位置を指示するためのポインティングデバイスを備える入力処理装置に用いられる入力処理方法であって、指示入力検出ステップと、始点位置設定ステップと、指示状態判別ステップと、終点位置設定ステップと、方向特定ステップと、仮想オブジェクト移動制御ステップとを備える。指示入力検出ステップは、ポインティングデバイスによる画面上の位置の指示入力が行われたか否かを検出する。始点位置設定ステップは、指示入力検出ステップによって画面上の位置の指示が行われたことが検出されたとき、ポインティングデバイスから出力される画面上の位置を示す座標値を始点位置として設定する。指示状態判別ステップは、始点位置設定ステップによって始点位置が設定された後、ポインティングデバイスによる画面上の位置の指示が継続的に行われている状態から、当該ポインティングデバイスによる画面上の位置の指示が行われていない状態である非指示状態へと変化したか否かを判別する。終点位置設定ステップは、指示状態判別ステップによって非指示状態へ変化したことが判別されたとき、当該非指示状態となる前にポインティングデバイスから出力された座標値を終点位置として設定する。方向特定ステップは、始点位置から終点位置への方向を特定する。仮想オブジェクト移動制御ステップは、方向特定ステップによって特定された方向とは異なる方向を移動方向として、仮想オブジェクトを移動させる。
【0035】
本発明にかかる入力処理システムは、画面上の位置を指示するためのポインティングデバイスを備える入力処理システムであって、指示入力検出手段と、始点位置設定手段と、指示状態判別手段と、終点位置設定手段と、方向特定手段と、仮想オブジェクト移動制御手段とを備える。指示入力検出手段は、ポインティングデバイスによる表示画面上の位置の指示入力が行われたか否かを検出する。始点位置設定手段は、指示入力検出手段によって画面上の位置の指示が行われたことが検出されたとき、ポインティングデバイスから出力される画面上の位置を示す座標値を始点位置として設定する。指示状態判別手段は、始点位置設定手段によって始点位置が設定された後、ポインティングデバイスによる画面上の位置の指示が継続的に行われている状態から、当該ポインティングデバイスによる画面上の位置の指示が行われていない状態である非指示状態へと変化したか否かを判別する。終点位置設定手段は、指示状態判別手段によって非指示状態へ変化したことが判別されたとき、当該非指示状態となる前にポインティングデバイスから出力された座標値を終点位置として設定する。方向特定手段は、始点位置から終点位置への方向を特定する。仮想オブジェクト移動制御手段は、方向特定手段によって特定された方向とは異なる方向を移動方向として、仮想オブジェクトを移動させる。
【発明の効果】
【0036】
本発明によれば、始点位置から終点位置への方向とは異なる方向に仮想オブジェクトを移動させるための入力の開始位置をユーザが自由に決めることができ、操作性を向上することができる。
【発明を実施するための形態】
【0038】
以下、本発明の実施の形態について、図面を参照して説明する。尚、この実施例により本発明が限定されるものではない。
【0039】
図1において、ゲーム装置10は、折り畳み型の携帯ゲーム装置であり、開いた状態(開状態)のゲーム装置10を示している。ゲーム装置10は、開いた状態においてもユーザが両手または片手で把持することができるようなサイズで構成される。
【0040】
ゲーム装置10は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、開閉可能(折り畳み可能)に連結されている。
図1の例では、下側ハウジング11および上側ハウジング21は、それぞれ横長の長方形の板状で形成され、互いの長辺部分で回転可能に連結されている。通常、ユーザは、開状態でゲーム装置10を使用する。また、ユーザは、ゲーム装置10を使用しない場合には閉状態としてゲーム装置10を保管する。
【0041】
下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12が設けられる。下側LCD12は横長形状であり、長辺方向が下側ハウジング11の長辺方向に一致するように配置される。なお、本実施形態では、ゲーム装置10に内蔵されている表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置等、他の任意の表示装置を利用してもよい。また、ゲーム装置10は、任意の解像度の表示装置を利用することができる
【0042】
下側ハウジング11には、入力装置として、各操作ボタン14A〜14Lおよびタッチパネル13が設けられる。各操作ボタン14A〜14Lは、所定の入力を行うための入力装置である。
図1に示されるように、下側ハウジング11の内側面(主面)には、各操作ボタン14A〜14Lのうち、十字ボタン14A(方向入力ボタン14A)、ボタン14B、ボタン14C、ボタン14D、ボタン14E、電源ボタン14F、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lが、設けられる。十字ボタン14Aは、十字の形状を有しており、上下左右の方向を指示するボタンを有している。ボタン14B、ボタン14C、ボタン14D、ボタン14Eは、十字状に配置される。ボタン14A〜14E、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lには、ゲーム装置10が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン14Aは選択操作等に用いられ、各操作ボタン14B〜14Eは例えば決定操作やキャンセル操作等に用いられる。また、電源ボタン14Fは、ゲーム装置10の電源をオン/オフするために用いられる。
【0043】
アナログスティック15は、方向を指示するデバイスであり、下側ハウジング11の内側面の下側LCD12より左側領域の上部領域に設けられる。なお、アナログスティック15として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いても良い。
【0044】
十字状に配置される、ボタン14B、ボタン14C、ボタン14D、ボタン14Eの4つのボタンは、下側ハウジング11を把持する右手の親指が自然と位置するところに配置される。また、これらの4つのボタンと、アナログスティック15とは、下側LCD12を挟んで、左右対称に配置される。これにより、ゲームプログラムによっては、例えば、左利きの人が、これらの4つのボタンを使用して方向指示入力をすることも可能である。
【0045】
また、下側ハウジング11の内側面には、マイクロフォン用孔18が設けられる。マイクロフォン用孔18の下部には後述する音声入力装置としてのマイクが設けられ、当該マイクがゲーム装置10の外部の音を検出する。
【0046】
なお、
図1においては、操作ボタン14G〜14Iの図示を省略している。例えば、Lボタン14Gは、下側ハウジング11の上側面の左端部に設けられ、Rボタン14Hは、下側ハウジング11の上側面の右端部に設けられる。Lボタン14GおよびRボタン14Hは、ゲーム装置10に対して、例えば撮影指示操作(シャッター操作)を行うために用いられる。さらに、音量ボタン14Iは、下側ハウジング11の左側面に設けられる。音量ボタン14Iは、ゲーム装置10が備えるスピーカの音量を調整するために用いられる。
【0047】
また、ゲーム装置10は、各操作ボタン14A〜14Kとは別の入力装置として、さらにタッチパネル13を備えている。タッチパネル13は、下側LCD12の画面上に装着されている。なお、本実施形態では、タッチパネル13は、例えば抵抗膜方式のタッチパネルが用いられる。ただし、タッチパネル13は、抵抗膜方式に限らず、任意の押圧式のタッチパネルを用いることができる。また、本実施形態では、タッチパネル13として、例えば下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル13の解像度と下側LCD12の解像度とが一致している必要はない。また、下側ハウジング11の上側面には挿入口17(
図1に示す点線)が設けられている。挿入口17は、タッチパネル13に対する操作を行うために用いられるタッチペン28を収納することができる。なお、タッチパネル13に対する入力は通常タッチペン28を用いて行われるが、タッチペン28に限らずユーザの指でタッチパネル13に対する入力をすることも可能である。
【0048】
また、下側ハウジング11の左側面には開閉可能なカバー部11C(図示は省略)が設けられる。このカバー部11Cの内側には、ゲーム装置10とデータ保存用外部メモリ45とを電気的に接続するためのコネクタ(図示せず)が設けられる。データ保存用外部メモリ45は、コネクタに着脱自在に装着される。データ保存用外部メモリ45は、例えば、ゲーム装置10によって撮像された画像のデータを記憶(保存)するために用いられる。なお、上記コネクタおよびそのカバー部11Cは、下側ハウジング11の右側面に設けられてもよい。
【0049】
さらに、下側ハウジング11の上側面には、ゲーム装置10とゲームプログラムを記録した外部メモリ44を挿入するための挿入口11D(図示は省略)が設けられ、その挿入口11Dの内部には、外部メモリ44と電気的に着脱自在に接続するためのコネクタ(図示せず)が設けられる。当該外部メモリ44がゲーム装置10に接続されることにより、所定のゲームプログラムが実行される。なお、上記コネクタおよびその挿入口11Dは、下側ハウジング11の他の側面(例えば、右側面等)に設けられてもよい。
【0050】
また、下側ハウジング11の下側面にはゲーム装置10の電源のON/OFF状況をユーザに通知する第1LED16A、下側ハウジング11の右側面にはゲーム装置10の無線通信の確立状況をユーザに通知する第2LED16B(図示は省略)が設けられる。ゲーム装置10は他の機器との間で無線通信を行うことが可能であり、第2LED16Bは、無線通信が確立している場合に点灯する。ゲーム装置10は、例えば、IEEE802.11b/gの規格に準拠した方式により、無線LANに接続する機能を有する。下側ハウジング11の右側面には、この無線通信の機能を有効/無効にする無線スイッチ19(図示は省略)が設けられる
【0051】
一方、上側ハウジング21には、上側LCD22が設けられる。上側LCD22は横長形状であり、長辺方向が上側ハウジング21の長辺方向に一致するように配置される。なお、下側LCD12と同様、上側LCD22に代えて、他の任意の方式および任意の解像度の表示装置を利用してもよい。なお、上側LCD22上を覆うように、タッチパネルを設けてもかまわない。
【0052】
また、上側ハウジング21には、上側LCD(Liquid Crystal Display:液晶表示装置)22、外側撮像部23(外側撮像部(左)23aおよび外側撮像部(右)23b)、内側撮像部24、3D調整スイッチ25、および、3Dインジケータ26が設けられる。上側LCD22は、横長形状であり、長辺方向が上側ハウジング21の長辺方向に一致するように配置される。上側LCD22は上側ハウジング21の中央に配置される。上側LCD22の画面の面積は、下側LCD12の画面の面積よりも大きく設定される。また、上側LCD22の画面は、下側LCD12の画面よりも横長に設定される。
【0053】
上側LCD22の画面は、上側ハウジング21の内側面(主面)21Bに設けられ、上側ハウジング21に設けられた開口部から当該上側LCD22の画面が露出される。上側LCD22の画素数は、例えば、640dot×200dot(横×縦)であってもよい。なお、本実施形態では上側LCD22は液晶表示装置であるとしたが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置などが利用されてもよい。また、上側LCD22として、任意の解像度の表示装置を利用することができる。
【0054】
上側LCD22は、立体視可能な画像を表示することが可能な表示装置である。本実施例では、裸眼立体視可能な表示装置である。そして、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式(視差バリア方式)のものが用いられる。本実施形態では、上側LCD22はパララックスバリア方式のものとする。また、上側LCD22は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる。このように、上側LCD22は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する(平面視画像を表示する)平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、スライドスイッチである3D調整スイッチ25によって行われる。
【0055】
外側撮像部23は、上側ハウジング21の外側面(上側LCD22が設けられた主面と反対側の背面)21Dに設けられた2つの撮像部(23aおよび23b)の総称である。外側撮像部(左)23aおよび外側撮像部(右)23bは、上側LCD22(上側ハウジング21)の左右方向に関して中央から対称となる位置にそれぞれ配置される。
【0056】
内側撮像部24は、上側ハウジング21の内側面(主面)21Bに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部24は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0057】
3Dインジケータ26は、上側LCD22が立体表示モードか否かを示す。3Dインジケータ26は、LEDであり、上側LCD22の立体表示モードが有効の場合に点灯する。
【0058】
また、上側ハウジング21の内側面には、スピーカ孔21Eが設けられる。後述するスピーカ43からの音声がこのスピーカ孔21Eから出力される。
【0059】
(ゲーム装置10の内部構成)
次に、
図2を参照して、ゲーム装置10の内部の電気的構成について説明する。
図2は、ゲーム装置10の内部構成を示すブロック図である。
図2に示すように、ゲーム装置10は、上述した各部に加えて、情報処理部31、メインメモリ32、外部メモリインターフェイス(外部メモリI/F)33、データ保存用外部メモリI/F34、データ保存用内部メモリ35、無線通信モジュール36、ローカル通信モジュール37、リアルタイムクロック(RTC)38、加速度センサ39、電源回路40、およびインターフェイス回路(I/F回路)41等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング11(または上側ハウジング21でもよい)内に収納される。
【0060】
情報処理部31は、所定のプログラムを実行するためのCPU(Central Processing Unit)311、画像処理を行うGPU(Graphics Processing Unit)312等を含む情報処理手段である。情報処理部31のCPU311は、ゲーム装置10内のメモリ(例えば外部メモリI/F33に接続された外部メモリ44やデータ保存用内部メモリ35)に記憶されているプログラムを実行することによって、当該プログラムに応じた処理を実行する。なお、情報処理部31のCPU311によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部31は、VRAM(Video RAM)313を含む。情報処理部31のGPU312は、情報処理部31のCPU311からの命令に応じて画像を生成し、VRAM313に描画する。そして、情報処理部31のGPU312は、VRAM313に描画された画像を上側LCD22及び/又は下側LCD12に出力し、上側LCD22及び/又は下側LCD12に当該画像が表示される。
【0061】
情報処理部31には、メインメモリ32、外部メモリI/F33、データ保存用外部メモリI/F34、および、データ保存用内部メモリ35が接続される。外部メモリI/F33は、外部メモリ44を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリI/F34は、データ保存用外部メモリ45を着脱自在に接続するためのインターフェイスである。
【0062】
メインメモリ32は、情報処理部31(のCPU311)のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ32は、上記プログラムに基づく処理に用いられる各種データを一時的に記憶したり、外部(外部メモリ44や他の機器等)から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ32として例えばPSRAM(Pseudo−SRAM)を用いる。
【0063】
外部メモリ44は、情報処理部31によって実行されるプログラムを記憶するための不揮発性の記憶手段である。データ保存用外部メモリ45は、不揮発性の読み書き可能なメモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。
【0064】
データ保存用内部メモリ35は、読み書き可能な不揮発性メモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。
【0065】
無線通信モジュール36は、例えばIEEE802.11b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール37は、所定の通信方式(例えば独自プロトコルによる通信や、赤外線通信)により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール36およびローカル通信モジュール37は情報処理部31に接続される。情報処理部31は、無線通信モジュール36を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール37を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【0066】
また、情報処理部31には、加速度センサ39が接続される。加速度センサ39は、3軸(xyz軸)方向に沿った直線方向の加速度(直線加速度)の大きさを検出する。加速度センサ39は、下側ハウジング11の内部に設けられる。
【0067】
また、情報処理部31には、RTC38および電源回路40が接続される。RTC38は、時間をカウントして情報処理部31に出力する。情報処理部31は、RTC38によって計時された時間に基づき現在時刻(日付)を計算する。電源回路40は、ゲーム装置10が有する電源(下側ハウジング11に収納される上記充電式電池)からの電力を制御し、ゲーム装置10の各部品に電力を供給する。
【0068】
また、情報処理部31には、I/F回路41が接続される。I/F回路41には、マイク42およびスピーカ43が接続される。具体的には、I/F回路41には、図示しないアンプを介してスピーカ43が接続される。マイク42は、ユーザの音声を検知して音声信号をI/F回路41に出力する。アンプは、I/F回路41からの音声信号を増幅し、音声をスピーカ43から出力させる。また、タッチパネル13はI/F回路41に接続される。I/F回路41は、マイク42およびスピーカ43(アンプ)の制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル13からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部31に出力する。タッチ位置データは、タッチパネル13の入力面において入力が行われた位置の座標を示す。なお、タッチパネル制御回路は、タッチパネル13からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。情報処理部31は、タッチ位置データを取得することにより、タッチパネル13に対して入力が行われた位置を知ることができる。
【0069】
操作ボタン14は、上記各操作ボタン14A〜14Lからなり、情報処理部31に接続される。操作ボタン14から情報処理部31へは、各操作ボタン14A〜14Iに対する入力状況(押下されたか否か)を示す操作データが出力される。情報処理部31は、操作ボタン14から操作データを取得することによって、操作ボタン14に対する入力に従った処理を実行する。
【0070】
下側LCD12および上側LCD22は情報処理部31に接続される。下側LCD12および上側LCD22は、情報処理部31(のGPU312)の指示に従って画像を表示する。本実施形態では、情報処理部31は、上側LCD22に立体画像(立体視可能な画像)を表示させる。
【0071】
外側撮像部23および内側撮像部24は、情報処理部31に接続される。外側撮像部23および内側撮像部24は、情報処理部31の指示に従って画像を撮像し、撮像した画像データを情報処理部31に出力する。
【0072】
3D調整スイッチ25は、情報処理部31に接続される。3D調整スイッチ25は、スライダ25aの位置に応じた電気信号を情報処理部31に送信する。
【0073】
また、3Dインジケータ26は、情報処理部31に接続される。情報処理部31は、3Dインジケータ26の点灯を制御する。例えば、情報処理部31は、上側LCD22が立体表示モードである場合、3Dインジケータ26を点灯させる。
【0074】
次に、
図3〜
図12を用いて、本実施形態で想定するゲームの概要について説明する。本実施形態で想定するゲームは、仮想3次元空間を舞台にしたアクションゲームである。
図3は、本実施形態で想定するゲームの画面の一例である。
図3においては、背面から見たプレイヤキャラクタ101が表示されている。また、当該プレイヤキャラクタはアルマジロを模したようなキャラクタとなっている。本実施形態で説明する処理は、主に、当該プレイヤキャラクタ101の移動操作に関するものとなる。本ゲームにおいて、当該プレイヤキャラクタ101を移動させるには、基本的には、アナログスティック15をプレイヤが操作することで、その入力された方向に応じてプレイヤキャラクタ101が移動する。このときの移動方向は、360°いずれの方向にも移動可能となっている。なお、ここでは、仮想カメラは、プレイヤキャラクタ101から所定位置だけ離れた位置に配置されているものとする。そのため、例えば、
図3のような画面で、プレイヤがアナログスティック15を下方向に入力すると、プレイヤキャラクタ101が180°振り向いて、その前面側が視認できるようになるとともに、プレイヤから見て手前側に移動してくるような画面表示となる。つまり、本ゲームでは、原則として、仮想カメラはプレイヤの背面を常に追いかけるような制御は行われない。
【0075】
また、上記のような移動操作に加えて、本実施形態では、タッチパネル13を用いた操作を行うことで、プレイヤキャラクタ101をその進行方向に向けて高速移動させることが可能である。以下、この高速移動にかかる操作について説明する。
【0076】
図3に示したようなプレイヤキャラクタ101の状態(以下、通常状態と呼ぶ)のときに、プレイヤがタッチパネル13の任意の位置をタッチペン28でタッチオンすると、プレイヤキャラクタ101がタイヤのような形状に丸まった状態となり、その場で進行方向向きの回転を始める。
図4は、このような回転中のプレイヤキャラクタ101を示す図である。
図4では、点102が上記タッチオンした位置を示す。その後、タッチペン28をタッチパネル13に接触した状態のまま、タッチペン28を下方向にスライドさせる。
図4の例では、点103の位置までタッチペン28をスライドさせる(以下、このような操作をスライド操作と呼ぶこともある)。そして、点103の位置でプレイヤがタッチペン28をタッチパネル13から離すと(タッチオフすると)、
図5に示すように、丸まった状態のプレイヤキャラクタ101が、その進行方向(ゲーム空間内の前方方向)に(あたかもタイヤが転がるようにして)高速で移動する。また、このように高速移動を開始したプレイヤキャラクタ101は、その移動速度が徐々に減衰していき、最終的に移動が停止して、上記
図3のような通常状態に戻る。また、プレイヤキャラクタ101が高速移動中、タッチパネル13の所定の一点を所定時間以上タッチし続けることで、ブレーキをかけることもできる。なお、以下の説明では、高速移動中のプレイヤキャラクタ101の状態のことを高速移動状態と呼ぶ。
【0077】
つまり、タッチパネル13の任意の位置をタッチペン28等でタッチオンし、そのまま下方向にスライド操作してからタッチオフする操作を行うことで、プレイヤキャラクタ101をその進行方向に向けて高速移動させることができる。また、この際、タッチオンした位置とタッチオフした位置の間の距離の大きさに応じて、プレイヤキャラクタ101が高速移動する際の移動速度が変化する。換言すれば、当該距離に応じて移動速度が決定される。本実施形態では、この距離が大きいほど、より速い移動速度となる。ここで、この距離については、ここでは、Y軸方向1軸のみにかかる直線距離を用いている。そのため、上記
図4で示したような、タッチペン28を真下方向にスライドさせる場合の他、
図6に示すように、右上から左下の向けてタッチペンを移動させたような場合でも、タッチオン位置である点102とタッチオフ位置である点103のと間のY軸方向のみにかかる距離105に基づいてプレイヤキャラクタ101の移動速度が決定されることになる。
【0078】
また、本ゲームでは、高速移動中のプレイヤキャラクタ101について、アナログスティック15を操作することで方向転換することも可能である。例えば、プレイヤキャラクタ101が高速移動中にプレイヤがアナログスティック15を右方向に入力すると、
図7に示すように、プレイヤキャラクタ101の進行方向をゲーム空間内の右方向に転換させることができる。つまり、車のステアリング操作のような操作も可能である。更に、プレイヤキャラクタ101が高速移動中に、プレイヤが上記のようなスライド操作を行うことで、プレイヤキャラクタ101の再加速を行うことも可能である。
【0079】
また、本ゲームでは、いわゆるシンボルエンカウント方式を用いた戦闘方式が用いられている。つまり、上記のような操作を用いてプレイヤキャラクタ101をプレイヤが移動させた結果、所定の敵キャラクタと当該プレイヤキャラクタ101が接触すると、画面が切り替わり、バトルモードと呼ばれるモードに遷移する。ここで、説明の便宜のため、当該バトルモードに対して、上述した
図3〜
図7のような状態については、以下ではフィールドモードと呼ぶ。
【0080】
図8は、当該バトルモードの画面の一例である。バトルモードでは、所定の広さを有するバトルフィールドが設定されており、この中で、プレイヤキャラクタ101と少なくとも1体の敵キャラクタとが戦う。そして、このバトルモードでは、プレイヤキャラクタ101を敵キャラクタに体当たりさせることで攻撃することが可能である。
【0081】
以下、バトルモードにおける操作について説明する。基本的には、アナログスティック15を操作することで、プレイヤキャラクタ101を移動させることができる。このときの移動方向は、360°どの方向にでも移動させることは可能である。
【0082】
次に、敵キャラクタを攻撃するための体当たりの操作について説明する。これは、基本的には、上述したような、タッチパネル13でスライド操作を行うことによって可能である。つまり、
図8のような状態でタッチパネル13の任意の位置をプレイヤがタッチオンすると、プレイヤキャラクタ101はその場で丸まり、スライド操作を行うと高速回転を開始する。そして、スライド操作を行った後タッチオフすることで、プレイヤキャラクタ101が突進移動する。但し、上記フィールドモードの場合と異なり、バトルモードにおいては、突進方向は、スライドした方向と逆の方向(に対応する仮想ゲーム空間内の方向)に向かってプレイヤキャラクタ101は突進する。つまり、上記フィールドモードにおいては、高速移動に関してはスライド操作におけるY軸の座標のみを利用していたのに対して、バトルモードでは、スライド操作におけるX軸とY軸の双方の座標を利用して突進移動を行う。本実施形態におけるゲームでは、このようなスライド操作において、タッチパネル13のY軸方向は、仮想ゲーム空間内のZ軸方向に対応している。そのため、例えば、
図9に示すように、タッチパネル13上でプレイヤが真下方向にスライドさせるような操作を行い、タッチオフすれば、プレイヤキャラクタ101は、仮想ゲーム空間内における前方方向(Z軸正方向)に向かって突進する(ゲーム画面上は真上方向に突進するように見える)。また、
図10に示すように、左下方向にスライドするような操作をプレイヤが行い、タッチオフすれば、プレイヤキャラクタ101は、ゲーム空間内における右斜め前(ゲーム画面上では右上方向に見える)方向に突進する。また、スライド操作中は、タッチオンした位置を現在のタッチ位置との位置関係に応じて、プレイヤキャラクタ101の向きもリアルタイムに変更される。例えば、
図11に示すように、プレイヤが点102にタッチペン28でタッチオンした後、一旦左下の点106の位置までスライド操作を行い(ここではまだタッチオフはしていない)、その後右上の点103の位置までスライド操作を行ったとする。この操作に応じて、プレイヤキャラクタ101の向きもその場で変更され、
図11の例でいうと、プレイヤキャラクタ101は、点102から点106までのスライド操作の間はやや右上方向(点102から点106へ向かう直線方向とは逆の方向)を向いており、その状態から、点103へのスライド操作に応じて徐々に右下方向(点102から点103へ向かう直線方向とは逆の方向)を向くようになる。
【0083】
このように、スライド操作を用いてプレイヤキャラクタ101の突進方向を決め、タッチオフすることで、
図12に示すように、その突進方向に沿ってプレイヤキャラクタが高速で転がって突進する(この図では突進方向は最終的に右方向に決定されたものとする)。そして、その進路上に敵キャラクタがいれば、その敵キャラクタに体当たり、すなわち、攻撃を加えることとなる。以下では、このようなバトルモードにおける攻撃のことを突進攻撃と呼ぶ。また、攻撃を加えたプレイヤキャラクタ101、または、突進した結果、バトルフィールドの端までプレイヤキャラクタ101が到達したとき、または、バトルフィールドの端まで行かずともプレイヤキャラクタ101が一定距離突進したときは、突進状態は終了し、プレイヤキャラクタ101は、丸まった状態から元の状態に戻る。。
【0084】
このように、本実施形態における処理では、タッチパネル上の任意の位置をプレイヤがタッチオンし、スライド操作を行った後にタッチオフすることで、プレイヤキャラクタ101を高速移動(バトルモードの場合は突進)させることが可能である。つまり、上記のようなスライド操作の始点となる位置はプレイヤが自由に決めることができ、これにより、プレイヤキャラクタ101の移動操作にかかる操作性を向上させることができる。
【0085】
次に、本実施形態のゲーム処理を実行するために必要な各種データについて説明する。このデータは、外部メモリ44やデータ保存用内部メモリ35に記憶され、ゲームプログラム実行時にはメインメモリ32に転送されて記憶される。
【0086】
図13は、上記メインメモリ32に記憶される主なデータを示す図である。
図13において、メインメモリ32には、操作データ321、キャラクタデータ325、高速移動中フラグ326、突進攻撃中フラグ327、始点座標データ328、終点座標データ329等のデータが記憶される。
【0087】
操作データ321は、プレイヤがゲーム装置10に対して行った操作内容を示すデータである。操作データ321には、タッチパネル13で検出されたタッチ座標を示すタッチ座標データ322や、各種操作ボタン14の押下状態を示す操作ボタンデータ323、アナログスティック15の入力状態を示すアナログ入力データ324が含まれる。なお、本実施形態では、1/200秒に1回の割合で操作データ321が更新されるものとする。
【0088】
キャラクタデータ325は、ゲーム中に登場するプレイヤキャラクタ101や各種敵キャラクタのデータである。例えば、モデリングデータ等が含まれている。
【0089】
高速移動中フラグ326は、上記フィールドモードにおいて、プレイヤキャラクタ101が高速移動中であるか否かを示すためのフラグである。
【0090】
突進攻撃中フラグ327は、上記バトルモードにおいて、プレイヤキャラクタ101が突進中(つまり、バトルモードにおける高速移動中)であるか否かを示すためのフラグである。
【0091】
始点座標データ328は、上記高速移動や突進のための操作にかかる一連のタッチパネル操作(上記スライド操作)におけるタッチ位置の始点を示すデータである。また、終点座標データ329は、同様に、終点(その時点における最新のタッチ位置)を示すデータである。
【0092】
その他、メインメモリ32には、ゲーム処理において必要な各種データが適宜記憶される。
【0093】
次に、ゲーム装置10において実行されるゲーム処理の詳細を
図14〜
図19を用いて説明する。なお、本実施形態においては、主に上述したようなプレイヤキャラクタ101の高速移動操作に関する処理に関して説明し、それ以外の状況におけるゲーム処理については詳細な説明を省略する。
【0094】
図14および
図15は、ゲーム装置10において実行されるゲーム処理の流れを示すフローチャートである。なお、
図14および
図15に示すステップS1〜ステップS25の処理ループは1フレーム毎に繰り返し実行される(ステップS24およびS13が実行される場合を除く)。
【0095】
まず、ステップS1において、操作データ321が取得される。次に、ステップS2において、高速移動中フラグ326が参照され、プレイヤキャラクタ101が高速移動中の状態であるか否かが判定される。その結果、高速移動中と判定されたときは(ステップS2でYES)、後述するステップS13の高速移動処理に処理が進められる。
【0096】
一方、高速移動中の状態ではないと判定されたときは(ステップS2でNO)、次に、ステップS3において、上記操作データ321に基づいて、タッチパネル13への入力があるか否か(プレイヤがタッチパネルにタッチしているか否か)が判定される。その結果、タッチパネル13への入力がないと判定されたときは(ステップS3でNO)、後述のステップS14に処理が進められる。
【0097】
一方、タッチパネル13への入力があると判定されたときは(ステップS3でYES)、次に、ステップS4において、操作内容が、「タッチオン」に該当する操作か否かが判定される。ここでの「タッチオン」とは、タッチパネル13にプレイヤがタッチしたときのことを言う。すなわち、前回のフレームにかかる処理においてはタッチパネル13への入力がなく、現在のフレームにかかる処理でタッチパネル13への入力が検出された状態であるか否かが判定される。これは、例えば、前回のフレームにかかるタッチの有無を示すデータをメインメモリ32に適宜記憶し、これを用いて判定すればよい。当該判定の結果、「タッチオン」に該当すると判定されたときは(ステップS4でYES)、次のステップS5において、プレイヤキャラクタ101を上記
図4で示したような丸まった状態に変化させる。続くステップS6において、タッチ座標データ322が参照され、その内容(現在のタッチ位置を示す座標データ)が始点座標データ328として設定される。更に、ステップS7において、同様にしてタッチ座標データ322が終点座標データ329として設定される。その後、後述のステップS11に処理が進められる。
【0098】
一方、上記ステップS4の判定の結果、「タッチオン」に該当しないと判定されたときは(ステップS4でNO)、プレイヤがタッチパネル13への入力を継続している(タッチし続けている)状態であると考えられる。この場合は、ステップS8において、タッチ座標データ322が参照され、その内容で終点座標データ329が更新される。次に、ステップS9において、始点座標データ328と終点座標データ329とが参照され、そのY軸方向のみにかかる直線距離が算出される。更に、ステップS10において、当該算出された距離に応じた演出が行われる。例えば、当該距離が長いほどプレイヤキャラクタ101をその場で回転させる速度を上げるような演出が行われる。そして、次に述べるステップS11へ処理が進められる。
【0099】
次に、ステップS11において、それまでの処理内容を反映したゲーム画像が生成され、上側LCD22に表示する処理が実行される。続くステップS12において、ゲームの終了条件が満たされたか否かが判定され、ゲームの終了条件が満たされていないときは(ステップS12でNO)、上記ステップS1に戻り処理が繰り返される。ゲーム終了条件が満たされていれば(ステップS12でYES)、本ゲーム処理は終了する。
【0100】
次に、上記ステップS3の判定の結果、タッチパネル13への入力がないと判定されたときの処理(ステップS3でNO)について説明する。この場合は、
図15のステップS14において、操作内容が「タッチオフ」に該当するか否かが判定される。ここでの「タッチオフ」とは、プレイヤが、それまでタッチパネル13にタッチしていた状態からタッチすることをやめたとき(タッチペン28等を離したとき)のことをいう。すなわち、前回のフレームにかかる処理においてはタッチパネル13への入力があったが、現在のフレームにかかる処理ではタッチパネル13への入力が検出されていない状態であるか否かが判定される。当該判定の結果、「タッチオフ」に該当する操作であると判定されたときは(ステップS14でYES)、次に、ステップS15において、始点座標データ328と終点座標データ329とが参照され、始点から終点へのY軸方向にかかる変化方向(スライドした方向のY軸成分)が算出される。次に、ステップS16において、当該変化方向が下方向であったか否かが判定される。つまり、スライド操作にかかるスライド方向が上方向に向けてのものか下方向に向けてのものかが判定される。また、ここではタッチパネル座標系のY軸方向にかかる変化のみを見るため、例えば斜め下方向にスライドさせたような場合は、下方向への変化として算出されることになる。当該判定の結果、下方向ではないと判定されたきは(ステップS16でNO)、後述するステップS23に処理が進められる。
【0101】
一方、変化方向が下方向と判定されたときは(ステップS16でYES)、次に、ステップS17において、始点座標データ328と終点座標データ329とが参照され、そのY軸方向のみにかかる直線距離が算出される(ここでは、タッチパネル13の座標系における距離であるとする)。次に、ステップS18において、当該距離が所定値以上であるか否かが判定される。つまり、ある程度大きなスライド操作が行われたか否かが判定されることになる。その結果、当該距離が所定値以上ではないと判定されたときは(ステップS18でNO)、ステップS19において、プレイヤキャラクタ101の形状が元の形状に戻される(丸まる前の状態に戻される)。その後、上記ステップS11に処理が進められる。
【0102】
一方、上記距離が所定値以上と判定されたときは(ステップS18でYES)、高速移動を開始するための処理が実行される。まず、ステップS20において、上記算出された距離に基づき、プレイヤキャラクタ101の移動速度の初速が決定される。ここでは、算出された距離が長いほど初速も大きな値が設定されるものとする。次に、ステップS21において、高速移動中フラグ326がオンに設定される。そして、ステップS22において、上記決定された初速に基づいてプレイヤキャラクタ101の高速移動が開始される。その後、上述したステップS11に処理が進められる。
【0103】
一方、上記ステップS14の判定の結果、「タッチオフ」に該当しないと判定されたとき(ステップS14でNO)、または、ステップS16の判定の結果、下方向への変化ではないと判定されたとき(ステップS16でNO)は、ステップS23において、ゲームフィールド上に存在する所定の敵キャラクタとプレイヤキャラクタ101とが接触したか否かが判定される。つまり、シンボルエンカウント方式におけるエンカウント判定が行われる。その結果、敵キャラクタに接触したと判定されたときは(ステップS23でYES)、ステップS24において、上記バトルモードにかかる処理であるバトル処理が実行される。この処理の詳細については後述する。一方、敵キャラクタに接触していないと判定されたときは(ステップS23でNO)、ステップS25において、操作内容等に基づくその他のゲーム処理が適宜実行される。そして、上記ステップS11に処理が進められる。
【0104】
次に、上記
図14のステップS2の判定の結果、プレイヤキャラクタ101が高速移動中の状態であると判定されたときの処理(ステップS2でYES)について説明する。この場合は、ステップS13において、高速移動処理が実行される。
図16および
図17は、当該高速移動処理の詳細を示すフローチャートである。まず、ステップS41において、所定の敵キャラクタとプレイヤキャラクタ101とが接触したか否かが判定される(つまり、高速移動中におけるエンカウント判定)。その結果、敵キャラクタと接触したと判定されたときは(ステップS41でYES)、ステップS57のバトル処理に処理が進められる。当該処理の詳細は後述する。
【0105】
一方、敵キャラクタと接触していないと判定されたときは(ステップS41でNO)、次に、ステップS42において、プレイヤキャラクタ101の移動が停止したか否かが判定される。その結果、移動が停止したと判定されたときは(ステップS42でYES)、ステップS55において、プレイヤキャラクタ101の形状を、上記のような丸まった状態から、元の状態に変化させる処理が実行される。続くステップS56において、高速移動中フラグ326がオフに設定される。そして、後述するステップS54に処理が進められる。
【0106】
一方、ステップS42の判定の結果、まだ移動は停止していないと判定されたときは(ステップS42でNO)、次のステップS43において、操作データ321が参照され、タッチパネル13への入力が検出されているか否かが判定される。その結果、タッチパネル13への入力がないと判定されたときは(ステップS43でNO)、後述するステップS58に処理が進められる。
【0107】
一方、タッチパネルへの入力があると判定されたときは(ステップS43でYES)、次のステップS44において、操作内容が「タッチオン」に該当するか否かが判定される。その結果、「タッチオン」に該当すると判定されたときは(ステップS44でYES)、高速移動中において行われるスライド操作に関する処理が実行される。まず、ステップS45において、タッチ座標データ322が参照され、その内容が始点座標データ328として設定される。更に、ステップS46において、同様にしてタッチ座標データ322が終点座標データ329として設定される。その後、後述のステップS50に処理が進められる。
【0108】
一方、ステップS44の判定の結果、「タッチオン」に該当しないと判定されたときは(ステップS44でNO)、ステップS47において、タッチ座標データ322が参照され、その内容で終点座標データ329が更新される。次に、ステップS48において、所定時間以上、同じタッチ位置がタッチされ続けているか否か(タッチパネル13への長押しが行われているか否か)が判定される。その結果、所定時間以上、同じタッチ位置がタッチされ続けているときは(ステップS48でYES)、ステップS49において、高速移動中であるプレイヤキャラクタ101にブレーキをかける処理が実行される。ここでは、移動速度の減衰率を高めることで、ブレーキをかける処理が行われるものとする。その後、後述のステップS50に処理が進められる。一方、同じタッチ位置が所定時間以上タッチされ続けていないときは(ステップS48でNO)、例えば、スライド操作中であることが考えられる。この場合は、上記ステップS49の処理はスキップされ、後述のステップS50に処理が進められる。
【0109】
次に、ステップS50において、アナログスティック15に対しての操作が行われたか否かが判定される。つまり、高速移動中における方向転換操作が行われたか否かが判定される。その結果、アナログスティック15の操作が行われていたと判定されたときは(ステップS50でYES)、ステップS51において、アナログ入力データ324が参照され、その内容に基づいてプレイヤキャラクタ101の進行方向を適宜変化させる処理が実行される。その後、後述するステップS53に処理が進められる。一方、アナログスティック15の操作は行われていないと判定されたときは(ステップS50でNO)、ステップS52において、その他の各種ゲーム処理が適宜実行される。その後、後述のステップS53に処理が進められる。
【0110】
次に、ステップS53において、プレイヤキャラクタ101の高速移動にかかる処理が継続される。つまり、プレイヤキャラクタ101を移動させると共に、移動速度を所定の割合で減衰させていく処理が実行される。なお、この所定の割合について、上記ステップS49でブレーキをかける処理が実行された場合は、その処理で設定された速度の減衰率(より大きな減衰率となる)が適用される。
【0111】
次に、ステップS54において、それまでの処理内容を反映したゲーム画像を生成して上側LCD22に表示する処理が実行される。そして、高速移動処理が終了する。
【0112】
次に、上記ステップS43の判定の結果、タッチパネル13への入力がないと判定されたときの処理(ステップS43でNO)について説明する。この場合は、
図17のステップS58において、操作内容が「タッチオフ」に該当するか否かが判定される。当該判定の結果、操作内容が「タッチオフ」に該当しないと判定されたときは(ステップS58でNO)、上記ステップS50に処理が進められる。一方、「タッチオフ」に該当する操作であると判定されたときは(ステップS58でYES)、次に、ステップS59において、始点座標データ328と終点座標データ329とが参照され、始点から終点へのY軸方向にかかる変化方向が算出される。次に、ステップS60において、当該変化方向が下方向であったか否かが判定される。当該判定の結果、下方向ではないと判定されたきは(ステップS60でNO)、上記ステップS50に処理が進められる。
【0113】
一方、変化方向が下方向と判定されたときは(ステップS60でYES)、高速移動にかかる移動速度を更新するための処理が実行される。まず、ステップS61において、始点座標データ328と終点座標データ329とが参照され、そのY軸方向のみにかかる直線距離が算出される。次に、ステップS62において、当該距離が所定値以上であるか否かが判定される。その結果、所定値以上と判定されたときは(ステップS62でYES)、次に、ステップS63において、当該算出された距離に基づき、プレイヤキャラクタ101の移動速度が更新される。ここで、この移動速度の更新については、例えば、現在の移動速度を上記高速移動開始時の初速として設定された速度に再設定するような処理でもよいし、上記距離に応じて加速度を算出し、その加速度を現在の移動速度に適用することで移動速度を更新してもよい。その後、上述したステップS53に処理が進められる。これにより、上記更新後の移動速度に基づくプレイヤキャラクタの移動処理が行われることになる。つまり、高速移動中に更に上記のようなスライド操作を行うことで、高速移動にかかる移動速度を更新(再加速)し、高速移動状態を継続させることが可能となる。
【0114】
一方、上記ステップS62の判定の結果、上記距離が所定値以上ではないと判定されたときは(ステップS62でNO)、上記ステップS63の処理はスキップされる。つまり、ある程度大きなスライド操作が行われていなければ、速度の更新は行われないことになる。その後、上述したステップS50に処理が進められる。
【0115】
以上で、高速移動処理にかかる説明は終了する。
【0116】
次に、上記ステップS24またはS57にかかるバトル処理の詳細について説明する。
図18は、上記ステップS24またはS57で示したバトル処理の詳細を示すフローチャートである。まず、ステップS71で、突進攻撃中フラグ327が参照され、プレイヤキャラクタ101の状態が突進攻撃中であるか否かが判定される。その結果、突進攻撃中ではないと判定されたときは(ステップS71でNO)、ステップS72において、操作データ321が取得される。次に、ステップS73において、当該操作データ321に基づいて、タッチパネル13への入力があるか否かが判定される。その結果、タッチパネル13への入力がないと判定されたときは(ステップS73でNO)、後述のステップS86に処理が進められる。
【0117】
一方、タッチパネル13への入力があると判定されたときは(ステップS73でYES)、次に、ステップS74において、操作内容が、「タッチオン」に該当する操作か否かが判定される。その結果、「タッチオン」と判定されたときは(ステップS74でYES)、ステップS75において、プレイヤキャラクタ101を丸まった状態に変化させる。次に、ステップS76において、タッチ座標データ322が参照され、その内容が始点座標データ328として設定される。更に、ステップS77において、同様にタッチ座標データ322が終点座標データ329として設定される。その後、後述のステップS93に処理が進められる。
【0118】
一方、上記ステップS74の判定の結果、「タッチオン」に該当しないと判定されたときは(ステップS74でNO)、上述したようなスライド操作中におけるプレイヤキャラクタ101の方向転換のための処理が実行される。まず、ステップS78で、タッチ座標データ322が参照され、その内容で終点座標データ329が更新される。次に、ステップS79において、始点座標データ328と終点座標データ329とが参照され、(タッチパネル座標系での)XY平面上における、始点(タッチオン位置)から現在のタッチ位置を結ぶ直線のベクトルとその向きが算出される。
【0119】
次に、ステップS80において、当該ベクトルの向きに基づき、プレイヤキャラクタ101の向く方向(突進方向)が算出される。例えば、まず、当該ベクトルの向きとは逆方向の向きが算出される。そして、当該逆方向の向きを、タッチパネルの座標系から仮想ゲーム空間内の座標系に変換する(タッチパネル13のXY平面の座標を仮想ゲーム空間におけるXZ平面での座標に変換する)ことで、仮想ゲーム空間内におけるプレイヤキャラクタ101の向きが算出される。そして、ステップS81において、この算出された向きに基づき、プレイヤキャラクタ101の向きが変更される。その後、後述のステップS93に処理が進められる。
【0120】
なお、上記プレイヤキャラクタ101の向き(突進方向)の算出手法については、上記のようなベクトルを用いた手法に限らず、始点座標データ328と終点座標データ329とに基づいて、始点から現在のタッチ位置への角度を算出し、その角度に基づいてプレイヤキャラクタ101の向きを決定するようにしてもよい。例えば、始点を中心点とする円を想定し、その円周上に現在のタッチ位置を配置することで始点と現在のタッチ位置との角度を算出し、この角度に基づいてプレイヤキャラクタ101の向きを変化させるようにしてもよい。
【0121】
次に、上記ステップS73の判定の結果、タッチパネル13への入力がないと判定されたときの処理(ステップS73でNO)について説明する。この場合は、
図19のステップS86において、操作内容が「タッチオフ」に該当するか否かが判定される。その結果、操作内容が「タッチオフ」に該当しないと判定されたときは(ステップS86でNO)、後述するステップS93に処理が進められる。一方、「タッチオフ」に該当すると判定されたときは(ステップS86でYES)、次に、ステップS87において、始点座標データ328と終点座標データ329とに基づいて、始点から終点(タッチオフしたときのタッチ座標)までを結ぶ直線のベクトルが算出される。
【0122】
続くステップS88において、当該ベクトルの大きさ、すなわち、始点から終点までの直線距離が所定値以上であるか否かが判定される。その結果、所定値以上ではないときは(ステップS88でNO)、ステップS92において、プレイヤキャラクタ101が元の形状に戻される。そして、後述のステップS93に処理が進められる。つまり、ある程度大きなスライド操作が行われなければ、突進攻撃は行われないことになる。
【0123】
一方、ステップS88の判定の結果、距離が所定値以上と判定されたときは(ステップS88でYES)、突進攻撃を開始するための処理が行われる、まず、ステップS89において、上記算出されたベクトルに基づき、突進方向が決定される。これは、上記のように、当該ベクトルとは逆方向の向きが算出され、この逆方向の向きを仮想ゲーム空間内の座標系に変換したものが突進方向として決定される。また、上記フィールドモードのようなY軸にかかる方向だけを用いるのではなく、X軸とY軸の双方の要素を含めた方向として算出される。
【0124】
次に、ステップS90において、上記算出されたベクトルの大きさ(始点から終点までの直線距離)に基づき、突進攻撃にかかる初速が決定される。続くステップS91において、上記決定された突進方向および初速に基づいた突進攻撃が開始される。そして、後述するステップS93に処理が進められる。
【0125】
次に、
図18の上記ステップS71において、突進攻撃中であると判定されたときの処理(ステップS71でYES)について説明する。この場合は、ステップS82において、プレイヤキャラクタ101の突進攻撃にかかる移動が停止したか否かが判定される。その結果、停止したと判定されたときは(ステップS82でYES)、ステップS83において、プレイヤキャラクタ101の形状が元の形状に戻される。更に、ステップS84において、突進攻撃中フラグ327がオフに設定される。そして、後述のステップS93に処理が進められる。一方、まだ停止していないと判定されたときは(ステップS82でNO)、突進攻撃にかかるプレイヤキャラクタ101の移動が継続される。そして、ステップS93に処理が進められる。
【0126】
次に、ステップS93において、その他の各種ゲーム処理(例えば当たり判定処理等)が実行され、更に、上述したような処理内容が反映されたゲーム画像が生成されて、上側LCD22に表示される。
【0127】
次に、ステップS94において、バトルモードの終了条件が満たされたか、例えば、敵キャラクタを全て倒したか否か等が判定され、終了条件が満たされていなければ(ステップS94でNO)、上記ステップS71に戻り処理が繰り返される。一方、終了条件が満たされていたときは(ステップS94でYES)、バトルモードにかかる処理は終了する。この際、上記フィールドモードの画面に切り替えるための処理が適宜行われる。
【0128】
以上で、本実施形態にかかるゲーム処理の詳細な説明は終了する。
【0129】
このように、本実施形態では、プレイヤがプレイヤオブジェクトを高速移動(または突進攻撃)させる際は、タッチパネル上でスライド操作を行うことでこのような動作を可能としている。そして、この操作においては、プレイヤは、任意の位置を始点としてスライド操作を行うことが可能となっている。これにより、上記のような高速移動等にかかる操作の操作性を高めることができる。また、高速移動中のプレイヤキャラクタ101については、更に、アナログスティック15を用いた方向転換操作も可能である。また、高速移動中のプレイヤキャラクタ101に対して、更に上記のようなスライド操作を重ねて行うことで、高速移動中のプレイヤキャラクタを再加速するようなことも可能である。このように、一旦高速移動が開始されたプレイヤオブジェクトに対して更なる制御を行うことも可能であり、更なる操作性の向上ができる。
【0130】
なお、上記実施形態では、フィールドモードにおける高速移動やバトルモードにおける突進攻撃の開始に際して、タッチオフしたときの直前に検出されたタッチ座標を終点として用いていた。終点については、これに限らず、始点位置から、タッチオフしたときの座標までの間のいずれかの位置を終点座標としても良い。例えば、
図20に示すように、始点位置からの所定距離を閾値として設定しておき、この閾値に該当するタッチ位置を終点位置とするようにしてもよい。この場合、閾値を越えた分の距離については高速移動の速度等に反映されないことになる。
【0131】
また、上記実施形態においては、スライド操作の方向とは逆の方向に向けてプレイヤキャラクタ101を移動させていたが、逆方向に限らず、スライドした方向とは異なる方向(に対応する仮想ゲーム空間内の方向)であれば、どの方向に移動させても良い。
【0132】
また、上記フィールドモードでの高速移動中の方向変換操作に関しては、上記実施形態ではアナログスティック15を用いた例を挙げたが、この他、他のボタン操作によって行われるようにしても良いし、タッチパネル13に対する操作(例えば、X軸方向に沿ったスライド操作等)によって行われるようにしても良い。
【0133】
また、上記本実施形態では、2つの表示装置を備えた携帯型ゲーム装置を例に説明したが、単一の表示装置を備え当該表示装置の画面上にタッチパネルを備えた携帯端末であってもよい。また、本実施形態では、操作領域に対するプレイヤの指示位置を検出する装置としてタッチパネルを例に上げたが、プレイヤが所定領域内の位置を指示できるいわゆるポインティングデバイスであればよく、例えば、画面上の任意位置を指示可能なマウス、表示画面を持たない操作面上の任意位置を指示するタブレット、遠隔から表示画面や表示画面周囲に配置されたマーカ等を撮像するための撮像手段を備えたデバイスによって、表示画面方向を指し示すことにより得られる撮像画像における表示画面やマーカの位置から、表示画面上の指し示された位置に相当する表示画面上の座標を算出するポインティングデバイスなどでもよい。