以下、本発明の実施形態の例について図面に基づき詳細に説明する。
図1は本発明の実施形態に係るゲーム装置(ゲーム制御装置)のハードウェア構成を示す。ゲーム装置10はユーザがゲームをプレイするために使用するコンピュータである。例えば、ゲーム装置10は、携帯電話機(スマートフォンを含む)又は携帯情報端末(タブレット型コンピュータを含む)によって実現される。なお、ゲーム装置10は、携帯型ゲーム機、据置型ゲーム機、ラップトップ型コンピュータ、又はデスクトップ型コンピュータ等によって実現されるようにしてもよい。
図1に示すように、ゲーム装置10は制御部11、記憶部12、通信部13、操作部14、振動部15、表示部16、及び音声出力部17を含む。
制御部11は一又は複数のマイクロプロセッサ等を含み、オペレーティングシステムやその他のプログラムに従って処理を実行する。記憶部12は主記憶部(例えばRAM)及び補助記憶部(例えばハードディスクドライブ又はソリッドステートドライブ)を含む。通信部13は通信ネットワークを介してデータ通信を行うためのものである。
操作部14はユーザがゲーム操作を行うためのものである。例えば、操作部14は、ユーザによって接触された位置を検出可能なタッチパネル14Tを含み、ユーザはタッチパネル14Tを触ることによってゲーム操作を行う。例えば、タッチパネル14Tは表示部16に重ねて設けられ、検出結果を示す信号を出力する。例えば、接触位置の検出は所定時間(例えば1/60秒)ごとに繰り返し行われる。なお、タッチパネル14Tとしては各種方式のタッチパネルを採用することが可能である。例えば、静電容量方式のタッチパネルを採用することが可能である。静電容量方式のタッチパネルでは、タッチパネルの表面がユーザによって接触された場合に生じる電荷の変化に基づいて、ユーザによって接触されている位置が検出される。当然のことながら、静電容量方式以外の方式のタッチパネルを採用することも可能である。
振動部15は操作部14を振動させるためのものである。例えば、携帯電話機(スマートフォン)又は携帯情報端末(タブレット型コンピュータ)のように、操作部14が筐体と一体的に形成されている場合、筐体に内蔵され、筐体を振動させるための振動モータが振動部15の一例に相当する。制御部11は振動部15を駆動させることによって振動を発生させる。なお例えば、制御部11は振動の態様を制御できるようになっている。例えば、制御部11は振動の大きさ(振幅)、長さ、又は間隔(周波数)を制御できるようになっている。
表示部16は例えば液晶表示パネル又は有機ELディスプレイ等であり、制御部11の指示に従って画面を表示する。音声出力部17は例えばスピーカ又はヘッドホン等であり、制御部11の指示に従って音声データを出力する。
プログラムやデータは通信ネットワークを介してゲーム装置10に供給される。なお、ゲーム装置10は、情報記憶媒体(例えば光ディスク又はメモリカード等)に記憶されたプログラム又はデータを読み取るための構成要素を含むようにしてもよい。そして、プログラムやデータが情報記憶媒体を介してゲーム装置10に供給されるようにしてもよい。
ゲーム装置10では各種ゲームを実行することが可能である。以下では、ゲーム装置10で実行されるゲームの一例として、ユーザの操作対象がユーザの操作に従ってゲーム空間内を移動するゲームについて説明する。なお、「ゲーム空間」は、互いに直交する三つの座標軸によって位置が示されるような仮想的な三次元空間であってもよいし、互いに直交する二つの座標軸によって位置が示されるような仮想的な二次元空間であってもよい。
図2は表示部16に表示されるゲーム画面の一例を示す。図2に示すように、ゲーム画面20にはユーザキャラクタ22が表示される。ユーザキャラクタ22はユーザの操作対象のキャラクタであり、ユーザの操作に従ってゲーム空間内を移動する。
また図2に示すように、ゲーム画面20には蝶キャラクタ24が表示される。蝶キャラクタ24はユーザキャラクタ22に関連づけて表示される。蝶キャラクタ24はユーザキャラクタ22の付近に表示され、ユーザキャラクタ22に従動する。蝶キャラクタ24の役割については後述する。
また図2に示すように、ゲーム画面20には仮想的な方向パッド30(方向ボタン)が表示される。方向パッド30は方向を入力(指示)するために設定された方向入力領域であり、ユーザが方向入力操作を行うために用いられる。なお、ここで、「方向入力操作」とは、例えば四方向又は八方向等のような、有限数の方向のうちのいずれかを入力(指示)するような操作のことを意味している。図2に示す例の場合、方向パッド30はユーザキャラクタ22の向き(移動方向)を指示するために用いられる。例えば、ユーザは指を方向パッド30に接触させた状態のままその指を動かす(スライドさせる)ことによって、ユーザキャラクタ22の向き(移動方向)を指示する。
図3は方向パッド30の一例について説明するための図である。なお、ここでは、上下左右の四方向を入力できるようにする場合について説明するが、四方向よりも多い方向を入力できるようにしたり、四方向よりも少ない方向のみ入力できるようにしたりしてもよい。例えば、上、下、左、右、左上、右上、左下、右下の八方向を入力できるようにしてもよい。
図3に示す方向パッド30は基準位置32を中心とする所定半径の円形領域になっている。なお、方向パッド30の形状は円形領域に限られず、方向パッド30は円形領域以外の領域としてもよい。
図3に示すように、方向パッド30には、上下左右の四方向にそれぞれ対応する四つの領域が設定される。すなわち、上方向に対応する上領域34Uと、下方向に対応する下領域34Dと、左方向に対応する左領域34Lと、右方向に対応する右領域34Rとが設定される。さらに、方向パッド30には、いずれの方向にも対応づけられていないニュートラル領域34Nも設定される。なお、図3では領域の境界線が示されているが、この境界線はゲーム画面20に表示されてもよいし、表示されなくてもよい。
ニュートラル領域34Nは基準位置32付近に設定される。例えば、基準位置32を含む領域がニュートラル領域34Nとして設定される。図3に示す例の場合、ニュートラル領域34Nは基準位置32を中心とする所定半径の円形領域である。当然のことながら、ニュートラル領域34Nの半径は方向パッド30の半径よりも小さい。
上領域34U、下領域34D、左領域34L、及び右領域34Rは基準位置32を中心として設定されている。図3に示す例では、これらの四つの領域が基準位置32を中心として放射状に設定されている。
上領域34Uは基準位置32の上側に位置している。上領域34Uは、基準位置32から上方向に広がる90度の扇状領域からニュートラル領域34Nを除いた領域となっている。同様に、下領域34Dは基準位置32の下側に位置している。下領域34Dは、基準位置32から下方向に広がる90度の扇状領域からニュートラル領域34Nを除いた領域となっている。
また、左領域34Lは基準位置32の左側に位置している。左領域34Lは、基準位置32から左方向に広がる90度の扇状領域からニュートラル領域34Nを除いた領域となっている。同様に、右領域34Rは基準位置32の右側に位置している。右領域34Rは、基準位置32から右方向に広がる90度の扇状領域からニュートラル領域34Nを除いた領域となっている。
ユーザは上領域34U、下領域34D、左領域34L、及び右領域34Rのいずれかに指を接触させることによって、上下左右のうちのいずれかの方向を指示する。いずれかの方向がユーザによって指示されると、ユーザによって指示された方向に基づいてゲーム処理が実行される。例えば、ユーザによって指示された方向に基づいてユーザキャラクタ22の向き(移動方向)が設定される。例えば、ユーザは指を上領域34Uに接触させた場合、ユーザキャラクタ22の向き(移動方向)が上方向に設定される。
また図3に示すように、方向パッド30には、上方向に対応する上画像36Uと、下方向に対応する下画像36Dと、左方向に対応する左画像36Lと、右方向に対応する右画像36Rとが含まれている。上画像36Uは上領域34Uに関連づけて表示され、下画像36Dは下領域34Dに関連づけて表示される。また、左画像36Lは左領域34Lに関連づけて表示され、右画像36Rは右領域34Rに関連づけて表示される。
なお、「画像が領域に関連づけて表示される」とは、画像と領域とが関連していることをユーザが把握できるように画像を表示することを意味している。例えば、画像の少なくとも一部が領域の少なくとも一部と重なるようにして画像を表示することや、画像を領域付近に表示することが「画像を領域に関連づけて表示する」ことに相当する。
上画像36U、下画像36D、左画像36L、及び右画像36Rはユーザが指示している方向を示す役割を果たす。図4は上画像36U、下画像36D、左画像36L、及び右画像36Rについて説明するための図である。
図4はユーザが指Fを上領域34Uに接触させている場合を示す。すなわち、ユーザが上方向を指示している場合を示す。この場合、上領域34Uに対応する上画像36Uが強調表示される。例えば、上画像36Uが他の画像(下画像36D、左画像36L、及び右画像36R)と区別表示される。
例えば、上画像36Uの色が他の画像と異なる色に設定される。例えば、上画像36Uの色が他の画像の色よりも明るい色に設定される。また例えば、上画像36Uの大きさが他の画像と異なる大きさに設定される。例えば、上画像36Uの大きさが他の画像よりも大きく設定される。また例えば、上画像36Uが方向パッド30の外側方向に移動する。すなわち、上画像36Uと基準位置32との間の距離が他の画像と基準位置との間の距離よりも大きく設定される。
このように、ゲーム装置10ではユーザが上領域34Uを接触している場合に上画像36Uが強調表示される。このため、ユーザは自分が上方向を指示していることを一見して把握することができる。
なお、上記の場合、上画像36Uの位置は、基準位置32から見てユーザの接触位置よりも外側の位置に表示される。このようにすることによって、上画像36Uがユーザの指に隠れないようになっており、ユーザは自分が上方向を指示していることを把握し易くなっている。
またゲーム装置10では、蝶キャラクタ24もユーザが指示している方向を示す役割を果たす。図5及び図6は蝶キャラクタ24について説明するための図である。なお、図5に示す位置Pはユーザの接触位置を示す。
図5及び図6に示すように、「ユーザキャラクタ22と蝶キャラクタ24との位置関係」が「方向パッド30の基準位置32とユーザの接触位置Pとの位置関係」と対応するようにして、蝶キャラクタ24の位置は設定される。
例えば、「ユーザキャラクタ22の代表点22Aから蝶キャラクタ24への方向」が「方向パッド30の基準位置32からユーザの接触位置Pへの方向」と対応するようにして、蝶キャラクタ24の位置は設定される。
なお、「ユーザキャラクタ22の代表点22Aから蝶キャラクタ24までの距離」が「方向パッド30の基準位置32からユーザの接触位置Pまでの距離」と対応するようにして、蝶キャラクタ24の位置を設定するようにしてもよい。また、図6に示す例では頭部(顔)の中心がユーザキャラクタ22の代表点22Aとして設定されているが、例えば、胴体の中心(胸部又は腹部等)が代表点22Aとして設定されるようにしてもよい。
以上のようにして蝶キャラクタ24の位置が設定されることによって、ユーザは自分が接触している方向パッド30内の位置をユーザキャラクタ22と蝶キャラクタ24との位置関係から把握することができる。ユーザはユーザキャラクタ22に注目しながらゲームをプレイするのが一般的であるが、上記の蝶キャラクタ24によれば、ユーザはユーザキャラクタ22に注目しながら自分が接触している方向パッド30内の位置を把握することができる。
なお、ここでは、蝶キャラクタ24を表示するようにしたが、当然のことながら、蝶キャラクタ24以外のキャラクタを表示するようにしてもよい。また、キャラクタ以外の画像(例えばマーク、カーソル、又はアイコン等)を表示するようにしてもよい。
ところで、従来のゲーム装置では、ユーザが入力方向を変えるべく仮想的な方向パッドを操作した場合に、その操作によって本当に入力方向が変わったか否かをユーザ自身が把握し難い場合があり、方向入力操作を行い難い場合があった。これに対し、ゲーム装置10では、ユーザが入力方向を変えるべく方向パッド30を操作した場合に、その操作によって本当に入力方向が変わったか否かをユーザ自身が把握し易くなっている。
すなわち、ゲーム装置10では、ユーザが接触している領域が上領域34U、下領域34D、左領域34L、及び右領域34Rのうちで変化した場合にタッチパネル14Tが振動する。つまり、ユーザが接触している領域が上領域34U、下領域34D、左領域34L、及び右領域34Rのうちの一の領域から他の領域に変化した場合にタッチパネル14Tが振動する。その結果、入力方向が変わったことをユーザが把握できるようになっている。
ユーザが接触している領域がニュートラル領域34Nから上画像36U、下画像36D、左画像36L、及び右画像36Rのいずれかに変化した場合にもタッチパネル14Tが振動するようになっている。ただし、ユーザが接触している領域が上画像36U、下画像36D、左画像36L、及び右画像36Rのいずれかからニュートラル領域34Nに変化した場合にはタッチパネル14Tが振動しないようになっている。
なお、ユーザの接触位置が領域の境界付近で変化した場合、接触位置が境界線を越える度に振動が発生してしまうと、必要以上に連続的に振動が発生してしまうおそれがある。この点、ゲーム装置10では、振動の発生を待機する領域(以下「振動待機領域」と呼ぶ。)が境界付近に設定されている。図7は振動待機領域の一例について説明するための図である。
図7に示すように、上領域34U内には振動待機領域40A,40B,40Cが含まれている。振動待機領域40Aは上領域34Uと左領域34Lとの間の境界付近に設定されている。振動待機領域40Aは上領域34Uと左領域34Lとの間の境界線に基づいて設定される。例えば、上領域34U内の領域であって、かつ、上記境界線を含む領域が振動待機領域40Aとして設定される。また例えば、上領域34U内の領域であって、かつ、上記境界線に隣接する領域が振動待機領域40Aとして設定される。例えば、上領域34U内の領域であって、かつ、上記境界線からの距離が所定距離以内である領域が振動待機領域40Aとして設定される。
また、振動待機領域40Bは上領域34Uと右領域34Rとの間の境界付近に設定されている。振動待機領域40Bは上領域34Uと右領域34Rとの間の境界線に基づいて設定される。例えば、上領域34U内の領域であって、かつ、上記境界線を含む領域が振動待機領域40Bとして設定される。また例えば、上領域34U内の領域であって、かつ、上記境界線に隣接する領域が振動待機領域40Bとして設定される。例えば、上領域34U内の領域であって、かつ、上記境界線からの距離が所定距離以内である領域が振動待機領域40Bとして設定される。
さらに、振動待機領域40Cは上領域34Uとニュートラル領域34Nとの間の境界付近に設定されている。振動待機領域40Cは上領域34Uとニュートラル領域34Nとの間の境界線に基づいて設定される。例えば、上領域34U内の領域であって、かつ、上記境界線を含む領域が振動待機領域40Cとして設定される。また例えば、上領域34U内の領域であって、かつ、上記境界線に隣接する領域が振動待機領域40Cとして設定される。例えば、上領域34U内の領域であって、かつ、上記境界線からの距離が所定距離以内である領域が振動待機領域40Cとして設定される。
同様に、右領域34R内には振動待機領域40D,40E,40Fが含まれている。また、下領域34D内には振動待機領域40G,40H,40Iが含まれている。さらに、左領域34L内には振動待機領域40J,40K,40Lが含まれている。以下では、振動待機領域40A〜40Lを総称して「振動待機領域40」と記載する場合がある。
図8は振動の待機について説明するための図であり、ユーザの接触位置の変化の一例を示す。図8は、ユーザの接触位置が位置P1,P2,P3,P4,P5,P6,P7,P8の順で変化した場合を示している。図8に示す例ではユーザの接触位置が左領域34Lと上領域34Uとの間の境界付近で変化している。
図8に示す例では、ユーザの接触位置が位置P2から位置P3に変化した際に、ユーザの接触位置が左領域34Lから上領域34Uに変化している。ただし、この場合、ユーザの接触位置(位置P3)は振動待機領域40A内に含まれているため、この時点では振動が発生しないようになっている。
また図8に示す例では、ユーザの接触位置が左領域34L(位置P2)から上領域34U(位置P3)に変化した後に、ユーザの接触位置が左領域34L(位置P4,P5)に戻っている。ただし、この場合、ユーザの接触位置が左領域34Lから上領域34Uに変化した場合の振動が発生することなく、ユーザの接触位置が上領域34Uから左領域34Lに戻っているため、振動が発生しないようになっている。
また図8に示す例では、ユーザの接触位置が左領域34Lに戻った後に、ユーザの接触位置が左領域34L(位置P4,P5,P6)から上領域34U(位置P7)に変化している。ただし、先述の場合と同様、ユーザの接触位置(位置P7)は振動待機領域40A内に含まれているため、この時点では振動が発生しないようになっている。
さらに図8に示す例では、ユーザの接触位置が上領域34U内の位置P7に変化した後に、上領域34U内でユーザの接触位置が位置P7から位置P8に変化している。この際、ユーザの接触位置は振動待機領域40A内から振動待機領域40A外に変化している。ゲーム装置10ではこの時点で振動が発生するようになっている。
例えば、ユーザの接触位置が位置P2から位置P3に変化した際、ユーザの接触位置が位置P3から位置P4に変化した際や、ユーザの接触位置が位置P6から位置P7に変化した際に振動が発生してしまうと、必要以上に連続的に振動が発生してしまうことになり、却ってユーザが戸惑ってしまうおそれがある。この点、ゲーム装置10ではこのような不都合が生じないようになっている。
図9も振動の待機について説明するための図であり、ユーザの接触位置の変化の他の一例を示す。図9は、ユーザの接触位置が位置P1,P2,P3,P4,P5の順で変化した場合を示している。図9に示す例ではユーザの接触位置がニュートラル領域34Nと上領域34Uとの間の境界付近で変化している。
図9に示す例では、ユーザの接触位置が位置P1から位置P2に変化した際に、ユーザの接触位置がニュートラル領域34Nから上領域34Uに変化している。ただし、この場合、ユーザの接触位置(位置P2)は振動待機領域40C内に含まれているため、この時点では振動が発生しないようになっている。
また図9に示す例では、ユーザの接触位置がニュートラル領域34N(位置P1)から上領域34U(位置P2)に変化した後に、ユーザの接触位置がニュートラル領域34N(位置P3)に戻っている。先述したように、ユーザの接触位置が上領域34Uからニュートラル領域34Nに変化した場合には振動が発生しないようになっている。
また図9に示す例では、ユーザの接触位置がニュートラル領域34N(位置P3)に戻った後に、ユーザの接触位置がニュートラル領域34N(位置P3)から上領域34U(位置P4)に変化している。ただし、先述の場合と同様、ユーザの接触位置(位置P4)は振動待機領域40C内に含まれているため、この時点では振動が発生しないようになっている。
さらに図9に示す例では、ユーザの接触位置が上領域34U内の位置P4に変化した後に、上領域34U内でユーザの接触位置が位置P4から位置P5に変化している。この際、ユーザの接触位置は振動待機領域40C内から振動待機領域40C外に変化している。ゲーム装置10ではこの時点で振動が発生するようになっている。
例えば、ユーザの接触位置が位置P1から位置P2に変化した際や、ユーザの接触位置が位置P3から位置P4に変化した際に振動が発生してしまうと、必要以上に連続的に振動が発生してしまうことになり、却ってユーザが戸惑ってしまうおそれがある。この点、ゲーム装置10ではこのような不都合が生じないようになっている。
次に、以上に説明したような機能を実現するための構成について説明する。図10は、ゲーム装置10で実現される機能ブロックを示す機能ブロック図である。図10に示すように、ゲーム装置10は方向入力受付部50、判定部52、振動制御部54、操作対象制御部56、及び表示制御部58を含む。例えば、これらの機能ブロックはゲーム装置10の制御部11によって実現される。すなわち、制御部11がプログラムに従って処理を実行することによって、制御部11が上記の機能ブロックとして機能するようになる。
方向入力受付部50は、タッチパネル14Tによって検出される接触位置が、複数の方向にそれぞれ対応するように設定された複数の領域のうちのいずれに含まれるかを判定することによって、方向入力を受け付ける。なお、先述したように、ここでの「方向入力操作」とは、例えば四方向又は八方向等のような、有限数の方向のうちのいずれかを入力するような操作のことを意味している。
判定部52は、接触位置が複数の領域のうちの一の領域内から他の領域内に変化したか否かを判定する。振動制御部54は、接触位置が一の領域内から他の領域内に変化した場合に、タッチパネル14Tを振動させるための制御を実行する。
例えば、上記の複数の領域は、第1の領域と、第1の領域と隣り合う第2の領域と、を含み、第2の領域は、第1の領域との境界付近に設定される第3の領域を含む。ここで、例えば、第3の領域は第2の領域内の領域であって、かつ、第1の領域との間の境界を含む領域である。また例えば、第3の領域は、第2の領域内の領域であって、かつ、第1の領域との境界に隣接する領域である。例えば、第3の領域は、第2の領域内の領域であって、かつ、第1の領域との境界からの距離が所定距離以下の領域である。例えば、接触位置が第1の領域内から第2の領域内に変化した場合、振動制御部54は、接触位置が第2の領域内の第3の領域以外の領域に含まれる状態になるまで、タッチパネル14Tを振動させることを待機させる。
また例えば、上記の複数の領域は基準位置を中心に設定され、複数の領域の各々は、基準位置付近に設定される第4の領域を含む。ここで、例えば、第4の領域は、基準位置からの距離が所定距離以下の領域である。例えば、接触位置が上記の複数の領域のうちの一の領域内に変化した場合、振動制御部54は、接触位置が当該一の領域内の第4の領域以外の領域に含まれる状態になるまで、タッチパネル14Tを振動させることを待機させる。
図2〜図9で説明した例の場合、上領域34U、下領域34D、左領域34L、及び右領域34Rが「複数の領域」の一例に相当する。例えば、振動待機領域40A,40B,40D,40E,40G,40H,40J,40Kの各々が「第3の領域」の一例に相当する。例えば、左領域34Lが「第1の領域」に相当し、上領域34Uが「第2の領域」に相当する場合、振動待機領域40Aが「第3の領域」に相当する。また例えば、上領域34Uが「第1の領域」に相当し、左領域34Lが「第2の領域」に相当する場合、振動待機領域40Kが「第3の領域」に相当する。また、振動待機領域40C,40F,40I,40Lの各々が「第4の領域」の一例に相当する。
図2〜図9で説明した例の場合、方向入力受付部50は、タッチパネル14Tによって検出される接触位置が上領域34U、下領域34D、左領域34L、及び右領域34Rのうちのいずれに含まれるかを判定することによって、ユーザによって指示された方向を判断する。
また判定部52は、接触位置が上領域34U、下領域34D、左領域34L、及び右領域34Rのうちの一の領域内から他の領域内に変化したか否かを判定する。そして、接触位置が上領域34U、下領域34D、左領域34L、及び右領域34Rのうちの一の領域内から他の領域内に変化したと判定された場合、振動制御部54は振動部15を制御することによって振動を発生させる。
なお例えば、接触位置が左領域34L内から上領域34U内に変化した場合、振動制御部54は、接触位置が振動待機領域40A(すなわち、上領域34U内に設定された振動待機領域40であって、かつ、左領域34Lと上領域34Uとの間の境界付近に設定された振動待機領域40)以外の領域に含まれる状態になるまで、タッチパネル14Tを振動させることを待機させる。言い換えれば、振動制御部54は、接触位置が振動待機領域40A内に含まれている間、タッチパネル14Tの振動を抑制する。
また例えば、接触位置がニュートラル領域34N内から上領域34U内に変化した場合、振動制御部54は、接触位置が振動待機領域40C(すなわち、上領域34U内に設定された振動待機領域40であって、かつ、ニュートラル領域34Nと上領域34Uとの間の境界付近に設定された振動待機領域40)以外の領域に含まれる状態になるまで、タッチパネル14Tを振動させることを待機させる。言い換えれば、振動制御部54は、接触位置が振動待機領域40C内に含まれている間、タッチパネル14Tの振動を抑制する。
操作対象制御部56は、複数の方向にそれぞれ対応するように設定された複数の領域のうちの、接触位置が含まれる領域に対応する方向を向くように、ユーザの操作対象の向きを設定する。
図2〜図9で説明した例の場合、ユーザキャラクタ22が「ユーザの操作対象」の一例に相当する。すなわち、操作対象制御部56は、上領域34U、下領域34D、左領域34L、及び右領域34Rのうちの、接触位置が含まれる領域に対応する方向を向くように、ユーザキャラクタ22の向きを設定する。例えば、接触位置が上領域34Uに含まれる場合、操作対象制御部56はユーザキャラクタ22の向きを上方向に設定する。
表示制御部58はゲーム画面20を表示部16に表示させるための制御を実行する。例えば、表示制御部58は操作対象表示制御部58Aと画像表示制御部58Bとを含む。操作対象表示制御部58Aは、ユーザの操作対象と、ユーザの操作対象に関連づけて表示される表示対象とを表示部16に表示させるための制御を実行する。
ここで、「ユーザの操作対象に関連づけて表示される表示対象」とは、ユーザの操作対象と表示対象とが関連していることをユーザが認識できるようにして、表示対象を表示することを意味している。例えば、表示対象の位置はユーザの操作対象の位置に基づいて設定される。例えば、表示対象はユーザの操作対象の付近に表示され、ユーザの操作対象に従動する。
例えば図2〜図9で説明した例の場合、ユーザキャラクタ22が「ユーザの操作対象」の一例に相当し、蝶キャラクタ24が「表示対象」の一例に相当する。
操作対象表示制御部58Aは、蝶キャラクタ24の位置をユーザキャラクタ22の位置に基づいて設定する。例えば、操作対象表示制御部58Aは、ユーザキャラクタ22から蝶キャラクタ24への距離が所定距離となるようにして、蝶キャラクタ24の位置を設定する。また例えば、操作対象表示制御部58Aは、ユーザキャラクタ22から蝶キャラクタ24への方向が、方向パッド30の基準位置32からユーザの接触位置への方向と対応するようにして、蝶キャラクタ24の位置を設定する。
画像表示制御部58Bは、複数の方向にそれぞれ対応するように設定された複数の領域のうちの、タッチパネル14Tによって検出された接触位置が含まれる領域に対応する方向を示す画像を表示部16に表示させるための制御を実行する。
例えば図2〜図9で説明した例の場合、上領域34U、下領域34D、左領域34L、及び右領域34Rが「複数の領域」の一例に相当し、上画像36U、下画像36D、左画像36L、及び右画像36Rのうちの強調表示されたものが「画像」の一例に相当する。
例えば図4に示すように、ユーザの接触位置が上領域34Uに含まれる場合、画像表示制御部58Bは上画像36Uを強調表示する。すなわち、画像表示制御部58Bは、上画像36Uの表示態様(例えば、色、大きさ、形状、又は基準位置32からの距離等)を他の画像(下画像36D、左画像36L、及び右画像36R)と異ならせることによって、上画像36Uを区別表示する。
なお、ユーザの接触位置が下領域34Dに含まれる場合、画像表示制御部58Bは下画像36Dを強調表示する。また、ユーザの接触位置が左領域34L又は右領域34Rに含まれる場合、画像表示制御部58Bは左画像36L又は右画像36Rを強調表示する。
また例えば図4に示すように、ユーザの接触位置が上領域34Uに含まれる場合、画像表示制御部58Bは、方向パッド30の基準位置32から見て、接触位置よりも外側の位置に上画像36Uを表示させる。言い換えれば、画像表示制御部58Bは、方向パッド30の基準位置32と上画像36Uとの間の距離が基準位置32とユーザの接触位置との間の距離よりも大きくなるようにして、上画像36Uの位置を設定する。例えば、画像表示制御部58Bは、ユーザの接触位置から上画像36Uまでの距離が所定距離以上となるようにして、上画像36Uの位置を設定する。
なお、ユーザの接触位置が下領域34Dに含まれる場合、同様にして、画像表示制御部58Bは下画像36Dの位置を設定する。また、ユーザの接触位置が左領域34L又は右領域34Rに含まれる場合、同様にして、画像表示制御部58Bは左画像36L又は右画像36Rの位置を設定する。
次に、ゲーム装置10で実行される処理について説明する。図11は記憶部12に記憶されるデータの一例を示し、図12及び図13は、ゲーム装置10で所定時間(例えば1/60秒)ごとに実行される処理の一例を示す。
図11に示すデータはゲームの現在の状況を示すデータであり、図12及び図13に示す処理を実行するために必要なデータである。なお、図11に示すデータの他にも、例えば、方向パッド30の基準位置32、上領域34U、下領域34D、左領域34L、右領域34R、及びニュートラル領域34N等を特定するためのデータが記憶部12には記憶されている。
例えば、図11に示すデータは接触位置データを含む。接触位置データはユーザの現在の接触位置を示す。すなわち、接触位置データはタッチパネル14Tによって検出された最新の接触位置を示す。
また、図11に示すデータは接触領域の履歴データを含む。この履歴データはユーザの接触領域の変化の履歴を示す。なお、ここでは、上領域34U、下領域34D、左領域34L、右領域34R、及びニュートラル領域34Nのうちの、ユーザによって接触された領域(すなわち、ユーザの接触位置が含まれた領域)のことを「接触領域」と記載している。
図11に示すデータでは、現在の接触領域(すなわち、ユーザが現在接触している領域)と、一つ前の接触領域(すなわち、ユーザが一つ前に接触していた領域)とが記憶されている。図11に示す例は、ユーザが現在接触している領域が上領域34Uであり、ユーザが一つ前に接触していた領域が左領域34Lである場合を示している。
さらに、図11に示すデータは振動待機フラグを含む。振動待機フラグは振動の発生を待機している状態であるか否かを示す。例えば、値「0」又は「1」が振動待機フラグに設定される。値「0」が振動待機フラグに設定されている場合(すなわち、振動待機フラグが立っていない場合)とは、振動の発生を待機していない状態に相当する。一方、値「1」が振動待機フラグに設定されている場合(すなわち、振動待機フラグが立っている場合)とは、振動の発生を待機している状態に相当する。
また、図11に示すデータはユーザキャラクタ22の位置データ及び向きデータを含む。これらのデータはユーザキャラクタ22の現在の位置及び向きを示す。さらに、図11に示すデータは蝶キャラクタ24の位置データを含む。この位置データは蝶キャラクタ24の現在の位置を示す。
図12に示すように、まず制御部11は、タッチパネル14Tによって接触位置が検出されているか否かを判定する(S101)。タッチパネル14Tによって接触位置が検出されている場合、制御部11は接触位置を取得する(S102)。この場合、制御部11は接触位置データを更新する。
その後、制御部11は、ステップS102で取得された接触位置が上領域34U、下領域34D、左領域34L、右領域34R、及びニュートラル領域34Nのいずれかに含まれているか否かを判定する(S103)。
ステップS102で取得された接触位置が上領域34U、下領域34D、左領域34L、右領域34R、及びニュートラル領域34Nのいずれかに含まれている場合、制御部11はユーザの接触領域が変化したか否かを判定する(S104)。すなわち、制御部11は、接触領域の履歴データが示す現在の接触領域と、ステップS102で取得された接触位置が含まれている領域とが異なっているか否かを判定する。
ユーザの接触領域が変化した場合、制御部11は接触領域の履歴データを更新する(S105)。また、制御部11は現在の接触領域がニュートラル領域34Nであるか否かを判定する(S106)。現在の接触領域がニュートラル領域34Nである場合、制御部11は振動待機フラグを「0」に設定する(S109)。本実施形態では、ユーザの接触領域が上領域34U、下領域34D、左領域34L、又は右領域34Rのいずれかからニュートラル領域34Nに変化した場合には振動を発生させないため、このような処理が実行される。
一方、現在の接触領域がニュートラル領域34Nでない場合、すなわち、現在の接触領域が上領域34U、下領域34D、左領域34L、又は右領域34Rである場合、制御部11は振動制御フラグが「0」であるか否かを判定する(S107)。振動制御フラグが「0」である場合、制御部11は振動制御フラグを「1」に更新する(S108)。
一方、ステップS107において振動制御フラグが「0」でないと判定された場合、すなわち、振動制御フラグが「1」であると判定された場合とは、ユーザの接触位置が第1の領域から第2の領域へと変化した後、第2の領域内で振動待機領域40(第1の領域と第2の領域との間の境界付近に設定される振動待機領域40)から出ることなく、第2の領域から第1の領域へと戻った場合である。例えば、図8に示す例においてユーザの接触位置が位置P3から位置P4へと変化した場合や、図9に示す例においてユーザの接触位置が位置P2から位置P3へと変化した場合である。このような場合、制御部11は振動制御フラグを「0」にリセットする(S109)。
ステップS108又はS109が実行された後、図13に示すように、制御部11は振動待機フラグが「1」であるか否かを判定する(S110)。
振動待機フラグが「1」である場合、制御部11は、ステップS102で取得された接触位置が、現在の接触領域内に設定された振動待機領域40であって、かつ、現在の接触領域と一つ前の接触領域との間の境界付近に設定された振動待機領域40に含まれているか否かを判定する(S111)。例えば、現在の接触領域が上領域34Uであり、かつ、一つ前の接触領域が左領域34Lである場合、制御部11は、ステップS102で取得された接触位置が振動待機領域40Aに含まれているか否かを判定する。
ステップS102で取得された接触位置が上記の振動待機領域40に含まれている場合とは、例えば、ステップS102で取得された接触位置が図8に示す位置P3又はP7である場合や、ステップS102で取得された接触位置が図9に示す位置P2又はP4である場合である。このような場合、制御部11は後述のステップS112,S113を実行することなく、ステップS114を実行する。この場合、タッチパネル14Tの振動は待機される。
一方、ステップS102で取得された接触位置が上記の振動待機領域40に含まれていない場合とは、例えば、ステップS102で取得された接触位置が図8に示す位置P8である場合や、ステップS102で取得された接触位置が図9に示す位置P5である場合である。このような場合、制御部11は振動部15を駆動することによって、タッチパネル14Tを振動させる(S112)。また、制御部11は振動待機フラグを「0」にリセットする(S113)。
また、制御部11はユーザキャラクタ22の位置データ及び向きデータを更新する(S114)。例えば、制御部11は、ユーザキャラクタ22が現在の接触領域に対応する方向を向くように、ユーザキャラクタ22の向きを設定する。また制御部11は、ユーザキャラクタ22が向いている方向に移動するように、ユーザキャラクタ22の位置を更新する。
また、制御部11は蝶キャラクタ24の位置データを更新する(S115)。例えば、制御部11は、「ユーザキャラクタ22の代表点22Aから蝶キャラクタ24への方向」が「方向パッド30の基準位置32からステップS102で取得された接触位置への方向」と対応するようにして、蝶キャラクタ24の位置を設定する。さらに、制御部11は図11に示すデータに基づいてゲーム画面20を更新する(S116)。
なお、ステップS101において、タッチパネル14Tによって接触位置が検出されていないと判定された場合、制御部11は接触位置データ、接触領域の履歴データ、及び振動待機フラグをリセットする(S117)。この場合、接触位置データは接触位置が検出されていないことを示すことになる。また、接触領域の履歴が消去され、振動待機フラグが「0」に設定される。その後、ゲーム画面20が更新される(S116)。
また、ステップS103において、接触位置が上領域34U、下領域34D、左領域34L、右領域34R、及びニュートラル領域34Nのいずれにも含まれていないと判定された場合にも、制御部11は接触位置データ、接触領域の履歴データ、及び振動待機フラグをリセットする(S117)。その後、ゲーム画面20が更新される(S116)。
以上に説明したゲーム装置10では、ユーザが入力している方向が変化した場合に振動が発生するようになっている。このため、ゲーム装置10によれば、ユーザが入力方向を変えるべく操作を行った場合に、その操作によって本当に入力方向が変わったか否かをユーザ自身が把握できるようになる。
またゲーム装置10では振動待機領域40が設定されるようになっている。その結果、ゲーム装置10によれば、ユーザの接触位置が領域の境界付近で変化したような場合であっても、必要以上に連続的に振動が発生しないように担保することが可能になる。
さらにゲーム装置10では、上画像36U、下画像36D、左画像36L、及び右画像36Rのうちの、ユーザの接触位置が含まれている領域に対応する画像が強調表示される。ゲーム装置10によれば、ユーザが入力している方向をユーザ自身が把握し易くなる。
またゲーム装置10では、蝶キャラクタ24が表示されることによって、ユーザが接触している方向パッド30内の位置をユーザ自身が把握し易くなる。
なお、本発明は以上に説明した実施の形態に限定されるものではない。
[変形例1]以上に説明した実施形態では、上領域34U、下領域34D、左領域34L、及び右領域34Rが固定されていたが、上領域34U、下領域34D、左領域34L、及び右領域34Rが変化するようにしてもよい。
図14はこの場合の機能ブロック図を示す。図14に示す機能ブロック図は、領域設定部60がゲーム装置10に含まれる点で図10と異なっている。他の機能ブロックと同様、領域設定部60も制御部11によって実現される。なお、領域設定部60以外の機能ブロックは図10と同様であるため、以下では領域設定部60について説明する。
[変形例1−1]例えば、以上に説明した実施形態では、ユーザの接触位置が領域の境界付近で変化したような場合であっても、必要以上に連続的に振動が発生しないように担保するために、振動待機領域40を設定するようになっていた。しかしながら、振動待機領域40を設定する代わりに、上領域34U、下領域34D、左領域34L、及びの右領域34Rの境界を変更するようにしてもよい。
この場合の領域設定部60は、接触位置が上領域34U、下領域34D、左領域34L、及び右領域34Rのうちの第1の領域内から第2の領域(第1の領域と隣り合う領域)内に変化した場合、第2の領域が第1の領域側に広がり、かつ、第1の領域が狭まるように、第1の領域と第2の領域との間の境界を変更する。
図15及び図16はこの場合の領域設定部60の機能について説明するための図である。図15はユーザの接触位置が左領域34L内の位置P1から上領域34U内の位置P2に変化した場合を示す。この場合、振動制御部54によって振動が発生される。またこの場合、図16に示すように、領域設定部60は、上領域34Uが左領域34L側に広がり、かつ、左領域34Lが狭まるように、左領域34Lと上領域34Uとの間の境界を変更する。
この場合、ユーザの接触位置が位置P2から左領域34Lに向かって多少変化したとしても、左領域34Lと上領域34Uとの間の境界が変更されているため、ユーザの接触位置は左領域34Lに含まれ難くなる。その結果、振動が発生し難くなる。すなわち図16に示すように、ユーザの接触位置が位置P2から位置P3に変化したとしても、ユーザの接触位置は左領域34Lに含まれなくなり、その結果、振動が発生しなくなる。このようにしても、ユーザの接触位置が領域の境界付近で変化したような場合であっても、必要以上に連続的に振動が発生しないように担保することが可能になる。
[変形例1−2]また例えば、領域設定部60は方向パッド30(上領域34U、下領域34D、左領域34L、及び右領域34R)を接触位置に基づいて設定するようにしてもよい。
例えば、接触位置が検出されていない状態から、接触位置がによって検出される状態へと変化した場合に、領域設定部60は、タッチパネル14Tによって検出された接触位置に基づいて、方向パッド30の位置を初期設定するようにしてもよい。例えば、領域設定部60は、タッチパネル14Tによって検出された接触位置を方向パッド30の基準位置32として決定するようにしてもよい。
また例えば、接触位置が方向パッド30内から方向パッド30外に変化した場合に、領域設定部60は方向パッド30の位置を接触位置に基づいて変更(補正)するようにしてもよい。例えば、領域設定部60は、接触位置が方向パッド30の領域内に含まれるようにすべく、方向パッド30を移動させるようにしてもよい。例えば、領域設定部60は、方向パッド30の基準位置32から接触位置への方向に方向パッド30を移動させるようにしてもよい。ただし、方向パッド30と接触位置とが離れすぎている場合、領域設定部60は方向パッド30の移動を行わないようにしてもよい。例えば、方向パッド30の基準位置32と接触位置との間の距離が所定距離以内である場合に限って、領域設定部60は方向パッド30の移動を行うようにしてもよい。
以上のようにすれば、ユーザの接触位置に合わせて方向パッド30の位置を設定できるようになり、その結果として、ユーザが方向パッド30の位置に合わせて接触位置を調整する手間が軽減されるため、ユーザの操作のし易さを向上することが可能になる。
[変形例1−3]また例えば、接触位置が検出されている状態から接触位置が検出されない状態へと変わった後で接触位置が検出された場合に、領域設定部60は、方向パッド30(上領域34U、下領域34D、左領域34L、及び右領域34R)を接触位置に基づいて移動させるようにしてもよい。
ここで、接触位置として位置P1が検出されている状態から接触位置が検出されない状態へと変わった後で接触位置として位置P2が検出された場合を想定する。なお、位置P1,P2は方向パッド30内の位置であることとする。
この場合、例えば、領域設定部60は位置P1,P2が近いか否かを判定する。例えば、領域設定部60は、位置P1,P2の間の距離が所定距離以内であるか否かを判定する。そして、上記距離が所定距離以内である場合、領域設定部60は、方向パッド30(基準位置32)と位置P2との位置関係が方向パッド30(基準位置32)と位置P1との位置関係と一致するようにすべく、方向パッド30を移動するようにしてもよい。言い換えれば、領域設定部60は、基準位置32に対する位置P2の相対的位置が基準位置32に対する位置P1の相対的位置と一致するようにすべく、方向パッド30を移動するようにしてもよい。
位置P1,P2が近い場合、ユーザは方向パッド30内の同じ位置を接触しているつもりである可能性が高い。この点、以上のようにすれば、ユーザの意図に合わせて方向パッド30の位置を設定することが可能になり、その結果として、ユーザが方向パッド30の位置に合わせて接触位置を調整する手間が軽減されるため、ユーザの操作のし易さを向上することが可能になる。
[変形例2]例えば、振動制御部54は、タッチパネル14Tを振動させる場合の振動の態様を変えるようにしてもよい。なお、「振動の態様を変える」とは、例えば、振動の大きさ(振幅)、長さ、又は間隔(周波数)を変えることである。
図17はこの場合の機能ブロック図を示す。図17に示す機能ブロック図は、振動態様設定部54Aが振動制御部54に含まれる点で図10と異なっている。なお、振動制御部54(振動態様設定部54A)以外の機能ブロックは図10と同様であるため、以下では振動制御部54(振動態様設定部54A)について説明する。
[変形例2−1]例えば、振動態様設定部54Aは、接触位置が、上領域34U、下領域34D、左領域34L、及び右領域34Rのうちの一の領域内から他の領域内に変化した場合に、所定のタイミングにおける接触位置の変化速度に基づいて、タッチパネルを振動させる場合の振動の態様を設定するしてもよい。
ここで、「所定のタイミング」とは、接触位置が一の領域内から他の領域内に変化したタイミングである。なお、「所定のタイミング」とは、接触位置が一の領域内から他の領域内に変化する直前のタイミングであってもよいし、接触位置が一の領域内から他の領域内に変化した後のタイミングであってもよい。例えば、「所定のタイミング」とは、接触位置が一の領域内から他の領域内に変化した後において、接触位置が他の領域内において振動待機領域40内から振動待機領域40外に変化したタイミングであってもよい。
また、「接触位置の変化速度」は、所定時間(例えば単位時間)当たりの接触位置の変化量である。言い換えれば、「接触位置の変化速度」は、所定時間(例えば単位時間)の間における接触位置の移動距離である。例えば、あるタイミングT1における接触位置の変化速度は、例えば、タイミングT1における接触位置と、タイミングT1よりも前のタイミングT2における接触位置との間の距離(接触位置の変化量)を、タイミングT1,T2の間の時間で除することによって取得される。
接触位置の変化速度に基づいて振動の態様を設定する場合には、接触位置の変化速度と振動の態様との対応関係を示す対応関係データが必要となる。図18はこの対応関係データの一例を示す。なお、図18は、接触位置の変化速度(v)に基づいて振動の大きさを変える場合の対応関係データの一例を示す。図18に示す例では、接触位置の変化速度(v)が速いほど、振動の大きさが大きくなるようになっている。この場合、振動態様設定部54Aは、所定のタイミングにおける接触位置の変化速度と、図18に示す対応関係データとに基づいて、振動の大きさを決定する。
以上のようにすれば、ユーザが振動の態様から接触位置の変化速度を把握できるように補助することが可能になる。
[変形例2−2]例えば、振動態様設定部54Aは、接触位置が、上領域34U、下領域34D、左領域34L、及び右領域34Rのうちの一の領域内から他の領域内に変化した場合に、所定のタイミングにおける接触位置に基づいて、タッチパネルを振動させる場合の振動の態様を設定するようにしてもよい。なお、「所定のタイミング」は変形例2−1と同様である。
例えば、振動態様設定部54Aは、所定のタイミングにおける接触位置と基準位置32との間の距離に基づいて、タッチパネルを振動させる場合の振動の態様を設定する。
接触位置に基づいて振動の態様を設定する場合には、接触位置と振動の態様との対応関係を示す対応関係データが必要となる。例えば、接触位置と基準位置32との間の距離に基づいて振動の態様を設定する場合には、上記距離と振動の態様との対応関係を示す対応関係データが必要となる。図19はこの対応関係データの一例を示す。なお、図19は、上記距離(d)に基づいて振動の大きさを変える場合の対応関係データの一例を示す。図19に示す例では、上記距離(d)が長いほど、振動の大きさが大きくなるようになっている。この場合、振動態様設定部54Aは、所定のタイミングにおける上記距離と、図19に示す対応関係データとに基づいて、振動の大きさを決定する。
以上のようにすれば、ユーザの接触領域が変化した場合における接触位置(ユーザの接触位置が基準位置32がどれだけ離れているか)をユーザが振動の態様から把握できるように補助することが可能になる。
[変形例3]例えば、接触位置が上領域34U、下領域34D、左領域34L、及び右領域34Rのうちのいずれかの領域内からこれらの領域外に変化した場合にも、振動制御部54はタッチパネル14Tを振動させるための制御を実行するようにしてもよい。
図20はこの場合の機能ブロック図を示す。図20に示す機能ブロック図は、領域外判定部62がゲーム装置10に含まれる点で図10と異なっている。他の機能ブロックと同様、領域外判定部62も制御部11によって実現される。なお、領域外判定部62及び振動制御部54以外の機能ブロックは図10と同様であるため、以下では領域外判定部62及び振動制御部54について説明する。
例えば、領域外判定部62は、接触位置が上領域34U、下領域34D、左領域34L、及び右領域34Rのうちのいずれかの領域内から方向パッド30外に変化したか否かを判定する。このような変化があったと判定された場合に、振動制御部54はタッチパネル14Tを振動させるための制御を実行する。
なお、振動制御部54は、この場合の振動の態様(例えば大きさ、長さ、又は周波数)を、上領域34U、下領域34D、左領域34L、及び右領域34Rのうちの一の領域からの他の領域へと変化した場合の振動の態様と異ならせるようにしてもよい。例えば、振動制御部54は、この場合の振動の大きさを、上領域34U、下領域34D、左領域34L、及び右領域34Rのうちの一の領域からの他の領域へと変化した場合の振動の大きさよりも大きくするようにしてもよい。
このようにすれば、接触位置が方向パッド30内から方向パッド30外に変化したことをユーザが把握できるように補助することが可能になる。
[変形例4]例えば、操作対象表示制御部58Aは、「ユーザキャラクタ22から蝶キャラクタ24への方向」が「接触位置が含まれる領域に対応する方向」と対応するようにして、蝶キャラクタ24の位置を設定するようにしてもよい。
例えば、接触位置が上領域34Uに含まれる場合、操作対象表示制御部58Aは蝶キャラクタ24をユーザキャラクタ22の真上に表示するようにしてもよい。また例えば、接触位置が左領域34Lに含まれる場合、操作対象表示制御部58Aは、ユーザから見てユーザキャラクタ22の左側に蝶キャラクタ24を表示するようにしてもよい。このようにしても、ユーザがユーザキャラクタ22に注目しながら自分が指示している方向を把握できるように補助することが可能になる。
[変形例5]本発明は、サーバとゲーム装置とを含むゲームシステムにも適用することが可能である。すなわち、本発明は、サーバとゲーム装置との間でデータ通信を行いながら実行されるゲームにも適用することが可能である。
図21は本発明の他の実施形態に係るゲームシステムの全体構成を示す。図21に示すように、ゲームシステム100はサーバ110とゲーム装置10とを含む。サーバ110及びゲーム装置10は通信ネットワーク120に接続される。このため、サーバ110とゲーム装置10との間で相互にデータ通信が可能である。
サーバ110は例えばサーバコンピュータによって実現される。図21に示すように、サーバ110は制御部111、記憶部112、及び通信部113を含む。制御部111、記憶部112、及び通信部113はゲーム装置10の制御部11、記憶部12、及び通信部13と同様である。なお、プログラムやデータは例えば通信ネットワーク120を介してサーバ110に供給される。サーバ110は、情報記憶媒体(例えば光ディスク又はメモリカード等)に記憶されたプログラム又はデータを読み取るための構成要素を含むようにしてもよい。そして、プログラムやデータが情報記憶媒体を介してサーバ110に供給されるようにしてもよい。
この場合、図10、図17、及び図20に示す機能ブロックはサーバ110の制御部111によって実現されるようにしてもよいし、ゲーム装置10の制御部11によって実現されるようにしてもよい。例えば、すべての機能ブロックがサーバ110(ゲーム制御装置)によって実現されるようにしてもよい。または、一部の機能ブロックがゲーム装置10によって実現され、残りの機能ブロックがサーバ110によって実現されるようにしてもよい。
なお例えば、判定部52がサーバ110によって実現される場合、方向入力受付部50の受付結果を示すデータがゲーム装置10からサーバ110に送信され、このデータに基づいて判定部52の判定が実行される。
また例えば、方向入力受付部50がサーバ110によって実現される場合、タッチパネル14Tの検出結果を示すデータがゲーム装置10からサーバ110に送信され、接触位置が上領域34U、下領域34D、左領域34L、及び右領域34Rのいずれに含まれるかが方向入力受付部50(サーバ110)によって判定される。
また例えば、振動制御部54がサーバ110によって実現される場合、振動制御部54(サーバ110)は、振動部15を駆動することを指示するデータをゲーム装置10に送信することによって、タッチパネル14Tを振動させる。
また例えば、表示制御部58がサーバ110によって実現される場合、表示制御部58(サーバ110)は、ゲーム画面20を表示するためのデータをゲーム装置10に送信することによって、ゲーム画面20を表示部16に表示させる。
[その他の変形例]例えば、以上の変形例1〜5のうちの複数を組み合わせるようにしてもよい。
また例えば、操作対象制御部56、操作対象表示制御部58A、及び画像表示制御部58Bは必須でなく、省略するようにしてもよい。例えば、蝶キャラクタ24を表示することは必須でない。また例えば、振動待機領域40やニュートラル領域34Nを設定することは必須でない。
また例えば、以上に説明した実施形態では、ユーザキャラクタ22のような人型のゲームキャラクタがユーザの操作対象になっているが、ユーザの操作対象は人型のゲームキャラクタに限られない。また、以上に説明した実施形態では、蝶キャラクタ24がユーザキャラクタ22に関連づけて表示されているが、蝶キャラクタ24以外のキャラクタがユーザキャラクタ22に関連づけて表示されるようにしてもよいし、キャラクタ以外の画像(例えばマーク、カーソル、又はアイコン等)がユーザキャラクタ22に関連づけて表示されるようにしてもよい。
また例えば、本発明は、ユーザが方向入力操作を行うようなゲームに適用することが可能である。すなわち、本発明は、ユーザが仮想的な方向パッド(又は方向ボタン、方向レバー)を用いて方向入力操作を行うようなゲームに適用することが可能であり、以上に説明したゲーム以外のゲームにも適用することが可能である。例えば、本発明は、スポーツゲーム(例えばサッカーゲーム、野球ゲーム、アイスホッケーゲーム、又はバスケットボールゲーム)、ロールプレイングゲーム、格闘ゲーム、アクションゲーム、シューティングゲーム、又はパズルゲーム等の各種ゲームに適用することが可能である。
[発明のまとめ]以上の記載から本発明は例えば以下のように把握される。
本発明に係るゲーム制御装置は、タッチパネル(14T)によって検出される接触位置が、複数の方向にそれぞれ対応するように設定された複数の領域のうちのいずれに含まれるかを判定することによって、方向入力を受け付ける方向入力受付手段(50)と、前記接触位置が前記複数の領域のうちの一の領域内から他の領域内に変化したか否かを判定する判定手段(52)と、前記接触位置が前記一の領域内から前記他の領域内に変化した場合に、前記タッチパネルを振動させるための制御を実行する振動制御手段(54)と、を含む。
本発明に係るゲームシステムは、タッチパネル(14T)によって検出される接触位置が、複数の方向にそれぞれ対応するように設定された複数の領域のうちのいずれに含まれるかを判定することによって、方向入力を受け付ける方向入力受付手段(50)と、前記接触位置が前記複数の領域のうちの一の領域内から他の領域内に変化したか否かを判定する判定手段(52)と、前記接触位置が前記一の領域内から前記他の領域内に変化した場合に、前記タッチパネルを振動させるための制御を実行する振動制御手段(54)と、を含む。
本発明に係るプログラムは、タッチパネル(14T)によって検出される接触位置が、方向入力を受け付けるために設定された複数の領域であって、かつ、複数の方向にそれぞれ対応するように設定された複数の領域のうちの一の領域内から他の領域内に変化したか否かを判定する判定手段(52)の判定結果を取得する手段、及び、前記接触位置が前記一の領域内から前記他の領域内に変化した場合に、前記タッチパネルを振動させるための制御を実行する振動制御手段(54)、としてコンピュータを機能させるためのプログラムである。
本発明によれば、ユーザが入力方向を変えるべく操作を行った場合に、その操作によって本当に入力方向が変わったか否かをユーザが振動によって把握できるようになるため、タッチパネルを介して行われる方向入力操作をユーザが行い易くなるように補助することが可能になる。
本発明の一態様では、前記複数の領域のうちの、前記接触位置が含まれる領域に対応する方向を向くように、ユーザの操作対象の向きを設定する操作対象制御手段(58A)を含むようにしてもよい。このようにすれば、ユーザが操作対象の向きを変えるべく操作を行った場合に、その操作によって本当に操作対象の向きが変わったか否かをユーザが振動によって把握できるようになり、また、操作対象の向きが変わったことをユーザが視覚的にも把握できるようになるため、タッチパネルを介して行われる、操作対象の向きを指示する操作をユーザが行い易くなるように補助することが可能になる。
本発明の一態様では、前記複数の領域は、第1の領域と、前記第1の領域と隣り合う第2の領域と、を含み、前記第2の領域は、前記第1の領域との境界付近に設定される第3の領域を含み、前記振動制御手段(54)は、前記接触位置が前記第1の領域内から前記第2の領域内に変化した場合、前記接触位置が前記第2の領域内の前記第3の領域以外の領域に含まれる状態になるまで、前記タッチパネルを振動させることを待機させる手段を含むようにしてもよい。このようにすれば、接触位置が領域の境界付近で変化するような場合に必要以上に連続的に振動が発生してしまうことを抑制できるようになる。
本発明の一態様では、前記複数の領域は、第1の領域と、前記第1の領域と隣り合う第2の領域と、を含み、前記ゲーム制御装置は、前記接触位置が前記第1の領域内から前記第2の領域内に変化した場合、前記第2の領域が前記第1の領域側に広がり、かつ、前記第1の領域が狭まるように前記第1の領域と前記第2の領域との間の境界を変更する手段(60)を含むようにしてもよい。このようにしても、接触位置が領域の境界付近で変化するような場合に必要以上に連続的に振動が発生してしまうことを抑制できるようになる。
本発明の一態様では、前記複数の領域は基準位置を中心に設定され、前記複数の領域の各々は、前記基準位置付近に設定される第4の領域を含み、前記振動制御手段(54)は、前記接触位置が前記一の領域内に変化した場合、前記接触位置が前記一の領域内の前記第4の領域以外の領域に含まれる状態になるまで、前記タッチパネルを振動させることを待機させる手段を含むようにしてもよい。このようにすれば、接触位置が領域の境界付近で変化するような場合に必要以上に連続的に振動が発生してしまうことを抑制できるようになる。
本発明の一態様では、前記複数の領域を前記接触位置に基づいて設定する手段(60)を含むようにしてもよい。このようにすれば、接触位置に合わせて複数の領域が設定されるようになり、その結果として、ユーザが複数の領域に合わせて接触位置を調整する手間が軽減されるため、ユーザの操作のし易さを向上することが可能になる。
本発明の一態様では、前記接触位置が検出されている状態から前記接触位置が検出されない状態へと変わった後で前記接触位置が検出された場合、前記複数の領域を前記接触位置に基づいて移動させる手段(60)を含むようにしてもよい。このようにすれば、接触位置が検出されている状態から接触位置が検出されない状態へと変わった後で接触位置が検出された場合に、当該接触位置に合わせて複数の領域が移動するようになり、その結果として、ユーザが複数の領域に合わせて接触位置を調整する手間が軽減されるため、ユーザの操作のし易さを向上することが可能になる。
本発明の一態様では、前記複数の領域のうちの、前記接触位置が含まれる領域に対応する方向を示す画像を、前記タッチパネルを備えた表示手段に表示させるための制御を実行する画像表示制御手段(58B)を含むようにしてもよい。このようにすれば、接触位置が含まれる領域に対応する方向(すなわち、入力されている方向)をユーザが把握し易くなるようにすることが可能になる。
本発明の一態様では、前記複数の領域は基準位置を中心に設定され、前記画像表示制御手段(58B)は、前記複数の領域のうちの、前記接触位置が含まれる領域に関連づけて前記画像を表示し、前記基準位置から見て、前記接触位置よりも外側の位置に前記画像を表示させるようにしてもよい。このようにすれば、接触位置が含まれる領域に対応する方向(すなわち、入力されている方向)を示す画像がユーザの指等によって隠れて見難くなってしまうことを防ぐことができるようになるため、接触位置が含まれる領域に対応する方向(すなわち、入力されている方向)をユーザが視覚的に把握し易くなるようにすることが可能になる。
本発明の一態様では、前記接触位置が前記複数の領域のうちのいずれかの領域内から前記複数の領域外に変化したか否かを判定する領域外判定手段(62)を含み、前記振動制御手段(54)は、前記接触位置が前記複数の領域のうちのいずれかの領域内から前記複数の領域外に変化した場合に、前記タッチパネルを振動させるための制御を実行する手段を含むようにしてもよい。このようにすれば、接触位置が複数の領域のうちのいずれかの領域内から複数の領域外に変化したことをユーザが把握し易くなるようにすることが可能になる。
本発明の一態様では、前記振動制御手段(54)は、前記接触位置が前記一の領域内から前記他の領域内に変化した場合に、所定のタイミングにおける前記接触位置の変化速度に基づいて、前記タッチパネルを振動させる場合の振動の態様を設定する振動態様設定手段(54A)を含むようにしてもよい。このようにすれば、接触位置が一の領域内から他の領域内に変化した場合に、接触位置の変化速度をユーザが振動の態様から把握できるようにすることが可能になる。
本発明の一態様では、前記振動制御手段(54)は、前記接触位置が前記一の領域内から前記他の領域内に変化した場合に、所定のタイミングにおける前記接触位置に基づいて、前記タッチパネルを振動させる場合の振動の態様を設定する振動態様設定手段(54A)を含むようにしてもよい。このようにすれば、接触位置が一の領域内から他の領域内に変化した場合に、複数の領域内における接触位置をユーザが振動の態様から把握できるようにすることが可能になる。
本発明の一態様では、前記複数の領域は基準位置を中心に設定され、前記振動態様設定手段(54A)は、前記所定のタイミングにおける前記接触位置と前記基準位置との間の距離に基づいて、前記タッチパネルを振動させる場合の振動の態様を設定する手段を含むようにしてもよい。このようにすれば、接触位置が一の領域内から他の領域内に変化した場合に、接触位置と基準位置との間の距離(すなわち、接触位置が基準位置からどの程度離れているのか)をユーザが振動の態様から把握できるようにすることが可能になる。
本発明の一態様では、ユーザの操作対象と、前記ユーザの操作対象に関連づけて表示される表示対象とを表示手段に表示させるための制御を実行する操作対象表示制御手段(58A)を含み、前記複数の領域は基準位置を中心に設定され、前記操作対象表示制御手段(58A)は、前記表示対象の位置を前記ユーザの操作対象の位置に基づいて設定する手段であって、前記ユーザの操作対象から前記表示対象への方向が、前記基準位置から前記接触位置への方向と対応するようにして、前記表示対象の位置を設定する手段を含むようにしてもよい。このようにすれば、ユーザが、操作対象に注目しながら、基準位置から接触位置への方向(言い換えれば、基準位置に対する接触位置の相対的な位置)を把握できるようにすることが可能になる。
本発明の一態様では、ユーザの操作対象と、前記ユーザの操作対象に関連づけて表示される表示対象とを表示手段に表示させるための制御を実行する操作対象表示制御手段(58A)を含み、前記操作対象表示制御手段(58A)は、前記表示対象の位置を前記ユーザの操作対象の位置に基づいて設定する手段であって、前記ユーザの操作対象から前記表示対象への方向が、前記接触位置が含まれる領域に対応する方向と対応するようにして、前記表示対象の位置を設定する手段を含むようにしてもよい。このようにすれば、ユーザが、操作対象に注目しながら、接触位置が含まれる領域に対応する方向(すなわち、入力している方向)を把握できるようにすることが可能になる。
なお、上記では、本発明の理解を容易にするために、図面に記載の符号を括弧書きで記載しているが、これにより本発明が図示の態様に限定されるものではない。