説明

プログラム、情報記憶媒体及びゲーム装置

【課題】加速度センサを内蔵したゲームコントローラに関する新たな操作を実現すること。
【解決手段】プレーヤ10が把持したゲームコントローラ1300を振るスイング操作を行うと、プレーヤキャラクタ20が武器30を振り回す。即ち、ゲームコントローラ1300に内蔵された加速度センサで検出された加速度αの値に基づいて、為されたスイング操作の操作方向(スイング方向)が判定され、この判定されたスイング方向に一致する方向に武器30を振り回すよう、プレーヤキャラクタ20の武器30の振り回しが制御される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体及びゲーム装置に関する。
【背景技術】
【0002】
ゲームコントローラに内蔵されている加速度検出器(加速度センサ)からの出力値に応じてゲームを進行制御する技術が知られている。例えば、特許文献1には、ゲームコントローラを傾かせる傾き操作を加速度センサで検出し、その傾き方向及び傾き量に応じて、ゲーム画像やゲームサウンドを変化させる技術が開示されている。
【特許文献1】特開2003−325972号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、加速度センサを内蔵したゲームコントローラに関する技術としては、特許文献1に代表されるように、現実空間においてプレーヤがゲームコントローラをどちらの方向にどれだけ傾けているのかによって、リアルタイムにゲーム空間中の移動体の移動方向を変化させるといった、現実空間のゲームコントローラの現在の姿勢をゲームに反映させる技術が主であった。
【0004】
本発明は、上記事情に鑑みてなされたものであり、加速度センサを内蔵したゲームコントローラに関する新たな操作を実現することを目的としている。
【課題を解決するための手段】
【0005】
上記課題を解決するための第1の発明は、
コンピュータに所定のゲームを実行させるためのプログラム(例えば、図15のゲームプログラム310)であって、
加速度検出器(例えば、図1の加速度センサ1306)を内蔵したゲームコントローラ(例えば、図1のゲームコントローラ1300)の前記加速度検出器により検出された加速度の大きさが、前記ゲームコントローラを振るスイング操作がなされたことを検知するための条件として定められた所与の加速度条件を満たしたことを検知するスイング操作入力検知手段(例えば、図15のスイング方向判定部211;図21のステップA11)、
ゲーム空間中を移動する移動体(例えば、図3の分銅33)を、前記検知に応じて移動開始させる発動制御手段(例えば、図15の移動制御部213;図21のステップA19)、
前記スイング操作入力検知手段による検知から所定期間の間に前記加速度検出器により検出された加速度の最大値に基づいて、前記移動体の移動速度を可変に制御する移動速度可変制御手段(例えば、図15の軌道算出部212;図23のステップC11)、
として前記コンピュータを機能させるためのプログラムである。
【0006】
また、第20の発明は、
加速度検出器(図1の加速度センサ1306)を内蔵したゲームコントローラ(例えば、図1のゲームコントローラ1300)と、
前記加速度検出器により検出された加速度の大きさが、前記ゲームコントローラを振るスイング操作がなされたことを検知するための条件として定められた所与の加速度条件を満たしたことを検知するスイング操作入力検知手段(例えば、図15のスイング方向判定部211)と、
ゲーム空間中を移動する移動体(例えば、図3の分銅33)を、前記検知に応じて移動開始させる発動制御手段(例えば、図15の移動制御部213)と、
前記スイング操作入力検知手段による検知から所定期間の間に前記加速度検出器により検出された加速度の最大値に基づいて、前記移動体の移動速度を可変に制御する移動速度可変制御手段(例えば、図51の軌道算出部212)と、
を備えたゲーム装置(例えば、図1,15のゲームシステム1)である。
【0007】
この第1又は第20の発明によれば、ゲームコントローラに内蔵された加速度検出器により検出された加速度の大きさが、スイング操作の加速度条件を満たしたことが検知された場合、移動体が移動開始される。つまり、例えばゲームコントローラを傾ける操作をしても、加速度条件が満たされなければ移動体の移動が開始されず、この加速度条件を満たすスイング操作がなされたことによって移動体の移動が開始される。これにより、ゲームコントローラを振るスイング操作を行うことで移動体を移動開始させるといった、新たなゲーム操作が実現される。また、スイング操作の検知から所定期間の間に検出された加速度の最大値に基づいて、移動体の移動速度が可変される。これにより、例えば加速度の最大値が大きいほど移動体の移動速度を速くすることで、素早く振るほど移動体の移動速度が速くなるといった、感覚的に理解し易いゲーム操作が可能となる。また、スイング操作といった簡単な操作で、移動体の移動開始を指示するとともに移動速度をも指示するといった、多様性の有るゲーム操作が実現される。
【0008】
第2の発明は、
コンピュータに所定のゲームを実行させるためのプログラム(例えば、図15のゲームプログラム310)であって、
加速度検出器(例えば、図1,15の加速度センサ1306)を内蔵したゲームコントローラ(例えば、図1のゲームコントローラ1300)の前記加速度検出器により検出された加速度の大きさが、前記ゲームコントローラを振るスイング操作がなされたことを検知するための条件として定められた所与の加速度条件を満たしたことを検知するスイング操作入力検知手段(例えば、図15のスイング方向判定部211;図21のステップA11)、
ゲーム空間中を移動する移動体(例えば、図3の分銅33)を、前記検知に応じて移動開始させる発動制御手段(例えば、図15の移動制御部213;図21のステップA19)、
前記スイング操作入力検知手段による検知から所定期間の間に前記加速度検出器により検出された加速度の最大値に基づいて、前記移動体の到達距離を可変に制御する到達距離可変制御手段(例えば、図15の軌道算出部212;図23のステップC3)、
として前記コンピュータを機能させるためのプログラムである。
【0009】
また、第21の発明は、
加速度検出器を内蔵したゲームコントローラ(例えば、図1のゲームコントローラ1300)と、
前記加速度検出器により検出された加速度の大きさが、前記ゲームコントローラを振るスイング操作がなされたことを検知するための条件として定められた所与の加速度条件を満たしたことを検知するスイング操作入力検知手段(例えば、図15のスイング方向判定部211)と、
ゲーム空間中を移動する移動体(例えば、図3の分銅33)を、前記検知に応じて移動開始させる発動制御手段(例えば、図15の移動制御部213)と、
前記スイング操作入力検知手段による検知から所定期間の間に前記加速度検出器により検出された加速度の最大値に基づいて、前記移動体の到達距離を可変に制御する到達距離可変制御手段(例えば、図15の軌道算出部212)と、
を備えたゲーム装置である。
【0010】
この第2又は第21の発明によれば、ゲームコントローラに内蔵された加速度検出器により検出された加速度の大きさが、スイング操作の加速度条件を満たしたことが検知された場合、移動体が移動開始される。つまり、例えばゲームコントローラを傾ける操作をしても、加速度条件が満たされなければ移動体の移動が開始されず、この加速度条件を満たすスイング操作がなされたことによって移動体の移動が開始される。これにより、ゲームコントローラを振るスイング操作を行うことで移動体を移動開始させるといった、新たなゲーム操作が実現される。また、スイング操作の検知から所定期間の間に検出された加速度の最大値に基づいて、移動体の到達距離が可変される。これにより、例えば加速度の最大値が大きいほど移動体の到達距離を長く(遠く)することで、素早く振るほど移動体が遠くまで移動するといった、感覚的に理解し易いゲーム操作が可能となる。また、スイング操作といった簡単な操作で、移動体の移動開始を指示するとともに移動速度をも指示するといった、多様性の有るゲーム操作が実現される。
【0011】
第3の発明は、第1の発明のプログラムであって、
前記スイング操作入力検知手段による検知から所定期間の間に前記加速度検出器により検出された加速度の最大値に基づいて、前記移動体の到達距離を可変に制御する到達距離可変制御手段として前記コンピュータを機能させるためのプログラムである。
【0012】
この第3の発明によれば、スイング操作の検知から所定期間の間に検出された加速度の最大値に基づいて、移動体の到達距離が可変される。これにより、例えば加速度の最大値が大きいほど移動体の到達距離を長く(遠く)することで、素早く振るほど移動体が遠くまで移動するといった、感覚的に理解し易いゲーム操作が可能となる。また、スイング操作といった簡単な操作で、移動体の移動開始を指示するとともに移動速度をも指示するといった、多様性の有るゲーム操作が実現される。
【0013】
第4の発明は、第1〜第3の何れかの発明のプログラムであって、
前記ゲームコントローラは、片手で把持可能な棒状の形態を有しており、
前記加速度検出器は、少なくとも前記ゲームコントローラの長手方向の加速度を検出し、
前記スイング操作入力検知手段が、前記加速度検出器により検出される前記ゲームコントローラの長手方向の加速度に基づいてスイング操作がなされたことを検知するように前記コンピュータを機能させるためのプログラムである。
【0014】
この第4の発明によれば、片手で把持可能な棒状の形態のゲームコントローラの長手方向の加速度が検出され、この検出された加速度に基づいてスイング操作がなされたことが検知される。棒状のゲームコントローラを片手で把持して振るといったスイング操作を行うと、長手方向に遠心力が発生し、加速度として検出される。即ち、スイング操作のし易い形状のゲームコントローラであるとともに、スイング操作を適切に検知することができる。
【0015】
第5の発明は、第1〜第4の何れかの発明のプログラムであって、
前記スイング操作入力検知手段により検知されたスイング操作の加速度を、スイング方向別に予め定められたスイング方向判別加速度条件(例えば、図17の方向判定テーブル321)と照査することで、スイング方向を判定するスイング方向判定手段(例えば、図15のスイング方向判定部211;図22のステップB7)、
前記スイング方向判定手段により判定されたスイング方向に基づいて、前記移動体の移動軌道を可変に制御する移動軌道可変制御手段(例えば、図15の軌道算出部212;図23のステップC1)、
として前記コンピュータを機能させるためのプログラムである。
【0016】
この第5の発明によれば、検知されたスイング操作の加速度をスイング方向別に定められたスイング方向判別加速度条件と照査することでスイング方向が判定され、判定されたスイング方向に基づいて移動体の移動軌道が可変に制御される。これにより、例えばスイング方向に向かうように移動体の移動軌道を決定することで、スイング方向に沿った方向に移動体が移動するといった、感覚的に理解し易いゲーム操作が可能となる。また、スイング操作といった簡単な操作で、移動体の移動開始を指示するとともに移動軌道をも指示するといった、多様性の有るゲーム操作が実現される。
【0017】
第6の発明は、第5の発明のプログラムであって、
前記ゲームコントローラは、片手で把持可能な棒状の形態であって、操作ボタンが配された操作面を有し、
前記加速度検出器は少なくとも3軸の加速度を検出し、
前記スイング方向判定手段が、前記操作面を所定方向に向けて前記ゲームコントローラを把持してスイング操作した際の左右それぞれのスイング方向を判定するように前記コンピュータを機能させるためのプログラムである。
【0018】
この第6の発明によれば、片手で把持可能な棒状の形態のゲームコントローラを、その操作面を所定方向に向けて把持してスイング操作した際の左右それぞれのスイング方向が判定される。また、操作面には操作ボタンが配されている。このため、プレーヤは、ゲームコントローラを、例えば操作面の操作ボタンを操作可能に把持した状態でスイング操作するといったように、スイング操作のための特別な持ち方をする必要がない。
【0019】
第7の発明は、第6の発明のプログラムであって、
前記スイング方向判定手段が、更に、前記操作面を上方に向けて前記ゲームコントローラを把持してスイング操作した際の上方から振り下ろすスイング方向を判定するように前記コンピュータを機能させるためのプログラムである。
【0020】
この第7の発明によれば、更に、操作面を上方に向けてゲームコントローラを把持してスイング操作した際の上方から振り下ろすスイング方向が判定される。
【0021】
第8の発明は、第5〜第7の何れかの発明のプログラムであって、
前記移動軌道可変制御手段が、前記スイング方向判定手段により判定されたスイング方向に応じた方向に屈曲する移動軌道となるように、前記移動体の移動軌道を可変に制御する、
ように前記コンピュータを機能させるためのプログラムである。
【0022】
この第8の発明によれば、判定されたスイング方向に応じた方向に屈曲する移動軌道となるように、移動体の移動軌道が可変に制御される。これにより、スイング方向によって移動体の移動軌道を指示するといった、感覚的に理解し易いゲーム操作が可能となる。
【0023】
第9の発明は、第8の発明のプログラムであって、
前記移動軌道可変制御手段が、前記スイング操作入力検知手段により検知されたスイング操作の加速度の大きさに応じて、前記屈曲させる大きさを可変して移動軌道を定める、
ように前記コンピュータを機能させるためのプログラムである。
【0024】
この第9の発明によれば、検知されたスイング操作の加速度の大きさに応じて、屈曲させる大きさを可変して移動軌道が定められる。これにより、例えば加速度が大きくなるに従って屈曲を大きくすることで、スイング操作を素早く行うほど移動体が大きく屈曲して移動するといった、感覚的に理解し易いゲーム操作が実現される。
【0025】
第10の発明は、第8又は第9の発明のプログラムであって、
前記移動軌道可変制御手段が、
所定数の軌道制御点を前記ゲーム空間中に設定する制御点設定手段と、
前記設定された軌道制御点間を結ぶ曲線を補間演算することにより移動軌道を求める移動軌道算出手段(例えば、図15の軌道算出部212;図23のステップC9)と、
を有するように前記コンピュータを機能させるためのプログラムである。
【0026】
この第10の発明によれば、所定数の軌道制御点がゲーム空間中に設定され、設定された軌道制御点間を結ぶ曲線を補間演算することにより移動軌道が求められる。従って、移動軌道の算出を比較的簡単な演算で実現することができる。
【0027】
第11の発明は、第10の発明のプログラムであって、
前記制御点設定手段が、前記スイング操作入力検知手段により検知されたスイング操作の加速度の大きさに応じて、所与の位置と前記各軌道制御点それぞれを結ぶ直線上を遠近させるように前記各軌道制御点の位置を可変に位置決めする、
ように前記コンピュータを機能させるためのプログラムである。
【0028】
この第11の発明によれば、検知されたスイング操作の加速度の大きさに応じて、所与の位置と各軌道制御点それぞれを結ぶ直線上を遠近させるように各軌道制御点の位置が可変に位置決めされる。これにより、例えば加速度が大きくなるに従って所与の位置からの距離が遠い位置に軌道制御点を決めることで、スイング操作を素早く行うほど、所与の位置から見て移動体が遠くを移動するといった、感覚的に理解し易いゲーム操作が可能となる。また、移動軌道の可変を比較的簡単な演算で実現することができるとともに、所与の位置をどこに定めるかによって、様々な移動軌道を設定することが可能となる。
【0029】
第12の発明は、第11の発明のプログラムであって、
前記制御点設定手段が、プレーヤの位置可変指示操作に応じて前記軌道制御点の位置を可変に設定するプレーヤ指示可変手段を有するように前記コンピュータを機能させるためのプログラムである。
【0030】
この第12の発明によれば、プレーヤの位置可変指示操作に応じて、軌道制御点の位置が可変に設定される。これにより、移動体を、プレーヤが所望する位置を通るように移動制御するといったことが可能となる。
【0031】
第13の発明は、第10〜第12の何れかの発明のプログラムであって、
前記制御点設定手段により設定された前記軌道制御点の周囲所定範囲内(例えば、図13の衝突判定領域JA内)に前記移動体が衝突可能な衝突可能オブジェクトが位置することを検知する衝突可能オブジェクト検知手段(例えば、図15の軌道算出部212;図23のステップC5)、
前記衝突可能オブジェクト検知手段により前記衝突可能オブジェクトが検知された軌道制御点の位置を、該衝突可能オブジェクトの位置に補正する位置補正手段(例えば、図15の軌道算出部212;図23のステップC7)、
として前記コンピュータを機能させ、
前記移動軌道算出手段が、前記位置補正手段により位置補正がなされた軌道制御点を通る移動軌道を求めるように前記コンピュータを機能させるためのプログラムである。
【0032】
この第13の発明によれば、設定された軌道制御点の周囲所定範囲内に衝突可能オブジェクトが位置することが検知されると、その検知された軌道制御点の位置が該衝突可能オブジェクトの位置に補正され、位置補正がなされた軌道制御点を通る移動軌道が求められる。この結果、軌道制御点の周囲所定範囲内に衝突可能オブジェクトが位置する場合には、移動体は必ずこの衝突可能オブジェクトに衝突する。これにより、当初設定された軌道制御点により算出される移動軌道近傍に位置する衝突可能オブジェクトに対しても移動体が衝突するようになるため、スイング操作といった大雑把な操作であっても、高確度で移動体を衝突可能オブジェクトの衝突させることができるようになる。また、周囲所定範囲の大きさを可変することで、難易度を調整することができる。
【0033】
第14の発明は、第1〜第13の何れかの発明のプログラムであって、
複数種類の前記移動体のうち、前記発動制御手段により移動開始された移動体の種類に応じて、当該移動体の移動速度及び/又は到達距離を可変に制御する種類可変制御手段として前記コンピュータを機能させるためのプログラムである。
【0034】
この第14の発明によれば、移動開始された移動体の種類に応じて、当該移動体の移動速度や到達距離が可変に制御される。即ち、移動体の種類によって移動の様子が変わるため、より興趣性のあるゲームが実現される。
【0035】
第15の発明は、第1〜第14の何れかの発明のプログラムであって、
前記移動体がプレーヤキャラクタに所定の接続体で接続されてなり、
前記移動体と所与の衝突可能オブジェクトとの衝突を検出する移動体衝突検出手段(例えば、図15の衝突判定部214;図21のステップA21)、
前記移動体衝突検出手段による検出に応じて前記衝突可能オブジェクトに設定されている所定のパラメータの値を変更するパラメータ値変更手段(例えば、図15の衝突判定部214;図21のステップA23)、
として前記コンピュータを機能させるためのプログラムである。
【0036】
この第15の発明によれば、移動体がプレーヤキャラクタに接続体で接続され、移動体と衝突可能オブジェクトとの衝突判定に応じてこの衝突可能オブジェクトの所定のパラメータの値が変更される。つまり、紐状オブジェクトの長さの制限があるため、移動体とプレーヤキャラクタとの間の距離が制限され、これにより、興趣性のある移動体の移動軌道が実現される。また、例えば衝突可能オブジェクトを敵キャラクタとすることで、この敵キャラクタに移動体を衝突させて攻撃するといったゲームが実現される。
【0037】
第16の発明は、第15の発明のプログラムであって、
前記紐接続体と前記衝突可能オブジェクトとの衝突を検出する接続体衝突検出手段(例えば、図15の衝突判定部214;図21のステップA21)として前記コンピュータを機能させ、
前記パラメータ値変更手段が、前記接続体衝突検出手段による検出に応じて、前記移動体衝突検出手段による検出に対する変更量よりも少ない変更量で前記所定のパラメータの値を変更するように前記コンピュータを機能させる、
ためのプログラムである。
【0038】
この第16の発明によれば、接続体と衝突可能オブジェクトとの衝突の検出に応じて、移動体と衝突可能オブジェクトとの衝突の検出に対する変更量よりも少ない変更量でその衝突可能オブジェクトの所定のパラメータの値が変更される。即ち、移動体が衝突可能オブジェクトに衝突しなくても、この移動体とプレーヤキャラクタとを接続する接続体が衝突すればこの衝突可能オブジェクトのパラメータの値が変更される。つまり、移動体とプレーヤキャラクタとの間に位置する衝突可能オブジェクトに対してもパラメータを変更させるできるため、衝突対象オブジェクトに対する衝突のバリエーションが増え、ゲームの興趣性が向上する。
【0039】
第17の発明は、第1〜第14の何れかの発明のプログラムであって、
前記移動体は、複数のオブジェクトが連結された構成でなり、
前記移動体を構成する各オブジェクトと所与の衝突可能オブジェクトとの衝突を検出する構成オブジェクト衝突検出手段、
前記構成オブジェクト衝突検出手段による検出に応じて前記衝突可能オブジェクトに設定された所定のパラメータの値を変更するパラメータ値変更手段、
として前記コンピュータを機能させるためのプログラムである。
【0040】
この第17の発明によれば、移動体を構成する複数のオブジェクトそれぞれと衝突可能オブジェクトとの衝突の検出に応じて、その衝突可能オブジェクトのパラメータの値が変更される。
【0041】
第18の発明は、第17の発明のプログラムであって、
前記パラメータ値変更手段が、前記移動体を構成するオブジェクトのうち、前記構成オブジェクト衝突検出手段により衝突が検出されたオブジェクトが何れであるかに応じて、前記パラメータの値の変更量を可変するように前記コンピュータを機能させるためのプログラムである。
【0042】
この第18の発明によれば、移動体を構成する複数のオブジェクトのうち、衝突可能オブジェクトとの衝突が検出されたオブジェクトが何れであるかに応じて、その衝突可能オブジェクトのパラメータの値が可変される。即ち、移動体のどの部分が衝突可能オブジェクトに衝突したかに応じて、衝突可能オブジェクトのパラメータの値の変更量が異なるため、ゲームの興趣性が向上する。
【0043】
第19の発明は、第1〜第18の何れかの発明のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体(例えば、図15の記憶部300)である。
【0044】
ここで、情報記憶媒体とは、記憶されている情報をコンピュータが読み取り可能な、例えばハードディスクやMO、CD−ROM、DVD、メモリカード、ICメモリ等の記憶媒体である。従って、この第19の発明によれば、情報記憶媒体に記憶されている情報をコンピュータに読み取らせて演算処理を実行させることで、第1〜第18の何れかの発明と同様の効果を奏することができる。
【発明の効果】
【0045】
本発明によればゲームコントローラに内蔵された加速度検出器により検出された加速度の大きさが、スイング操作の加速度条件を満たしたことが検知された場合、移動体が移動開始される。つまり、例えばゲームコントローラを傾ける操作をしても、加速度条件が満たされなければ移動体の移動が開始されず、この加速度条件を満たすスイング操作がなされたことによって移動体の移動が開始される。これにより、ゲームコントローラを振るスイング操作を行うことで移動体を移動開始させるといった、新たなゲーム操作が実現される。
【発明を実施するための最良の形態】
【0046】
以下、図面を参照して、本発明の好適な実施形態を説明する。
【0047】
[ゲームシステムの外観]
図1は、本実施形態におけるゲームシステム1の外観図である。同図によれば、ゲームシステム1は、本体装置1100と、ビデオモニタ1200と、プレーヤがゲーム操作を入力するためのリモコン型のゲームコントローラ1300とを備えて構成される。ビデオモニタ1200は、ディスプレイ1202及びスピーカ1204を備え、画像信号及び音信号を伝送可能な信号ケーブル1121によって本体装置1100に接続されている。
【0048】
本体装置1100は、光学ディスク1102の読み取り装置1106と、メモリカード1104の読み取り装置1108と、CPUやICメモリ等を搭載した制御ユニット1110とを内蔵している。制御ユニット1110は、CPU、ROMやRAM等のICメモリ、通信回線Nに接続するための通信装置1112、ゲームコントローラ1300の無線通信機1308と近距離の無線通信を行うための近距離無線通信モジュール1114を搭載している。制御ユニット1110に搭載されたCPUは、光学ディスク1102等から読み出したゲーム情報や、近距離無線通信モジュール1114を介して受信したゲームコントローラ1300の操作信号等に基づいて種々の処理を実行し、ゲーム画面の画像信号及びゲーム音の音信号を生成する。そして、生成した画像信号及び音信号をビデオモニタ1200に出力して、ディスプレイ1202にゲーム画面を表示させるとともに、スピーカ1204からゲーム音を出力させる。プレーヤは、ディスプレイ1202に表示されたゲーム画面を見て、スピーカ1204から出力されるゲーム音を聞きながら、ゲームコントローラ1300を操作してゲームを楽しむ。
【0049】
ゲームシステム1がゲーム処理を行うために必要な情報(システムプログラムやゲームプログラム、ゲームデータ等)は、制御ユニット1110に搭載されているICメモリや、光学ディスク1102、メモリカード1104等に格納されている。より具体的には、システムプログラムは制御ユニット1110のICメモリに格納され、ゲームプログラム及びゲームデータは、本体装置1100に着脱自在な情報記憶媒体である光学ディスク1102及びメモリカード1104に格納されている。即ち、プレーヤは、この光学ディスク1102等を交換することで異なるゲームを楽しむことができる。尚、このゲーム情報等は、本体装置1100が具備する通信装置1112を介して通信回線Nに接続し、外部装置から取得することにしても良い。
【0050】
ゲームコントローラ1300は、プレーヤが片手で把持可能な略直方体の棒形状を成している。また、ゲームコントローラ1300は、操作ボタン1302と、十字キー1304が設けられた操作面1310をその表面に有しているとともに、加速度センサ1306と、無線通信機1308とを内蔵している。
【0051】
加速度センサ1306は、ゲームコントローラ1300に生じる加速度αを検出する三軸の加速度センサであり、互いに直交するXc,Yc,Zc軸それぞれの方向の加速度αx,αy,αzを検出する。これらの検出軸は、ゲームコントローラ1300に固定的に設定されている。即ち、Zc軸方向がゲームコントローラ1300の長手方向に一致し、Xc軸方向が短手方向に一致し、Yc軸が操作面1310の垂直方向に一致するように設定されている、
【0052】
無線通信機1308は、本体装置1100の近距離無線通信モジュール1114との近距離無線通信を行って、加速度センサ1306による検出信号や、操作ボタン1302や十字キー1304の操作に応じた操作信号を本体装置1100に送信する。
【0053】
ここで、ゲームコントローラ1300の方向を次のように定義する。即ち、長手方向を前後方向とし、先端部1312側を前、後端部1314側を後ろとする。また、短手方向を左右方向とし、先端部1312に向かって右側を右、左側を左とする。また、操作面1310の垂直方向を上下方向とし、操作面1310側を上、裏面側を下とする。
【0054】
[ゲーム概要]
本実施形態では、プレーヤキャラクタを操作して敵キャラクタと対戦する、いわゆる対戦格闘ゲームが実行される。図2は、ゲームシステム1における本実施形態のゲームプレイの様子を示した図である。同図によれば、ディスプレイ1202には、武器30を持ったプレーヤキャラクタ20と、敵キャラクタ40が登場するゲーム画面が表示される。
【0055】
図3は、プレーヤキャラクタ20が持つ武器30の拡大図である。同図によれば、武器30は、いわゆる「蛇腹剣」であり、剣柄31と、剣身32と、剣身32の剣先に取り付けられた分銅33とから構成される。剣身32は、複数の刃が蛇腹状に繋がれた関節構造を有し、関節に相当する各刃の繋ぎ目それぞれには屈曲角度に制限が設けられており、隣接する刃間の屈曲角度が一定の角度以上を保つように制御される。従って、剣身32はしなりながら移動する。そして、剣柄31が、プレーヤキャラクタ20の右手に握られて固定されている。つまり、移動体である分銅33が、剣柄31及び剣身32から成る接続体によってプレーヤキャラクタ20の右手に接続されているといえる。
【0056】
プレーヤ10は、ディスプレイ1202に対峙し、右手にゲームコントローラ1300を把持する。即ち、図4に示すように、親指で操作ボタン1302や十字キー1304を操作するように親指を操作面1310側にして、先端部1312をディスプレイ1202に向けるように把持する。そして、プレーヤ10は、ゲーム操作として、ゲームコントローラ1300を振るスイング操作をする。すると、このスイング操作に応じてプレーヤキャラクタ20が武器30を振り回す動作をし、武器30が衝突可能オブジェクトである敵キャラクタ40に衝突すると、この敵キャラクタ40の所定のダメージが与えられる。
【0057】
具体的な操作方法を説明する。本実施形態では、プレーヤは、スイング操作として、(A)右スイング、(B)左スイング、(C)振り下ろし、の何れかの操作を行う。
【0058】
図5は、「右スイング操作」を説明するための図である。同図(a)は、右スイング操作を行っているプレーヤ10の正面図である。同図(a)に示すように、右スイング操作は、プレーヤ10が、ゲームコントローラ1300を把持した右手を、体の右方の位置から前方に向かって水平に動かす操作である。このスイング操作の操作方向を「右」とする。
【0059】
このとき、プレーヤ10は、ゲームコントローラ1300を、同図(b)に示す姿勢に保つ。同図(b)は、先端部1312側から見たゲームコントローラ1300の側面図である。同図(b)によれば、右スイング操作では、ゲームコントローラ1300の操作面1310を略鉛直に保ち、操作面1310を前方向に向けて操作する。つまり、操作面1310がスイング操作の操作方向(スイング方向)に向いた状態となる。
【0060】
すると、プレーヤキャラクタ20が、同図(c)に示すように、武器30を振り回す動作をする。同図(c)は、ゲーム空間におけるプレーヤキャラクタ20の動作例である。同図(c)によれば、プレーヤキャラクタ20は、武器30を、スイング方向に一致した方向、即ち右から左前方向に向けて水平に振り回す動作を行う。この振り回し方向を「右」とする。
【0061】
図6は、「左スイング操作」を説明するための図である。同図(a)は、左スイング操作を行っているプレーヤ10の正面図である。同図(a)に示すように、左スイング操作は、プレーヤ10が、ゲームコントローラ1300を把持した右手を、体の左方の位置から前方に向かって水平に動かす操作である。このスイング方向を「左」とする。
【0062】
このとき、プレーヤ10は、ゲームコントローラ1300を、同図(b)に示す姿勢に保つ。同図(b)は、先端部1312側から見たゲームコントローラ1300の側面図である。同図(b)によれば、左スイング操作では、ゲームコントローラ1300の操作面1310を略鉛直に保ち、操作面1310を後方に向けて操作する。つまり、操作面1310がスイング方向と逆の方向に向いた状態となる。
【0063】
すると、プレーヤキャラクタ20は、同図(c)に示すように、武器30を振り回す動作をする。同図(c)は、ゲーム空間におけるプレーヤキャラクタ20の動作例である。同図(c)によれば、プレーヤキャラクタ20は、武器30を、スイング方向に一致した方向、即ち左から右前方向に向けて略水平に振り回す動作を行う。この振り回し方向を「左」とする。
【0064】
図7は、「振り下ろし操作」を説明するための図である。同図(a)は、振り下ろし操作を行っているプレーヤ10の正面図である。同図(a)に示すように、振り下ろし操作は、プレーヤ10が、ゲームコントローラ1300を把持した右手を、体の上方の位置から前方に向かって動かす操作である。このスイング方向を「振り下ろし」とする。
【0065】
このとき、プレーヤ10は、ゲームコントローラ1300を、同図(b)に示す姿勢に保つ。同図(b)は、先端部1312側から見たゲームコントローラ1300の側面図である。同図(b)によれば、振り下ろし操作では、ゲームコントローラ1300の操作面1310を上方に向けて操作する。つまり、操作面1310がスイング方向と逆の方向に向いた状態となる。
【0066】
すると、プレーヤキャラクタ20は、同図(c)に示すように、武器30を振り回す動作をする。同図(c)は、ゲーム空間におけるプレーヤキャラクタ20の動作例である。同図(c)によれば、プレーヤキャラクタ20は、武器30を、スイング方向に一致した方向、即ち上から前下方向に向けて振り回す動作を行う。この振り回し方向を「振り下ろし」とする。
【0067】
[原理]
プレーヤキャラクタ20による武器30の振り回し動作は、次のように制御される。即ち、プレーヤ10によるスイング操作が為されると、為された操作方向に武器30を振り回すように、プレーヤキャラクタ20の右腕が制御される。また、為されたスイング方向に応じて、武器30の分銅33の移動軌道が設定され、設定された移動軌道に沿って移動するように分銅33が制御される。
【0068】
(1)スイング方向の判定
プレーヤによって為されたスイング操作は、ゲームコントローラ1300の加速度センサ1306により検出された加速度αx,αy,αzを基に判定される。尚、加速度センサ1306では、常に重力加速度が検出されているため、加速度αとして、重力Gと、スイング操作によるゲームコントローラ1300の動きによって生じる移動加速度Fとの合成値が検出される。重力Gは、常に鉛直下向きに発生し、その大きさは「1.0G」である。また、移動加速度Fは、スイング方向と逆向きに発生し、その大きさは重力Gより充分大きく「数G〜十数G程度」である。
【0069】
先ず、スイング操作の開始、即ちゲームコントローラ1300の振り始めが検出される。具体的には、加速度αzが所定の閾値(具体的には、重力Gの大きさより大きい値。例えば「1.1G」)を超えた時点で、スイング操作が開始されたと判定される。これは、ゲームコントローラ1300を振る操作をすると、長手方向に大きな遠心力が発生し、この遠心力が、長手方向に一致するZc軸方向の加速度αzとして検出されるからである。
【0070】
スイング操作の開始が判定されると、続いて、加速度センサ1306により検出された加速度αx,αy,αzのサンプリング(取り込み)が、所定時間間隔(例えば、フレーム時間間隔)で所定時間分の回数だけ行われる。次いで、サンプリングされた加速度成分αx,αy,αzそれぞれについて、サンプリング毎の値の平均値である平均加速度αxa,αya,αzaが算出される。そして、この平均加速度αxa,αya,αzaを基に、スイング操作の操作方向が判定される。
【0071】
ここで、各方向へのスイング操作を行った場合に加速度センサ1306により検出される加速度αx,αy,αzについて、簡単に説明する。尚、簡明化のため、Z軸方向の加速度成分αzについては省略して説明する。
【0072】
図8は、「右スイング操作」の場合の、後端部1314側から見たゲームコントローラ1300の側面図と、加速度センサ1306により検出される加速度αx,αyとを示している。右スイング操作では、操作面1310を垂直に保った状態が理想の状態であるが、図17を用いて後述するように、方向判定テーブル321で定められる条件により、操作面1310が鉛直方向に対して傾斜した状態であっても右スイング操作を検出する。
【0073】
同図に示すように、ゲームコントローラ1300の操作面1310が垂直な「理想」の状態では、重力Gの向きがXc軸負方向に一致し、検出される移動加速度Fの向きがYc軸負方向に一致する。つまり、「理想」の状態では、加速度αxは、重力Gの大きさで負方向の「−G」が検出される。しかし、操作面1310が鉛直方向に対して「左に傾斜」した状態では、加速度αxは、移動加速度FのXc成分「−Fx」と、重力GのXc成分「−|Gx|」との和である「−|Fx|−|Gx|」が検出される。また、操作面1310が鉛直方向に対して「右に傾斜」した状態では、加速度αxは、移動加速度FのFc成分「+|Fx|」と、重力GのXc成分「−|Gx|」との和である「|Fx|−|Gx|」が検出される。
【0074】
ここで、移動加速度Fx及び重力Gxの大きさは、操作面1310の傾斜の程度によって異なる。即ち、鉛直方向に対する操作面1310の傾斜角度を「θ」とすると、移動加速度Fxは、Fx=F・sinθ、で与えられ、重力Gxは、Gx=G・cosθ、で与えられる。つまり、移動加速度Fxは、操作面1310の左方への傾斜が大きくなるに従って「0」から徐々に小さくなり、右方への傾斜が大きくなりに従って「0」から徐々に小さくなる。一方、重力加速度Gxは、操作面1310の左右それぞれへの傾斜が大きくなるに従って「−G」から徐々に小さくなる。従って、検出される加速度αxは、「理想」の状態では「−|G|」であり、左への傾斜角度θが大きくなるにつれて徐々に小さくなるとともに、右への傾斜角度θが大きくなるにつれて徐々に大きくなる。つまり、傾斜角度θが小さい、即ち操作面1310がほぼ垂直に保たれているとすれば、加速度αxは、重力Gの大きさで負の「−|G|」に近い値、即ち「−1.0G程度」が検出される。
【0075】
また、「理想」の状態では、加速度αyは、移動加速度Fの大きさ「−|F|」が検出される。しかし、操作面1310が「左に傾斜」した状態では、加速度αyは、移動加速度FのYc成分「−|Fy|」と、重力GのYc成分「+|Gy|」との和である「−|Fy|+|Gy|」が検出される。また、操作面1310が「右に傾斜」した状態では、加速度αyは、移動加速度FのYc成分「−|Yc|」と、重力GのYc成分「−|Gy|」との和である「−|Fy|−|Gy|」が検出される。
【0076】
ここで、移動加速度Fy及び重力Gyの大きさは、操作面1310の傾斜の程度によって異なる。即ち、鉛直方向に対する操作面1310の傾斜角度を「θ」とすると、移動加速度Fyは、Fy=F・cosθ、で与えられ、重力Gyは、Gy=G・sinθ、で与えられる。つまり、移動加速度αyは、操作面1310の左右の傾斜が大きくなるに従って「−|F|」から徐々に大きくなる。一方、重力Gxは、操作面1310の左方への傾斜が大きくなるに従って「0」から徐々に大きくなり、右方への傾斜が大きくなるに従って「0」から徐々に小さくなる。従って、検出される加速度αyは、「理想」の状態では「−|F|」であるが、左右それぞれへの傾斜角度θが大きくなるにつれて徐々に大きくなる。但し、その上昇カーブは左右対称とならない。つまり、傾斜角度θが小さい、即ち操作面1310がほぼ垂直に保たれているとすれば、加速度αyは、移動加速度Fの大きさで負の「−|F|」に近い値、即ち「−数十G〜数G程度」が検出される。
【0077】
図9は、「左スイング操作」を行った場合の、後端部1314側から見たゲームコントローラ1300の側面図と、加速度センサ1306により検出される加速度αx,αyとを示している。左スイング操作では、右スイング操作と同様に、操作面1310を垂直に保った状態が理想であるが、図17の方向判定テーブル321で定められる条件により、操作面1310が鉛直方向に対して傾斜した状態であっても左スイング操作を検出する。
【0078】
同図に示すように、操作面1310が垂直な「理想」の状態では、重力Gの向きがXc軸負方向に一致し、検出される加速度Fの向きがYc正方向に一致する。つまり、「理想」の状態では、加速度αxは、重力Gの大きさで負方向の「−|G|」が検出される。しかし、鉛直方向に対して操作面1310が「左に傾斜」した状態では、加速度αxは、移動加速度FのXc成分「+|Fx|」と、重力GのYc成分「−|Gx|」との和である「|Fx|−|Gx|」が検出される。また、鉛直方向に対して操作面1310が「やや右に傾斜」した状態では、加速度αxは、移動加速度FのXc成分「−|Fx|」と、重力GのXc成分「−|Gx|」との和である「−|Fx|−|Gx|」が検出される。
【0079】
ここで、移動加速度Fx及び重力Gxの大きさは、鉛直方向に対する操作面1310の傾斜角度θによって変化する。即ち、移動加速度Fxは、Fx=F・sinθ、で与えられ、重力Gxは、Gx=G・cosθ、で与えられる。つまり、移動加速度Fxは、操作面1310の左方への傾斜角度θが大きくなるに従って「0」から徐々に大きくなり、右方への傾斜が大きくなるに従って「0」から徐々に小さくなる。一方、重力Gxは、操作面1310の左右方向それぞれへの傾斜が大きくなるに従って「−|G|」から徐々に大きくなる。従って、検出される加速度αxの値は、「理想」の状態では「−|G|」であるが、左への傾斜角度θが大きくなるにつれて徐々に大きくなるとともに、右への傾斜角度θが大きくなるにつれて徐々に小さくなる。つまり、傾斜角度θが小さい、即ち操作面1310がほぼ鉛直に保たれているとすれば、加速度αxは、重力Gの大きさで負の「−|G|」に近い値、即ち「−1.0G程度」が検出される。
【0080】
また、「理想」の状態では、加速度αyは、移動加速度Fの大きさ「F」が検出される。しかし、操作面1310が「左に傾斜」した状態では、加速度αyは、移動加速度FのYc成分「+|Fy|」と、重力GのYc成分「+|Gy|」との和である「Fy+Gy」とが検出される。また、操作面1310が「右に傾斜」した状態では、加速度αyは、移動加速度FのYc成分「Fy」と、重力GのYc成分「−|Gy|」との和である「|Fy|−|Gy|」が検出される。
【0081】
ここで、移動加速度Fy及び重力Gyの大きさは、鉛直方向に対する操作面1310の傾斜角度θによって変化する。即ち、移動加速度Fyは、Fy=F・cosθ、で与えられ、重力Gyは、Gy=G・sinθ、で与えられる。つまり、移動加速度Fyは、操作面1310の左右方向それぞれへの傾斜が大きくなるに従って「F」から徐々に小さくなる。一方、重力Gyは、操作面1310の左方への傾斜が大きくなるに従って「0」から徐々に大きくなり、右方への傾斜が大きくなるに従って「0」から徐々に小さくなる。従って、検出される加速度αyは、「理想」の状態では「|F|」であり、左右方向それぞれへの傾斜角度θが大きくなるにつれて徐々に小さくなる。但し、その下降カーブは左右対称とならない。つまり、傾斜角度θが小さい、即ち操作面1310がほぼ垂直に保たれているとすれば、加速度αyは、移動加速度Fの大きさ「|F|」に近い値、即ち「数G〜十数G程度」が検出される。
【0082】
図10は、「振り下ろし操作」の場合の、後端部1314側から見たゲームコントローラ1300の側面図と、加速度センサ1306により検出される加速度αx,αyとを示している。振り下ろし操作では、操作面1310を上方に向け、ゲームコントローラ1300の左右方向(短手方向)が水平な状態が理想の状態であるが、図17の方向判定テーブル321で定められる条件により、前後方向(長手方向)を軸中心として左右に傾斜した状態であっても振り下ろし操作を検出する。
【0083】
同図に示すように、ゲームコントローラ1300の左右方向が水平な「理想」の状態では、重力Gの向きがYc軸負方向に一致し、検出される移動加速度Fの向きがYc軸正方向に一致する。つまり、「理想」の状態では、加速度αxは「0」が検出される。しかし、ゲームコントローラ1300の左右方向が水平方向に対して「左に傾斜」した状態では、加速度αxは、移動加速度FのXc成分「|Fx|」と、重力GのXc成分「−|Gx|」との和である「|Fx|−|Gx|」が検出される。また、「右に傾斜」した状態では、加速度αxは、移動加速度FのXc成分「−|Fx|」と、重力GのXc成分「|Gx|」との和である「−|Fx|+|Gx|」が検出される。
【0084】
ここで、移動加速度Fx及び重力Gxは、ゲームコントローラ1300の左右方向の傾斜の程度によって異なる。即ち、水平方向に対する左右方向の傾斜角度を「φ」とすると、移動加速度Fxは、Fx=F・sinφ、で与えられ、重力Gxは、Gx=G・sinφ、で与えられる。つまり、移動加速度Fxは、操作面1310の左方への傾斜が大きくなるに従って「0」から徐々に大きくなり、右方への傾斜が大きくなるに従って「0」から徐々に小さくなる。一方、重力Gxは、操作面1310の左方への傾斜が大きくなるに従って「0」から徐々に大きくなるとともに、右方への傾斜が大きくなるに従って「0」から徐々に小さくなる。但し、移動加速度Fの大きさ「F」は、重力Gの大きさ「G」より充分大きい。従って、検出される加速度αxは、「理想」の状態では「0」であるが、左への傾斜角度φが大きくなるにつれて徐々に大きくなり、右への傾斜角度φが大きくなるにつれて徐々に小さくなる。つまり、傾斜角度φが小さい、即ちゲームコントローラ1300の左右方向がほぼ水平に保たれているとすれば、加速度αxは、ほぼ「0」の値が検出される。
【0085】
また、「理想」の状態では、加速度αyは、移動加速度FのYc成分「+|F|」と、重力GのYc成分「−|G|」との和である「|F|−|G|」が検出される。しかし、「左に傾斜」した状態、及び「右に傾斜」した状態では、何れも、加速度αyは、移動加速度FのYc成分「+|Fy|」と、重力GのYc成分「−|Gy|」との和である「|Fy|−|Gy|」が検出される。
【0086】
ここで、移動加速度Fy及び重力Gyは、傾斜角度φによって異なる。即ち、移動加速度Fyは、Fy=F・cosφ、で与えられ、重力Gyは、Gy=G・cosφ、で与えられる。つまり、移動加速度Fxは、操作面1310の左右方向それぞれへの傾斜が大きくなるに従って「F」から徐々に小さくなる。一方、重力Gxは、操作面1310の左右方向それぞれへの傾斜が大きくなるに従って「−|G|」から徐々に大きくなる。従って、検出される加速度αyは、「理想」の状態では「|F|−|G|」であるが、左右への傾斜角度φが大きくなるにつれて徐々に小さくなる。つまり、傾斜角度φが小さい、ゲームコントローラ1300の左右方向がほぼ水平に保たれているとすれば、加速度αyは、「|F|−|G|」に近い値、即ち「十数G〜数G程度」の値が検出される。
【0087】
ところで、プレーヤ10は、スイング操作として振り下ろし操作を行う場合、ゲームコントローラ1300を把持した右手を上方に上げた後、この右手を振り下ろす動作を行う。また、検出された加速度αのサンプリングは、ゲームコントローラ1300の長手方向の加速度αzの値が所定の閾値を超えたと判断された後、開始される。つまり、サンプリングされた加速度αx,αy,αzが、プレーヤが意図する振り下げ操作の前段階である振り上げ操作を行っている期間の値である可能性がある。
【0088】
そこで、図11は、この「振り上げ操作」の場合の、後端部1314から見たゲームコントローラ1300の側面図と、加速度センサ1306により検出される加速度αx,αyとを示している。振り上げ操作では、振り下げ操作と同様に、ゲームコントローラ1300の左右方向が水平に保たれた状態が理想の状態であるが、この左右方向が水平方向に対してやや傾斜した状態であっても、振り上げ操作を検知できるのは図17に示す方向判定テーブル321の通りである。
【0089】
同図に示すように、ゲームコントローラ1300の左右方向が水平な「理想」の状態では、検出される移動加速度F及び重力Gの向きが、ともにYc軸負方向に一致する。つまり、「理想」の状態では、加速度αxは「0」が検出される。しかし、左右方向が水平方向に対して「左に傾斜」した状態では、加速度αxは、移動加速度FのXc成分「−|Fx|」と、重力GのXc成分「−|Gx|」との和である「−|Fx|−|Gx|」が検出される。また、左右方向が水平方向に対して「右に傾斜」した状態では、加速度αxは、移動加速度FのXc成分「+|Fx|」と、重力GのXc成分「+|Gx|」との和である「|Fx|+|Gx|」が検出される。
【0090】
ここで、移動加速度Fx及び重力Gxの大きさは、ゲームコントローラ1300の左右方向の水平方向に対する傾斜角度φによって異なる。即ち、移動加速度Fxは、Fx=F・sinφ、で与えられ、重力Gxは、Gx=G・sinφ、で与えられる。つまり、移動加速度Fx及び重力Gxは、ともに、操作面1310の左方への傾斜が大きくなるに従って「0」から徐々に小さくなり、右方への傾斜が大きくなるに従って「0」から徐々に大きくなる。従って、検出される加速度αxは、「理想」の状態では「0」であるが、左への傾斜角度φが大きくなるにつれて徐々に小さくなるとともに、右への傾斜角度φが大きくなるにつれて徐々に大きくなる。つまり、傾斜角度φが小さい、即ちゲームコントローラ1300の左右方向がほぼ水平に保たれているとすれば、加速度αxは、ほぼ「0」の値が検出される。
【0091】
また、「理想」の状態では、加速度αyは、移動加速度Fの大きさ「−|F|」と重力Gの大きさ「−|G|」との和である「−|F|−|G|」が検出される。しかし、ゲームコントローラ1300の左右方向が「左に傾斜」した状態、及び「右に傾斜」した状態では、何れも、加速度αyは、移動加速度FのYc成分「−|Fy|」と、重力GのYc成分「−|Gy|」との和である「−|Fy|−|Gy|」が検出される。
【0092】
ここで、移動加速度Fy及び重力Gyの大きさは、傾斜角度φによって異なる。即ち、移動加速度Fyは、Fy=F・cosφ、で与えられ、重力Gyは、Gx=G・cosφ、で与えられる。つまり、移動加速度Fyは、操作面1310の左右方向それぞれへの傾斜が大きくなるに従って「F」から徐々に大きくなる。また、重力Gyも、操作面1310の左右方向それぞれへの傾斜が大きくなるに従って「G」から徐々に大きくなる。従って、検出される加速度αyは、「理想」の状態では「−|F|−|G|」であるが、左右への傾斜角度φが大きくなるにつれて徐々に大きくなる。つまり、傾斜角度φが小さい、即ちゲームコントローラ1300の左右方向がほぼ水平に保たれているとすれば、加速度αyは、「−|F|−|G|」に近い値、即ち「−十数G〜−数G程度」の値が検出される。
【0093】
このように、スイング方向の違いに応じて、加速度センサ1306により検出される加速度αx,αyの値の組み合わせが異なる。このため、サンプリングされた加速度αx,αy,αzから算出された平均加速度αxa,αyaの値の組み合わせを基に、プレーヤにより為されたスイング方向が判定される。
【0094】
(2)プレーヤキャラクタ20の武器30の振り回し動作の制御
スイング方向が判定されると、プレーヤキャラクタ20による武器30の振り回し方向が決定される。武器30の振り回し方向は、「右」、「左」及び「振り下ろし」の三種類のうちの何れかとされ、判定されたスイング方向と一致する方向に、振り回し方向が決定される。即ち、スイング方向が「右」ならば、振り回し方向は「右」であり、スイング操作が「左スイング」ならば、振り回し方向は「左」である。また、スイング操作が「振り下ろし」或いは「振り上げ」ならば、振り回し方向は「振り下ろし」である。
【0095】
武器30の振り回し方向が決定されると、次いで、武器30の分銅33の移動軌道が決定される。即ち、振り回し方向が「右」の場合、プレーヤキャラクタ20の右方の位置から前方を通過して左方の位置に至る水平面上の曲線軌道が、移動軌道として設定される。また、振り回し方向が「左」の場合、プレーヤキャラクタ20の左方の位置から前方を通過して右方の位置に至る水平面上の曲線軌道が、移動軌道として設定される。また、振り回し方向が「振り下ろし」の場合、プレーヤキャラクタ20の上方の位置から前下方に至る垂直面上の曲線軌道が、移動軌道として設定される。
【0096】
具体的には、先ず、図12(a)に示すように、振り回し方向に応じた複数の基準制御点Qがゲーム空間に設定される。これらの基準制御点Qは、振り回し方向毎に定められた移動軌道の基準となる基準軌道上に設定され、これらの基準制御点Qを補間演算することで、該基準軌道が算出されるようになっている。同図は、振り回し方向が「右」の場合を示している。この場合、基準軌道TR1として、プレーヤキャラクタ20の右方の位置に定められた始点Q1から、プレーヤキャラクタ20の前方を通過して左方の位置に定められた終点Q8に向かう水平面上の曲線が定められており、この基準軌道TR1に沿って複数の基準制御点Qが設定される。
【0097】
そして、同図(b)に示すように、これらの基準制御点Qを基に軌道制御点Rが設定される。同図によれば、プレーヤキャラクタ20の位置Ppと、各基準制御点Qとを結ぶ直線上であって、位置Ppからの距離rが次式(1)を満たす位置に、軌道制御点Rが設定される。
r=(αm/αp)×s ・・(1)
ここで、「αp」は、予め定められた基準加速度である。「αm」は、サンプリングされた加速度α(=√(αx+αy+αz))の最大値(最大加速度)である。また、「s」は、位置Ppから基準制御点Qまでの距離であり、予め定められている。
【0098】
つまり、プレーヤキャラクタ20の位置Ppを基準として、基準制御点Qの位置を、検出された最大加速度αmと予め定められた基準加速度αpとの比に応じて変化させることで、軌道制御点Rが設定される。即ち、軌道制御点Rは、最大加速度αmが大きいほど、プレーヤキャラクタの位置Ppから離れた位置に設定される。但し、始点R1及び終点R8は固定である。そして、これらの各軌道制御点Rに基づく所定の補間演算(例えば、スプライン補間)を行うことで、始点R1から各軌道制御点Rを通って終点R8に至る移動軌道TR2が設定される。
【0099】
更に、図13(a)に示すように、これらの軌道制御点Rは、敵キャラクタ40との位置関係に基づいて補正される。同図によれば、各軌道制御点Rそれぞれについて、所定の衝突判定領域JA内に敵キャラクタ40が位置するか否かが判定され、敵キャラクタ40が位置する場合、この敵キャラクタ40の位置に軌道制御点Rが変更(補正)される。衝突判定領域JAは、武器30の分銅33を敵キャラクタ40に衝突させることとする領域であり、ここでは、軌道制御点Rを中心とする球体内部の領域として設定される。同図では、軌道制御点R4の衝突判定領域JA内に敵キャラクタ40が位置しており、この敵キャラクタ40の位置Peに軌道制御点R4が変更されている。
【0100】
そして、同図(b)に示すように、変更後の各軌道制御点Rに基づく補間演算を行うことで、始点R1から各軌道制御点Rを通って終点R8に至る移動軌道TR2が算出される。この移動軌道TR2は、点線で示す変更前の各軌道制御点Rに基づく移動軌道TR2´と比較して、変更された軌道制御点R4の近傍でずれている。
【0101】
尚、図12,13では、振り回し方向が「右」の場合を説明したが、他の場合も同様である。即ち、振り回し方向が「左」の場合、プレーヤキャラクタ20の左方の位置を始点とし、プレーヤキャラクタ20の前方を通って右手の位置を終点する水平面上の基準軌道が定められ、この基準軌道上に複数の基準制御点Qが設定される。また、振り回し方向が「振り下げ」の場合、プレーヤキャラクタ20の上方の位置を始点とし、プレーヤキャラクタ20の前方を通って前方近傍位置を終点とする鉛直面上の基準軌道が定められ、この基準軌道上に複数の基準制御点Qが設定される。
【0102】
また、検出された最大加速度αmを基に、分銅33の移動速度Vが決定される。図14は、最大加速度αmと、移動速度Vとの関係の一例を示す図である。同図では、横軸を最大加速度αm、縦軸を移動速度Vとして、最大加速度αmと移動速度Vとの関係のグラフを示している。同図によれば、移動速度Vは、最大加速度αmに比例して増加するように設定されている。尚、最大加速度αmと移動速度Vとの関係は、同図に示すように比例関係でなくとも良い。
【0103】
その後、設定した移動軌道TR2に沿って、設定した移動速度Vで、分銅33が移動制御される。具体的には、単位フレーム時間毎に、移動軌道TR2上に分銅33の位置が決定される。また、この分銅33の位置に応じて、剣身32を構成する隣り合う各刃間の屈曲角度が、所定の角度以上(例えば、120度以上)であり、且つ剣柄31に近いほど大きくなるように決定されることで、剣身32が制御される。
【0104】
[機能構成]
図15は、ゲームシステム1の機能構成を示すブロック図である。同図によれば、ゲームシステム1は、機能的には、操作入力部110と、処理部200と、画像表示部130と、音出力部140と、通信部150と、記憶部300とを備えて構成される。
【0105】
操作入力部110は、プレーヤによる操作入力を受け付け、操作に応じた操作信号を処理部200に出力する。この機能は、例えばボタンスイッチやレバー、ダイヤル、マウス、キーボード、タッチパネル、各種センサ等によって実現される。図1では、ゲームコントローラ1300がこれに該当する。また、操作入力部110は、加速度センサ1306を含み、検出された加速度αx,αy,αzを、処理部200に出力する。
【0106】
処理部200は、ゲームシステム1の全体制御やゲームの進行、画像生成等の各種演算処理を行う。この機能は、例えばCPU(CISC型、RISC型)やDSP等のプロセッサ、ASIC(ゲートアレイ等)等の演算装置やその制御プログラムにより実現される。図1では、制御ユニット1110に実装されたCPUがこれに該当する。また、処理部200は、主にゲームの実行に係る演算処理を行うゲーム演算部210と、ゲーム演算部210の処理によって求められた各種のデータに基づくゲーム画像を生成する画像生成部230と、効果音やBGM等のゲーム音を生成する音生成部240とを含んでいる。
【0107】
ゲーム演算部210は、操作入力部110から入力された操作信号や、記憶部300から読み出したプログラムやデータ等に基づいて種々のゲーム処理を実行する。本実施形態では、ゲーム演算部210は、スイング方向判定部211と、軌道算出部212と、移動制御部213とを含む。
【0108】
スイング方向判定部211は、加速度センサ1306によって検出された加速度αx,αy,αzを基に、為されたスイング操作の操作方向(スイング方向)を判定する。具体的には、加速度センサ1306によって検出された加速度αx,αy,αzのうち、加速度αzが所定の閾値(例えば、「1.1G」)を超えたならば、スイング操作が開始された(スイング操作が為された)と判断して、各加速度αx,αy,αzのサンプリングを開始する。即ち、所定時間間隔(例えば、フレーム時間間隔)で、入力される加速度αx,αy,αzを、所定回数だけ取り込む。そして、サンプリングした加速度αx,αy,αzそれぞれの平均加速度αxa,αya,αzaを算出する。また、サンプリング毎に、サンプリングした各加速度αx,αy、αzを合成した加速度ベクトルの大きさである加速度αを算出し、算出した加速度αのうちから最大の加速度αmを抽出する。
【0109】
サンプリングされた加速度αのデータは、サンプリングデータ325に格納される。図16は、サンプリングデータ325のデータ構成の一例を示す図である。同図によれば、サンプリングデータ325は、サンプリングタイミング325a毎に、検出された加速度352bを対応付けて格納しているとともに、平均加速度352cと、最大加速度352dとを格納している。サンプリングタイミング325aは、所定時間間隔(例えば、フレーム時間間隔)毎のサンプリングのタイミングである。加速度352bは、取り込んだ加速度αx,αy,αzそれぞれの値と、加速度αの値とを格納している。
【0110】
次いで、スイング方向判定部211は、算出した平均加速度αxa,αya,αzaを基に、方向判定テーブル321を参照して、為されたスイング操作の操作方向、及び、プレーヤキャラクタ20の武器30の振り回し方向を判定する。
【0111】
図17は、方向判定テーブル321のデータ構成の一例を示す図である。同図によれば、方向判定テーブル321は、加速度条件321aと、スイング方向321bと、振り回し方向321cとを対応付けて格納している。加速度条件321aは、平均加速度αy,αxの値の条件である。即ち、スイング方向判定部211は、算出した平均加速度αx,αyの値の組み合わせを満足する加速度条件に対応するスイング方向及び振り回し方向を判定する。
【0112】
軌道算出部212は、スイング方向判定部211により判定された振り回し方向に従って、武器30の分銅33の移動軌道及び移動速度Vを算出する。具体的には、基準軌道データ322に従って、判定されたスイング方向に応じた基準制御点Qをゲーム空間に設定する。尚、このとき、プレーヤキャラクタ20の向きに合わせて基準制御点Qを設定するのは勿論である。
【0113】
図18は、基準軌道データ322のデータ構成の一例を示す図である。同図によれば、基準軌道データ322は、各基準制御点322aの位置を、振り回し方向322b毎に対応付けて格納しているとともに、基準加速度322cを格納している。基準制御点322aの位置は、プレーヤキャラクタに設定されたローカル座標系に従った座標値で格納されている。
【0114】
次いで、軌道算出部212は、設定した各基準制御点Qについて、算出された最大加速度αmを基に軌道制御点Rを設定する。即ち、プレーヤキャラクタ20の位置Ppから基準制御点Qに向かう直線上であって、位置Ppからの距離rが式(1)を満たす位置に、軌道制御点Rを設定する。但し、これらの基準制御点Qのうち、始点Q1と終点Qnについては、そのまま軌道制御点Rの始点R1及び終点Rnとする。
【0115】
続いて、軌道算出部212は、設定した各軌道制御点Rについて、付与ダメージテーブル324を参照し、当該軌道制御点Rを中心とする衝突判定領域JA内に敵キャラクタ40が位置するか否かを判定する。敵キャラクタ40が位置する場合、その敵キャラクタ40の位置に該軌道制御点Rを変更する。
【0116】
図19は、付与ダメージテーブル324のデータ構成の一例を示す図である。同図によれば、付与ダメージテーブル324は、武器30の種類324a毎に、衝突判定領域324bと、ダメージ値324cとを対応付けて格納している。衝突判定領域324bは、球形状の領域である衝突判定領域の半径rの値を格納している。ダメージ値324cは、対応する武器30が衝突したと判定された敵キャラクタ40に与えるダメージ値を格納している。
【0117】
そして、軌道算出部212は、設定した各軌道制御点Rに基づく所定の補間演算(例えば、スプライン補間)を行って、始点R1から各軌道制御点R1を通って終点Rnに至る移動軌道TR2を算出する。
【0118】
また、軌道算出部212は、抽出された最大加速度αmを基に、移動速度設定データ323を参照して、武器30の分銅33の移動速度Vを決定する。移動速度設定データ323は、例えば図14に一例を示した、最大加速度αmと移動速度Vとの関係を定めたデータであり、具体的にはグラフを表す関数式や、最大加速度αmと移動速度Vとの値を対応付けたデータテーブルである。
【0119】
算出された移動軌道TR2及び移動速度Vのデータは、移動制御データ326に格納される。図20は、移動制御データ326のデータ構成の一例を示す図である。同図によれば、移動制御データ326は、軌道制御点326a毎に、その位置326bを対応付けて格納しているとともに、算出された移動軌道326cと、移動速度326dを格納している。位置326bは、ワールド座標系に従った座標値で格納されている。
【0120】
移動制御部213は、プレーヤキャラクタ20が持つ武器30を制御する。具体的には、移動制御データ326を参照し、武器30の分銅33を、算出された移動軌道TR2に沿って算出された移動速度Vで移動させる。また、分銅33の移動に伴って、剣身32の隣り合う各刃間の角度を制御して、剣身32を適当にしならせた状態に制御する。具体的には、関節構造の関節に相当する隣り合う各刃間の屈曲角度を、所定角度以上(例えば、120度以上)であるとともに、剣柄31に近いほど大きくなるように決定する。
【0121】
衝突判定部214は、武器30と各敵キャラクタ40との衝突を判定する。具体的には、移動制御部213により移動制御される武器30の剣身32及び分銅33それぞれと、各敵キャラクタ40とが衝突するか否かの判定処理(ヒット判定)を行う。そして、付与ダメージテーブル324を参照し、衝突すると判定した敵キャラクタ40に対して、武器30の衝突した部分に応じたダメージを与える。即ち、敵キャラクタ40が武器30の分銅33と衝突した場合には、付与ダメージテーブル324において該武器30に対応付けられて定められているダメージ値を与え、剣身32と衝突した場合には、上記ダメージ値より小さいダメージ値(例えば、武器30によるダメージ値の0.2倍)を与える。
【0122】
図15において、画像生成部230は、ゲーム演算部210による演算結果に基づき、ゲーム画面を表示するためのゲーム画像を生成し、生成した画像の画像信号を画像表示部130に出力する。画像表示部130は、画像生成部230からの画像信号に基づいて、所定の単位時間間隔、例えば1/60秒毎に1フレームの画面を再描画しながらゲーム画面を表示する。この機能は、例えばCRT、LCD、ELD、PDP、HMD等のハードウェアによって実現される。図1では、ディスプレイ1202がこれに該当する。
【0123】
音生成部240は、ゲーム中に使用される効果音やBGM等のゲーム音を生成し、生成したゲーム音の音信号を音出力部140に出力する。音出力部140は、音生成部240からの音信号に基づいてBGMや効果音等のゲーム音声を出力する。この機能は、例えばスピーカ等によって実現される。図1では、スピーカ1204がこれに該当する。
【0124】
通信部150は、処理部200からの制御信号に従って通信回線に接続し、外部装置とのデータ通信を行う。この機能は、無線通信モジュール、有線用の通信ケーブルのジャックや制御回路などによって実現される。図1では、通信装置1112がこれに該当する。
【0125】
記憶部300は、処理部200にゲームシステム1を統合的に制御させるための諸機能を実現するためのシステムプログラムや、ゲームを実行させるために必要なプログラムやデータ等を記憶するとともに、処理部200の作業領域として用いられ、処理部200が各種プログラムに従って実行した演算結果や操作入力部110から入力される入力データ等を一時的に記憶する。この機能は、例えば各種ICメモリやハードディスク、CD−ROM、DVD、MO、RAM、VRAM等によって実現される。図1では、制御ユニット1110に搭載されたメモリがこれに該当する。本実施形態では、記憶部300は、プログラムとしてゲームプログラム310を記憶するとともに、データとして、方向判定テーブル321と、基準軌道データ322と、移動速度設定データ323と、付与ダメージテーブル324と、サンプリングデータ325と、移動制御データ326と、キャラクタデータ327とを記憶する。キャラクタデータ327は、ゲームに登場するプレーヤキャラクタや敵キャラクタ等の各種キャラクタに関するデータであり、現在の位置座標や能力値、所有アイテム(武器30を含む)、モーションデータ等を格納している。
【0126】
[処理の流れ]
図21は、本実施形態のゲーム処理の流れを説明するためのフローチャートである。この処理は、ゲーム演算部210がゲームプログラム310を実行することで実現される。同図によれば、ゲーム演算部210は、先ず、ゲームステージを設定し、プレーヤキャラクタ20や敵キャラクタ40等の各キャラクタを配置するゲーム空間の設定を行う(ステップA1)。次いで、操作入力部110からの入力指示に従って、プレーヤキャラクタ20が持つ武器30の種類の切り替えを行う(ステップA3)。また、操作入力部110からの入力指示に従って、プレーヤキャラクタ20の移動制御や、敵キャラクタ40を含む他の各キャラクタの制御を行う(ステップA5)。
【0127】
続いて、スイング方向判定部211が、加速度センサ1306から入力されたゲームコントローラ1300の加速度成分αzが、所定の閾値(例えば、「1.1G」)を超えたか否かを判断し、超えたならば(ステップA7:YES)、ゲーム演算部210は、プレーヤキャラクタ20に、所定の武器30の振り上げ動作を開始させる(ステップA9)。また、スイング方向判定部211が、スイング方向判定処理を行って、プレーヤ10により為されたゲームコントローラ1300のスイング方向を判定する(ステップA11)。
【0128】
図22は、スイング方向判定処理の流れを説明するためのフローチャートである。
同図によれば、スイング方向判定部211は、加速度センサ1306から入力される加速度αx,αy,αzを、所定時間間隔(例えば、フレーム時間間隔)で所定回数だけサンプリングする(ステップB1)。次いで、サンプリングした各加速度αx,αy,αzの平均値である平均加速度αxa,αya,αzaを算出する(ステップB3)。また、サンプリング毎に、各加速度αx,αy,αzを合成した加速度ベクトルの大きさである加速度αを算出し、これらの加速度αのうちの最大値である最大加速度αmを抽出する(ステップB5)。そして、算出した平均加速度αxa,αya,αzaを基に、方向判定テーブル321を参照して、為されたスイング方向を判定する(ステップB7)。以上の処理を行うと、スイング方向判定処理を終了する。
【0129】
スイング方向判定処理が終了すると、スイング方向判定部211は、方向判定テーブル321を参照して、判定したスイング方向を基に、プレーヤキャラクタ20の武器30の振り回し方向を決定する(ステップA13)。続いて、軌道算出部212が移動軌道算出処理を行って、武器30の移動軌道TR2及び移動速度Vを算出する(ステップA15)。
【0130】
図23は、移動軌道算出処理の流れを説明するためのフローチャートである。同図によれば、移動軌道算出部212は、基準軌道データ322を参照して、判定された振り回し方向に応じた各基準制御点Qを、ゲーム空間に設定する(ステップC1)。このとき、プレーヤキャラクタ20を基準とした振り回し方向となるように、該プレーヤキャラクタ20の方向(向き)に合わせて各基準制御点Qを設定する。次いで、設定した各基準制御点Qについて、算出された最大加速度αmと、基準加速度αpとの比を基に、軌道制御点Rを設定する(ステップC3)。続いて、付与ダメージテーブル324を参照して、設定した各軌道制御点Rについて、衝突判定領域内に敵キャラクタが位置するか否かを判定し(ステップC5)、位置する場合、その敵キャラクタの位置に該軌道制御点Rを変更する(ステップC7)。その後、これらの各移動制御点Rに基づく補間演算を行なって移動軌道TR2を算出する(ステップC9)。また、移動速度設定データ323を参照して、最大加速度αmを基に、移動速度Vを算出する(ステップC11)。以上の処理を行うと、移動軌道算出処理を終了する。
【0131】
移動軌道算出処理が終了すると、ゲーム演算部210は、プレーヤキャラクタ20に、決定された振り回し方向への武器30の振り回しを開始させる(ステップA17)。また、移動制御部213が、移動制御データ326を参照して、算出された移動軌道TR2に沿って算出された移動速度Vで、武器30の分銅33の移動制御を開始するとともに、剣身32の隣接する各刃間の角度が所定角度以内となるように制御して、剣身32を適当にしならせた状態とする。具体的には、剣身32のうち、始点P1から制御点R1までの硬直部分については、関節構造の関節に相当する隣り合う各刃間の屈曲角度を真っ直ぐとなる180度とし、制御点Rから分銅33側の屈曲部分については、隣り合う各刃間の角度が所定角度以上(例えば、120度以上)となるとともに、剣身32の始点Pに近いほど、屈曲角度が大きくなるように決定する(ステップB29)。以上の処理を行うと、(ステップA19)。
【0132】
次いで、衝突判定部214が、武器30と各敵キャラクタ40との衝突を判定し(ステップA21)、この衝突判定結果に応じて各敵キャラクタ40にダメージを与える(ステップA23)。その後、ゲーム演算部210は、ゲームを終了するか否かを判断し、終了しないならば(ステップA25:NO)、ステップA3に戻り、ゲームを終了するならば(ステップA25:YES)、ゲーム処理を終了する。
【0133】
[作用・効果]
このように、本実施形態によれば、ゲームコントローラ1300を振るというスイング操作によって、プレーヤキャラクタ20が武器30を振り回すといった、新たなゲーム操作が実現される。即ち、ゲームコントローラ1300に内蔵された加速度センサ1306で検出された加速度αの値に基づいて、為されたスイング操作の操作方向(スイング方向)が判定され、このスイング方向に一致するよう、プレーヤキャラクタ20の武器30の振り回し方向が決定される。次いで、決定された武器30の振り回し方向及び加速度センサ1306により検出された最大加速度αmを基に、武器30の分銅33の移動軌道TR2及び移動速度Vが算出される。そして、武器30の、分銅33が、この移動軌道TR2に沿って移動速度Vで移動するように制御される。
【0134】
[変形例]
尚、本発明の適用可能な実施形態は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更可能なのは勿論である。
【0135】
(A)移動軌道TR2
例えば、移動軌道TR2を武器30の種類に応じて可変することにしても良い。具体的には、武器30の種類毎に、基準制御点Qの位置が異なる基準軌道データ322を対応付けて記憶しておく。そして、プレーヤキャラクタ20が持っている武器30の種類に対応する基準軌道データ322に基づく基準制御点Qを設定することで、移動軌道TR2を算出する。
【0136】
(B)軌道制御点R
また、ゲーム空間に設定した軌道制御点Rをプレーヤに知らせるようにしても良い。具体的には、各軌道制御点Rの位置に、目印となる所定の目印体(オブジェクト)を配置する。従って、分銅34は、これらの目印体を通過するように移動することになる。勿論、この目印体は、武器30の剣身32や分銅33といった他のオブジェクトに影響を与えない。
【0137】
また、軌道制御点Rの位置を、プレーヤの指示操作によって可変することにしても良い。具体的には、上述の実施形態では、各軌道制御点Rの位置は、プレーヤキャラクタ20の位置Ppからの距離rが、上述の式(1)で与えられる距離rとなる位置に設定されることにしたが、これを、位置Ppからの距離rが、式(1)で算出される距離rに所定の係数kを乗じた距離r´(=r×k)となる位置に設定されることにする。そして、この係数kを、ゲームコントローラ1300における所定の操作(例えば、操作ボタン1302の押下)に応じて変更する。例えば、操作ボタン1302が押下されていない状態でスイング操作が検知された場合には係数kを「1.0」とし、押下されている状態でスイング操作が検知された場合には係数kを「1.5」とする。
【0138】
(C)スイング操作の判定
また、スイング操作の操作方向を判定するための加速度αの閾値を、プレーヤの指示操作によって可変することにしても良い。具体的には、図17に示した方向判定テーブル321において加速度条件として定められる平均加速度αx,αyの閾値(同図では、αxは「0.9G」、αyは「0.0」)を、ゲームコントローラ1300における所定の操作(例えば、操作ボタン1302の押下)に応じて変更する。例えば、操作ボタン1302が押下されていない状態では、方向判定テーブル321で定められる閾値そのものとし、押下されている状態では、この閾値を増減(例えば、「1.2倍」や「0.8倍」)する。
【0139】
(D)検出された加速度αの補正
また、加速度センサ1306により検出された加速度αx,αy,αzを補正することにしても良い。具体的には、例えばゲームコントローラ1300における所定の操作(例えば、十字キー1304や不図示の他の操作ボタンの押下)がなされた場合、検出された加速度αx,αy,αzそれぞれの値を所定倍(例えば、「1.5倍」や「0.8倍」)することにしても良い。
【0140】
(E)武器
また、上述の実施形態では、武器30を「蛇腹剣」を模したものとしたが、他の武器であっても良い。例えば、紐状体の一端にある程度の大きさの移動体を取り付けた「ヨーヨー」を模した武器としても良い。また、この紐状体をゴム紐やばね等の弾性体としても良い。即ち、武器30は、振り回すことで敵キャラクタ40に衝突させて攻撃する構成であれば、何れでも構わない。また、武器30は、例えば「ブーメラン」を模した武器のように、接続体を有さずに移動体のみで構成され、移動体がプレーヤキャラクタ20に接続されていなくとも良い。
【0141】
また、武器30は、図24に示すように、分銅33を有さず、剣柄31と剣身32とから構成される形状としても良い。この場合、剣身32を構成する蛇腹状に接続された複数の刃34のうち、剣先に相当する刃34aを、分銅33に代わる移動体であるとして上述の実施形態と同様の制御を行う。更に、同図に示す武器30が敵キャラクタ40に衝突した場合、剣身32を構成する複数の刃34のうち、何れが衝突したかに応じて、その敵キャラクタ40に与えるダメージ値を可変することにしても良い。
【0142】
(F)プレーヤの利き手
また、上述の実施形態では、プレーヤは右手でゲームコントローラ1300を把持することとして説明したが、左右どちらの手で把持するかをプレーヤが設定可能としても良い。具体的には、方向判定テーブル321として、図17に一例を示した右手用に加えて、更に左手用も用意しておく。そして、例えばゲームの開始前に、プレーヤが右手及び左手の何れかの手で把持するかを入力設定し、この入力設定された方の方向判定テーブル321を用いて、為されたスイング操作の操作方向を判定する。
【0143】
(G)ゲームコントローラ1300
(G−1)スピーカ
また、ゲームコントローラ1300は、スピーカを内蔵することにしても良い。そして、このスピーカから、加速度センサ1306から検出された加速度αの大きさに応じた音を出力することにしても良い。この場合、例えば加速度αの大きさに応じて、「音」を構成する「音程」、「音量」及び「音質」の3つの音要素のうち、1つ或いは2つの音要素を徐々に変化させた音を出力する。例えば、加速度αの大きさに応じて、音量(音の大きさ)を可変して出力する。
【0144】
(G−2)バイブレータ
また、ゲームコントローラ1300は、バイブレータを内蔵することにしても良い。そして、このバイブレータを、加速度センサ1306から検出された加速度αの大きさに応じた振動パターンで振動させることにしても良い。この場合、例えば加速度αの大きさに応じて振動の回数や間隔を徐々に変化させた振動パターンとする。
【0145】
(H)警告
また、ゲームコントローラ1300を強く振りすぎた場合に、警告を行うことにしても良い。具体的には、加速度センサ1306により検出された加速度αの大きさが、所定の大きさ(閾値)以上の場合に、振りが強すぎる旨のメッセージをディスプレイ1202に表示する。また、内蔵するスピーカから、振りが強すぎる旨をプレーヤに報知するための所定の警告音を出力することにしても良いし、内蔵するバイブレータを、警告用の所定の振動パターンで振動させることにしても良い。
【0146】
(I)ゲームの種類
また、上述の実施形態では、対戦格闘ゲームに適用した場合を説明したが、他のゲームにも適用可能である。他のゲームでは、武器ではなく、プレーヤキャラクタが振り回して使用する種々の器具に本発明を適用する。
【図面の簡単な説明】
【0147】
【図1】ゲームシステムの外観例。
【図2】ゲームシステムにおけるゲームプレイの様子の一例。
【図3】プレーヤキャラクタが持つ武器の拡大図。
【図4】ゲームコントローラの持ち方の説明図。
【図5】右スイング操作の説明図。
【図6】左スイング操作の説明図。
【図7】振り下ろし操作の説明図。
【図8】右スイング操作を行った際に検出される加速度αの値の説明図。
【図9】左スイング操作を行った際に検出される加速度αの値の説明図。
【図10】振り下ろし操作を行った際に検出される加速度αの値の説明図。
【図11】振り上げ操作を行った際に検出される加速度αの値の説明図。
【図12】移動軌道の算出の説明図。
【図13】敵キャラクタの位置に基づく軌道制御点の変更の説明図。
【図14】最大加速度αmと移動速度Vとの関係の一例のグラフ。
【図15】ゲームシステムの機能構成例。
【図16】サンプリングデータのデータ構成例。
【図17】方向判定テーブルのデータ構成例。
【図18】基準軌道データのデータ構成例。
【図19】付与ダメージテーブルのデータ構成例。
【図20】移動制御データのデータ構成例。
【図21】ゲーム処理の流れ図。
【図22】ゲーム処理中に実行されるスイング方向判定処理の流れ図。
【図23】ゲーム処理中に実行される移動軌道算出処理の流れ図。
【図24】武器の変形例。
【符号の説明】
【0148】
1 ゲームシステム
110 操作入力部
1306加速度センサ
200 処理部
210 ゲーム演算部
211 スイング方向判定部
212 軌道算出部
213 移動制御部
214 衝突判定部
300 記憶部
310 ゲームプログラム
321 方向判定テーブル
322 基準軌道データ
323 移動速度設定データ
324 付与ダメージテーブル
325 サンプリングデータ
326 移動制御データ
327 キャラクタデータ
10 プレーヤ
20 プレーヤキャラクタ
30 武器
32 紐
34 本体部
40 敵キャラクタ
Q 基準制御点
R 軌道制御点R
TR2 移動軌道


【特許請求の範囲】
【請求項1】
コンピュータに所定のゲームを実行させるためのプログラムであって、
加速度検出器を内蔵したゲームコントローラの前記加速度検出器により検出された加速度の大きさが、前記ゲームコントローラを振るスイング操作がなされたことを検知するための条件として定められた所与の加速度条件を満たしたことを検知するスイング操作入力検知手段、
ゲーム空間中を移動する移動体を、前記検知に応じて移動開始させる発動制御手段、
前記スイング操作入力検知手段による検知から所定期間の間に前記加速度検出器により検出された加速度の最大値に基づいて、前記移動体の移動速度を可変に制御する移動速度可変制御手段、
として前記コンピュータを機能させるためのプログラム。
【請求項2】
コンピュータに所定のゲームを実行させるためのプログラムであって、
加速度検出器を内蔵したゲームコントローラの前記加速度検出器により検出された加速度の大きさが、前記ゲームコントローラを振るスイング操作がなされたことを検知するための条件として定められた所与の加速度条件を満たしたことを検知するスイング操作入力検知手段、
ゲーム空間中を移動する移動体を、前記検知に応じて移動開始させる発動制御手段、
前記スイング操作入力検知手段による検知から所定期間の間に前記加速度検出器により検出された加速度の最大値に基づいて、前記移動体の到達距離を可変に制御する到達距離可変制御手段、
として前記コンピュータを機能させるためのプログラム。
【請求項3】
前記スイング操作入力検知手段による検知から所定期間の間に前記加速度検出器により検出された加速度の最大値に基づいて、前記移動体の到達距離を可変に制御する到達距離可変制御手段として前記コンピュータを機能させるための請求項1に記載のプログラム。
【請求項4】
前記ゲームコントローラは、片手で把持可能な棒状の形態を有しており、
前記加速度検出器は、少なくとも前記ゲームコントローラの長手方向の加速度を検出し、
前記スイング操作入力検知手段が、前記加速度検出器により検出される前記ゲームコントローラの長手方向の加速度に基づいてスイング操作がなされたことを検知するように前記コンピュータを機能させるための請求項1〜3の何れか一項に記載のプログラム。
【請求項5】
前記スイング操作入力検知手段により検知されたスイング操作の加速度を、スイング方向別に予め定められたスイング方向判別加速度条件と照査することで、スイング方向を判定するスイング方向判定手段、
前記スイング方向判定手段により判定されたスイング方向に基づいて、前記移動体の移動軌道を可変に制御する移動軌道可変制御手段、
として前記コンピュータを機能させるための請求項1〜4の何れか一項に記載のプログラム。
【請求項6】
前記ゲームコントローラは、片手で把持可能な棒状の形態であって、操作ボタンが配された操作面を有し、
前記加速度検出器は少なくとも3軸の加速度を検出し、
前記スイング方向判定手段が、前記操作面を所定方向に向けて前記ゲームコントローラを把持してスイング操作した際の左右それぞれのスイング方向を判定するように前記コンピュータを機能させるための請求項5に記載のプログラム。
【請求項7】
前記スイング方向判定手段が、更に、前記操作面を上方に向けて前記ゲームコントローラを把持してスイング操作した際の上方から振り下ろすスイング方向を判定するように前記コンピュータを機能させるための請求項6に記載のプログラム。
【請求項8】
前記移動軌道可変制御手段が、前記スイング方向判定手段により判定されたスイング方向に応じた方向に屈曲する移動軌道となるように、前記移動体の移動軌道を可変に制御する、
ように前記コンピュータを機能させるための請求項5〜7の何れか一項に記載のプログラム。
【請求項9】
前記移動軌道可変制御手段が、前記スイング操作入力検知手段により検知されたスイング操作の加速度の大きさに応じて、前記屈曲させる大きさを可変して移動軌道を定める、
ように前記コンピュータを機能させるための請求項8に記載のプログラム。
【請求項10】
前記移動軌道可変制御手段が、
所定数の軌道制御点を前記ゲーム空間中に設定する制御点設定手段と、
前記設定された軌道制御点間を結ぶ曲線を補間演算することにより移動軌道を求める移動軌道算出手段と、
を有するように前記コンピュータを機能させるための請求項8又は9に記載のプログラム。
【請求項11】
前記制御点設定手段が、前記スイング操作入力検知手段により検知されたスイング操作の加速度の大きさに応じて、所与の位置と前記各軌道制御点それぞれを結ぶ直線上を遠近させるように前記各軌道制御点の位置を可変に位置決めする、
ように前記コンピュータを機能させるための請求項10に記載のプログラム。
【請求項12】
前記制御点設定手段が、プレーヤの位置可変指示操作に応じて前記軌道制御点の位置を可変に設定するプレーヤ指示可変手段を有するように前記コンピュータを機能させるための請求項11に記載のプログラム。
【請求項13】
前記制御点設定手段により設定された前記軌道制御点の周囲所定範囲内に前記移動体が衝突可能な衝突可能オブジェクトが位置することを検知する衝突可能オブジェクト検知手段、
前記衝突可能オブジェクト検知手段により衝突可能オブジェクトが検知された軌道制御点の位置を、該衝突可能オブジェクトの位置に補正する位置補正手段、
として前記コンピュータを機能させ、
前記移動軌道算出手段が、前記位置補正手段により位置補正がなされた軌道制御点を通る移動軌道を求めるように前記コンピュータを機能させるための請求項10〜12の何れか一項に記載のプログラム。
【請求項14】
複数種類の前記移動体のうち、前記発動制御手段により移動開始された移動体の種類に応じて、当該移動体の移動速度及び/又は到達距離を可変に制御する種類可変制御手段として前記コンピュータを機能させるための請求項1〜13の何れか一項に記載のプログラム。
【請求項15】
前記移動体がプレーヤキャラクタに所定の接続体で接続されてなり、
前記移動体と所与の衝突可能オブジェクトとの衝突を検出する移動体衝突検出手段、
前記移動体衝突検出手段による検出に応じて前記衝突可能オブジェクトに設定されている所定のパラメータの値を変更するパラメータ値変更手段、
として前記コンピュータを機能させるための請求項1〜14の何れか一項に記載のプログラム。
【請求項16】
前記接続体と前記衝突可能オブジェクトとの衝突を検出する接続体衝突検出手段として前記コンピュータを機能させ、
前記パラメータ値変更手段が、前記接続体衝突検出手段による検出に応じて、前記移動体衝突検出手段による検出による変更量よりも少ない変更量で前記所定のパラメータの値を変更するように前記コンピュータを機能させる、
ための請求項15に記載のプログラム。
【請求項17】
前記移動体は、複数のオブジェクトが連結された構成でなり、
前記移動体を構成する各オブジェクトと所与の衝突可能オブジェクトとの衝突を検出する構成オブジェクト衝突検出手段、
前記構成オブジェクト衝突検出手段による検出に応じて前記衝突可能オブジェクトに設定された所定のパラメータの値を変更するパラメータ値変更手段、
として前記コンピュータを機能させるための請求項1〜14の何れか一項に記載のプログラム。
【請求項18】
前記パラメータ値変更手段が、前記移動体を構成するオブジェクトのうち、前記構成オブジェクト衝突検出手段により衝突が検出されたオブジェクトが何れであるかに応じて、前記パラメータの値の変更量を可変するように前記コンピュータを機能させるための請求項17に記載のプログラム。
【請求項19】
請求項1〜18何れか一項に記載のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。
【請求項20】
加速度検出器を内蔵したゲームコントローラと、
前記加速度検出器により検出された加速度の大きさが、前記ゲームコントローラを振るスイング操作がなされたことを検知するための条件として定められた所与の加速度条件を満たしたことを検知するスイング操作入力検知手段と、
ゲーム空間中を移動する移動体を、前記検知に応じて移動開始させる発動制御手段と、
前記スイング操作入力検知手段による検知から所定期間の間に前記加速度検出器により検出された加速度の最大値に基づいて、前記移動体の移動速度を可変に制御する移動速度可変制御手段と、
を備えたゲーム装置。
【請求項21】
加速度検出器を内蔵したゲームコントローラと、
前記加速度検出器により検出された加速度の大きさが、前記ゲームコントローラを振るスイング操作がなされたことを検知するための条件として定められた所与の加速度条件を満たしたことを検知するスイング操作入力検知手段と、
ゲーム空間中を移動する移動体を、前記検知に応じて移動開始させる発動制御手段と、
前記スイング操作入力検知手段による検知から所定期間の間に前記加速度検出器により検出された加速度の最大値に基づいて、前記移動体の到達距離を可変に制御する到達距離可変制御手段と、
を備えたゲーム装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate