ゲーム装置およびゲームプログラム
【構成】 ゲーム装置10はLCD14を含み、LCD14の上面にはタッチパネル22が設けられる。プレイヤは、スティック24を用いてLCD14に表示された敵キャラクタを指示して、当該敵キャラクタを攻撃する。たとえば、敵キャラクタがゲーム画面の奥に存在する場合には、当該敵キャラクタに小さいダメージを与えるとともに、ゲーム装置10に弱い振動を与える。逆に、敵キャラクタがゲーム画面の手前に存在する場合には、当該キャラクタに大きいダメージを与えるとともに、ゲーム装置10に強い振動を与える。いずれの場合にも、振動は、スティック24を介してプレイヤの指や手に伝わる。
【効果】 キャラクタの表示態様の違いに応じて振動を変化させるので、リアリティのある新しい操作感を得ることができる。
【効果】 キャラクタの表示態様の違いに応じて振動を変化させるので、リアリティのある新しい操作感を得ることができる。
【発明の詳細な説明】
【技術分野】
【0001】
この発明はゲーム装置およびゲームプログラムに関し、特にたとえば、タッチパネルを操作することによって所定の処理を実行する、ゲーム装置およびゲームプログラムに関する。
【背景技術】
【0002】
従来のこの種のゲーム装置の一例が特許文献1に開示される。この特許文献1によれば、ディスプレイパネルは振動素子によって振動を付与される状態で支持されている。このディスプレイパネルには、オペレータがペンにより選択すべき選択肢をウインドウやアイコン等で表した画像が表示される。オペレータがペンで選択指示を与えると、選択された画像の種類に応じた振動の種類を決定する。そして、決定された振動で振動子が作動され、ディスプレイパネルが振動される。これにより、画像に対応した振動を、ペンを介してオペレータに伝えることができ、リアリティのあるインタフェース機能を得ている。
【特許文献1】特開平11−85400号
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし、この従来技術では、各画像に対して一義的に振動の種類が設定されているため、たとえば、画像の表示態様や画像の状態が変化しても、振動の種類が変化することはない。つまり、どのタイミングで画像を指示しても、同じ振動が与えられるため、指示したタイミングと画像の表示状態や画像の状態との関係を振動により認識することができない。これでは、オペレータに感覚的なリアリティを十分に与えているとは言えなかった。また、このような従来技術をゲーム装置にそのまま適用した場合には、たとえば、敵キャラクタのような画像が移動したり、当該敵キャラクタがプレイヤキャラクタに対して攻撃したり、当該敵キャラクタの生命力、攻撃力或いは精神状態が変化するなどのように、表示態様やゲームにおける敵キャラクタの状態(状況)の変化(違い)を感覚的に伝えることができなかった。
【0004】
それゆえに、この発明の主たる目的は、新規な、ゲーム装置およびゲームプログラムを提供することである。
【0005】
この発明の他の目的は、リアリティのある新しい操作感を得ることができる、ゲーム装置およびゲームプログラムを提供することである。
【課題を解決するための手段】
【0006】
請求項1の発明は、ゲーム画面を表示するための表示器と、当該表示器に関連して設けられるタッチパネルと、少なくとも当該表示器の画面を振動させるための振動器とを備えるゲーム装置であって、ゲーム画面表示手段、更新手段、検出手段、取得手段、および振動制御手段を備える。ゲーム画面表示手段は、ゲームに登場するキャラクタの画像を含むゲーム画面を表示器の画面に表示する。更新手段は、キャラクタの表示態様または当該キャラクタのゲームにおける状態を、変化させるためのパラメータをゲームの進行状況に応じて更新する。検出手段は、タッチパネルへの操作入力に応じた位置座標を検出する。取得手段は、検出手段によって検出された位置座標がキャラクタの表示領域に含まれるとき、タッチパネルへの操作入力時点の当該キャラクタのパラメータを取得する。そして、振動制御手段は、取得手段によって取得されたパラメータに応じた振動パターンによって振動器を振動させる。
【0007】
請求項1の発明では、ゲーム装置(10:実施例で相当する参照符号。以下、同じ。)は、ゲーム画面を表示するための表示器(14)と、当該表示器(14)に関連して設けられるタッチパネル(22)と、少なくとも当該表示器(14)を振動させるための振動器(28c)とを備えている。ゲーム画面表示手段(42,52,58,60)は、ゲームに登場するキャラクタ(72)の画像を含むゲーム画面(70)を表示器(14)の画面に表示する。更新手段(42)は、キャラクタ(72)の表示態様または当該キャラクタのゲームにおける状態を、変化させるためのパラメータ、たとえば、キャラクタ(72)の生命力、攻撃力、レベル、ゲーム空間における位置、アニメーション再生経過時間を、ゲームの進行状況に応じて更新する。ここで、レベルとは、キャラクタ(72)の生命力・攻撃力等の総体的な強さを表すパラメータである。検出手段(42,54,S7)は、タッチパネル(22)への操作入力に応じた位置座標を検出する。取得手段(42,S21,S51)は、検出手段(42,54,S7)によって検出された位置座標がキャラクタ(72)の表示領域に含まれるとき、タッチパネル22の操作位置がキャラクタ72に接触していると判断して(ステップS13で“YES”)、タッチパネルへの操作入力時点の当該キャラクタ(72)のパラメータを取得する。振動制御手段(42,S29,S37,S45,S59,S67,75)は、取得手段(42,S21,S51)によって取得されたパラメータに応じた振動パターンによって振動器(28c)を振動させる。これにより、少なくとも表示器(14)が振動され、タッチパネル(22)を操作するプレイヤにその振動が伝わる。
【0008】
請求項1の発明によれば、キャラクタのパラメータに応じた振動パターンにより振動器を振動させ、その振動がプレイヤに伝わるので、ゲーム進行状況によって変化するゲームキャラクタの表示態様やゲームキャラクタのゲームにおける状態を振動により、知覚することができる。つまり、プレイヤは新しい操作感を得ることができる。
【0009】
請求項2の発明は請求項1に従属し、更新手段は、ゲーム空間におけるキャラクタの配置座標をパラメータとして更新し、振動制御手段は、配置座標に応じた振動パターンで振動器を振動させる。
【0010】
請求項2の発明では、更新手段(42)は、ゲーム空間におけるキャラクタ(72)の配置座標をパラメータとして更新する。したがって、振動制御手段(42,S29,S37,S45)は、プレイヤがタッチパネル(22)を操作したときの配置座標に応じた振動パターンで振動器(28c)を振動させる。
【0011】
請求項2の発明によれば、キャラクタの配置位置に応じた振動パターンで振動器を振動させるので、キャラクタの配置位置を振動により認識することができる。
【0012】
請求項3の発明は請求項1に従属し、更新手段は、キャラクタのアニメーション再生経過時間をパラメータとして更新し、振動制御手段は、アニメーション再生経過時間に応じた振動パターンで振動器を振動させる。
【0013】
請求項3の発明では、更新手段(42)は、キャラクタ(72)のアニメーション再生経過時間をパラメータとして更新する。たとえば、ゲーム空間に存在するキャラクタ(72)のアニメーションを時間(フレーム:画面更新時間)に従って、攻撃状態、通常状態、防御状態に変化させる。また、攻撃状態では、アニメーションを、攻撃前の状態、攻撃中の状態、攻撃後の状態に変化させる。振動制御手段(42,S59,S67,S75)は、アニメーション再生経過時間に応じた振動パターンで振動器(28c)を振動させる。この振動が表示器(14)およびタッチパネル(22)を介して、プレイヤに提示される。
【0014】
請求項3の発明によれば、アニメーション再生経過時間に応じた振動を提示することができる。つまり、キャラクタのアクション状態に応じた振動を提示できるので、プレイヤはアニメーションのアクション状態を振動により知覚することができる。
【0015】
請求項4の発明は請求項1に従属し、更新手段は、少なくともキャラクタが攻撃状態か非攻撃状態かを決めるフラグをパラメータとして更新し、振動制御手段は、フラグのオン/オフに応じた振動パターンで振動器を振動させる。
【0016】
請求項4の発明では、更新手段(42)は、少なくともキャラクタが攻撃状態か非攻撃状態かを決めるフラグをパラメータとして更新する。たとえば、攻撃状態および非攻撃状態を示すフラグをそれぞれ記憶しておき、攻撃状態であれば、攻撃状態フラグをオンし、非攻撃状態フラグをオフする。逆に、非攻撃状態であれば、攻撃状態フラグをオフし、非攻撃状態フラグをオンする。振動制御手段(42,S59,S67,S75)は、フラグのオン/オフに応じた振動パターンで振動器(28c)を振動させる。つまり、攻撃状態および非攻撃状態の違いが振動によりプレイヤに提示される。
【0017】
請求項4の発明によれば、攻撃状態および非攻撃状態に応じた振動パターンで振動器を振動させるので、攻撃状態および非攻撃状態を振動により知覚することができ、プレイヤの攻撃によるダメージを認識することができる。
【0018】
請求項5の発明は請求項1に従属し、更新手段は、キャラクタの生命力、攻撃力および精神状態をパラメータとして更新し、振動制御手段は、キャラクタの生命力、攻撃力および精神状態の少なくとも1つに応じた振動パターンで振動器を振動させる。
【0019】
請求項5の発明では、更新手段(42)は、キャラクタの生命力(HP)、攻撃力(MP)および精神状態(平常状態、興奮状態)のようなキャラクタの属性をパラメータとして更新する。ただし、レベルも更新するようにしてもよい。振動制御手段(42)は、キャラクタの現在の属性、すなわちHP、MPおよび精神状態の少なくとも1つに応じた振動パターンで振動器(28c)を振動させる。たとえば、キャラクタの現HPの数値に応じて、振動の強さを変化させる。
【0020】
請求項5の発明によれば、キャラクタの現在の属性に応じた振動をプレイヤに提示するので、プレイヤは振動によりキャラクタの現在の属性を知ることができる。
【0021】
請求項6の発明は請求項1ないし5のいずれかに従属し、振動制御手段は、複数の振動パターンからパラメータに応じた1つの振動パターンを選択する選択手段を含む。
【0022】
請求項6の発明では、選択手段(42,S23,S31,S39,S53,S61,S69)は、複数の振動パターンからパラメータに応じた1つの振動パターンを選択する。たとえば、振動器(28c)として偏心モータを用いる場合には、駆動信号(PWM信号)の周波数およびパルス幅(デューティ比)の少なくとも一方を変化させることにより、振動器(28c)の振動の強さを変化させることができ、複数の振動パターンで振動させることができる。
【0023】
請求項6の発明によれば、振動の強さを変化させることにより、複数の振動パターンで振動させることができ、その振動により、キャラクタの表示態様やキャラクタのゲームにおける状態をプレイヤに伝えることができる。
【0024】
請求項7の発明は、ゲーム画面を表示するための表示器と、当該表示器に関連して設けられるタッチパネルと、少なくとも当該表示器の画面を振動させるための振動器とを備えるゲーム装置のゲームプログラムであって、ゲーム装置のプロセサに、ゲーム画面表示ステップ、更新ステップ、検出ステップ、取得ステップ、および振動制御ステップを実行させる。ゲーム画面表示ステップは、ゲームに登場するキャラクタの画像を含むゲーム画面を表示器の画面に表示する。更新ステップは、キャラクタの表示態様または当該キャラクタのゲームにおける状態を、変化させるためのパラメータをゲームの進行状況に応じて更新する。検出ステップは、タッチパネルへの操作入力に応じた位置座標を検出する。取得ステップは、検出ステップによって検出された位置座標がキャラクタの表示領域に含まれるとき、タッチパネルへの操作入力時点の当該キャラクタのパラメータを取得する。そして、振動制御ステップは、取得ステップによって取得されたパラメータに応じた振動パターンによって振動器を振動させる振動制御ステップを実行させる。
【0025】
請求項7のゲームプログラムにおいても、請求項1のゲーム装置と同様に、新しい操作感を与えることができる。
【発明の効果】
【0026】
この発明によれば、キャラクタ画像の表示態様やゲームにおける状態を変化させるパラメータに応じた振動をプレイヤに伝えることができるので、プレイヤは操作した時点におけるキャラクタ画像の表示態様やゲームにおける状態を振動により知覚することができる。これにより、リアリティのある新しい操作感を得ることができる。
【0027】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【0028】
図1を参照して、この発明の実施例であるゲーム装置10は、第1の液晶表示器(LCD)12および第2のLCD14を含む。このLCD12およびLCD14は、所定の配置位置となるようにハウジング16に収納される。この実施例では、ハウジング16は、上側ハウジング16aと下側ハウジング16bとによって構成され、LCD12は上側ハウジング16aに収納され、LCD14は下側ハウジング16bに収納される。したがって、LCD12とLCD14とは縦(上下)に並ぶように近接して配置される。
【0029】
なお、この実施例では、表示器としてLCDを用いるようにしてあるが、LCDに代えて、EL(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるようにしてもよい。
【0030】
図1からも分かるように、上側ハウジング16aは、LCD12の平面形状よりも少し大きな平面形状を有し、一方主面からLCD12の表示面を露出するように開口部が形成される。一方、下側ハウジング16bは、その平面形状が上側ハウジング16aよりも横長に選ばれ、横方向の略中央部にLCD14の表示面を露出するように開口部が形成される。また、下側ハウジング16bには、音抜き孔18が形成されるとともに、操作スイッチ20(20a,20b,20c,20d,20e,20Lおよび20R)が設けられる。
【0031】
また、上側ハウジング16aと下側ハウジング16bとは、上側ハウジング16aの下辺(下端)と下側ハウジング16bの上辺(上端)の一部とが回動可能に連結されている。したがって、たとえば、ゲームをプレイしない場合には、LCD12の表示面とLCD14の表示面とが対面するように、上側ハウジング16aを回動させて折りたたんでおけば、LCD12の表示面およびLCD14の表示面に傷がつくなどの破損を防止することができる。ただし、上側ハウジング16aと下側ハウジング16bとは、回動可能に連結せずに、それらを一体的(固定的)に設けたハウジング16を形成するようにしてもよい。
【0032】
操作スイッチ20は、方向指示スイッチ(十字スイッチ)20a,スタートスイッチ20b、セレクトスイッチ20c、動作スイッチ(Aボタン)20d、動作スイッチ(Bボタン)20e、動作スイッチ(Lボタン)20Lおよび動作スイッチ(Rボタン)20Rを含む。スイッチ20a,20bおよび20cは、下側ハウジング16bの一方主面であり、LCD14の左側に配置される。また、スイッチ20dおよび20eは、下側ハウジング16bの一方主面であり、LCD14の右側に配置される。さらに、スイッチ20Lおよびスイッチ20Rは、それぞれ、下側ハウジング16bの上端(天面)の一部であり、上側ハウジング16aとの連結部以外に当該連結部を挟むように、左右に配置される。
【0033】
方向指示スイッチ20aは、ディジタルジョイスティックとして機能し、4つの押圧部の1つを操作することによって、プレイヤによって操作可能なプレイヤキャラクタ(またはプレイヤオブジェクト)の移動方向を指示したり、カーソルの移動方向を指示したりする等に用いられる。スタートスイッチ20bは、プッシュボタンで構成され、ゲームを開始(再開)したり、一時停止したりする等に用いられる。セレクトスイッチ20cは、プッシュボタンで構成され、ゲームモードの選択等に用いられる。
【0034】
動作スイッチ20dすなわちAボタンは、プッシュボタンで構成され、方向指示以外の動作、すなわち、プレイヤキャラクタに打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプするなどの任意のアクションをさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。動作スイッチ20eすなわちBボタンは、プッシュボタンで構成され、セレクトスイッチ20cで選択したゲームモードの変更やAボタン20dで決定したアクションの取り消し等のために用いられる。
【0035】
動作スイッチ20L(Lボタン)および動作スイッチ20R(Rボタン)は、プッシュボタンで構成され、Lボタン20LおよびRボタン20Rは、Aボタン20dおよびBボタン20eと同様の操作に用いることができ、また、Aボタン20dおよびBボタン20eの補助的な操作に用いることができる。
【0036】
また、LCD14の上面には、タッチパネル22が装着される。タッチパネル22としては、たとえば、抵抗膜方式、光学式(赤外線方式)および静電容量結合式のいずれかの種類のものを用いることができる。また、タッチパネル22は、その上面をスティック24ないしはペン(スタイラスペン)或いは指(以下、これらを「スティック24等」という場合がある。)で、押圧したり、撫でたり、触れたり(以下、単に「押圧する」という。)することにより操作すると、スティック24等の操作位置の座標を検出して、検出した座標(検出座標)に対応する座標データを出力する。
【0037】
なお、この実施例では、LCD14(LCD12も同じ、または略同じ。)の表示面の解像度は256dot×192dotであり、タッチパネル22の検出精度(操作面)も表示画面に対応して256dot×192dotとしてある。ただし、図1では、タッチパネル22を分かり易くするために、タッチパネル22をLCD14と異なる大きさで示してあるが、LCD14の表示画面の大きさとタッチパネル22の操作面の大きさとは同じ大きさである。なお、タッチパネル22の検出精度は、表示画面の解像度よりも低くてもよく、高くてもよい。
【0038】
LCD12およびLCD14には異なるゲーム画面が表示される。たとえば、レースゲームでは一方のLCDに運転席からの視点による画面を表示し、他方のLCDにレース(コース)全体の画面を表示することができる。また、RPGでは、一方のLCDにマップやプレイヤキャラクタ等のキャラクタを表示し、他方のLCDにプレイヤキャラクタが所有するアイテムを表示することができる。さらに、一方のLCD(この実施例では、LCD12)にゲームのプレイ画面を表示し、他方のLCD(この実施例では、LCD14)に当該ゲームを操作するための文字情報やアイコン等を含むゲーム画面(操作画面)を表示することができる。さらには、2つのLCD12およびLCD14を合わせて1つの画面として用いることにより、プレイヤキャラクタが倒さなければならない巨大な怪物(敵キャラクタ)を表示することもできる。
【0039】
したがって、プレイヤはスティック24等でタッチパネル22を操作することにより、LCD14の画面に表示されるプレイヤキャラクタ、敵キャラクタ、アイテムキャラクタ、文字情報、アイコン等のキャラクタ画像を指示したり、コマンドを選択したりすることができる。
【0040】
なお、ゲームの種類によっては、その他各種の入力指示、たとえばLCD14に表示されたアイコンの選択または操作、座標入力指示等に用いることもできる。
【0041】
このように、ゲーム装置10は、2画面分の表示部となるLCD12およびLCD14を有し、いずれか一方(この実施例では、LCD14)の上面にタッチパネル22が設けられるので、2画面(12,14)と2系統の操作部(20,22)とを有する構成になっている。
【0042】
また、この実施例では、スティック24は、たとえば上側ハウジング16aの側面(右側面)近傍に設けられる収納部(穴ないし凹部)26に収納することができ、必要に応じて取り出される。ただし、スティック24を設けない場合には、収納部26を設ける必要もない。
【0043】
さらに、ゲーム装置10はメモリカード(またはゲームカートリッジ)28を含み、このメモリカード28は着脱自在であり、下側ハウジング16bの裏面ないしは底面(下端)に設けられる挿入口30から挿入される。図1では省略するが、挿入口30の奥部には、メモリカード28の挿入方向先端部に設けられるコネクタ(図示せず)と接合するためのコネクタ46(図2参照)が設けられており、したがって、メモリカード28が挿入口30に挿入されると、コネクタ同士が接合され、ゲーム装置10のCPUコア42(図2参照)がメモリカード28にアクセス可能となる。
【0044】
なお、図1では表現できないが、下側ハウジング16bの音抜き孔18と対応する位置であり、この下側ハウジング16bの内部にはスピーカ32(図2参照)が設けられる。
【0045】
また、図1では省略するが、たとえば、下側ハウジング16bの裏面側には、電池収容ボックスが設けられ、また、下側ハウジング16bの底面側には、電源スイッチ、音量スイッチ、外部拡張コネクタおよびイヤフォンジャックなども設けられる。
【0046】
図2はゲーム装置10の電気的な構成を示すブロック図である。図2を参照して、ゲーム装置10は電子回路基板40を含み、この電子回路基板40にはCPUコア42等の回路コンポーネントが実装される。CPUコア42は、バス44を介してコネクタ46に接続されるとともに、RAM48、第1のグラフィック処理ユニット(GPU)50、第2のGPU52、入出カインターフェイス回路(以下、「I/F回路」という。)54およびLCDコントローラ60が接続される。
【0047】
コネコタ46には、上述したように、メモリカード28が着脱自在に接続される。メモリカード28は、ROM28aおよびRAM28bを含み、図示は省略するが、ROM28aおよびRAM28bは、互いにバスで接続され、さらに、コネクタ46と接合されるコネクタ(図示せず)に接続される。したがって、上述したように、CPUコア42は、ROM28aおよびRAM28bにアクセスすることができるのである。また、メモリカード28には、振動子としての偏心モータ28cが設けられる。この偏心モータ28cは、ROM28aおよびRAM28bとは、別個独立に設けられ、図示は省略するが、信号線およびコネクタ46等を介してCPUコア42に接続される。ただし、偏心モータ28cに限らず、圧電素子等により構成された振動子やボイスコイル等により構成された振動子を用いることもできる。
【0048】
ROM28aは、ゲーム装置10で実行すべきゲーム(仮想ゲーム)のためのゲームプログラム、画像(キャラクタ画像、背景画像、アイテム画像、アイコン(ボタン)画像、メッセージ画像など)データおよびゲームに必要な音(音楽)のデータ(音データ)等を予め記憶する。RAM(バックアップRAM)28bは、そのゲームの途中データやゲームの結果データを記憶(セーブ)する。
【0049】
偏心モータ28cは、CPUコア42からの駆動信号(PWM信号)に従って駆動(作動)される。偏心モータ28cが作動すると、その軸の回転により、振動が発生し、その振動がゲーム装置10に伝わる。たとえば、駆動信号の周波数およびパルス幅(デューティ比)の少なくとも一方を変化させることにより、振動の強さすなわち振動の種類(振動パターン)を変化させることができる。
【0050】
RAM48は、バッファメモリないしはワーキングメモリとして使用される。つまり、CPUコア42は、メモリカード28のROM28aに記憶されたゲームプログラム、画像データおよび音データ等をRAM48にロードし、ロードしたゲームプログラムを実行する。また、CPUコア42は、ゲームの進行に応じて一時的に発生するデータ(ゲームデータやフラグデータ)をRAM48に記憶しつつゲーム処理を実行する。
【0051】
なお、ゲームプログラム、画像データおよび音データ等は、ROM28aから一度に全部、または部分的かつ順次的に読み出され、RAM48に記憶(ロード)される。
【0052】
ただし、メモリカード28のROM28aには、ゲーム以外の他のアプリケーションについてのプログラムおよび当該アプリケーションの実行に必要な画像データが記憶される。また、必要に応じて、音(音楽)データが記憶されてもよい。かかる場合には、ゲーム装置10では、当該アプリケーションが実行される。
【0053】
GPU50およびGPU52は、それぞれ、描画手段の一部を形成し、たとえばシングルチップASICで構成され、CPUコア42からのグラフィックスコマンド(graphics command :作画命令)を受け、そのグラフィックスコマンドに従ってゲーム画像データを生成する。ただし、CPUコア42は、グラフィックスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラム(ゲームプログラムに含まれる。)をGPU50およびGPU52のそれぞれに与える。
【0054】
また、GPU50には、第1のビデオRAM(以下、「VRAM」という。)56が接続され、GPU52には、第2のVRAM58が接続される。GPU50およびGPU52が作画コマンドを実行するにあたって必要なデータ(画像データ:キャラクタデータやテクスチャ等のデータ)は、GPU50およびGPU52が、それぞれ、第1のVRAM56および第2のVRAM58にアクセスして取得する。ただし、CPUコア42は、描画に必要な画像データをRAM48から読み出し、GPU50およびGPU52を介して第1のVRAM56および第2のVRAM58に書き込む。GPU50はVRAM56にアクセスして描画のためのゲーム画像データを作成し、GPU52はVRAM58にアクセスして描画のためのゲーム画像データを作成する。
【0055】
VRAM56およびVRAM58は、LCDコントローラ60に接続される。LCDコントローラ60はレジスタ62を含み、レジスタ62はたとえば1ビットで構成され、CPUコア42の指示によって「0」または「1」の値(データ値)を記憶する。LCDコントローラ60は、レジスタ62のデータ値が「0」である場合には、GPU50によって作成されたゲーム画像データをLCD12に出力し、GPU52によって作成されたゲーム画像データをLCD14に出力する。また、LCDコントローラ60は、レジスタ62のデータ値が「1」である場合には、GPU50によって作成されたゲーム画像データをLCD14に出力し、GPU52によって作成されたゲーム画像データをLCD12に出力する。
【0056】
なお、LCDコントローラ60は、VRAM56およびVRAM58から直接ゲーム画像データを読み出したり、GPU50およびGPU52を介してVRAM56およびVRAM58からゲーム画像データを読み出したりする。
【0057】
I/F回路54には、操作スイッチ20,タッチパネル22およびスピーカ32が接続される。ここで、操作スイッチ20は、上述したスイッチ20a,20b,20c,20d,20e,20Lおよび20Rであり、操作スイッチ20が操作されると、対応する操作信号(操作データ)がI/F回路54を介してCPUコア42に入力される。また、タッチパネル22から出力される座標データがI/F回路54を介してCPUコア42に入力される。さらに、CPUコア42は、ゲーム音楽(BGM)、効果音またはゲームキャラクタの音声(擬制音)などのゲームに必要な音データをRAM48から読み出し、I/F回路54を介してスピーカ32から出力する。
【0058】
このような構成のゲーム装置10では、上述したように、プレイヤはスティック24等でタッチパネル22を押圧することにより、ゲーム画面(LCD14の画面)に表示されるプレイヤキャラクタ、敵キャラクタやアイテムキャラクタ等を指示することができる。具体的には、プレイヤキャラクタを移動させたり、敵キャラクタに攻撃したり、アイテムキャラクタを取得したりなどすることができる。このように、プレイヤがスティック24等でゲーム操作を行う場合には、偏心モータ28cを作動させることにより、ゲーム装置10を振動させて、スティック24を介して間接的に、または、直接プレイヤの指に振動を与えることができる。つまり、ゲーム画面や音(音楽)に加えて、振動を与えることにより、プレイヤはリアリティのある操作感を得ることができる。
【0059】
たとえば、プレイヤキャラクタや敵キャラクタのようなゲームキャラクタ毎に、異なる種類(パターン)の振動を与えることができる。これは、上述したように、偏心モータ28cに与える駆動信号(PWM信号)の周波数およびパルス幅の少なくとも一方を変化させることにより、実現可能である。
【0060】
しかし、各ゲームキャラクタで振動の種類を固定してしまうと、ゲームキャラクタの表示態様やゲームにおけるゲームキャラクタの状態(状況)に応じて振動を変化させることができない。たとえば、敵キャラクタが画面奥から次第に画面手前に移動することにより、プレイヤキャラクタに近づいてくるような場合に、当該敵キャラクタを攻撃するとき、敵キャラクタの位置に拘わらず同じ振動が与えられてしまう。また、敵キャラクタが攻撃状態のときに攻撃する場合と敵キャラクタが非攻撃状態(防御状態または通常状態)のときに攻撃する場合とに拘わらず、同じ振動が与えられてしまう。さらには、敵キャラクタの生命力(HP)、攻撃力(MP)または精神状態に変化があっても、同じ振動が与えられてしまう。
【0061】
このように、各ゲームキャラクタに対して一義的に振動の種類(振動パターン)を決定してしまうと、振動により、ゲームキャラクタの表示状態やゲームにおけるゲームキャラクタの状態(状況)を伝えることができず、リアリティのある操作感が十分に得られているとは言えない。また、このような場合には、同じゲームキャラクタが登場した場合には、同じ振動が与えられることになり、ゲームが単調になり、プレイヤがゲームへの興味を減退させてしまう恐れがある。
【0062】
そこで、この実施例では、ゲームキャラクタの表示態様やゲームキャラクタのゲームにおける状態に応じて振動パターンを変化させるようにして、リアリティのある新しい操作感を得るようにしてある。
【0063】
ここで、ゲームキャラクタの表示態様やゲームキャラクタのゲームにおける状態は、ゲームキャラクタの生命力(HP)、攻撃力(MP)、レベル(LV)、精神状態、配置位置(3次元位置)、アニメーションの再生経過時間などのパラメータがゲームの進行状況に応じて変化(変動)することにより、変化する。この実施例では、HP、MPおよびLVのみならず、精神状態、配置位置またはアニメーションの再生経過時間(アニメーション再生経過時間)もパラメータとしてある。これは、精神状態、配置位置またはアニメーション再生経過時間もゲームの進行状況によって変化するからである。
【0064】
図3は、プレイヤないしプレイヤキャラクタ(図示せず)が敵キャラクタを攻撃した場合における、敵キャラクタの表示態様に応じて、ここでは、3次元の仮想ゲーム空間に存在する敵キャラクタの配置位置(この実施例では、Z座標)に応じて、敵キャラクタに与えるダメージの大きさおよびゲーム装置10に与える振動パターンを変化させる(この実施例では、振動の強さを変化させる)例を示す図解図である。
【0065】
ただし、図3においては、左側のゲーム画面70では、紙面の左右方向がX軸方向であり、紙面の上下方向がY軸方向であり、紙面の垂直方向がZ軸方向である。また、右側の3次元座標では、紙面の左右方向がZ軸方向であり、紙面の上下方向がY軸方向であり、紙面の垂直方向がX軸方向である。さらに、Z座標の値(Z値)は、Z0に向かうほど原点に近づき、ここでは、Z値の大きさはZ0<Z1<Z2<Z3となる。
【0066】
図3(A)の左側に示すゲーム画面70では、敵キャラクタ72が比較的小さく表示される。これは、敵キャラクタ72が画面奥(遠く)に存在していることを示す。また、図3(A)の右側に示す3次元座標では、敵キャラクタ72は、そのZ座標の値(Z値)がZ2〜Z3の範囲内(Z2≦Z<Z3)であることが分かる。このとき、たとえば、プレイヤがスティック24等で敵キャラクタ72を指示し、敵キャラクタ72を攻撃すると、敵キャラクタ72に比較的小さいダメージが与えられ、また、ゲーム装置10に比較的小さな振動が与えられる。つまり、ダメージの大きさに応じた振動がゲーム装置10に与えられるのである。以下、同様である。
【0067】
具体的には、CPUコア42は、敵キャラクタ72のHPから比較的小さい値(たとえば、100ポイント(100P))を減算し、一定のパルス幅W1で比較的低い周波数f1(たとえば、200Hz)の駆動信号を偏心モータ28cに与える。なお、駆動信号の電圧値(波高値)は、一定(たとえば、5V)である。以下、同じ。これにより、偏心モータ28cが作動し、ゲーム装置10に小さな(弱い)振動(小振動)が与えられる。すると、その振動がスティック24を介して間接的に、或いは直接プレイヤの指に伝わる。以下、同様である。
【0068】
図3(B)の左側に示すゲーム画面70は、図3(A)に示す状態よりも敵キャラクタ72が画面手前に存在し(近づき)、図3(B)の右側に示す3次元座標において、敵キャラクタ72のZ値がZ1〜Z2の範囲内(Z1≦Z<Z2)である場合について示している。このとき、プレイヤがスティック24等で敵キャラクタ72を指示し、敵キャラクタ72を攻撃すると、敵キャラクタ72に中くらいのダメージが与えられ、これに応じて、ゲーム装置10に中くらいの振動が与えられる。つまり、CPUコア42は、敵キャラクタ72のHPから中くらいの値(たとえば、200P)を減算し、一定のパルス幅W1で周波数f2(たとえば、300Hz)の駆動信号を偏心モータ28cに与えることにより、ゲーム装置10に中くらいの振動(中振動)を与える。
【0069】
図3(C)の左側に示すゲーム画面70は、図3(B)に示す状態よりも敵キャラクタ72が画面手前に存在し(近づき)、図3(C)の右側に示す3次元座標において、敵キャラクタ72のZ値がZ0〜Z1の範囲内(Z0≦Z<Z1)である状態を示している。このとき、プレイヤがスティック24等で敵キャラクタ72を指示し、敵キャラクタ72を攻撃すると、敵キャラクタ72に比較的大きいダメージが与えられ、これに応じて、ゲーム装置10に比較的大きい振動が与えられる。つまり、CPUコア42は、敵キャラクタ72のHPから比較的大きい値(たとえば、300P)を減算し、一定のパルス幅W1で比較的大きい周波数f3(たとえば、400Hz)の駆動信号を偏心モータ28cに与えることにより、ゲーム装置10に比較的大きい(強い)振動(大振動)を与える。
【0070】
このように、プレイヤないしプレイヤキャラクタが敵キャラクタ72を攻撃したときの当該敵キャラクタ72の配置位置(Z値)に応じて、当該敵キャラクタ72に与えるダメージの大きさを変化させ、そのダメージの大きさを振動の強さで表現するので、プレイヤは振動により、ダメージの大きさを認識(知覚)することができる。
【0071】
ただし、敵キャラクタ72の配置位置は、短い時間間隔で連続的に変化してもよい。この場合には、プレイヤは、敵キャラクタ72の配置位置の素早い変化に合わせてタッチしなければならないため、よりゲームを面白くする効果がある。
【0072】
なお、説明の便宜上、振動の強さを3段階で変化させるようにしてあるが、ダメージの大きさの変化に応じて、2段階で変化させるようにしてもよく、また、4段階以上で変化させるようにしてもよい。また、振動の強さを3段階で変化させるようにしてあるため、説明の便宜上、振動の強さを大、中、小で表現したが、これは、3段階の振動における相対的な強さの違いである。このことは、周波数の大きさおよびダメージの大きさについても同様である。
【0073】
また、ここでは、駆動信号の周波数を変化させて、振動の強さを変えることにより、異なる振動パターンでゲーム装置10を振動させるようにしてあるが、駆動信号のパルス幅W1を変化させるようにしてもよい。かかる場合には、プレイヤは、パルス幅W1が長い程、振動を強く感じ、逆に、パルス幅W1が短い程、振動を弱く感じる。ただし、周波数およびパルス幅の両方を変化させるようにしてもよい。
【0074】
さらに、図3に示す例では、敵キャラクタ72が画面の手前に存在するほど(近づくにつれて)、振動が強く(大きく)なるようにしてあるが、敵キャラクタ72が画面の手前に存在するほど(近づくにつれて)、振動が弱く(小さく)なるようにしてもよい。
【0075】
図4は、プレイヤないしプレイヤキャラクタが敵キャラクタを攻撃した場合における、敵キャラクタのゲームにおける状態に応じて、敵キャラクタに与えるダメージの大きさおよびゲーム装置10に与える振動の強さを変化させる例を示す図解図である。
【0076】
さらにまた、この実施例では、配置位置として敵キャラク72のZ座標に応じて、敵キャラクタ72に与えるダメージの大きさおよびゲーム装置10に与える振動の強さを変化させるようにしてあるが、X座標またはY座標に応じてそれらを変化させるようにしてもよく、また、X座標、Y座標およびZ座標のいずれか2つ以上の組み合わせに応じてそれらを変化させるようにしてもよい。
【0077】
図4からも分かるように、ここでは、敵キャラクタ72のアクション状態が、アニメーション再生経過時間(フレーム:画面更新時間)に従って、攻撃前、攻撃中、攻撃後の順で変化し、これにより、敵キャラクタ72の表示状態または敵キャラクタ72のゲームにおける状態も同様に変化する。この実施例では、図4に示すアニメーション再生経過時間(以下、単に「経過時間」という。)の範囲(長さ)は、たとえば、数フレーム〜数十フレームである。
【0078】
この図4を参照して、経過時間が第Aフレーム〜第Bフレーム(第Aフレーム≦経過時間<第Bフレーム)では、敵キャラクタ72がプレイヤないしプレイヤキャラクタに対して攻撃する前の状態(攻撃前の状態)がゲーム画面70に表示される。このとき、たとえば、プレイヤがスティック24等で敵キャラクタ72を指示し、敵キャラクタ72を攻撃すると、敵キャラクタ72に比較的小さいダメージが与えられ、これに応じて、ゲーム装置10に比較的小さな振動が与えられる。
【0079】
なお、敵キャラクタ72へのダメージの与え方およびゲーム装置10への振動の与え方は、図3(A)に示した場合と同じであるため、重複した説明は省略する。
【0080】
次に、経過時間が第Bフレーム〜第Cフレーム(第Bフレーム≦経過時間<第Cフレーム)では、敵キャラクタ72がプレイヤないしプレイヤキャラクタに対して攻撃している状態(攻撃中の状態)がゲーム画面70に表示される。このとき、プレイヤがスティック24等で敵キャラクタ72を指示し、敵キャラクタ72を攻撃すると、敵キャラクタ72に中くらいのダメージが与えられ、これに応じて、ゲーム装置10に中くらいの振動が与えられる。
【0081】
なお、敵キャラクタ72へのダメージの与え方およびゲーム装置10への振動の与え方は、図3(B)に示した場合と同じであるため、重複した説明は省略する。
【0082】
そして、経過時間が第Cフレーム〜第Dフレーム(第Cフレーム≦経過時間<第Dフレーム)では、敵キャラクタ72がプレイヤないしプレイヤキャラクタに対して攻撃した後の状態(攻撃後の状態)がゲーム画面70に表示される。このとき、プレイヤがスティック24等で敵キャラクタ72を指示し、敵キャラクタ72を攻撃すると、敵キャラクタ72に比較的大きいダメージが与えられ、これに応じて、ゲーム装置10に比較的大きい振動が与えられる。
【0083】
なお、敵キャラクタ72へのダメージの与え方およびゲーム装置10への振動の与え方は、図3(C)に示した場合と同じであるため、重複した説明は省略する。
【0084】
このように、図4に示す例では、数フレーム〜数十フレーム単位で、敵キャラクタ72のアクション状態を変化させるようにしてあるが、敵キャラクタ72のアクション状態を短い時間間隔(たとえば、数フレーム単位)で連続的に変化させるようにした場合には、プレイヤは、敵キャラクタ72の素早いアクション状態の変化に合わせてタッチしなければならないため、よりゲームを面白くする効果がある。
【0085】
なお、図4に示す例では、振動の強さを3段階で変化させたが、ダメージの大きさの変化に応じて、振動の強さの段階を2段階または4段階以上で変化させるようにしてもよいことは、上述の場合と同様である。
【0086】
また、駆動信号のパルス幅を変化させたり、周波数とパルス幅との両方を変化させたりすることにより、振動パターンを変化させるようにしてもよいことは、上述の場合と同様である。
【0087】
さらに、図4に示した例とは逆に、敵キャラクタ72の攻撃前に、プレイヤが敵キャラクタ72を攻撃した場合に、敵キャラクタ72に与えるダメージおよびゲーム装置10に与える振動を大きくし、敵キャラクタ72の攻撃後に、プレイヤが敵キャラクタ72を攻撃した場合に、敵キャラクタ72に与えるダメージおよびゲーム装置10に与える振動を小さくするようにしてもよい。
【0088】
具体的には、ゲーム装置10のRAM48には、図5(A)および図5(B)に示すようなテーブルが記憶されており、これらのテーブルに従って、敵キャラクタ72に与えるダメージの大きさおよびゲーム装置10に与える振動の強さを変化(決定)するようにしてある。ここでは、2つのテーブルについて説明するが、たとえば、テーブルは各敵キャラクタ72に関連付けて記憶されている。ただし、敵キャラクタ72の数が膨大である場合には、メモリ(ROM28a,RAM48)の容量が肥大化するため、数種類のテーブルを用意しておき、当該ゲームの開発者ないしはプログラマの意図に従って各敵キャラクタ72をいずれかのテーブルに関連付けるようにしてもよい。
【0089】
図5(A)は、図3を用いて説明したように、敵キャラクタ72の配置位置(Z値)に応じて、敵キャラクタ72に与えるダメージの大きさおよび振動の強さを決定するためのテーブルである。図5(A)からも分かるように、Z値がZ0〜Z1では、敵キャラクタ72に与えるダメージは大きく(HP:300P)、振動の強さは大(駆動信号の周波数:f3)である。また、Z値がZ1〜Z2では、敵キャラクタ72に与えるダメージは中くらい(HP:200P)であり、振動の強さは中(駆動信号の周波数:f2)である。さらに、Z値がZ2〜Z3では、敵キャラクタ72に与えるダメージは小さく(HP:100P)、振動の強さは小(駆動信号の周波数:f1)である。
【0090】
具体的には、プレイヤがスティック24等により操作したとき、タッチパネル22から入力される座標データを検出し、敵キャラクタ72への攻撃かどうかを判断する。つまり、座標データが示す位置座標が、敵キャラクタ72の表示領域に含まれるかどうかを判断する。
【0091】
ここで、上述したように、LCD14の解像度とタッチパネル22の検出精度とは同じであるため、タッチパネル22から入力される座標データが示す位置座標はLCD14の画面上の位置座標と一致する。したがって、プレイヤの操作が敵キャラクタ72を指示(攻撃)するものであるかどうかを簡単に判断することができる。
【0092】
位置座標が、敵キャラクタ72の表示領域に含まれていない場合には、攻撃ミスであると判断して、たとえば、攻撃ミスを表現するようなゲーム画面70(図示せず)を表示する。一方、位置座標が、敵キャラクタ72の表示領域に含まれている場合には、攻撃成功であると判断して、プレイヤが敵キャラクタ72を攻撃したとき、すなわち座標データが入力されたときの敵キャラクタ72のZ値を取得する。
【0093】
CPUコア42は、プレイヤないしプレイヤキャラクタが敵キャラクタ72を攻撃したときの当該敵キャラクタ72のZ値を取得すると、図5(A)に示すテーブルから当該Z値がどの範囲に含まれるかを判定し、判定した範囲に対応する、ダメージの大きさおよび振動の強さを決定し、上述したように、敵キャラクタ72のHPを減算するとともに、偏心モータ28cを駆動してゲーム装置10を振動させる。
【0094】
また、図5(B)は、図4を用いて説明したように、敵キャラクタ72の表示態様や敵キャラクタ72のゲームにおける状態に応じて、敵キャラクタ72に与えるダメージの大きさおよび振動の強さを決定するためのテーブルである。この図5(B)からも分かるように、ゲーム(または戦闘シーン)の経過時間が第Aフレーム〜第Bフレーム(攻撃前)では、敵キャラクタ72に与えるダメージは小さく(HP:100P)、振動の強さは小(駆動信号の周波数:f1)である。また、ゲーム(または戦闘シーン)の経過時間が第Bフレーム〜第Cフレーム(攻撃中)では、敵キャラクタ72に与えるダメージは中くらい(HP:200P)であり、振動の強さは中(駆動信号の周波数:f2)である。さらに、ゲーム(または戦闘シーン)の経過時間が第Cフレーム〜第Dフレームでは、敵キャラクタ72に与えるダメージは大きく(HP:300P)、振動の強さは大(駆動信号の周波数:f3)である。
【0095】
具体的には、プレイヤがスティック24等により操作したとき、タッチパネル22から入力される座標データを検出し、敵キャラクタ72への攻撃かどうかを判断する。つまり、座標データが示す位置座標が、敵キャラクタ72の表示領域に含まれるかどうかを判断する。位置座標が、敵キャラクタ72の表示領域に含まれていない場合には、攻撃ミスであると判断して、たとえば、攻撃ミスを表現するようなゲーム画面70(図示せず)を表示する。一方、位置座標が、敵キャラクタ72の表示領域に含まれている場合には、攻撃成功であると判断して、プレイヤが敵キャラクタ72を攻撃したとき、つまり座標データが入力されたときのゲーム(または戦闘シーン)の経過時間(フレーム)を取得する。
【0096】
なお、図2では省略したが、フレームカウンタを設けてバス44に接続しておけば、座標データが入力されたときのフレームカウンタのカウント値(フレーム数)を容易に取得することができる。ただし、フレームカウンタは、ゲームの開始時または戦闘シーンの開始時にリセットおよびスタートする必要がある。
【0097】
CPUコア42は、プレイヤないしプレイヤキャラクタが敵キャラクタ72を攻撃したときのゲームの経過時間(フレーム)を取得すると、図5(B)に示すテーブルから当該経過時間がどの範囲に含まれるかを判定し、判定した経過時間の範囲に対応するダメージの大きさおよび振動の強さを決定し、上述したように、敵キャラクタ72のHPを減算するとともに、偏心モータ28cを駆動してゲーム装置10を振動させる。
【0098】
上述したように、この実施例では、敵キャラクタ72のアニメーションが攻撃前、攻撃中、攻撃後の順で変化するとき、経過時間によって、いずれの状態であるかを判定するようにしてあるが、攻撃前、攻撃中、攻撃後のそれぞれを示すフラグを記憶しておき、それらのフラグを参照して、いずれの状態であるかを判定するようにしてもよい。たとえば、攻撃前フラグ、攻撃中フラグ、攻撃後フラグをRAM48に設けておき、アニメーションが攻撃中であれば、攻撃前フラグおよび攻撃後フラグをオフし、攻撃中フラグをオンする。このようにすれば、それらのフラグのオン/オフにより、いずれの状態であるかを容易に判定することができる。
【0099】
なお、この実施例では、各敵キャラクタ72に対してテーブルを関連付けるようにしてあるが、ゲームの進行状況(イベント等)に応じて使用するテーブルを適宜選択するようにしてもよい。
【0100】
また、テーブルは、すべての敵キャラクタ72に対して関連付ける必要はなく、一部の敵キャラクタ72にのみ関連づけておき、当該一部の敵キャラクタ72との戦闘シーンにおいてのみ、ゲーム装置10を振動させる演出を実行することも可能である。
【0101】
具体的には、図2に示したCPUコア42が図6に示すフロー図を処理する。この図6に示すフロー図は、敵キャラクタ72が出現するシーン(たとえば、戦闘シーン)におけるゲーム処理である。図6を参照して、CPUコア42は、敵キャラクタ72が出現するシーンにおけるゲーム処理を開始すると、ステップS1で、敵キャラクタ72のパラメータ(HPや攻撃力(MP))を設定する。つまり、図示は省略したが、RAM48には、敵キャラクタ72毎に、その画像を生成するためのキャラクタ画像データが記憶されるとともに、そのパラメータ(HP,MP)も記憶されている。このHP,MPは、予めゲームの開発者やプログラマ等によって決定される値であり、たとえば、敵キャラクタ72の強さ(レベル)によって異なる値が設定される。そのHPおよびMPが、RAM48のワーキングエリアに読み出されるのである。
【0102】
続くステップS3では、敵キャラクタ72をゲーム画面70に表示する。つまり、CPUコア42は、GPU52にグラフィックスコマンドを与えるとともに、画像生成プログラムを与える。これに応じて、GPU52は、敵キャラクタ72を含むゲーム画面70をVRAM58上に作成する。そして、CPUコア42は、LCDコントローラ60を制御して、LCD14にゲーム画面70を表示させる。
【0103】
次のステップS5では、敵キャラクタ72をランダムに動作させる。たとえば、敵キャラクタ72を画面奥から画面手前に移動させたり、敵キャラクタ72に攻撃動作などのアクションをさせたりする。続いて、ステップS7で、タッチ入力(タッチパネル22を用いた入力操作)を検出する。つまり、図示は省略するが、I/F回路54に設けられるタッチパネル22に対応するバッファ(タッチパネル22からの座標データを一時記憶するバッファ)の読み出し処理を実行する。
【0104】
そして、ステップS9で、タッチ入力があるかどうかを判断する。つまり、タッチパネル22に対応するバッファに座標データが記憶されているかどうかを判断する。ステップS9で“NO”であれば、つまり座標データが入力されていなければ、タッチ入力がないと判断して、そのままステップS5に戻る。一方、ステップS9で“YES”であれば、つまり座標データが入力されていれば、タッチ入力があると判断して、ステップS11で、入力位置の敵キャラクタ72への接触を判定する。つまり、タッチパネル22から入力された座標データが示す位置座標が、敵キャラクタ72の表示領域に含まれるかどうかを判定する。
【0105】
次のステップS13では、入力位置が敵キャラクタ72に接触しているかどうかを判断する。つまり、ステップS11の判定結果が接触を示すかどうかを判断する。ステップS13で“NO”であれば、つまり入力位置が敵キャラクタ72に接触していなければ、攻撃ミスであると判断して、そのままステップS5に戻る。ただし、上述したように、攻撃ミスを表現するゲーム画面70をLCD14に表示してからステップS5に戻るようにしてもよい。
【0106】
一方、ステップS13で“YES”であれば、つまり入力位置が敵キャラクタ72に接触していれば、攻撃成功であると判断して、ステップS15で、後述する攻撃および振動処理(図7−図8,図9−図10参照)を実行して、ステップS17で、敵キャラクタ72のHPが0になったかどうかを判断する。つまり、プレイヤないしプレイヤキャラクタが敵キャラクタ72を倒したかどうかを判断する。
【0107】
ステップS17で“NO”であれば、つまり敵キャラクタ72のHPが0でなければ、プレイヤないしプレイヤキャラクタが敵キャラクタ72を倒していないと判断し、ステップS5に戻る。一方、ステップS17で“YES”であれば、つまり敵キャラクタ72のHPが0であれば、プレイヤないしプレイヤキャラクタが敵キャラクタ72を倒したと判断して、ステップS19で、敵キャラクタ72が倒されたときのリアクションを表現するゲーム画面70(図示せず)を表示して、敵キャラクタ72が出現するシーンにおけるゲーム処理を終了する。
【0108】
なお、図示は省略するが、敵キャラクタ72の攻撃により、プレイヤないしプレイヤキャラクタのHPが0になった場合には、ゲームオーバとなる。
【0109】
図7および図8のフロー図、図9および図10のフロー図は、それぞれ、図6に示したステップS15の攻撃および振動処理を示すフロー図である。図7および図8は、プレイヤないしプレイヤキャラクタが敵キャラクタ72を攻撃したときの当該敵キャラクタ72の配置位置(Z値)に応じて、当該敵キャラクタ72に与えるダメージの大きさおよびゲーム装置10に与える振動の強さを変化させる場合の攻撃および振動処理を示すフロー図である。また、図9および図10は、プレイヤないしプレイヤキャラクタが敵キャラクタ72を攻撃したときの経過時間(フレーム)に応じて、当該敵キャラクタ72に与えるダメージの大きさおよびゲーム装置10に与える振動の強度を変化させる場合の攻撃および振動処理を示すフロー図である。以下、説明の便宜上、図7および図8に示すフロー図の処理を攻撃および振動処理(1)といい、図9および図10に示すフロー図の処理を攻撃および振動処理(2)ということにする。
【0110】
なお、上述したように、この実施例では、敵キャラクタ72に応じてテーブルを関連付けるようにしてあるため、実際には、図6に示すフロー図では、ステップS15の処理の前、具体的には、ステップS3からステップS15までのいずれかの時点で、ステップS3で表示した敵キャラクタ72に応じたテーブルを決定し、攻撃および振動処理(1)または(2)のいずれの処理を実行するかが選択されるのである。
【0111】
図7を参照して、CPUコア42は、攻撃および振動処理(1)を開始すると、ステップS21で、敵キャラクタ72のZ値を検出する。続くステップS23では、Z値がZ0〜Z1の範囲内(Z0≦Z<Z1)であるかどうかを判断する。ステップS23で“NO”であれば、つまり敵キャラクタ72のZ値がZ0〜Z1の範囲内でなければ、そのままステップS31に進む。一方、ステップS23で“YES”であれば、つまり敵キャラクタ72のZ値がZ0〜Z1の範囲内であれば、ステップS25で、敵キャラクタに大きいダメージを与える。つまり、CPUコア42は、図5(A)に示すテーブルに従って、敵キャラクタのHPから300P減算する。次に、ステップS27で、敵キャラクタ72に大ダメージを与えた時のリアクションを表示する。つまり、敵キャラクタ72がダメージを受けた状態を派手な演出で表現するゲーム画面70を表示する。このとき、大ダメージを表現する音(音楽)による演出を加えてもよい。そして、ステップS29で、図5(A)に示すテーブルに従って、ゲーム装置10に大振動を与えて、図8に示すように、攻撃および振動処理(1)をリターンする。つまり、ステップS29では、CPUコア42は、一定パルス幅W1で周波数f3(400Hz)の駆動信号を偏心モータ28cに与える。
【0112】
ステップS31では、Z値がZ1〜Z2の範囲内(Z1≦Z<Z2)であるかどうかを判断する。ステップS31で“NO”であれば、つまりZ値がZ1〜Z2の範囲内でなければ、図8に示すステップS39に進む。一方、ステップS31で“YES”であれば、つまりZ値がZ1〜Z2の範囲内であれば、ステップS33で、敵キャラクタ72に中くらいのダメージを与える。つまり、CPUコア42は、図5(A)に示すテーブルに従って、敵キャラクタ72のHPから200P減算する。次にステップS35で、敵キャラクタ72に中ダメージを与えた時のリアクションを表示する。つまり、敵キャラクタ72がダメージを受けた状態を、大ダメージを受けた場合よりも派手でない演出のゲーム画面70を表示する。このとき、中ダメージを表現する音(音楽)による演出を加えてもよい。そして、ステップS37で、図5(A)に示すテーブルに従って、ゲーム装置10に中振動を与えて、攻撃および振動処理(1)をリターンする。つまり、ステップS37では、CPUコア42は、一定パルス幅W1で周波数f2(300Hz)の駆動信号を偏心モータ28cに与える。
【0113】
図8に示すように、ステップS39では、Z値がZ2〜Z3の範囲内(Z2≦Z<Z3)にあるかどうかを判断する。ステップS39で“NO”あれば、つまりZ値がZ2〜Z3の範囲内でなければ、そのまま攻撃および振動処理(1)をリターンする。つまり、敵キャラクタ72を攻撃した場合であっても、攻撃した時点の敵キャラクタ72のZ値が図5(A)に示すテーブルのいずれの範囲内でもない場合には、たとえば、敵キャラクタ72の防御による攻撃失敗と判断して、そのまま攻撃および振動処理(1)をリターンするのである。ただし、このような場合には、敵キャラクタ72がプレイヤないしプレイヤキャラクタの攻撃を防御する様子を示すゲーム画面70を表示するようにしてもよい。
【0114】
一方、ステップS39で“YES”であれば、つまりZ値がZ2〜Z3の範囲内であれば、ステップS41で、敵キャラクタ72に小ダメージを与える。つまり、CPUコア42は、図5(A)に示すテーブルに従って、敵キャラクタ72のHPから100P減算する。次のステップS43では、敵キャラク72に小ダメージを与えた時のリアクションを表示する。つまり、敵キャラクタ72がダメージを受けた状態を、中ダメージを受けた場合よりもさらに派手でない演出でゲーム画面70を表示する。このとき、小ダメージを表現する音(音楽)による演出を加えてもよい。そして、ステップS45で、図5(A)に示すテーブルに従って、ゲーム装置10に小振動を与えて、攻撃および振動処理(1)をリターンする。つまり、ステップS45では、CPUコア42は、一定パルス幅W1で周波数f1(200Hz)の駆動信号を偏心モータ28cに与える。
【0115】
図9および図10は、攻撃および振動処理(2)を示すフロー図である。この攻撃および振動処理(2)は、攻撃および振動処理(1)とほぼ同じであるため、同じ処理については簡単に説明することにする。図9を参照して、CPUコア42は、攻撃および振動処理(2)を開始すると、ステップS51で、敵キャラクタ72のアクションを判定する。ここでは、経過時間(フレーム)をフレームカウンタから検出し、図5(B)に示すテーブルに従って、敵キャラクタ72のアクションが攻撃前、攻撃中または攻撃後のいずれであるかを判定する。
【0116】
続くステップS53では、敵キャラクタ72のアクションが攻撃後かどうかを判断する。つまり、経過時間が第Cフレーム〜第Dフレームの範囲内(第Cフレーム≦経過時間<第Dフレーム)であるかどうかを判断する。ここで、経過時間が第Cフレーム〜第Dフレームの範囲内でなければ、敵キャラクタ72のアクションが攻撃後でないと判断し、ステップS53で“NO”となり、ステップS61に進む。しかし、経過時間が第Cフレーム〜第Dフレームの範囲内であれば、敵キャラクタ72のアクションが攻撃後であると判断し、ステップS53で“YES”となり、ステップS55で、図5(B)に示すテーブルに従って、敵キャラクタ72に大ダメージを与える。次に、ステップS57で、敵キャラクタ72に大ダメージを与えた時のリアクションを表示し、ステップS59で、図5(B)に示すテーブルに従って、ゲーム装置10に大振動を与えて、図10に示すように、攻撃および振動処理(2)をリターンする。
【0117】
ステップS61では、敵キャラクタ72のアクションが攻撃中かどうかを判断する。つまり、経過時間が第Bフレーム〜第Cフレームの範囲内(第Bフレーム≦経過時間<第Cフレーム)であるかどうかを判断する。ここで、経過時間が第Bフレーム〜第Cフレームの範囲内でなければ、敵キャラクタ72のアクションが攻撃中でないと判断し、図10に示すステップS69に進む。しかし、経過時間が第Bフレーム〜第Cフレームの範囲内であれば、敵キャラクタ72のアクションが攻撃中であると判断し、ステップS63で、図5(B)に示すテーブルに従って、敵キャラクタ72に中ダメージを与える。次のステップS65では、敵キャラクタ72に中ダメージを与えた時のリアクションを表示し、ステップS67で、図5(B)に示すテーブルに従って、ゲーム装置10に中振動を与えて、攻撃および振動処理(2)をリターンする。
【0118】
図10に示すステップS67では、敵キャラクタ72のアクションが攻撃前かどうかを判断する。つまり、経過時間が第Aフレーム〜第Bフレームの範囲内(第Aフレーム≦経過時間<第Bフレーム)であるかどうかを判断する。ここで、経過時間が第Aフレーム〜第Bフレームの範囲内でなければ、敵キャラクタ72のアクションが攻撃前ではないと判断して、攻撃および振動処理(2)をリターンする。しかし、画面更新時間が第Aフレーム〜第Bフレームの範囲内であれば、敵キャラクタ72のアクションが攻撃前であると判断して、ステップS71で、図5(B)に示すテーブルに従って、敵キャラクタ72に小ダメージを与える。次のステップS73では、敵キャラクタ72に小ダメージを与えた時のリアクションを表示し、ステップS75で、図5(B)に示すテーブルに従って、ゲーム装置10に小振動を与えて、攻撃および振動処理(2)をリターンする。
【0119】
この実施例によれば、キャラクタの表示態様やキャラクタのゲームにおける状態に応じて振動の種類を変化させるので、ゲーム画面の表示やゲームの音(音楽)の出力に加えて、振動により、キャラクタの表示態様やキャラクタのゲームにおける状態をプレイヤに伝えることができる。これにより、プレイヤはリアリティのある新しい操作感を得ることができる。
【0120】
なお、上述の実施例では、キャラクタの配置位置(Z値)やキャラクタのアクションの状態に応じて、ダメージの大きさおよび振動の強さ(種類)を変化させるようにしたが、敵キャラクタのHPに応じて、ダメージの大きさおよび振動の種類を変化させることもできる。また、敵キャラクタが攻撃状態か否かに応じて、ダメージの大きさおよび振動の種類を変化させることもできる。
【0121】
前者の場合には、たとえば、図11(A)に示すようなテーブルに従って、敵キャラクタに与えるダメージの大きさおよびゲーム装置10の振動の強さが決定される。このテーブルに従えば、CPUコア42は、プレイヤないしプレイヤキャラクタが敵キャラクタ72を攻撃したとき、当該敵キャラクタの現在のHPを取得(検出)し、取得したHPの数値に応じてダメージの大きさおよび振動の強さを決定する。ただし、HPに変えて、敵キャラクタのMPやLVに応じたダメージの大きさおよび振動の強さを決定するためのテーブルを用いるようにしてもよい。または、敵キャラクタについてのHP、MPおよびLVのいずれか2つ以上の組み合わせに応じたダメージの大きさおよび振動の強さを決定するためのテーブルを用いるようにしてもよい。このように、HP、MP、LVのようなキャラクタの属性に応じてダメージの大きさおよび振動の強さを決定することもできるのである。
【0122】
また、詳細な説明は省略するが、敵キャラクタ72の属性として精神状態を記憶し、そして、ゲームの進行状況に応じて更新し、精神状態に応じて、敵キャラクタ72に与えるダメージの大きさおよびゲーム装置10に与える振動の強さを変化させることもできる。たとえば、敵キャラクタ72の精神状態が、平常状態または興奮状態の間で変化する場合には、プレイヤないしプレイヤキャラクタが当該敵キャラクタ72を攻撃したときの敵キャラクタ72の精神状態が平常状態であれば、当該敵キャラクタ72に与えるダメージおよびゲーム装置10に与える振動の強さを小さくし、逆に、当該敵キャラクタ72の精神状態が興奮状態であれば、当該敵キャラクタに与えるダメージおよびゲーム装置10に与える振動の強さを大きくすることができる。
【0123】
後者の場合には、たとえば、図11(B)に示すようなテーブルに従って、敵キャラクタ72に与えるダメージの大きさおよびゲーム装置10の振動の強さが決定される。このテーブルに従えば、CPUコア42は、プレイヤないしプレイヤキャラクタが敵キャラクタ72を攻撃したとき、当該敵キャラクタ72が攻撃状態か否か、さらに、攻撃状態でない場合には、通常状態か防御状態かを、経過時間(フレーム)から判定したいずれかの状態に応じたダメージの大きさおよび振動の強さを決定する。
【0124】
ただし、上述したように、敵キャラクタ72のアニメーションが攻撃状態、通常状態および防御状態の間で変化するとき、各々に対応するフラグを記憶しておき、それらのフラグを参照することにより、いずれの状態であるかを判定するようにしてもよい。
【0125】
また、上述の実施例では、2画面(LCD12および14)を設けたゲーム装置について説明したが、タッチパネルを備えていれば、1画面のゲーム装置にも適用できることは言うまでもない。
【0126】
さらに、上述の実施例では、ゲームカートリッジに偏心モータ(振動子)を内蔵するようにしたが、ハウジング16のいずれかの位置に内蔵するようにしてもよい。ただし、振動はスティックを介して間接的に、または、直接プレイヤの指(手)に伝えられればよいため、少なくともタッチ入力する画面(LCD14およびタッチパネル22の少なくとも一方)が振動すればよい。かかる場合には、従来技術に示した特開平11−85400号に開示される構成を採用することができる。具体的には、振動素子によって振動を付与される状態で、LCD14をハウジング16bに支持(設置)するようにすればよい。このように、ゲーム装置10内部に振動子を設けるようにすることもできる。
【0127】
さらにまた、上述の実施例では、敵キャラクタと戦闘するゲームについてのみ説明したが、これに限定される必要はない。たとえば、キャラクタ画像が時系列に従ってその配置位置が変化し、所定の配置位置で当該キャラクタ画像を指示した場合には、高得点が得られ、当該所定の配置位置から離れるに従って点数が低くなるようなゲームにも適用することができる。この場合には、所定の配置位置に近いほど、高得点となるため、これに応じて、振動の強さを大きくし、所定の配置位置から離れるに従って点数が低くなるため、これに応じて、振動の強さを小さくするようにすればよい。
【0128】
また、上述の実施例では、振動子として偏心モータを設けるようにしたため、駆動信号(PWM信号)の周波数およびパルス幅の少なくとも一方を変化させることにより、振動の強さを変化させるようにしたが、ボイスコイルを用いた振動子を設ける場合には、周波数およびパルス幅のみならず、波高値(振幅)を変化させることにより、振動の強さを変化させることができる。
【0129】
さらに、上述の実施例では、敵キャラクタの表示態様やゲームにおける敵キャラクタの状態に応じて、ダメージの大きさおよび振動の強さを変化させるようにしたが、プレイヤキャラクタの表示態様やゲームにおけるプレイヤキャラクタの状態に応じて、ダメージの大きさや振動の強さを変化させるようにしてもよい。
【図面の簡単な説明】
【0130】
【図1】図1はこの発明のゲーム装置の一例を示す図解図である。
【図2】図2は図1に示すゲーム装置の電気的な構成を示すブロック図である。
【図3】図3は図1に示すゲーム装置に設けられるLCDの表示例、敵キャラクタの配置位置および当該配置位置に応じた振動の強さを示す図解図である。
【図4】図4は図1に示すゲーム装置に設けられるLCDの表示例、敵キャラクタの攻撃に関する状態および当該状態に応じた振動の強さを示す図解図である。
【図5】図5は敵キャラクタの表示態様や敵キャラクタのパラメータに応じたダメージの大きさおよび振動の強さを示すテーブルの例を示す図解図である。
【図6】図6は図2に示すCPUコアの戦闘シーンにおける処理を示すフロー図である。
【図7】図7は図2に示すCPUコアの攻撃および振動処理(1)の一部を示すフロー図である。
【図8】図8は図7に示す攻撃および振動処理(1)に後続する処理を示すフロー図である。
【図9】図9は図2に示すCPUコアの攻撃および振動処理(2)の一部を示すフロー図である。
【図10】図10は図9に示す攻撃および振動処理(2)に後続する処理を示すフロー図である。
【図11】図11はプレイヤないしプレイヤキャラクタのHPや敵キャラクタが攻撃状態か否かに応じてダメージの大きさおよび振動の強さを変化させるためのテーブルの例である。
【符号の説明】
【0131】
10 …ゲーム装置
12,14 …LCD
16,16a,16b …ハウジング
20 …操作スイッチ
22 …タッチパネル
24 …スティック
28 …メモリカード
28a …ROM
28b,48 …RAM
28c …偏心モータ
40 …電子回路基板
42 CPUコア
50,52 …GPU
54 …I/F回路
56,58 …VRAM
60 …LCDコントローラ
【技術分野】
【0001】
この発明はゲーム装置およびゲームプログラムに関し、特にたとえば、タッチパネルを操作することによって所定の処理を実行する、ゲーム装置およびゲームプログラムに関する。
【背景技術】
【0002】
従来のこの種のゲーム装置の一例が特許文献1に開示される。この特許文献1によれば、ディスプレイパネルは振動素子によって振動を付与される状態で支持されている。このディスプレイパネルには、オペレータがペンにより選択すべき選択肢をウインドウやアイコン等で表した画像が表示される。オペレータがペンで選択指示を与えると、選択された画像の種類に応じた振動の種類を決定する。そして、決定された振動で振動子が作動され、ディスプレイパネルが振動される。これにより、画像に対応した振動を、ペンを介してオペレータに伝えることができ、リアリティのあるインタフェース機能を得ている。
【特許文献1】特開平11−85400号
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし、この従来技術では、各画像に対して一義的に振動の種類が設定されているため、たとえば、画像の表示態様や画像の状態が変化しても、振動の種類が変化することはない。つまり、どのタイミングで画像を指示しても、同じ振動が与えられるため、指示したタイミングと画像の表示状態や画像の状態との関係を振動により認識することができない。これでは、オペレータに感覚的なリアリティを十分に与えているとは言えなかった。また、このような従来技術をゲーム装置にそのまま適用した場合には、たとえば、敵キャラクタのような画像が移動したり、当該敵キャラクタがプレイヤキャラクタに対して攻撃したり、当該敵キャラクタの生命力、攻撃力或いは精神状態が変化するなどのように、表示態様やゲームにおける敵キャラクタの状態(状況)の変化(違い)を感覚的に伝えることができなかった。
【0004】
それゆえに、この発明の主たる目的は、新規な、ゲーム装置およびゲームプログラムを提供することである。
【0005】
この発明の他の目的は、リアリティのある新しい操作感を得ることができる、ゲーム装置およびゲームプログラムを提供することである。
【課題を解決するための手段】
【0006】
請求項1の発明は、ゲーム画面を表示するための表示器と、当該表示器に関連して設けられるタッチパネルと、少なくとも当該表示器の画面を振動させるための振動器とを備えるゲーム装置であって、ゲーム画面表示手段、更新手段、検出手段、取得手段、および振動制御手段を備える。ゲーム画面表示手段は、ゲームに登場するキャラクタの画像を含むゲーム画面を表示器の画面に表示する。更新手段は、キャラクタの表示態様または当該キャラクタのゲームにおける状態を、変化させるためのパラメータをゲームの進行状況に応じて更新する。検出手段は、タッチパネルへの操作入力に応じた位置座標を検出する。取得手段は、検出手段によって検出された位置座標がキャラクタの表示領域に含まれるとき、タッチパネルへの操作入力時点の当該キャラクタのパラメータを取得する。そして、振動制御手段は、取得手段によって取得されたパラメータに応じた振動パターンによって振動器を振動させる。
【0007】
請求項1の発明では、ゲーム装置(10:実施例で相当する参照符号。以下、同じ。)は、ゲーム画面を表示するための表示器(14)と、当該表示器(14)に関連して設けられるタッチパネル(22)と、少なくとも当該表示器(14)を振動させるための振動器(28c)とを備えている。ゲーム画面表示手段(42,52,58,60)は、ゲームに登場するキャラクタ(72)の画像を含むゲーム画面(70)を表示器(14)の画面に表示する。更新手段(42)は、キャラクタ(72)の表示態様または当該キャラクタのゲームにおける状態を、変化させるためのパラメータ、たとえば、キャラクタ(72)の生命力、攻撃力、レベル、ゲーム空間における位置、アニメーション再生経過時間を、ゲームの進行状況に応じて更新する。ここで、レベルとは、キャラクタ(72)の生命力・攻撃力等の総体的な強さを表すパラメータである。検出手段(42,54,S7)は、タッチパネル(22)への操作入力に応じた位置座標を検出する。取得手段(42,S21,S51)は、検出手段(42,54,S7)によって検出された位置座標がキャラクタ(72)の表示領域に含まれるとき、タッチパネル22の操作位置がキャラクタ72に接触していると判断して(ステップS13で“YES”)、タッチパネルへの操作入力時点の当該キャラクタ(72)のパラメータを取得する。振動制御手段(42,S29,S37,S45,S59,S67,75)は、取得手段(42,S21,S51)によって取得されたパラメータに応じた振動パターンによって振動器(28c)を振動させる。これにより、少なくとも表示器(14)が振動され、タッチパネル(22)を操作するプレイヤにその振動が伝わる。
【0008】
請求項1の発明によれば、キャラクタのパラメータに応じた振動パターンにより振動器を振動させ、その振動がプレイヤに伝わるので、ゲーム進行状況によって変化するゲームキャラクタの表示態様やゲームキャラクタのゲームにおける状態を振動により、知覚することができる。つまり、プレイヤは新しい操作感を得ることができる。
【0009】
請求項2の発明は請求項1に従属し、更新手段は、ゲーム空間におけるキャラクタの配置座標をパラメータとして更新し、振動制御手段は、配置座標に応じた振動パターンで振動器を振動させる。
【0010】
請求項2の発明では、更新手段(42)は、ゲーム空間におけるキャラクタ(72)の配置座標をパラメータとして更新する。したがって、振動制御手段(42,S29,S37,S45)は、プレイヤがタッチパネル(22)を操作したときの配置座標に応じた振動パターンで振動器(28c)を振動させる。
【0011】
請求項2の発明によれば、キャラクタの配置位置に応じた振動パターンで振動器を振動させるので、キャラクタの配置位置を振動により認識することができる。
【0012】
請求項3の発明は請求項1に従属し、更新手段は、キャラクタのアニメーション再生経過時間をパラメータとして更新し、振動制御手段は、アニメーション再生経過時間に応じた振動パターンで振動器を振動させる。
【0013】
請求項3の発明では、更新手段(42)は、キャラクタ(72)のアニメーション再生経過時間をパラメータとして更新する。たとえば、ゲーム空間に存在するキャラクタ(72)のアニメーションを時間(フレーム:画面更新時間)に従って、攻撃状態、通常状態、防御状態に変化させる。また、攻撃状態では、アニメーションを、攻撃前の状態、攻撃中の状態、攻撃後の状態に変化させる。振動制御手段(42,S59,S67,S75)は、アニメーション再生経過時間に応じた振動パターンで振動器(28c)を振動させる。この振動が表示器(14)およびタッチパネル(22)を介して、プレイヤに提示される。
【0014】
請求項3の発明によれば、アニメーション再生経過時間に応じた振動を提示することができる。つまり、キャラクタのアクション状態に応じた振動を提示できるので、プレイヤはアニメーションのアクション状態を振動により知覚することができる。
【0015】
請求項4の発明は請求項1に従属し、更新手段は、少なくともキャラクタが攻撃状態か非攻撃状態かを決めるフラグをパラメータとして更新し、振動制御手段は、フラグのオン/オフに応じた振動パターンで振動器を振動させる。
【0016】
請求項4の発明では、更新手段(42)は、少なくともキャラクタが攻撃状態か非攻撃状態かを決めるフラグをパラメータとして更新する。たとえば、攻撃状態および非攻撃状態を示すフラグをそれぞれ記憶しておき、攻撃状態であれば、攻撃状態フラグをオンし、非攻撃状態フラグをオフする。逆に、非攻撃状態であれば、攻撃状態フラグをオフし、非攻撃状態フラグをオンする。振動制御手段(42,S59,S67,S75)は、フラグのオン/オフに応じた振動パターンで振動器(28c)を振動させる。つまり、攻撃状態および非攻撃状態の違いが振動によりプレイヤに提示される。
【0017】
請求項4の発明によれば、攻撃状態および非攻撃状態に応じた振動パターンで振動器を振動させるので、攻撃状態および非攻撃状態を振動により知覚することができ、プレイヤの攻撃によるダメージを認識することができる。
【0018】
請求項5の発明は請求項1に従属し、更新手段は、キャラクタの生命力、攻撃力および精神状態をパラメータとして更新し、振動制御手段は、キャラクタの生命力、攻撃力および精神状態の少なくとも1つに応じた振動パターンで振動器を振動させる。
【0019】
請求項5の発明では、更新手段(42)は、キャラクタの生命力(HP)、攻撃力(MP)および精神状態(平常状態、興奮状態)のようなキャラクタの属性をパラメータとして更新する。ただし、レベルも更新するようにしてもよい。振動制御手段(42)は、キャラクタの現在の属性、すなわちHP、MPおよび精神状態の少なくとも1つに応じた振動パターンで振動器(28c)を振動させる。たとえば、キャラクタの現HPの数値に応じて、振動の強さを変化させる。
【0020】
請求項5の発明によれば、キャラクタの現在の属性に応じた振動をプレイヤに提示するので、プレイヤは振動によりキャラクタの現在の属性を知ることができる。
【0021】
請求項6の発明は請求項1ないし5のいずれかに従属し、振動制御手段は、複数の振動パターンからパラメータに応じた1つの振動パターンを選択する選択手段を含む。
【0022】
請求項6の発明では、選択手段(42,S23,S31,S39,S53,S61,S69)は、複数の振動パターンからパラメータに応じた1つの振動パターンを選択する。たとえば、振動器(28c)として偏心モータを用いる場合には、駆動信号(PWM信号)の周波数およびパルス幅(デューティ比)の少なくとも一方を変化させることにより、振動器(28c)の振動の強さを変化させることができ、複数の振動パターンで振動させることができる。
【0023】
請求項6の発明によれば、振動の強さを変化させることにより、複数の振動パターンで振動させることができ、その振動により、キャラクタの表示態様やキャラクタのゲームにおける状態をプレイヤに伝えることができる。
【0024】
請求項7の発明は、ゲーム画面を表示するための表示器と、当該表示器に関連して設けられるタッチパネルと、少なくとも当該表示器の画面を振動させるための振動器とを備えるゲーム装置のゲームプログラムであって、ゲーム装置のプロセサに、ゲーム画面表示ステップ、更新ステップ、検出ステップ、取得ステップ、および振動制御ステップを実行させる。ゲーム画面表示ステップは、ゲームに登場するキャラクタの画像を含むゲーム画面を表示器の画面に表示する。更新ステップは、キャラクタの表示態様または当該キャラクタのゲームにおける状態を、変化させるためのパラメータをゲームの進行状況に応じて更新する。検出ステップは、タッチパネルへの操作入力に応じた位置座標を検出する。取得ステップは、検出ステップによって検出された位置座標がキャラクタの表示領域に含まれるとき、タッチパネルへの操作入力時点の当該キャラクタのパラメータを取得する。そして、振動制御ステップは、取得ステップによって取得されたパラメータに応じた振動パターンによって振動器を振動させる振動制御ステップを実行させる。
【0025】
請求項7のゲームプログラムにおいても、請求項1のゲーム装置と同様に、新しい操作感を与えることができる。
【発明の効果】
【0026】
この発明によれば、キャラクタ画像の表示態様やゲームにおける状態を変化させるパラメータに応じた振動をプレイヤに伝えることができるので、プレイヤは操作した時点におけるキャラクタ画像の表示態様やゲームにおける状態を振動により知覚することができる。これにより、リアリティのある新しい操作感を得ることができる。
【0027】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【0028】
図1を参照して、この発明の実施例であるゲーム装置10は、第1の液晶表示器(LCD)12および第2のLCD14を含む。このLCD12およびLCD14は、所定の配置位置となるようにハウジング16に収納される。この実施例では、ハウジング16は、上側ハウジング16aと下側ハウジング16bとによって構成され、LCD12は上側ハウジング16aに収納され、LCD14は下側ハウジング16bに収納される。したがって、LCD12とLCD14とは縦(上下)に並ぶように近接して配置される。
【0029】
なお、この実施例では、表示器としてLCDを用いるようにしてあるが、LCDに代えて、EL(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるようにしてもよい。
【0030】
図1からも分かるように、上側ハウジング16aは、LCD12の平面形状よりも少し大きな平面形状を有し、一方主面からLCD12の表示面を露出するように開口部が形成される。一方、下側ハウジング16bは、その平面形状が上側ハウジング16aよりも横長に選ばれ、横方向の略中央部にLCD14の表示面を露出するように開口部が形成される。また、下側ハウジング16bには、音抜き孔18が形成されるとともに、操作スイッチ20(20a,20b,20c,20d,20e,20Lおよび20R)が設けられる。
【0031】
また、上側ハウジング16aと下側ハウジング16bとは、上側ハウジング16aの下辺(下端)と下側ハウジング16bの上辺(上端)の一部とが回動可能に連結されている。したがって、たとえば、ゲームをプレイしない場合には、LCD12の表示面とLCD14の表示面とが対面するように、上側ハウジング16aを回動させて折りたたんでおけば、LCD12の表示面およびLCD14の表示面に傷がつくなどの破損を防止することができる。ただし、上側ハウジング16aと下側ハウジング16bとは、回動可能に連結せずに、それらを一体的(固定的)に設けたハウジング16を形成するようにしてもよい。
【0032】
操作スイッチ20は、方向指示スイッチ(十字スイッチ)20a,スタートスイッチ20b、セレクトスイッチ20c、動作スイッチ(Aボタン)20d、動作スイッチ(Bボタン)20e、動作スイッチ(Lボタン)20Lおよび動作スイッチ(Rボタン)20Rを含む。スイッチ20a,20bおよび20cは、下側ハウジング16bの一方主面であり、LCD14の左側に配置される。また、スイッチ20dおよび20eは、下側ハウジング16bの一方主面であり、LCD14の右側に配置される。さらに、スイッチ20Lおよびスイッチ20Rは、それぞれ、下側ハウジング16bの上端(天面)の一部であり、上側ハウジング16aとの連結部以外に当該連結部を挟むように、左右に配置される。
【0033】
方向指示スイッチ20aは、ディジタルジョイスティックとして機能し、4つの押圧部の1つを操作することによって、プレイヤによって操作可能なプレイヤキャラクタ(またはプレイヤオブジェクト)の移動方向を指示したり、カーソルの移動方向を指示したりする等に用いられる。スタートスイッチ20bは、プッシュボタンで構成され、ゲームを開始(再開)したり、一時停止したりする等に用いられる。セレクトスイッチ20cは、プッシュボタンで構成され、ゲームモードの選択等に用いられる。
【0034】
動作スイッチ20dすなわちAボタンは、プッシュボタンで構成され、方向指示以外の動作、すなわち、プレイヤキャラクタに打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプするなどの任意のアクションをさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。動作スイッチ20eすなわちBボタンは、プッシュボタンで構成され、セレクトスイッチ20cで選択したゲームモードの変更やAボタン20dで決定したアクションの取り消し等のために用いられる。
【0035】
動作スイッチ20L(Lボタン)および動作スイッチ20R(Rボタン)は、プッシュボタンで構成され、Lボタン20LおよびRボタン20Rは、Aボタン20dおよびBボタン20eと同様の操作に用いることができ、また、Aボタン20dおよびBボタン20eの補助的な操作に用いることができる。
【0036】
また、LCD14の上面には、タッチパネル22が装着される。タッチパネル22としては、たとえば、抵抗膜方式、光学式(赤外線方式)および静電容量結合式のいずれかの種類のものを用いることができる。また、タッチパネル22は、その上面をスティック24ないしはペン(スタイラスペン)或いは指(以下、これらを「スティック24等」という場合がある。)で、押圧したり、撫でたり、触れたり(以下、単に「押圧する」という。)することにより操作すると、スティック24等の操作位置の座標を検出して、検出した座標(検出座標)に対応する座標データを出力する。
【0037】
なお、この実施例では、LCD14(LCD12も同じ、または略同じ。)の表示面の解像度は256dot×192dotであり、タッチパネル22の検出精度(操作面)も表示画面に対応して256dot×192dotとしてある。ただし、図1では、タッチパネル22を分かり易くするために、タッチパネル22をLCD14と異なる大きさで示してあるが、LCD14の表示画面の大きさとタッチパネル22の操作面の大きさとは同じ大きさである。なお、タッチパネル22の検出精度は、表示画面の解像度よりも低くてもよく、高くてもよい。
【0038】
LCD12およびLCD14には異なるゲーム画面が表示される。たとえば、レースゲームでは一方のLCDに運転席からの視点による画面を表示し、他方のLCDにレース(コース)全体の画面を表示することができる。また、RPGでは、一方のLCDにマップやプレイヤキャラクタ等のキャラクタを表示し、他方のLCDにプレイヤキャラクタが所有するアイテムを表示することができる。さらに、一方のLCD(この実施例では、LCD12)にゲームのプレイ画面を表示し、他方のLCD(この実施例では、LCD14)に当該ゲームを操作するための文字情報やアイコン等を含むゲーム画面(操作画面)を表示することができる。さらには、2つのLCD12およびLCD14を合わせて1つの画面として用いることにより、プレイヤキャラクタが倒さなければならない巨大な怪物(敵キャラクタ)を表示することもできる。
【0039】
したがって、プレイヤはスティック24等でタッチパネル22を操作することにより、LCD14の画面に表示されるプレイヤキャラクタ、敵キャラクタ、アイテムキャラクタ、文字情報、アイコン等のキャラクタ画像を指示したり、コマンドを選択したりすることができる。
【0040】
なお、ゲームの種類によっては、その他各種の入力指示、たとえばLCD14に表示されたアイコンの選択または操作、座標入力指示等に用いることもできる。
【0041】
このように、ゲーム装置10は、2画面分の表示部となるLCD12およびLCD14を有し、いずれか一方(この実施例では、LCD14)の上面にタッチパネル22が設けられるので、2画面(12,14)と2系統の操作部(20,22)とを有する構成になっている。
【0042】
また、この実施例では、スティック24は、たとえば上側ハウジング16aの側面(右側面)近傍に設けられる収納部(穴ないし凹部)26に収納することができ、必要に応じて取り出される。ただし、スティック24を設けない場合には、収納部26を設ける必要もない。
【0043】
さらに、ゲーム装置10はメモリカード(またはゲームカートリッジ)28を含み、このメモリカード28は着脱自在であり、下側ハウジング16bの裏面ないしは底面(下端)に設けられる挿入口30から挿入される。図1では省略するが、挿入口30の奥部には、メモリカード28の挿入方向先端部に設けられるコネクタ(図示せず)と接合するためのコネクタ46(図2参照)が設けられており、したがって、メモリカード28が挿入口30に挿入されると、コネクタ同士が接合され、ゲーム装置10のCPUコア42(図2参照)がメモリカード28にアクセス可能となる。
【0044】
なお、図1では表現できないが、下側ハウジング16bの音抜き孔18と対応する位置であり、この下側ハウジング16bの内部にはスピーカ32(図2参照)が設けられる。
【0045】
また、図1では省略するが、たとえば、下側ハウジング16bの裏面側には、電池収容ボックスが設けられ、また、下側ハウジング16bの底面側には、電源スイッチ、音量スイッチ、外部拡張コネクタおよびイヤフォンジャックなども設けられる。
【0046】
図2はゲーム装置10の電気的な構成を示すブロック図である。図2を参照して、ゲーム装置10は電子回路基板40を含み、この電子回路基板40にはCPUコア42等の回路コンポーネントが実装される。CPUコア42は、バス44を介してコネクタ46に接続されるとともに、RAM48、第1のグラフィック処理ユニット(GPU)50、第2のGPU52、入出カインターフェイス回路(以下、「I/F回路」という。)54およびLCDコントローラ60が接続される。
【0047】
コネコタ46には、上述したように、メモリカード28が着脱自在に接続される。メモリカード28は、ROM28aおよびRAM28bを含み、図示は省略するが、ROM28aおよびRAM28bは、互いにバスで接続され、さらに、コネクタ46と接合されるコネクタ(図示せず)に接続される。したがって、上述したように、CPUコア42は、ROM28aおよびRAM28bにアクセスすることができるのである。また、メモリカード28には、振動子としての偏心モータ28cが設けられる。この偏心モータ28cは、ROM28aおよびRAM28bとは、別個独立に設けられ、図示は省略するが、信号線およびコネクタ46等を介してCPUコア42に接続される。ただし、偏心モータ28cに限らず、圧電素子等により構成された振動子やボイスコイル等により構成された振動子を用いることもできる。
【0048】
ROM28aは、ゲーム装置10で実行すべきゲーム(仮想ゲーム)のためのゲームプログラム、画像(キャラクタ画像、背景画像、アイテム画像、アイコン(ボタン)画像、メッセージ画像など)データおよびゲームに必要な音(音楽)のデータ(音データ)等を予め記憶する。RAM(バックアップRAM)28bは、そのゲームの途中データやゲームの結果データを記憶(セーブ)する。
【0049】
偏心モータ28cは、CPUコア42からの駆動信号(PWM信号)に従って駆動(作動)される。偏心モータ28cが作動すると、その軸の回転により、振動が発生し、その振動がゲーム装置10に伝わる。たとえば、駆動信号の周波数およびパルス幅(デューティ比)の少なくとも一方を変化させることにより、振動の強さすなわち振動の種類(振動パターン)を変化させることができる。
【0050】
RAM48は、バッファメモリないしはワーキングメモリとして使用される。つまり、CPUコア42は、メモリカード28のROM28aに記憶されたゲームプログラム、画像データおよび音データ等をRAM48にロードし、ロードしたゲームプログラムを実行する。また、CPUコア42は、ゲームの進行に応じて一時的に発生するデータ(ゲームデータやフラグデータ)をRAM48に記憶しつつゲーム処理を実行する。
【0051】
なお、ゲームプログラム、画像データおよび音データ等は、ROM28aから一度に全部、または部分的かつ順次的に読み出され、RAM48に記憶(ロード)される。
【0052】
ただし、メモリカード28のROM28aには、ゲーム以外の他のアプリケーションについてのプログラムおよび当該アプリケーションの実行に必要な画像データが記憶される。また、必要に応じて、音(音楽)データが記憶されてもよい。かかる場合には、ゲーム装置10では、当該アプリケーションが実行される。
【0053】
GPU50およびGPU52は、それぞれ、描画手段の一部を形成し、たとえばシングルチップASICで構成され、CPUコア42からのグラフィックスコマンド(graphics command :作画命令)を受け、そのグラフィックスコマンドに従ってゲーム画像データを生成する。ただし、CPUコア42は、グラフィックスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラム(ゲームプログラムに含まれる。)をGPU50およびGPU52のそれぞれに与える。
【0054】
また、GPU50には、第1のビデオRAM(以下、「VRAM」という。)56が接続され、GPU52には、第2のVRAM58が接続される。GPU50およびGPU52が作画コマンドを実行するにあたって必要なデータ(画像データ:キャラクタデータやテクスチャ等のデータ)は、GPU50およびGPU52が、それぞれ、第1のVRAM56および第2のVRAM58にアクセスして取得する。ただし、CPUコア42は、描画に必要な画像データをRAM48から読み出し、GPU50およびGPU52を介して第1のVRAM56および第2のVRAM58に書き込む。GPU50はVRAM56にアクセスして描画のためのゲーム画像データを作成し、GPU52はVRAM58にアクセスして描画のためのゲーム画像データを作成する。
【0055】
VRAM56およびVRAM58は、LCDコントローラ60に接続される。LCDコントローラ60はレジスタ62を含み、レジスタ62はたとえば1ビットで構成され、CPUコア42の指示によって「0」または「1」の値(データ値)を記憶する。LCDコントローラ60は、レジスタ62のデータ値が「0」である場合には、GPU50によって作成されたゲーム画像データをLCD12に出力し、GPU52によって作成されたゲーム画像データをLCD14に出力する。また、LCDコントローラ60は、レジスタ62のデータ値が「1」である場合には、GPU50によって作成されたゲーム画像データをLCD14に出力し、GPU52によって作成されたゲーム画像データをLCD12に出力する。
【0056】
なお、LCDコントローラ60は、VRAM56およびVRAM58から直接ゲーム画像データを読み出したり、GPU50およびGPU52を介してVRAM56およびVRAM58からゲーム画像データを読み出したりする。
【0057】
I/F回路54には、操作スイッチ20,タッチパネル22およびスピーカ32が接続される。ここで、操作スイッチ20は、上述したスイッチ20a,20b,20c,20d,20e,20Lおよび20Rであり、操作スイッチ20が操作されると、対応する操作信号(操作データ)がI/F回路54を介してCPUコア42に入力される。また、タッチパネル22から出力される座標データがI/F回路54を介してCPUコア42に入力される。さらに、CPUコア42は、ゲーム音楽(BGM)、効果音またはゲームキャラクタの音声(擬制音)などのゲームに必要な音データをRAM48から読み出し、I/F回路54を介してスピーカ32から出力する。
【0058】
このような構成のゲーム装置10では、上述したように、プレイヤはスティック24等でタッチパネル22を押圧することにより、ゲーム画面(LCD14の画面)に表示されるプレイヤキャラクタ、敵キャラクタやアイテムキャラクタ等を指示することができる。具体的には、プレイヤキャラクタを移動させたり、敵キャラクタに攻撃したり、アイテムキャラクタを取得したりなどすることができる。このように、プレイヤがスティック24等でゲーム操作を行う場合には、偏心モータ28cを作動させることにより、ゲーム装置10を振動させて、スティック24を介して間接的に、または、直接プレイヤの指に振動を与えることができる。つまり、ゲーム画面や音(音楽)に加えて、振動を与えることにより、プレイヤはリアリティのある操作感を得ることができる。
【0059】
たとえば、プレイヤキャラクタや敵キャラクタのようなゲームキャラクタ毎に、異なる種類(パターン)の振動を与えることができる。これは、上述したように、偏心モータ28cに与える駆動信号(PWM信号)の周波数およびパルス幅の少なくとも一方を変化させることにより、実現可能である。
【0060】
しかし、各ゲームキャラクタで振動の種類を固定してしまうと、ゲームキャラクタの表示態様やゲームにおけるゲームキャラクタの状態(状況)に応じて振動を変化させることができない。たとえば、敵キャラクタが画面奥から次第に画面手前に移動することにより、プレイヤキャラクタに近づいてくるような場合に、当該敵キャラクタを攻撃するとき、敵キャラクタの位置に拘わらず同じ振動が与えられてしまう。また、敵キャラクタが攻撃状態のときに攻撃する場合と敵キャラクタが非攻撃状態(防御状態または通常状態)のときに攻撃する場合とに拘わらず、同じ振動が与えられてしまう。さらには、敵キャラクタの生命力(HP)、攻撃力(MP)または精神状態に変化があっても、同じ振動が与えられてしまう。
【0061】
このように、各ゲームキャラクタに対して一義的に振動の種類(振動パターン)を決定してしまうと、振動により、ゲームキャラクタの表示状態やゲームにおけるゲームキャラクタの状態(状況)を伝えることができず、リアリティのある操作感が十分に得られているとは言えない。また、このような場合には、同じゲームキャラクタが登場した場合には、同じ振動が与えられることになり、ゲームが単調になり、プレイヤがゲームへの興味を減退させてしまう恐れがある。
【0062】
そこで、この実施例では、ゲームキャラクタの表示態様やゲームキャラクタのゲームにおける状態に応じて振動パターンを変化させるようにして、リアリティのある新しい操作感を得るようにしてある。
【0063】
ここで、ゲームキャラクタの表示態様やゲームキャラクタのゲームにおける状態は、ゲームキャラクタの生命力(HP)、攻撃力(MP)、レベル(LV)、精神状態、配置位置(3次元位置)、アニメーションの再生経過時間などのパラメータがゲームの進行状況に応じて変化(変動)することにより、変化する。この実施例では、HP、MPおよびLVのみならず、精神状態、配置位置またはアニメーションの再生経過時間(アニメーション再生経過時間)もパラメータとしてある。これは、精神状態、配置位置またはアニメーション再生経過時間もゲームの進行状況によって変化するからである。
【0064】
図3は、プレイヤないしプレイヤキャラクタ(図示せず)が敵キャラクタを攻撃した場合における、敵キャラクタの表示態様に応じて、ここでは、3次元の仮想ゲーム空間に存在する敵キャラクタの配置位置(この実施例では、Z座標)に応じて、敵キャラクタに与えるダメージの大きさおよびゲーム装置10に与える振動パターンを変化させる(この実施例では、振動の強さを変化させる)例を示す図解図である。
【0065】
ただし、図3においては、左側のゲーム画面70では、紙面の左右方向がX軸方向であり、紙面の上下方向がY軸方向であり、紙面の垂直方向がZ軸方向である。また、右側の3次元座標では、紙面の左右方向がZ軸方向であり、紙面の上下方向がY軸方向であり、紙面の垂直方向がX軸方向である。さらに、Z座標の値(Z値)は、Z0に向かうほど原点に近づき、ここでは、Z値の大きさはZ0<Z1<Z2<Z3となる。
【0066】
図3(A)の左側に示すゲーム画面70では、敵キャラクタ72が比較的小さく表示される。これは、敵キャラクタ72が画面奥(遠く)に存在していることを示す。また、図3(A)の右側に示す3次元座標では、敵キャラクタ72は、そのZ座標の値(Z値)がZ2〜Z3の範囲内(Z2≦Z<Z3)であることが分かる。このとき、たとえば、プレイヤがスティック24等で敵キャラクタ72を指示し、敵キャラクタ72を攻撃すると、敵キャラクタ72に比較的小さいダメージが与えられ、また、ゲーム装置10に比較的小さな振動が与えられる。つまり、ダメージの大きさに応じた振動がゲーム装置10に与えられるのである。以下、同様である。
【0067】
具体的には、CPUコア42は、敵キャラクタ72のHPから比較的小さい値(たとえば、100ポイント(100P))を減算し、一定のパルス幅W1で比較的低い周波数f1(たとえば、200Hz)の駆動信号を偏心モータ28cに与える。なお、駆動信号の電圧値(波高値)は、一定(たとえば、5V)である。以下、同じ。これにより、偏心モータ28cが作動し、ゲーム装置10に小さな(弱い)振動(小振動)が与えられる。すると、その振動がスティック24を介して間接的に、或いは直接プレイヤの指に伝わる。以下、同様である。
【0068】
図3(B)の左側に示すゲーム画面70は、図3(A)に示す状態よりも敵キャラクタ72が画面手前に存在し(近づき)、図3(B)の右側に示す3次元座標において、敵キャラクタ72のZ値がZ1〜Z2の範囲内(Z1≦Z<Z2)である場合について示している。このとき、プレイヤがスティック24等で敵キャラクタ72を指示し、敵キャラクタ72を攻撃すると、敵キャラクタ72に中くらいのダメージが与えられ、これに応じて、ゲーム装置10に中くらいの振動が与えられる。つまり、CPUコア42は、敵キャラクタ72のHPから中くらいの値(たとえば、200P)を減算し、一定のパルス幅W1で周波数f2(たとえば、300Hz)の駆動信号を偏心モータ28cに与えることにより、ゲーム装置10に中くらいの振動(中振動)を与える。
【0069】
図3(C)の左側に示すゲーム画面70は、図3(B)に示す状態よりも敵キャラクタ72が画面手前に存在し(近づき)、図3(C)の右側に示す3次元座標において、敵キャラクタ72のZ値がZ0〜Z1の範囲内(Z0≦Z<Z1)である状態を示している。このとき、プレイヤがスティック24等で敵キャラクタ72を指示し、敵キャラクタ72を攻撃すると、敵キャラクタ72に比較的大きいダメージが与えられ、これに応じて、ゲーム装置10に比較的大きい振動が与えられる。つまり、CPUコア42は、敵キャラクタ72のHPから比較的大きい値(たとえば、300P)を減算し、一定のパルス幅W1で比較的大きい周波数f3(たとえば、400Hz)の駆動信号を偏心モータ28cに与えることにより、ゲーム装置10に比較的大きい(強い)振動(大振動)を与える。
【0070】
このように、プレイヤないしプレイヤキャラクタが敵キャラクタ72を攻撃したときの当該敵キャラクタ72の配置位置(Z値)に応じて、当該敵キャラクタ72に与えるダメージの大きさを変化させ、そのダメージの大きさを振動の強さで表現するので、プレイヤは振動により、ダメージの大きさを認識(知覚)することができる。
【0071】
ただし、敵キャラクタ72の配置位置は、短い時間間隔で連続的に変化してもよい。この場合には、プレイヤは、敵キャラクタ72の配置位置の素早い変化に合わせてタッチしなければならないため、よりゲームを面白くする効果がある。
【0072】
なお、説明の便宜上、振動の強さを3段階で変化させるようにしてあるが、ダメージの大きさの変化に応じて、2段階で変化させるようにしてもよく、また、4段階以上で変化させるようにしてもよい。また、振動の強さを3段階で変化させるようにしてあるため、説明の便宜上、振動の強さを大、中、小で表現したが、これは、3段階の振動における相対的な強さの違いである。このことは、周波数の大きさおよびダメージの大きさについても同様である。
【0073】
また、ここでは、駆動信号の周波数を変化させて、振動の強さを変えることにより、異なる振動パターンでゲーム装置10を振動させるようにしてあるが、駆動信号のパルス幅W1を変化させるようにしてもよい。かかる場合には、プレイヤは、パルス幅W1が長い程、振動を強く感じ、逆に、パルス幅W1が短い程、振動を弱く感じる。ただし、周波数およびパルス幅の両方を変化させるようにしてもよい。
【0074】
さらに、図3に示す例では、敵キャラクタ72が画面の手前に存在するほど(近づくにつれて)、振動が強く(大きく)なるようにしてあるが、敵キャラクタ72が画面の手前に存在するほど(近づくにつれて)、振動が弱く(小さく)なるようにしてもよい。
【0075】
図4は、プレイヤないしプレイヤキャラクタが敵キャラクタを攻撃した場合における、敵キャラクタのゲームにおける状態に応じて、敵キャラクタに与えるダメージの大きさおよびゲーム装置10に与える振動の強さを変化させる例を示す図解図である。
【0076】
さらにまた、この実施例では、配置位置として敵キャラク72のZ座標に応じて、敵キャラクタ72に与えるダメージの大きさおよびゲーム装置10に与える振動の強さを変化させるようにしてあるが、X座標またはY座標に応じてそれらを変化させるようにしてもよく、また、X座標、Y座標およびZ座標のいずれか2つ以上の組み合わせに応じてそれらを変化させるようにしてもよい。
【0077】
図4からも分かるように、ここでは、敵キャラクタ72のアクション状態が、アニメーション再生経過時間(フレーム:画面更新時間)に従って、攻撃前、攻撃中、攻撃後の順で変化し、これにより、敵キャラクタ72の表示状態または敵キャラクタ72のゲームにおける状態も同様に変化する。この実施例では、図4に示すアニメーション再生経過時間(以下、単に「経過時間」という。)の範囲(長さ)は、たとえば、数フレーム〜数十フレームである。
【0078】
この図4を参照して、経過時間が第Aフレーム〜第Bフレーム(第Aフレーム≦経過時間<第Bフレーム)では、敵キャラクタ72がプレイヤないしプレイヤキャラクタに対して攻撃する前の状態(攻撃前の状態)がゲーム画面70に表示される。このとき、たとえば、プレイヤがスティック24等で敵キャラクタ72を指示し、敵キャラクタ72を攻撃すると、敵キャラクタ72に比較的小さいダメージが与えられ、これに応じて、ゲーム装置10に比較的小さな振動が与えられる。
【0079】
なお、敵キャラクタ72へのダメージの与え方およびゲーム装置10への振動の与え方は、図3(A)に示した場合と同じであるため、重複した説明は省略する。
【0080】
次に、経過時間が第Bフレーム〜第Cフレーム(第Bフレーム≦経過時間<第Cフレーム)では、敵キャラクタ72がプレイヤないしプレイヤキャラクタに対して攻撃している状態(攻撃中の状態)がゲーム画面70に表示される。このとき、プレイヤがスティック24等で敵キャラクタ72を指示し、敵キャラクタ72を攻撃すると、敵キャラクタ72に中くらいのダメージが与えられ、これに応じて、ゲーム装置10に中くらいの振動が与えられる。
【0081】
なお、敵キャラクタ72へのダメージの与え方およびゲーム装置10への振動の与え方は、図3(B)に示した場合と同じであるため、重複した説明は省略する。
【0082】
そして、経過時間が第Cフレーム〜第Dフレーム(第Cフレーム≦経過時間<第Dフレーム)では、敵キャラクタ72がプレイヤないしプレイヤキャラクタに対して攻撃した後の状態(攻撃後の状態)がゲーム画面70に表示される。このとき、プレイヤがスティック24等で敵キャラクタ72を指示し、敵キャラクタ72を攻撃すると、敵キャラクタ72に比較的大きいダメージが与えられ、これに応じて、ゲーム装置10に比較的大きい振動が与えられる。
【0083】
なお、敵キャラクタ72へのダメージの与え方およびゲーム装置10への振動の与え方は、図3(C)に示した場合と同じであるため、重複した説明は省略する。
【0084】
このように、図4に示す例では、数フレーム〜数十フレーム単位で、敵キャラクタ72のアクション状態を変化させるようにしてあるが、敵キャラクタ72のアクション状態を短い時間間隔(たとえば、数フレーム単位)で連続的に変化させるようにした場合には、プレイヤは、敵キャラクタ72の素早いアクション状態の変化に合わせてタッチしなければならないため、よりゲームを面白くする効果がある。
【0085】
なお、図4に示す例では、振動の強さを3段階で変化させたが、ダメージの大きさの変化に応じて、振動の強さの段階を2段階または4段階以上で変化させるようにしてもよいことは、上述の場合と同様である。
【0086】
また、駆動信号のパルス幅を変化させたり、周波数とパルス幅との両方を変化させたりすることにより、振動パターンを変化させるようにしてもよいことは、上述の場合と同様である。
【0087】
さらに、図4に示した例とは逆に、敵キャラクタ72の攻撃前に、プレイヤが敵キャラクタ72を攻撃した場合に、敵キャラクタ72に与えるダメージおよびゲーム装置10に与える振動を大きくし、敵キャラクタ72の攻撃後に、プレイヤが敵キャラクタ72を攻撃した場合に、敵キャラクタ72に与えるダメージおよびゲーム装置10に与える振動を小さくするようにしてもよい。
【0088】
具体的には、ゲーム装置10のRAM48には、図5(A)および図5(B)に示すようなテーブルが記憶されており、これらのテーブルに従って、敵キャラクタ72に与えるダメージの大きさおよびゲーム装置10に与える振動の強さを変化(決定)するようにしてある。ここでは、2つのテーブルについて説明するが、たとえば、テーブルは各敵キャラクタ72に関連付けて記憶されている。ただし、敵キャラクタ72の数が膨大である場合には、メモリ(ROM28a,RAM48)の容量が肥大化するため、数種類のテーブルを用意しておき、当該ゲームの開発者ないしはプログラマの意図に従って各敵キャラクタ72をいずれかのテーブルに関連付けるようにしてもよい。
【0089】
図5(A)は、図3を用いて説明したように、敵キャラクタ72の配置位置(Z値)に応じて、敵キャラクタ72に与えるダメージの大きさおよび振動の強さを決定するためのテーブルである。図5(A)からも分かるように、Z値がZ0〜Z1では、敵キャラクタ72に与えるダメージは大きく(HP:300P)、振動の強さは大(駆動信号の周波数:f3)である。また、Z値がZ1〜Z2では、敵キャラクタ72に与えるダメージは中くらい(HP:200P)であり、振動の強さは中(駆動信号の周波数:f2)である。さらに、Z値がZ2〜Z3では、敵キャラクタ72に与えるダメージは小さく(HP:100P)、振動の強さは小(駆動信号の周波数:f1)である。
【0090】
具体的には、プレイヤがスティック24等により操作したとき、タッチパネル22から入力される座標データを検出し、敵キャラクタ72への攻撃かどうかを判断する。つまり、座標データが示す位置座標が、敵キャラクタ72の表示領域に含まれるかどうかを判断する。
【0091】
ここで、上述したように、LCD14の解像度とタッチパネル22の検出精度とは同じであるため、タッチパネル22から入力される座標データが示す位置座標はLCD14の画面上の位置座標と一致する。したがって、プレイヤの操作が敵キャラクタ72を指示(攻撃)するものであるかどうかを簡単に判断することができる。
【0092】
位置座標が、敵キャラクタ72の表示領域に含まれていない場合には、攻撃ミスであると判断して、たとえば、攻撃ミスを表現するようなゲーム画面70(図示せず)を表示する。一方、位置座標が、敵キャラクタ72の表示領域に含まれている場合には、攻撃成功であると判断して、プレイヤが敵キャラクタ72を攻撃したとき、すなわち座標データが入力されたときの敵キャラクタ72のZ値を取得する。
【0093】
CPUコア42は、プレイヤないしプレイヤキャラクタが敵キャラクタ72を攻撃したときの当該敵キャラクタ72のZ値を取得すると、図5(A)に示すテーブルから当該Z値がどの範囲に含まれるかを判定し、判定した範囲に対応する、ダメージの大きさおよび振動の強さを決定し、上述したように、敵キャラクタ72のHPを減算するとともに、偏心モータ28cを駆動してゲーム装置10を振動させる。
【0094】
また、図5(B)は、図4を用いて説明したように、敵キャラクタ72の表示態様や敵キャラクタ72のゲームにおける状態に応じて、敵キャラクタ72に与えるダメージの大きさおよび振動の強さを決定するためのテーブルである。この図5(B)からも分かるように、ゲーム(または戦闘シーン)の経過時間が第Aフレーム〜第Bフレーム(攻撃前)では、敵キャラクタ72に与えるダメージは小さく(HP:100P)、振動の強さは小(駆動信号の周波数:f1)である。また、ゲーム(または戦闘シーン)の経過時間が第Bフレーム〜第Cフレーム(攻撃中)では、敵キャラクタ72に与えるダメージは中くらい(HP:200P)であり、振動の強さは中(駆動信号の周波数:f2)である。さらに、ゲーム(または戦闘シーン)の経過時間が第Cフレーム〜第Dフレームでは、敵キャラクタ72に与えるダメージは大きく(HP:300P)、振動の強さは大(駆動信号の周波数:f3)である。
【0095】
具体的には、プレイヤがスティック24等により操作したとき、タッチパネル22から入力される座標データを検出し、敵キャラクタ72への攻撃かどうかを判断する。つまり、座標データが示す位置座標が、敵キャラクタ72の表示領域に含まれるかどうかを判断する。位置座標が、敵キャラクタ72の表示領域に含まれていない場合には、攻撃ミスであると判断して、たとえば、攻撃ミスを表現するようなゲーム画面70(図示せず)を表示する。一方、位置座標が、敵キャラクタ72の表示領域に含まれている場合には、攻撃成功であると判断して、プレイヤが敵キャラクタ72を攻撃したとき、つまり座標データが入力されたときのゲーム(または戦闘シーン)の経過時間(フレーム)を取得する。
【0096】
なお、図2では省略したが、フレームカウンタを設けてバス44に接続しておけば、座標データが入力されたときのフレームカウンタのカウント値(フレーム数)を容易に取得することができる。ただし、フレームカウンタは、ゲームの開始時または戦闘シーンの開始時にリセットおよびスタートする必要がある。
【0097】
CPUコア42は、プレイヤないしプレイヤキャラクタが敵キャラクタ72を攻撃したときのゲームの経過時間(フレーム)を取得すると、図5(B)に示すテーブルから当該経過時間がどの範囲に含まれるかを判定し、判定した経過時間の範囲に対応するダメージの大きさおよび振動の強さを決定し、上述したように、敵キャラクタ72のHPを減算するとともに、偏心モータ28cを駆動してゲーム装置10を振動させる。
【0098】
上述したように、この実施例では、敵キャラクタ72のアニメーションが攻撃前、攻撃中、攻撃後の順で変化するとき、経過時間によって、いずれの状態であるかを判定するようにしてあるが、攻撃前、攻撃中、攻撃後のそれぞれを示すフラグを記憶しておき、それらのフラグを参照して、いずれの状態であるかを判定するようにしてもよい。たとえば、攻撃前フラグ、攻撃中フラグ、攻撃後フラグをRAM48に設けておき、アニメーションが攻撃中であれば、攻撃前フラグおよび攻撃後フラグをオフし、攻撃中フラグをオンする。このようにすれば、それらのフラグのオン/オフにより、いずれの状態であるかを容易に判定することができる。
【0099】
なお、この実施例では、各敵キャラクタ72に対してテーブルを関連付けるようにしてあるが、ゲームの進行状況(イベント等)に応じて使用するテーブルを適宜選択するようにしてもよい。
【0100】
また、テーブルは、すべての敵キャラクタ72に対して関連付ける必要はなく、一部の敵キャラクタ72にのみ関連づけておき、当該一部の敵キャラクタ72との戦闘シーンにおいてのみ、ゲーム装置10を振動させる演出を実行することも可能である。
【0101】
具体的には、図2に示したCPUコア42が図6に示すフロー図を処理する。この図6に示すフロー図は、敵キャラクタ72が出現するシーン(たとえば、戦闘シーン)におけるゲーム処理である。図6を参照して、CPUコア42は、敵キャラクタ72が出現するシーンにおけるゲーム処理を開始すると、ステップS1で、敵キャラクタ72のパラメータ(HPや攻撃力(MP))を設定する。つまり、図示は省略したが、RAM48には、敵キャラクタ72毎に、その画像を生成するためのキャラクタ画像データが記憶されるとともに、そのパラメータ(HP,MP)も記憶されている。このHP,MPは、予めゲームの開発者やプログラマ等によって決定される値であり、たとえば、敵キャラクタ72の強さ(レベル)によって異なる値が設定される。そのHPおよびMPが、RAM48のワーキングエリアに読み出されるのである。
【0102】
続くステップS3では、敵キャラクタ72をゲーム画面70に表示する。つまり、CPUコア42は、GPU52にグラフィックスコマンドを与えるとともに、画像生成プログラムを与える。これに応じて、GPU52は、敵キャラクタ72を含むゲーム画面70をVRAM58上に作成する。そして、CPUコア42は、LCDコントローラ60を制御して、LCD14にゲーム画面70を表示させる。
【0103】
次のステップS5では、敵キャラクタ72をランダムに動作させる。たとえば、敵キャラクタ72を画面奥から画面手前に移動させたり、敵キャラクタ72に攻撃動作などのアクションをさせたりする。続いて、ステップS7で、タッチ入力(タッチパネル22を用いた入力操作)を検出する。つまり、図示は省略するが、I/F回路54に設けられるタッチパネル22に対応するバッファ(タッチパネル22からの座標データを一時記憶するバッファ)の読み出し処理を実行する。
【0104】
そして、ステップS9で、タッチ入力があるかどうかを判断する。つまり、タッチパネル22に対応するバッファに座標データが記憶されているかどうかを判断する。ステップS9で“NO”であれば、つまり座標データが入力されていなければ、タッチ入力がないと判断して、そのままステップS5に戻る。一方、ステップS9で“YES”であれば、つまり座標データが入力されていれば、タッチ入力があると判断して、ステップS11で、入力位置の敵キャラクタ72への接触を判定する。つまり、タッチパネル22から入力された座標データが示す位置座標が、敵キャラクタ72の表示領域に含まれるかどうかを判定する。
【0105】
次のステップS13では、入力位置が敵キャラクタ72に接触しているかどうかを判断する。つまり、ステップS11の判定結果が接触を示すかどうかを判断する。ステップS13で“NO”であれば、つまり入力位置が敵キャラクタ72に接触していなければ、攻撃ミスであると判断して、そのままステップS5に戻る。ただし、上述したように、攻撃ミスを表現するゲーム画面70をLCD14に表示してからステップS5に戻るようにしてもよい。
【0106】
一方、ステップS13で“YES”であれば、つまり入力位置が敵キャラクタ72に接触していれば、攻撃成功であると判断して、ステップS15で、後述する攻撃および振動処理(図7−図8,図9−図10参照)を実行して、ステップS17で、敵キャラクタ72のHPが0になったかどうかを判断する。つまり、プレイヤないしプレイヤキャラクタが敵キャラクタ72を倒したかどうかを判断する。
【0107】
ステップS17で“NO”であれば、つまり敵キャラクタ72のHPが0でなければ、プレイヤないしプレイヤキャラクタが敵キャラクタ72を倒していないと判断し、ステップS5に戻る。一方、ステップS17で“YES”であれば、つまり敵キャラクタ72のHPが0であれば、プレイヤないしプレイヤキャラクタが敵キャラクタ72を倒したと判断して、ステップS19で、敵キャラクタ72が倒されたときのリアクションを表現するゲーム画面70(図示せず)を表示して、敵キャラクタ72が出現するシーンにおけるゲーム処理を終了する。
【0108】
なお、図示は省略するが、敵キャラクタ72の攻撃により、プレイヤないしプレイヤキャラクタのHPが0になった場合には、ゲームオーバとなる。
【0109】
図7および図8のフロー図、図9および図10のフロー図は、それぞれ、図6に示したステップS15の攻撃および振動処理を示すフロー図である。図7および図8は、プレイヤないしプレイヤキャラクタが敵キャラクタ72を攻撃したときの当該敵キャラクタ72の配置位置(Z値)に応じて、当該敵キャラクタ72に与えるダメージの大きさおよびゲーム装置10に与える振動の強さを変化させる場合の攻撃および振動処理を示すフロー図である。また、図9および図10は、プレイヤないしプレイヤキャラクタが敵キャラクタ72を攻撃したときの経過時間(フレーム)に応じて、当該敵キャラクタ72に与えるダメージの大きさおよびゲーム装置10に与える振動の強度を変化させる場合の攻撃および振動処理を示すフロー図である。以下、説明の便宜上、図7および図8に示すフロー図の処理を攻撃および振動処理(1)といい、図9および図10に示すフロー図の処理を攻撃および振動処理(2)ということにする。
【0110】
なお、上述したように、この実施例では、敵キャラクタ72に応じてテーブルを関連付けるようにしてあるため、実際には、図6に示すフロー図では、ステップS15の処理の前、具体的には、ステップS3からステップS15までのいずれかの時点で、ステップS3で表示した敵キャラクタ72に応じたテーブルを決定し、攻撃および振動処理(1)または(2)のいずれの処理を実行するかが選択されるのである。
【0111】
図7を参照して、CPUコア42は、攻撃および振動処理(1)を開始すると、ステップS21で、敵キャラクタ72のZ値を検出する。続くステップS23では、Z値がZ0〜Z1の範囲内(Z0≦Z<Z1)であるかどうかを判断する。ステップS23で“NO”であれば、つまり敵キャラクタ72のZ値がZ0〜Z1の範囲内でなければ、そのままステップS31に進む。一方、ステップS23で“YES”であれば、つまり敵キャラクタ72のZ値がZ0〜Z1の範囲内であれば、ステップS25で、敵キャラクタに大きいダメージを与える。つまり、CPUコア42は、図5(A)に示すテーブルに従って、敵キャラクタのHPから300P減算する。次に、ステップS27で、敵キャラクタ72に大ダメージを与えた時のリアクションを表示する。つまり、敵キャラクタ72がダメージを受けた状態を派手な演出で表現するゲーム画面70を表示する。このとき、大ダメージを表現する音(音楽)による演出を加えてもよい。そして、ステップS29で、図5(A)に示すテーブルに従って、ゲーム装置10に大振動を与えて、図8に示すように、攻撃および振動処理(1)をリターンする。つまり、ステップS29では、CPUコア42は、一定パルス幅W1で周波数f3(400Hz)の駆動信号を偏心モータ28cに与える。
【0112】
ステップS31では、Z値がZ1〜Z2の範囲内(Z1≦Z<Z2)であるかどうかを判断する。ステップS31で“NO”であれば、つまりZ値がZ1〜Z2の範囲内でなければ、図8に示すステップS39に進む。一方、ステップS31で“YES”であれば、つまりZ値がZ1〜Z2の範囲内であれば、ステップS33で、敵キャラクタ72に中くらいのダメージを与える。つまり、CPUコア42は、図5(A)に示すテーブルに従って、敵キャラクタ72のHPから200P減算する。次にステップS35で、敵キャラクタ72に中ダメージを与えた時のリアクションを表示する。つまり、敵キャラクタ72がダメージを受けた状態を、大ダメージを受けた場合よりも派手でない演出のゲーム画面70を表示する。このとき、中ダメージを表現する音(音楽)による演出を加えてもよい。そして、ステップS37で、図5(A)に示すテーブルに従って、ゲーム装置10に中振動を与えて、攻撃および振動処理(1)をリターンする。つまり、ステップS37では、CPUコア42は、一定パルス幅W1で周波数f2(300Hz)の駆動信号を偏心モータ28cに与える。
【0113】
図8に示すように、ステップS39では、Z値がZ2〜Z3の範囲内(Z2≦Z<Z3)にあるかどうかを判断する。ステップS39で“NO”あれば、つまりZ値がZ2〜Z3の範囲内でなければ、そのまま攻撃および振動処理(1)をリターンする。つまり、敵キャラクタ72を攻撃した場合であっても、攻撃した時点の敵キャラクタ72のZ値が図5(A)に示すテーブルのいずれの範囲内でもない場合には、たとえば、敵キャラクタ72の防御による攻撃失敗と判断して、そのまま攻撃および振動処理(1)をリターンするのである。ただし、このような場合には、敵キャラクタ72がプレイヤないしプレイヤキャラクタの攻撃を防御する様子を示すゲーム画面70を表示するようにしてもよい。
【0114】
一方、ステップS39で“YES”であれば、つまりZ値がZ2〜Z3の範囲内であれば、ステップS41で、敵キャラクタ72に小ダメージを与える。つまり、CPUコア42は、図5(A)に示すテーブルに従って、敵キャラクタ72のHPから100P減算する。次のステップS43では、敵キャラク72に小ダメージを与えた時のリアクションを表示する。つまり、敵キャラクタ72がダメージを受けた状態を、中ダメージを受けた場合よりもさらに派手でない演出でゲーム画面70を表示する。このとき、小ダメージを表現する音(音楽)による演出を加えてもよい。そして、ステップS45で、図5(A)に示すテーブルに従って、ゲーム装置10に小振動を与えて、攻撃および振動処理(1)をリターンする。つまり、ステップS45では、CPUコア42は、一定パルス幅W1で周波数f1(200Hz)の駆動信号を偏心モータ28cに与える。
【0115】
図9および図10は、攻撃および振動処理(2)を示すフロー図である。この攻撃および振動処理(2)は、攻撃および振動処理(1)とほぼ同じであるため、同じ処理については簡単に説明することにする。図9を参照して、CPUコア42は、攻撃および振動処理(2)を開始すると、ステップS51で、敵キャラクタ72のアクションを判定する。ここでは、経過時間(フレーム)をフレームカウンタから検出し、図5(B)に示すテーブルに従って、敵キャラクタ72のアクションが攻撃前、攻撃中または攻撃後のいずれであるかを判定する。
【0116】
続くステップS53では、敵キャラクタ72のアクションが攻撃後かどうかを判断する。つまり、経過時間が第Cフレーム〜第Dフレームの範囲内(第Cフレーム≦経過時間<第Dフレーム)であるかどうかを判断する。ここで、経過時間が第Cフレーム〜第Dフレームの範囲内でなければ、敵キャラクタ72のアクションが攻撃後でないと判断し、ステップS53で“NO”となり、ステップS61に進む。しかし、経過時間が第Cフレーム〜第Dフレームの範囲内であれば、敵キャラクタ72のアクションが攻撃後であると判断し、ステップS53で“YES”となり、ステップS55で、図5(B)に示すテーブルに従って、敵キャラクタ72に大ダメージを与える。次に、ステップS57で、敵キャラクタ72に大ダメージを与えた時のリアクションを表示し、ステップS59で、図5(B)に示すテーブルに従って、ゲーム装置10に大振動を与えて、図10に示すように、攻撃および振動処理(2)をリターンする。
【0117】
ステップS61では、敵キャラクタ72のアクションが攻撃中かどうかを判断する。つまり、経過時間が第Bフレーム〜第Cフレームの範囲内(第Bフレーム≦経過時間<第Cフレーム)であるかどうかを判断する。ここで、経過時間が第Bフレーム〜第Cフレームの範囲内でなければ、敵キャラクタ72のアクションが攻撃中でないと判断し、図10に示すステップS69に進む。しかし、経過時間が第Bフレーム〜第Cフレームの範囲内であれば、敵キャラクタ72のアクションが攻撃中であると判断し、ステップS63で、図5(B)に示すテーブルに従って、敵キャラクタ72に中ダメージを与える。次のステップS65では、敵キャラクタ72に中ダメージを与えた時のリアクションを表示し、ステップS67で、図5(B)に示すテーブルに従って、ゲーム装置10に中振動を与えて、攻撃および振動処理(2)をリターンする。
【0118】
図10に示すステップS67では、敵キャラクタ72のアクションが攻撃前かどうかを判断する。つまり、経過時間が第Aフレーム〜第Bフレームの範囲内(第Aフレーム≦経過時間<第Bフレーム)であるかどうかを判断する。ここで、経過時間が第Aフレーム〜第Bフレームの範囲内でなければ、敵キャラクタ72のアクションが攻撃前ではないと判断して、攻撃および振動処理(2)をリターンする。しかし、画面更新時間が第Aフレーム〜第Bフレームの範囲内であれば、敵キャラクタ72のアクションが攻撃前であると判断して、ステップS71で、図5(B)に示すテーブルに従って、敵キャラクタ72に小ダメージを与える。次のステップS73では、敵キャラクタ72に小ダメージを与えた時のリアクションを表示し、ステップS75で、図5(B)に示すテーブルに従って、ゲーム装置10に小振動を与えて、攻撃および振動処理(2)をリターンする。
【0119】
この実施例によれば、キャラクタの表示態様やキャラクタのゲームにおける状態に応じて振動の種類を変化させるので、ゲーム画面の表示やゲームの音(音楽)の出力に加えて、振動により、キャラクタの表示態様やキャラクタのゲームにおける状態をプレイヤに伝えることができる。これにより、プレイヤはリアリティのある新しい操作感を得ることができる。
【0120】
なお、上述の実施例では、キャラクタの配置位置(Z値)やキャラクタのアクションの状態に応じて、ダメージの大きさおよび振動の強さ(種類)を変化させるようにしたが、敵キャラクタのHPに応じて、ダメージの大きさおよび振動の種類を変化させることもできる。また、敵キャラクタが攻撃状態か否かに応じて、ダメージの大きさおよび振動の種類を変化させることもできる。
【0121】
前者の場合には、たとえば、図11(A)に示すようなテーブルに従って、敵キャラクタに与えるダメージの大きさおよびゲーム装置10の振動の強さが決定される。このテーブルに従えば、CPUコア42は、プレイヤないしプレイヤキャラクタが敵キャラクタ72を攻撃したとき、当該敵キャラクタの現在のHPを取得(検出)し、取得したHPの数値に応じてダメージの大きさおよび振動の強さを決定する。ただし、HPに変えて、敵キャラクタのMPやLVに応じたダメージの大きさおよび振動の強さを決定するためのテーブルを用いるようにしてもよい。または、敵キャラクタについてのHP、MPおよびLVのいずれか2つ以上の組み合わせに応じたダメージの大きさおよび振動の強さを決定するためのテーブルを用いるようにしてもよい。このように、HP、MP、LVのようなキャラクタの属性に応じてダメージの大きさおよび振動の強さを決定することもできるのである。
【0122】
また、詳細な説明は省略するが、敵キャラクタ72の属性として精神状態を記憶し、そして、ゲームの進行状況に応じて更新し、精神状態に応じて、敵キャラクタ72に与えるダメージの大きさおよびゲーム装置10に与える振動の強さを変化させることもできる。たとえば、敵キャラクタ72の精神状態が、平常状態または興奮状態の間で変化する場合には、プレイヤないしプレイヤキャラクタが当該敵キャラクタ72を攻撃したときの敵キャラクタ72の精神状態が平常状態であれば、当該敵キャラクタ72に与えるダメージおよびゲーム装置10に与える振動の強さを小さくし、逆に、当該敵キャラクタ72の精神状態が興奮状態であれば、当該敵キャラクタに与えるダメージおよびゲーム装置10に与える振動の強さを大きくすることができる。
【0123】
後者の場合には、たとえば、図11(B)に示すようなテーブルに従って、敵キャラクタ72に与えるダメージの大きさおよびゲーム装置10の振動の強さが決定される。このテーブルに従えば、CPUコア42は、プレイヤないしプレイヤキャラクタが敵キャラクタ72を攻撃したとき、当該敵キャラクタ72が攻撃状態か否か、さらに、攻撃状態でない場合には、通常状態か防御状態かを、経過時間(フレーム)から判定したいずれかの状態に応じたダメージの大きさおよび振動の強さを決定する。
【0124】
ただし、上述したように、敵キャラクタ72のアニメーションが攻撃状態、通常状態および防御状態の間で変化するとき、各々に対応するフラグを記憶しておき、それらのフラグを参照することにより、いずれの状態であるかを判定するようにしてもよい。
【0125】
また、上述の実施例では、2画面(LCD12および14)を設けたゲーム装置について説明したが、タッチパネルを備えていれば、1画面のゲーム装置にも適用できることは言うまでもない。
【0126】
さらに、上述の実施例では、ゲームカートリッジに偏心モータ(振動子)を内蔵するようにしたが、ハウジング16のいずれかの位置に内蔵するようにしてもよい。ただし、振動はスティックを介して間接的に、または、直接プレイヤの指(手)に伝えられればよいため、少なくともタッチ入力する画面(LCD14およびタッチパネル22の少なくとも一方)が振動すればよい。かかる場合には、従来技術に示した特開平11−85400号に開示される構成を採用することができる。具体的には、振動素子によって振動を付与される状態で、LCD14をハウジング16bに支持(設置)するようにすればよい。このように、ゲーム装置10内部に振動子を設けるようにすることもできる。
【0127】
さらにまた、上述の実施例では、敵キャラクタと戦闘するゲームについてのみ説明したが、これに限定される必要はない。たとえば、キャラクタ画像が時系列に従ってその配置位置が変化し、所定の配置位置で当該キャラクタ画像を指示した場合には、高得点が得られ、当該所定の配置位置から離れるに従って点数が低くなるようなゲームにも適用することができる。この場合には、所定の配置位置に近いほど、高得点となるため、これに応じて、振動の強さを大きくし、所定の配置位置から離れるに従って点数が低くなるため、これに応じて、振動の強さを小さくするようにすればよい。
【0128】
また、上述の実施例では、振動子として偏心モータを設けるようにしたため、駆動信号(PWM信号)の周波数およびパルス幅の少なくとも一方を変化させることにより、振動の強さを変化させるようにしたが、ボイスコイルを用いた振動子を設ける場合には、周波数およびパルス幅のみならず、波高値(振幅)を変化させることにより、振動の強さを変化させることができる。
【0129】
さらに、上述の実施例では、敵キャラクタの表示態様やゲームにおける敵キャラクタの状態に応じて、ダメージの大きさおよび振動の強さを変化させるようにしたが、プレイヤキャラクタの表示態様やゲームにおけるプレイヤキャラクタの状態に応じて、ダメージの大きさや振動の強さを変化させるようにしてもよい。
【図面の簡単な説明】
【0130】
【図1】図1はこの発明のゲーム装置の一例を示す図解図である。
【図2】図2は図1に示すゲーム装置の電気的な構成を示すブロック図である。
【図3】図3は図1に示すゲーム装置に設けられるLCDの表示例、敵キャラクタの配置位置および当該配置位置に応じた振動の強さを示す図解図である。
【図4】図4は図1に示すゲーム装置に設けられるLCDの表示例、敵キャラクタの攻撃に関する状態および当該状態に応じた振動の強さを示す図解図である。
【図5】図5は敵キャラクタの表示態様や敵キャラクタのパラメータに応じたダメージの大きさおよび振動の強さを示すテーブルの例を示す図解図である。
【図6】図6は図2に示すCPUコアの戦闘シーンにおける処理を示すフロー図である。
【図7】図7は図2に示すCPUコアの攻撃および振動処理(1)の一部を示すフロー図である。
【図8】図8は図7に示す攻撃および振動処理(1)に後続する処理を示すフロー図である。
【図9】図9は図2に示すCPUコアの攻撃および振動処理(2)の一部を示すフロー図である。
【図10】図10は図9に示す攻撃および振動処理(2)に後続する処理を示すフロー図である。
【図11】図11はプレイヤないしプレイヤキャラクタのHPや敵キャラクタが攻撃状態か否かに応じてダメージの大きさおよび振動の強さを変化させるためのテーブルの例である。
【符号の説明】
【0131】
10 …ゲーム装置
12,14 …LCD
16,16a,16b …ハウジング
20 …操作スイッチ
22 …タッチパネル
24 …スティック
28 …メモリカード
28a …ROM
28b,48 …RAM
28c …偏心モータ
40 …電子回路基板
42 CPUコア
50,52 …GPU
54 …I/F回路
56,58 …VRAM
60 …LCDコントローラ
【特許請求の範囲】
【請求項1】
ゲーム画面を表示するための表示器と、当該表示器に関連して設けられるタッチパネルと、少なくとも当該表示器の画面を振動させるための振動器とを備えるゲーム装置であって、
ゲームに登場するキャラクタの画像を含むゲーム画面を前記表示器の画面に表示するゲーム画面表示手段、
前記キャラクタの表示態様または当該キャラクタのゲームにおける状態を、変化させるためのパラメータをゲームの進行状況に応じて更新する更新手段、
前記タッチパネルへの操作入力に応じた位置座標を検出する検出手段、
前記検出手段によって検出された位置座標が前記キャラクタの表示領域に含まれるとき、前記タッチパネルへの操作入力時点の当該キャラクタのパラメータを取得する取得手段、および
前記取得手段によって取得されたパラメータに応じた振動パターンによって前記振動器を振動させる振動制御手段を備える、ゲーム装置。
【請求項2】
前記更新手段は、ゲーム空間における前記キャラクタの配置座標をパラメータとして更新し、
前記振動制御手段は、前記配置座標に応じた振動パターンで前記振動器を振動させる、請求項1記載のゲーム装置。
【請求項3】
前記更新手段は、前記キャラクタのアニメーション再生経過時間をパラメータとして更新し、
前記振動制御手段は、前記アニメーション再生経過時間に応じた振動パターンで前記振動器を振動させる、請求項1記載のゲーム装置。
【請求項4】
前記更新手段は、少なくとも前記キャラクタが攻撃状態か非攻撃状態かを決めるフラグをパラメータとして更新し、
前記振動制御手段は、前記フラグのオン/オフに応じた振動パターンで前記振動器を振動させる、請求項1記載のゲーム装置。
【請求項5】
前記更新手段は、前記キャラクタの生命力、攻撃力および精神状態をパラメータとして更新し、
前記振動制御手段は、前記キャラクタの生命力、攻撃力および精神状態の少なくとも1つに応じた振動パターンで前記振動器を振動させる、請求項1記載のゲーム装置。
【請求項6】
前記振動制御手段は、複数の前記振動パターンから前記パラメータに応じた1つの振動パターンを選択する選択手段を含む、請求項1ないし5のいずれかに記載のゲーム装置。
【請求項7】
ゲーム画面を表示するための表示器と、当該表示器に関連して設けられるタッチパネルと、少なくとも当該表示器の画面を振動させるための振動器とを備えるゲーム装置のゲームプログラムであって、
前記ゲーム装置のプロセサに、
ゲームに登場するキャラクタの画像を含むゲーム画面を前記表示器の画面に表示するゲーム画面表示ステップ、
前記キャラクタの表示態様または当該キャラクタのゲームにおける状態を、変化させるためのパラメータをゲームの進行状況に応じて更新する更新ステップ、
前記タッチパネルへの操作入力に応じた位置座標を検出する検出ステップ、
前記検出ステップによって検出された位置座標が前記キャラクタの表示領域に含まれるとき、前記タッチパネルへの操作入力時点の当該キャラクタのパラメータを取得する取得ステップ、および
前記取得ステップによって取得されたパラメータに応じた振動パターンによって前記振動器を振動させる振動制御ステップを実行させる、ゲームプログラム。
【請求項8】
前記更新ステップは、ゲーム空間における前記キャラクタの配置座標をパラメータとして更新し、
前記振動制御ステップは、前記配置座標に応じた振動パターンで前記振動器を振動させる、請求項7記載のゲームプログラム。
【請求項9】
前記更新ステップは、前記キャラクタのアニメーション再生経過時間をパラメータとして更新し、
前記振動制御ステップは、前記アニメーション再生経過時間に応じた振動パターンで前記振動器を振動させる、請求項7記載のゲームプログラム。
【請求項10】
前記更新ステップは、少なくとも前記キャラクタが攻撃状態か非攻撃状態かを決めるフラグをパラメータとして更新し、
前記振動制御ステップは、前記フラグのオン/オフに応じた振動パターンで前記振動器を振動させる、請求項7載のゲームプログラム。
【請求項11】
前記更新ステップは、前記キャラクタの生命力、攻撃力および精神状態をパラメータとして更新し、
前記振動制御ステップは、前記キャラクタの生命力、攻撃力および精神状態の少なくとも1つに応じた振動パターンで前記振動器を振動させる、請求項7記載のゲームプログラム。
【請求項12】
前記振動制御ステップは、複数の前記振動パターンから前記パラメータに応じた1つの振動パターンを選択する選択ステップを含む、請求項7ないし11のいずれかに記載のゲームプログラム。
【請求項1】
ゲーム画面を表示するための表示器と、当該表示器に関連して設けられるタッチパネルと、少なくとも当該表示器の画面を振動させるための振動器とを備えるゲーム装置であって、
ゲームに登場するキャラクタの画像を含むゲーム画面を前記表示器の画面に表示するゲーム画面表示手段、
前記キャラクタの表示態様または当該キャラクタのゲームにおける状態を、変化させるためのパラメータをゲームの進行状況に応じて更新する更新手段、
前記タッチパネルへの操作入力に応じた位置座標を検出する検出手段、
前記検出手段によって検出された位置座標が前記キャラクタの表示領域に含まれるとき、前記タッチパネルへの操作入力時点の当該キャラクタのパラメータを取得する取得手段、および
前記取得手段によって取得されたパラメータに応じた振動パターンによって前記振動器を振動させる振動制御手段を備える、ゲーム装置。
【請求項2】
前記更新手段は、ゲーム空間における前記キャラクタの配置座標をパラメータとして更新し、
前記振動制御手段は、前記配置座標に応じた振動パターンで前記振動器を振動させる、請求項1記載のゲーム装置。
【請求項3】
前記更新手段は、前記キャラクタのアニメーション再生経過時間をパラメータとして更新し、
前記振動制御手段は、前記アニメーション再生経過時間に応じた振動パターンで前記振動器を振動させる、請求項1記載のゲーム装置。
【請求項4】
前記更新手段は、少なくとも前記キャラクタが攻撃状態か非攻撃状態かを決めるフラグをパラメータとして更新し、
前記振動制御手段は、前記フラグのオン/オフに応じた振動パターンで前記振動器を振動させる、請求項1記載のゲーム装置。
【請求項5】
前記更新手段は、前記キャラクタの生命力、攻撃力および精神状態をパラメータとして更新し、
前記振動制御手段は、前記キャラクタの生命力、攻撃力および精神状態の少なくとも1つに応じた振動パターンで前記振動器を振動させる、請求項1記載のゲーム装置。
【請求項6】
前記振動制御手段は、複数の前記振動パターンから前記パラメータに応じた1つの振動パターンを選択する選択手段を含む、請求項1ないし5のいずれかに記載のゲーム装置。
【請求項7】
ゲーム画面を表示するための表示器と、当該表示器に関連して設けられるタッチパネルと、少なくとも当該表示器の画面を振動させるための振動器とを備えるゲーム装置のゲームプログラムであって、
前記ゲーム装置のプロセサに、
ゲームに登場するキャラクタの画像を含むゲーム画面を前記表示器の画面に表示するゲーム画面表示ステップ、
前記キャラクタの表示態様または当該キャラクタのゲームにおける状態を、変化させるためのパラメータをゲームの進行状況に応じて更新する更新ステップ、
前記タッチパネルへの操作入力に応じた位置座標を検出する検出ステップ、
前記検出ステップによって検出された位置座標が前記キャラクタの表示領域に含まれるとき、前記タッチパネルへの操作入力時点の当該キャラクタのパラメータを取得する取得ステップ、および
前記取得ステップによって取得されたパラメータに応じた振動パターンによって前記振動器を振動させる振動制御ステップを実行させる、ゲームプログラム。
【請求項8】
前記更新ステップは、ゲーム空間における前記キャラクタの配置座標をパラメータとして更新し、
前記振動制御ステップは、前記配置座標に応じた振動パターンで前記振動器を振動させる、請求項7記載のゲームプログラム。
【請求項9】
前記更新ステップは、前記キャラクタのアニメーション再生経過時間をパラメータとして更新し、
前記振動制御ステップは、前記アニメーション再生経過時間に応じた振動パターンで前記振動器を振動させる、請求項7記載のゲームプログラム。
【請求項10】
前記更新ステップは、少なくとも前記キャラクタが攻撃状態か非攻撃状態かを決めるフラグをパラメータとして更新し、
前記振動制御ステップは、前記フラグのオン/オフに応じた振動パターンで前記振動器を振動させる、請求項7載のゲームプログラム。
【請求項11】
前記更新ステップは、前記キャラクタの生命力、攻撃力および精神状態をパラメータとして更新し、
前記振動制御ステップは、前記キャラクタの生命力、攻撃力および精神状態の少なくとも1つに応じた振動パターンで前記振動器を振動させる、請求項7記載のゲームプログラム。
【請求項12】
前記振動制御ステップは、複数の前記振動パターンから前記パラメータに応じた1つの振動パターンを選択する選択ステップを含む、請求項7ないし11のいずれかに記載のゲームプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2006−68210(P2006−68210A)
【公開日】平成18年3月16日(2006.3.16)
【国際特許分類】
【出願番号】特願2004−254243(P2004−254243)
【出願日】平成16年9月1日(2004.9.1)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
【公開日】平成18年3月16日(2006.3.16)
【国際特許分類】
【出願日】平成16年9月1日(2004.9.1)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
[ Back to top ]