(57)【要約】【課題】加速度センサを内蔵したゲームコントローラに関する新たな操作を実現すること。【解決手段】プレーヤ１０が把持したゲームコントローラ１３００を振るスイング操作を行うと、プレーヤキャラクタ２０が武器３０を振り回す。即ち、ゲームコントローラ１３００に内蔵された加速度センサで検出された加速度αの値に基づいて、為されたスイング操作の操作方向（スイング方向）が判定され、この判定されたスイング方向に一致する方向に武器３０を振り回すよう、プレーヤキャラクタ２０の武器３０の振り回しが制御される。【選択図】図５
2008136695.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに所定のゲームを実行させるためのプログラムであって、
加速度検出器を内蔵したゲームコントローラの前記加速度検出器により検出された加速度の大きさが、前記ゲームコントローラを振るスイング操作がなされたことを検知するための条件として定められた所与の加速度条件を満たしたことを検知するスイング操作入力検知手段、
ゲーム空間中を移動する移動体を、前記検知に応じて移動開始させる発動制御手段、
前記スイング操作入力検知手段による検知から所定期間の間に前記加速度検出器により検出された加速度の最大値に基づいて、前記移動体の移動速度を可変に制御する移動速度可変制御手段、
として前記コンピュータを機能させるためのプログラム。
【請求項２】
コンピュータに所定のゲームを実行させるためのプログラムであって、
加速度検出器を内蔵したゲームコントローラの前記加速度検出器により検出された加速度の大きさが、前記ゲームコントローラを振るスイング操作がなされたことを検知するための条件として定められた所与の加速度条件を満たしたことを検知するスイング操作入力検知手段、
ゲーム空間中を移動する移動体を、前記検知に応じて移動開始させる発動制御手段、
前記スイング操作入力検知手段による検知から所定期間の間に前記加速度検出器により検出された加速度の最大値に基づいて、前記移動体の到達距離を可変に制御する到達距離可変制御手段、
として前記コンピュータを機能させるためのプログラム。
【請求項３】
前記スイング操作入力検知手段による検知から所定期間の間に前記加速度検出器により検出された加速度の最大値に基づいて、前記移動体の到達距離を可変に制御する到達距離可変制御手段として前記コンピュータを機能させるための請求項１に記載のプログラム。
【請求項４】
前記ゲームコントローラは、片手で把持可能な棒状の形態を有しており、
前記加速度検出器は、少なくとも前記ゲームコントローラの長手方向の加速度を検出し、
前記スイング操作入力検知手段が、前記加速度検出器により検出される前記ゲームコントローラの長手方向の加速度に基づいてスイング操作がなされたことを検知するように前記コンピュータを機能させるための請求項１〜３の何れか一項に記載のプログラム。
【請求項５】
前記スイング操作入力検知手段により検知されたスイング操作の加速度を、スイング方向別に予め定められたスイング方向判別加速度条件と照査することで、スイング方向を判定するスイング方向判定手段、
前記スイング方向判定手段により判定されたスイング方向に基づいて、前記移動体の移動軌道を可変に制御する移動軌道可変制御手段、
として前記コンピュータを機能させるための請求項１〜４の何れか一項に記載のプログラム。
【請求項６】
前記ゲームコントローラは、片手で把持可能な棒状の形態であって、操作ボタンが配された操作面を有し、
前記加速度検出器は少なくとも３軸の加速度を検出し、
前記スイング方向判定手段が、前記操作面を所定方向に向けて前記ゲームコントローラを把持してスイング操作した際の左右それぞれのスイング方向を判定するように前記コンピュータを機能させるための請求項５に記載のプログラム。
【請求項７】
前記スイング方向判定手段が、更に、前記操作面を上方に向けて前記ゲームコントローラを把持してスイング操作した際の上方から振り下ろすスイング方向を判定するように前記コンピュータを機能させるための請求項６に記載のプログラム。
【請求項８】
前記移動軌道可変制御手段が、前記スイング方向判定手段により判定されたスイング方向に応じた方向に屈曲する移動軌道となるように、前記移動体の移動軌道を可変に制御する、
ように前記コンピュータを機能させるための請求項５〜７の何れか一項に記載のプログラム。
【請求項９】
前記移動軌道可変制御手段が、前記スイング操作入力検知手段により検知されたスイング操作の加速度の大きさに応じて、前記屈曲させる大きさを可変して移動軌道を定める、
ように前記コンピュータを機能させるための請求項８に記載のプログラム。
【請求項１０】
前記移動軌道可変制御手段が、
所定数の軌道制御点を前記ゲーム空間中に設定する制御点設定手段と、
前記設定された軌道制御点間を結ぶ曲線を補間演算することにより移動軌道を求める移動軌道算出手段と、
を有するように前記コンピュータを機能させるための請求項８又は９に記載のプログラム。
【請求項１１】
前記制御点設定手段が、前記スイング操作入力検知手段により検知されたスイング操作の加速度の大きさに応じて、所与の位置と前記各軌道制御点それぞれを結ぶ直線上を遠近させるように前記各軌道制御点の位置を可変に位置決めする、
ように前記コンピュータを機能させるための請求項１０に記載のプログラム。
【請求項１２】
前記制御点設定手段が、プレーヤの位置可変指示操作に応じて前記軌道制御点の位置を可変に設定するプレーヤ指示可変手段を有するように前記コンピュータを機能させるための請求項１１に記載のプログラム。
【請求項１３】
前記制御点設定手段により設定された前記軌道制御点の周囲所定範囲内に前記移動体が衝突可能な衝突可能オブジェクトが位置することを検知する衝突可能オブジェクト検知手段、
前記衝突可能オブジェクト検知手段により衝突可能オブジェクトが検知された軌道制御点の位置を、該衝突可能オブジェクトの位置に補正する位置補正手段、
として前記コンピュータを機能させ、
前記移動軌道算出手段が、前記位置補正手段により位置補正がなされた軌道制御点を通る移動軌道を求めるように前記コンピュータを機能させるための請求項１０〜１２の何れか一項に記載のプログラム。
【請求項１４】
複数種類の前記移動体のうち、前記発動制御手段により移動開始された移動体の種類に応じて、当該移動体の移動速度及び／又は到達距離を可変に制御する種類可変制御手段として前記コンピュータを機能させるための請求項１〜１３の何れか一項に記載のプログラム。
【請求項１５】
前記移動体がプレーヤキャラクタに所定の接続体で接続されてなり、
前記移動体と所与の衝突可能オブジェクトとの衝突を検出する移動体衝突検出手段、
前記移動体衝突検出手段による検出に応じて前記衝突可能オブジェクトに設定されている所定のパラメータの値を変更するパラメータ値変更手段、
として前記コンピュータを機能させるための請求項１〜１４の何れか一項に記載のプログラム。
【請求項１６】
前記接続体と前記衝突可能オブジェクトとの衝突を検出する接続体衝突検出手段として前記コンピュータを機能させ、
前記パラメータ値変更手段が、前記接続体衝突検出手段による検出に応じて、前記移動体衝突検出手段による検出による変更量よりも少ない変更量で前記所定のパラメータの値を変更するように前記コンピュータを機能させる、
ための請求項１５に記載のプログラム。
【請求項１７】
前記移動体は、複数のオブジェクトが連結された構成でなり、
前記移動体を構成する各オブジェクトと所与の衝突可能オブジェクトとの衝突を検出する構成オブジェクト衝突検出手段、
前記構成オブジェクト衝突検出手段による検出に応じて前記衝突可能オブジェクトに設定された所定のパラメータの値を変更するパラメータ値変更手段、
として前記コンピュータを機能させるための請求項１〜１４の何れか一項に記載のプログラム。
【請求項１８】
前記パラメータ値変更手段が、前記移動体を構成するオブジェクトのうち、前記構成オブジェクト衝突検出手段により衝突が検出されたオブジェクトが何れであるかに応じて、前記パラメータの値の変更量を可変するように前記コンピュータを機能させるための請求項１７に記載のプログラム。
【請求項１９】
請求項１〜１８何れか一項に記載のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。
【請求項２０】
加速度検出器を内蔵したゲームコントローラと、
前記加速度検出器により検出された加速度の大きさが、前記ゲームコントローラを振るスイング操作がなされたことを検知するための条件として定められた所与の加速度条件を満たしたことを検知するスイング操作入力検知手段と、
ゲーム空間中を移動する移動体を、前記検知に応じて移動開始させる発動制御手段と、
前記スイング操作入力検知手段による検知から所定期間の間に前記加速度検出器により検出された加速度の最大値に基づいて、前記移動体の移動速度を可変に制御する移動速度可変制御手段と、
を備えたゲーム装置。
【請求項２１】
加速度検出器を内蔵したゲームコントローラと、
前記加速度検出器により検出された加速度の大きさが、前記ゲームコントローラを振るスイング操作がなされたことを検知するための条件として定められた所与の加速度条件を満たしたことを検知するスイング操作入力検知手段と、
ゲーム空間中を移動する移動体を、前記検知に応じて移動開始させる発動制御手段と、
前記スイング操作入力検知手段による検知から所定期間の間に前記加速度検出器により検出された加速度の最大値に基づいて、前記移動体の到達距離を可変に制御する到達距離可変制御手段と、
を備えたゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及びゲーム装置に関する。
【背景技術】
【０００２】
ゲームコントローラに内蔵されている加速度検出器（加速度センサ）からの出力値に応じてゲームを進行制御する技術が知られている。例えば、特許文献１には、ゲームコントローラを傾かせる傾き操作を加速度センサで検出し、その傾き方向及び傾き量に応じて、ゲーム画像やゲームサウンドを変化させる技術が開示されている。
【特許文献１】特開２００３−３２５９７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、加速度センサを内蔵したゲームコントローラに関する技術としては、特許文献１に代表されるように、現実空間においてプレーヤがゲームコントローラをどちらの方向にどれだけ傾けているのかによって、リアルタイムにゲーム空間中の移動体の移動方向を変化させるといった、現実空間のゲームコントローラの現在の姿勢をゲームに反映させる技術が主であった。
【０００４】
本発明は、上記事情に鑑みてなされたものであり、加速度センサを内蔵したゲームコントローラに関する新たな操作を実現することを目的としている。
【課題を解決するための手段】
【０００５】
上記課題を解決するための第１の発明は、
コンピュータに所定のゲームを実行させるためのプログラム（例えば、図１５のゲームプログラム３１０）であって、
加速度検出器（例えば、図１の加速度センサ１３０６）を内蔵したゲームコントローラ（例えば、図１のゲームコントローラ１３００）の前記加速度検出器により検出された加速度の大きさが、前記ゲームコントローラを振るスイング操作がなされたことを検知するための条件として定められた所与の加速度条件を満たしたことを検知するスイング操作入力検知手段（例えば、図１５のスイング方向判定部２１１；図２１のステップＡ１１）、
ゲーム空間中を移動する移動体（例えば、図３の分銅３３）を、前記検知に応じて移動開始させる発動制御手段（例えば、図１５の移動制御部２１３；図２１のステップＡ１９）、
前記スイング操作入力検知手段による検知から所定期間の間に前記加速度検出器により検出された加速度の最大値に基づいて、前記移動体の移動速度を可変に制御する移動速度可変制御手段（例えば、図１５の軌道算出部２１２；図２３のステップＣ１１）、
として前記コンピュータを機能させるためのプログラムである。
【０００６】
また、第２０の発明は、
加速度検出器（図１の加速度センサ１３０６）を内蔵したゲームコントローラ（例えば、図１のゲームコントローラ１３００）と、
前記加速度検出器により検出された加速度の大きさが、前記ゲームコントローラを振るスイング操作がなされたことを検知するための条件として定められた所与の加速度条件を満たしたことを検知するスイング操作入力検知手段（例えば、図１５のスイング方向判定部２１１）と、
ゲーム空間中を移動する移動体（例えば、図３の分銅３３）を、前記検知に応じて移動開始させる発動制御手段（例えば、図１５の移動制御部２１３）と、
前記スイング操作入力検知手段による検知から所定期間の間に前記加速度検出器により検出された加速度の最大値に基づいて、前記移動体の移動速度を可変に制御する移動速度可変制御手段（例えば、図５１の軌道算出部２１２）と、
を備えたゲーム装置（例えば、図１，１５のゲームシステム１）である。
【０００７】
この第１又は第２０の発明によれば、ゲームコントローラに内蔵された加速度検出器により検出された加速度の大きさが、スイング操作の加速度条件を満たしたことが検知された場合、移動体が移動開始される。つまり、例えばゲームコントローラを傾ける操作をしても、加速度条件が満たされなければ移動体の移動が開始されず、この加速度条件を満たすスイング操作がなされたことによって移動体の移動が開始される。これにより、ゲームコントローラを振るスイング操作を行うことで移動体を移動開始させるといった、新たなゲーム操作が実現される。また、スイング操作の検知から所定期間の間に検出された加速度の最大値に基づいて、移動体の移動速度が可変される。これにより、例えば加速度の最大値が大きいほど移動体の移動速度を速くすることで、素早く振るほど移動体の移動速度が速くなるといった、感覚的に理解し易いゲーム操作が可能となる。また、スイング操作といった簡単な操作で、移動体の移動開始を指示するとともに移動速度をも指示するといった、多様性の有るゲーム操作が実現される。
【０００８】
第２の発明は、
コンピュータに所定のゲームを実行させるためのプログラム（例えば、図１５のゲームプログラム３１０）であって、
加速度検出器（例えば、図１，１５の加速度センサ１３０６）を内蔵したゲームコントローラ（例えば、図１のゲームコントローラ１３００）の前記加速度検出器により検出された加速度の大きさが、前記ゲームコントローラを振るスイング操作がなされたことを検知するための条件として定められた所与の加速度条件を満たしたことを検知するスイング操作入力検知手段（例えば、図１５のスイング方向判定部２１１；図２１のステップＡ１１）、
ゲーム空間中を移動する移動体（例えば、図３の分銅３３）を、前記検知に応じて移動開始させる発動制御手段（例えば、図１５の移動制御部２１３；図２１のステップＡ１９）、
前記スイング操作入力検知手段による検知から所定期間の間に前記加速度検出器により検出された加速度の最大値に基づいて、前記移動体の到達距離を可変に制御する到達距離可変制御手段（例えば、図１５の軌道算出部２１２；図２３のステップＣ３）、
として前記コンピュータを機能させるためのプログラムである。
【０００９】
また、第２１の発明は、
加速度検出器を内蔵したゲームコントローラ（例えば、図１のゲームコントローラ１３００）と、
前記加速度検出器により検出された加速度の大きさが、前記ゲームコントローラを振るスイング操作がなされたことを検知するための条件として定められた所与の加速度条件を満たしたことを検知するスイング操作入力検知手段（例えば、図１５のスイング方向判定部２１１）と、
ゲーム空間中を移動する移動体（例えば、図３の分銅３３）を、前記検知に応じて移動開始させる発動制御手段（例えば、図１５の移動制御部２１３）と、
前記スイング操作入力検知手段による検知から所定期間の間に前記加速度検出器により検出された加速度の最大値に基づいて、前記移動体の到達距離を可変に制御する到達距離可変制御手段（例えば、図１５の軌道算出部２１２）と、
を備えたゲーム装置である。
【００１０】
この第２又は第２１の発明によれば、ゲームコントローラに内蔵された加速度検出器により検出された加速度の大きさが、スイング操作の加速度条件を満たしたことが検知された場合、移動体が移動開始される。つまり、例えばゲームコントローラを傾ける操作をしても、加速度条件が満たされなければ移動体の移動が開始されず、この加速度条件を満たすスイング操作がなされたことによって移動体の移動が開始される。これにより、ゲームコントローラを振るスイング操作を行うことで移動体を移動開始させるといった、新たなゲーム操作が実現される。また、スイング操作の検知から所定期間の間に検出された加速度の最大値に基づいて、移動体の到達距離が可変される。これにより、例えば加速度の最大値が大きいほど移動体の到達距離を長く（遠く）することで、素早く振るほど移動体が遠くまで移動するといった、感覚的に理解し易いゲーム操作が可能となる。また、スイング操作といった簡単な操作で、移動体の移動開始を指示するとともに移動速度をも指示するといった、多様性の有るゲーム操作が実現される。
【００１１】
第３の発明は、第１の発明のプログラムであって、
前記スイング操作入力検知手段による検知から所定期間の間に前記加速度検出器により検出された加速度の最大値に基づいて、前記移動体の到達距離を可変に制御する到達距離可変制御手段として前記コンピュータを機能させるためのプログラムである。
【００１２】
この第３の発明によれば、スイング操作の検知から所定期間の間に検出された加速度の最大値に基づいて、移動体の到達距離が可変される。これにより、例えば加速度の最大値が大きいほど移動体の到達距離を長く（遠く）することで、素早く振るほど移動体が遠くまで移動するといった、感覚的に理解し易いゲーム操作が可能となる。また、スイング操作といった簡単な操作で、移動体の移動開始を指示するとともに移動速度をも指示するといった、多様性の有るゲーム操作が実現される。
【００１３】
第４の発明は、第１〜第３の何れかの発明のプログラムであって、
前記ゲームコントローラは、片手で把持可能な棒状の形態を有しており、
前記加速度検出器は、少なくとも前記ゲームコントローラの長手方向の加速度を検出し、
前記スイング操作入力検知手段が、前記加速度検出器により検出される前記ゲームコントローラの長手方向の加速度に基づいてスイング操作がなされたことを検知するように前記コンピュータを機能させるためのプログラムである。
【００１４】
この第４の発明によれば、片手で把持可能な棒状の形態のゲームコントローラの長手方向の加速度が検出され、この検出された加速度に基づいてスイング操作がなされたことが検知される。棒状のゲームコントローラを片手で把持して振るといったスイング操作を行うと、長手方向に遠心力が発生し、加速度として検出される。即ち、スイング操作のし易い形状のゲームコントローラであるとともに、スイング操作を適切に検知することができる。
【００１５】
第５の発明は、第１〜第４の何れかの発明のプログラムであって、
前記スイング操作入力検知手段により検知されたスイング操作の加速度を、スイング方向別に予め定められたスイング方向判別加速度条件（例えば、図１７の方向判定テーブル３２１）と照査することで、スイング方向を判定するスイング方向判定手段（例えば、図１５のスイング方向判定部２１１；図２２のステップＢ７）、
前記スイング方向判定手段により判定されたスイング方向に基づいて、前記移動体の移動軌道を可変に制御する移動軌道可変制御手段（例えば、図１５の軌道算出部２１２；図２３のステップＣ１）、
として前記コンピュータを機能させるためのプログラムである。
【００１６】
この第５の発明によれば、検知されたスイング操作の加速度をスイング方向別に定められたスイング方向判別加速度条件と照査することでスイング方向が判定され、判定されたスイング方向に基づいて移動体の移動軌道が可変に制御される。これにより、例えばスイング方向に向かうように移動体の移動軌道を決定することで、スイング方向に沿った方向に移動体が移動するといった、感覚的に理解し易いゲーム操作が可能となる。また、スイング操作といった簡単な操作で、移動体の移動開始を指示するとともに移動軌道をも指示するといった、多様性の有るゲーム操作が実現される。
【００１７】
第６の発明は、第５の発明のプログラムであって、
前記ゲームコントローラは、片手で把持可能な棒状の形態であって、操作ボタンが配された操作面を有し、
前記加速度検出器は少なくとも３軸の加速度を検出し、
前記スイング方向判定手段が、前記操作面を所定方向に向けて前記ゲームコントローラを把持してスイング操作した際の左右それぞれのスイング方向を判定するように前記コンピュータを機能させるためのプログラムである。
【００１８】
この第６の発明によれば、片手で把持可能な棒状の形態のゲームコントローラを、その操作面を所定方向に向けて把持してスイング操作した際の左右それぞれのスイング方向が判定される。また、操作面には操作ボタンが配されている。このため、プレーヤは、ゲームコントローラを、例えば操作面の操作ボタンを操作可能に把持した状態でスイング操作するといったように、スイング操作のための特別な持ち方をする必要がない。
【００１９】
第７の発明は、第６の発明のプログラムであって、
前記スイング方向判定手段が、更に、前記操作面を上方に向けて前記ゲームコントローラを把持してスイング操作した際の上方から振り下ろすスイング方向を判定するように前記コンピュータを機能させるためのプログラムである。
【００２０】
この第７の発明によれば、更に、操作面を上方に向けてゲームコントローラを把持してスイング操作した際の上方から振り下ろすスイング方向が判定される。
【００２１】
第８の発明は、第５〜第７の何れかの発明のプログラムであって、
前記移動軌道可変制御手段が、前記スイング方向判定手段により判定されたスイング方向に応じた方向に屈曲する移動軌道となるように、前記移動体の移動軌道を可変に制御する、
ように前記コンピュータを機能させるためのプログラムである。
【００２２】
この第８の発明によれば、判定されたスイング方向に応じた方向に屈曲する移動軌道となるように、移動体の移動軌道が可変に制御される。これにより、スイング方向によって移動体の移動軌道を指示するといった、感覚的に理解し易いゲーム操作が可能となる。
【００２３】
第９の発明は、第８の発明のプログラムであって、
前記移動軌道可変制御手段が、前記スイング操作入力検知手段により検知されたスイング操作の加速度の大きさに応じて、前記屈曲させる大きさを可変して移動軌道を定める、
ように前記コンピュータを機能させるためのプログラムである。
【００２４】
この第９の発明によれば、検知されたスイング操作の加速度の大きさに応じて、屈曲させる大きさを可変して移動軌道が定められる。これにより、例えば加速度が大きくなるに従って屈曲を大きくすることで、スイング操作を素早く行うほど移動体が大きく屈曲して移動するといった、感覚的に理解し易いゲーム操作が実現される。
【００２５】
第１０の発明は、第８又は第９の発明のプログラムであって、
前記移動軌道可変制御手段が、
所定数の軌道制御点を前記ゲーム空間中に設定する制御点設定手段と、
前記設定された軌道制御点間を結ぶ曲線を補間演算することにより移動軌道を求める移動軌道算出手段（例えば、図１５の軌道算出部２１２；図２３のステップＣ９）と、
を有するように前記コンピュータを機能させるためのプログラムである。
【００２６】
この第１０の発明によれば、所定数の軌道制御点がゲーム空間中に設定され、設定された軌道制御点間を結ぶ曲線を補間演算することにより移動軌道が求められる。従って、移動軌道の算出を比較的簡単な演算で実現することができる。
【００２７】
第１１の発明は、第１０の発明のプログラムであって、
前記制御点設定手段が、前記スイング操作入力検知手段により検知されたスイング操作の加速度の大きさに応じて、所与の位置と前記各軌道制御点それぞれを結ぶ直線上を遠近させるように前記各軌道制御点の位置を可変に位置決めする、
ように前記コンピュータを機能させるためのプログラムである。
【００２８】
この第１１の発明によれば、検知されたスイング操作の加速度の大きさに応じて、所与の位置と各軌道制御点それぞれを結ぶ直線上を遠近させるように各軌道制御点の位置が可変に位置決めされる。これにより、例えば加速度が大きくなるに従って所与の位置からの距離が遠い位置に軌道制御点を決めることで、スイング操作を素早く行うほど、所与の位置から見て移動体が遠くを移動するといった、感覚的に理解し易いゲーム操作が可能となる。また、移動軌道の可変を比較的簡単な演算で実現することができるとともに、所与の位置をどこに定めるかによって、様々な移動軌道を設定することが可能となる。
【００２９】
第１２の発明は、第１１の発明のプログラムであって、
前記制御点設定手段が、プレーヤの位置可変指示操作に応じて前記軌道制御点の位置を可変に設定するプレーヤ指示可変手段を有するように前記コンピュータを機能させるためのプログラムである。
【００３０】
この第１２の発明によれば、プレーヤの位置可変指示操作に応じて、軌道制御点の位置が可変に設定される。これにより、移動体を、プレーヤが所望する位置を通るように移動制御するといったことが可能となる。
【００３１】
第１３の発明は、第１０〜第１２の何れかの発明のプログラムであって、
前記制御点設定手段により設定された前記軌道制御点の周囲所定範囲内（例えば、図１３の衝突判定領域ＪＡ内）に前記移動体が衝突可能な衝突可能オブジェクトが位置することを検知する衝突可能オブジェクト検知手段（例えば、図１５の軌道算出部２１２；図２３のステップＣ５）、
前記衝突可能オブジェクト検知手段により前記衝突可能オブジェクトが検知された軌道制御点の位置を、該衝突可能オブジェクトの位置に補正する位置補正手段（例えば、図１５の軌道算出部２１２；図２３のステップＣ７）、
として前記コンピュータを機能させ、
前記移動軌道算出手段が、前記位置補正手段により位置補正がなされた軌道制御点を通る移動軌道を求めるように前記コンピュータを機能させるためのプログラムである。
【００３２】
この第１３の発明によれば、設定された軌道制御点の周囲所定範囲内に衝突可能オブジェクトが位置することが検知されると、その検知された軌道制御点の位置が該衝突可能オブジェクトの位置に補正され、位置補正がなされた軌道制御点を通る移動軌道が求められる。この結果、軌道制御点の周囲所定範囲内に衝突可能オブジェクトが位置する場合には、移動体は必ずこの衝突可能オブジェクトに衝突する。これにより、当初設定された軌道制御点により算出される移動軌道近傍に位置する衝突可能オブジェクトに対しても移動体が衝突するようになるため、スイング操作といった大雑把な操作であっても、高確度で移動体を衝突可能オブジェクトの衝突させることができるようになる。また、周囲所定範囲の大きさを可変することで、難易度を調整することができる。
【００３３】
第１４の発明は、第１〜第１３の何れかの発明のプログラムであって、
複数種類の前記移動体のうち、前記発動制御手段により移動開始された移動体の種類に応じて、当該移動体の移動速度及び／又は到達距離を可変に制御する種類可変制御手段として前記コンピュータを機能させるためのプログラムである。
【００３４】
この第１４の発明によれば、移動開始された移動体の種類に応じて、当該移動体の移動速度や到達距離が可変に制御される。即ち、移動体の種類によって移動の様子が変わるため、より興趣性のあるゲームが実現される。
【００３５】
第１５の発明は、第１〜第１４の何れかの発明のプログラムであって、
前記移動体がプレーヤキャラクタに所定の接続体で接続されてなり、
前記移動体と所与の衝突可能オブジェクトとの衝突を検出する移動体衝突検出手段（例えば、図１５の衝突判定部２１４；図２１のステップＡ２１）、
前記移動体衝突検出手段による検出に応じて前記衝突可能オブジェクトに設定されている所定のパラメータの値を変更するパラメータ値変更手段（例えば、図１５の衝突判定部２１４；図２１のステップＡ２３）、
として前記コンピュータを機能させるためのプログラムである。
【００３６】
この第１５の発明によれば、移動体がプレーヤキャラクタに接続体で接続され、移動体と衝突可能オブジェクトとの衝突判定に応じてこの衝突可能オブジェクトの所定のパラメータの値が変更される。つまり、紐状オブジェクトの長さの制限があるため、移動体とプレーヤキャラクタとの間の距離が制限され、これにより、興趣性のある移動体の移動軌道が実現される。また、例えば衝突可能オブジェクトを敵キャラクタとすることで、この敵キャラクタに移動体を衝突させて攻撃するといったゲームが実現される。
【００３７】
第１６の発明は、第１５の発明のプログラムであって、
前記紐接続体と前記衝突可能オブジェクトとの衝突を検出する接続体衝突検出手段（例えば、図１５の衝突判定部２１４；図２１のステップＡ２１）として前記コンピュータを機能させ、
前記パラメータ値変更手段が、前記接続体衝突検出手段による検出に応じて、前記移動体衝突検出手段による検出に対する変更量よりも少ない変更量で前記所定のパラメータの値を変更するように前記コンピュータを機能させる、
ためのプログラムである。
【００３８】
この第１６の発明によれば、接続体と衝突可能オブジェクトとの衝突の検出に応じて、移動体と衝突可能オブジェクトとの衝突の検出に対する変更量よりも少ない変更量でその衝突可能オブジェクトの所定のパラメータの値が変更される。即ち、移動体が衝突可能オブジェクトに衝突しなくても、この移動体とプレーヤキャラクタとを接続する接続体が衝突すればこの衝突可能オブジェクトのパラメータの値が変更される。つまり、移動体とプレーヤキャラクタとの間に位置する衝突可能オブジェクトに対してもパラメータを変更させるできるため、衝突対象オブジェクトに対する衝突のバリエーションが増え、ゲームの興趣性が向上する。
【００３９】
第１７の発明は、第１〜第１４の何れかの発明のプログラムであって、
前記移動体は、複数のオブジェクトが連結された構成でなり、
前記移動体を構成する各オブジェクトと所与の衝突可能オブジェクトとの衝突を検出する構成オブジェクト衝突検出手段、
前記構成オブジェクト衝突検出手段による検出に応じて前記衝突可能オブジェクトに設定された所定のパラメータの値を変更するパラメータ値変更手段、
として前記コンピュータを機能させるためのプログラムである。
【００４０】
この第１７の発明によれば、移動体を構成する複数のオブジェクトそれぞれと衝突可能オブジェクトとの衝突の検出に応じて、その衝突可能オブジェクトのパラメータの値が変更される。
【００４１】
第１８の発明は、第１７の発明のプログラムであって、
前記パラメータ値変更手段が、前記移動体を構成するオブジェクトのうち、前記構成オブジェクト衝突検出手段により衝突が検出されたオブジェクトが何れであるかに応じて、前記パラメータの値の変更量を可変するように前記コンピュータを機能させるためのプログラムである。
【００４２】
この第１８の発明によれば、移動体を構成する複数のオブジェクトのうち、衝突可能オブジェクトとの衝突が検出されたオブジェクトが何れであるかに応じて、その衝突可能オブジェクトのパラメータの値が可変される。即ち、移動体のどの部分が衝突可能オブジェクトに衝突したかに応じて、衝突可能オブジェクトのパラメータの値の変更量が異なるため、ゲームの興趣性が向上する。
【００４３】
第１９の発明は、第１〜第１８の何れかの発明のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体（例えば、図１５の記憶部３００）である。
【００４４】
ここで、情報記憶媒体とは、記憶されている情報をコンピュータが読み取り可能な、例えばハードディスクやＭＯ、ＣＤ−ＲＯＭ、ＤＶＤ、メモリカード、ＩＣメモリ等の記憶媒体である。従って、この第１９の発明によれば、情報記憶媒体に記憶されている情報をコンピュータに読み取らせて演算処理を実行させることで、第１〜第１８の何れかの発明と同様の効果を奏することができる。
【発明の効果】
【００４５】
本発明によればゲームコントローラに内蔵された加速度検出器により検出された加速度の大きさが、スイング操作の加速度条件を満たしたことが検知された場合、移動体が移動開始される。つまり、例えばゲームコントローラを傾ける操作をしても、加速度条件が満たされなければ移動体の移動が開始されず、この加速度条件を満たすスイング操作がなされたことによって移動体の移動が開始される。これにより、ゲームコントローラを振るスイング操作を行うことで移動体を移動開始させるといった、新たなゲーム操作が実現される。
【発明を実施するための最良の形態】
【００４６】
以下、図面を参照して、本発明の好適な実施形態を説明する。
【００４７】
［ゲームシステムの外観］
図１は、本実施形態におけるゲームシステム１の外観図である。同図によれば、ゲームシステム１は、本体装置１１００と、ビデオモニタ１２００と、プレーヤがゲーム操作を入力するためのリモコン型のゲームコントローラ１３００とを備えて構成される。ビデオモニタ１２００は、ディスプレイ１２０２及びスピーカ１２０４を備え、画像信号及び音信号を伝送可能な信号ケーブル１１２１によって本体装置１１００に接続されている。
【００４８】
本体装置１１００は、光学ディスク１１０２の読み取り装置１１０６と、メモリカード１１０４の読み取り装置１１０８と、ＣＰＵやＩＣメモリ等を搭載した制御ユニット１１１０とを内蔵している。制御ユニット１１１０は、ＣＰＵ、ＲＯＭやＲＡＭ等のＩＣメモリ、通信回線Ｎに接続するための通信装置１１１２、ゲームコントローラ１３００の無線通信機１３０８と近距離の無線通信を行うための近距離無線通信モジュール１１１４を搭載している。制御ユニット１１１０に搭載されたＣＰＵは、光学ディスク１１０２等から読み出したゲーム情報や、近距離無線通信モジュール１１１４を介して受信したゲームコントローラ１３００の操作信号等に基づいて種々の処理を実行し、ゲーム画面の画像信号及びゲーム音の音信号を生成する。そして、生成した画像信号及び音信号をビデオモニタ１２００に出力して、ディスプレイ１２０２にゲーム画面を表示させるとともに、スピーカ１２０４からゲーム音を出力させる。プレーヤは、ディスプレイ１２０２に表示されたゲーム画面を見て、スピーカ１２０４から出力されるゲーム音を聞きながら、ゲームコントローラ１３００を操作してゲームを楽しむ。
【００４９】
ゲームシステム１がゲーム処理を行うために必要な情報（システムプログラムやゲームプログラム、ゲームデータ等）は、制御ユニット１１１０に搭載されているＩＣメモリや、光学ディスク１１０２、メモリカード１１０４等に格納されている。より具体的には、システムプログラムは制御ユニット１１１０のＩＣメモリに格納され、ゲームプログラム及びゲームデータは、本体装置１１００に着脱自在な情報記憶媒体である光学ディスク１１０２及びメモリカード１１０４に格納されている。即ち、プレーヤは、この光学ディスク１１０２等を交換することで異なるゲームを楽しむことができる。尚、このゲーム情報等は、本体装置１１００が具備する通信装置１１１２を介して通信回線Ｎに接続し、外部装置から取得することにしても良い。
【００５０】
ゲームコントローラ１３００は、プレーヤが片手で把持可能な略直方体の棒形状を成している。また、ゲームコントローラ１３００は、操作ボタン１３０２と、十字キー１３０４が設けられた操作面１３１０をその表面に有しているとともに、加速度センサ１３０６と、無線通信機１３０８とを内蔵している。
【００５１】
加速度センサ１３０６は、ゲームコントローラ１３００に生じる加速度αを検出する三軸の加速度センサであり、互いに直交するＸｃ，Ｙｃ，Ｚｃ軸それぞれの方向の加速度αｘ，αｙ，αｚを検出する。これらの検出軸は、ゲームコントローラ１３００に固定的に設定されている。即ち、Ｚｃ軸方向がゲームコントローラ１３００の長手方向に一致し、Ｘｃ軸方向が短手方向に一致し、Ｙｃ軸が操作面１３１０の垂直方向に一致するように設定されている、
【００５２】
無線通信機１３０８は、本体装置１１００の近距離無線通信モジュール１１１４との近距離無線通信を行って、加速度センサ１３０６による検出信号や、操作ボタン１３０２や十字キー１３０４の操作に応じた操作信号を本体装置１１００に送信する。
【００５３】
ここで、ゲームコントローラ１３００の方向を次のように定義する。即ち、長手方向を前後方向とし、先端部１３１２側を前、後端部１３１４側を後ろとする。また、短手方向を左右方向とし、先端部１３１２に向かって右側を右、左側を左とする。また、操作面１３１０の垂直方向を上下方向とし、操作面１３１０側を上、裏面側を下とする。
【００５４】
［ゲーム概要］
本実施形態では、プレーヤキャラクタを操作して敵キャラクタと対戦する、いわゆる対戦格闘ゲームが実行される。図２は、ゲームシステム１における本実施形態のゲームプレイの様子を示した図である。同図によれば、ディスプレイ１２０２には、武器３０を持ったプレーヤキャラクタ２０と、敵キャラクタ４０が登場するゲーム画面が表示される。
【００５５】
図３は、プレーヤキャラクタ２０が持つ武器３０の拡大図である。同図によれば、武器３０は、いわゆる「蛇腹剣」であり、剣柄３１と、剣身３２と、剣身３２の剣先に取り付けられた分銅３３とから構成される。剣身３２は、複数の刃が蛇腹状に繋がれた関節構造を有し、関節に相当する各刃の繋ぎ目それぞれには屈曲角度に制限が設けられており、隣接する刃間の屈曲角度が一定の角度以上を保つように制御される。従って、剣身３２はしなりながら移動する。そして、剣柄３１が、プレーヤキャラクタ２０の右手に握られて固定されている。つまり、移動体である分銅３３が、剣柄３１及び剣身３２から成る接続体によってプレーヤキャラクタ２０の右手に接続されているといえる。
【００５６】
プレーヤ１０は、ディスプレイ１２０２に対峙し、右手にゲームコントローラ１３００を把持する。即ち、図４に示すように、親指で操作ボタン１３０２や十字キー１３０４を操作するように親指を操作面１３１０側にして、先端部１３１２をディスプレイ１２０２に向けるように把持する。そして、プレーヤ１０は、ゲーム操作として、ゲームコントローラ１３００を振るスイング操作をする。すると、このスイング操作に応じてプレーヤキャラクタ２０が武器３０を振り回す動作をし、武器３０が衝突可能オブジェクトである敵キャラクタ４０に衝突すると、この敵キャラクタ４０の所定のダメージが与えられる。
【００５７】
具体的な操作方法を説明する。本実施形態では、プレーヤは、スイング操作として、（Ａ）右スイング、（Ｂ）左スイング、（Ｃ）振り下ろし、の何れかの操作を行う。
【００５８】
図５は、「右スイング操作」を説明するための図である。同図（ａ）は、右スイング操作を行っているプレーヤ１０の正面図である。同図（ａ）に示すように、右スイング操作は、プレーヤ１０が、ゲームコントローラ１３００を把持した右手を、体の右方の位置から前方に向かって水平に動かす操作である。このスイング操作の操作方向を「右」とする。
【００５９】
このとき、プレーヤ１０は、ゲームコントローラ１３００を、同図（ｂ）に示す姿勢に保つ。同図（ｂ）は、先端部１３１２側から見たゲームコントローラ１３００の側面図である。同図（ｂ）によれば、右スイング操作では、ゲームコントローラ１３００の操作面１３１０を略鉛直に保ち、操作面１３１０を前方向に向けて操作する。つまり、操作面１３１０がスイング操作の操作方向（スイング方向）に向いた状態となる。
【００６０】
すると、プレーヤキャラクタ２０が、同図（ｃ）に示すように、武器３０を振り回す動作をする。同図（ｃ）は、ゲーム空間におけるプレーヤキャラクタ２０の動作例である。同図（ｃ）によれば、プレーヤキャラクタ２０は、武器３０を、スイング方向に一致した方向、即ち右から左前方向に向けて水平に振り回す動作を行う。この振り回し方向を「右」とする。
【００６１】
図６は、「左スイング操作」を説明するための図である。同図（ａ）は、左スイング操作を行っているプレーヤ１０の正面図である。同図（ａ）に示すように、左スイング操作は、プレーヤ１０が、ゲームコントローラ１３００を把持した右手を、体の左方の位置から前方に向かって水平に動かす操作である。このスイング方向を「左」とする。
【００６２】
このとき、プレーヤ１０は、ゲームコントローラ１３００を、同図（ｂ）に示す姿勢に保つ。同図（ｂ）は、先端部１３１２側から見たゲームコントローラ１３００の側面図である。同図（ｂ）によれば、左スイング操作では、ゲームコントローラ１３００の操作面１３１０を略鉛直に保ち、操作面１３１０を後方に向けて操作する。つまり、操作面１３１０がスイング方向と逆の方向に向いた状態となる。
【００６３】
すると、プレーヤキャラクタ２０は、同図（ｃ）に示すように、武器３０を振り回す動作をする。同図（ｃ）は、ゲーム空間におけるプレーヤキャラクタ２０の動作例である。同図（ｃ）によれば、プレーヤキャラクタ２０は、武器３０を、スイング方向に一致した方向、即ち左から右前方向に向けて略水平に振り回す動作を行う。この振り回し方向を「左」とする。
【００６４】
図７は、「振り下ろし操作」を説明するための図である。同図（ａ）は、振り下ろし操作を行っているプレーヤ１０の正面図である。同図（ａ）に示すように、振り下ろし操作は、プレーヤ１０が、ゲームコントローラ１３００を把持した右手を、体の上方の位置から前方に向かって動かす操作である。このスイング方向を「振り下ろし」とする。
【００６５】
このとき、プレーヤ１０は、ゲームコントローラ１３００を、同図（ｂ）に示す姿勢に保つ。同図（ｂ）は、先端部１３１２側から見たゲームコントローラ１３００の側面図である。同図（ｂ）によれば、振り下ろし操作では、ゲームコントローラ１３００の操作面１３１０を上方に向けて操作する。つまり、操作面１３１０がスイング方向と逆の方向に向いた状態となる。
【００６６】
すると、プレーヤキャラクタ２０は、同図（ｃ）に示すように、武器３０を振り回す動作をする。同図（ｃ）は、ゲーム空間におけるプレーヤキャラクタ２０の動作例である。同図（ｃ）によれば、プレーヤキャラクタ２０は、武器３０を、スイング方向に一致した方向、即ち上から前下方向に向けて振り回す動作を行う。この振り回し方向を「振り下ろし」とする。
【００６７】
［原理］
プレーヤキャラクタ２０による武器３０の振り回し動作は、次のように制御される。即ち、プレーヤ１０によるスイング操作が為されると、為された操作方向に武器３０を振り回すように、プレーヤキャラクタ２０の右腕が制御される。また、為されたスイング方向に応じて、武器３０の分銅３３の移動軌道が設定され、設定された移動軌道に沿って移動するように分銅３３が制御される。
【００６８】
（１）スイング方向の判定
プレーヤによって為されたスイング操作は、ゲームコントローラ１３００の加速度センサ１３０６により検出された加速度αｘ，αｙ，αｚを基に判定される。尚、加速度センサ１３０６では、常に重力加速度が検出されているため、加速度αとして、重力Ｇと、スイング操作によるゲームコントローラ１３００の動きによって生じる移動加速度Ｆとの合成値が検出される。重力Ｇは、常に鉛直下向きに発生し、その大きさは「１．０Ｇ」である。また、移動加速度Ｆは、スイング方向と逆向きに発生し、その大きさは重力Ｇより充分大きく「数Ｇ〜十数Ｇ程度」である。
【００６９】
先ず、スイング操作の開始、即ちゲームコントローラ１３００の振り始めが検出される。具体的には、加速度αｚが所定の閾値（具体的には、重力Ｇの大きさより大きい値。例えば「１．１Ｇ」）を超えた時点で、スイング操作が開始されたと判定される。これは、ゲームコントローラ１３００を振る操作をすると、長手方向に大きな遠心力が発生し、この遠心力が、長手方向に一致するＺｃ軸方向の加速度αｚとして検出されるからである。
【００７０】
スイング操作の開始が判定されると、続いて、加速度センサ１３０６により検出された加速度αｘ，αｙ，αｚのサンプリング（取り込み）が、所定時間間隔（例えば、フレーム時間間隔）で所定時間分の回数だけ行われる。次いで、サンプリングされた加速度成分αｘ，αｙ，αｚそれぞれについて、サンプリング毎の値の平均値である平均加速度αｘａ，αｙａ，αｚａが算出される。そして、この平均加速度αｘａ，αｙａ，αｚａを基に、スイング操作の操作方向が判定される。
【００７１】
ここで、各方向へのスイング操作を行った場合に加速度センサ１３０６により検出される加速度αｘ，αｙ，αｚについて、簡単に説明する。尚、簡明化のため、Ｚ軸方向の加速度成分αｚについては省略して説明する。
【００７２】
図８は、「右スイング操作」の場合の、後端部１３１４側から見たゲームコントローラ１３００の側面図と、加速度センサ１３０６により検出される加速度αｘ，αｙとを示している。右スイング操作では、操作面１３１０を垂直に保った状態が理想の状態であるが、図１７を用いて後述するように、方向判定テーブル３２１で定められる条件により、操作面１３１０が鉛直方向に対して傾斜した状態であっても右スイング操作を検出する。
【００７３】
同図に示すように、ゲームコントローラ１３００の操作面１３１０が垂直な「理想」の状態では、重力Ｇの向きがＸｃ軸負方向に一致し、検出される移動加速度Ｆの向きがＹｃ軸負方向に一致する。つまり、「理想」の状態では、加速度αｘは、重力Ｇの大きさで負方向の「−Ｇ」が検出される。しかし、操作面１３１０が鉛直方向に対して「左に傾斜」した状態では、加速度αｘは、移動加速度ＦのＸｃ成分「−Ｆｘ」と、重力ＧのＸｃ成分「−｜Ｇｘ｜」との和である「−｜Ｆｘ｜−｜Ｇｘ｜」が検出される。また、操作面１３１０が鉛直方向に対して「右に傾斜」した状態では、加速度αｘは、移動加速度ＦのＦｃ成分「＋｜Ｆｘ｜」と、重力ＧのＸｃ成分「−｜Ｇｘ｜」との和である「｜Ｆｘ｜−｜Ｇｘ｜」が検出される。
【００７４】
ここで、移動加速度Ｆｘ及び重力Ｇｘの大きさは、操作面１３１０の傾斜の程度によって異なる。即ち、鉛直方向に対する操作面１３１０の傾斜角度を「θ」とすると、移動加速度Ｆｘは、Ｆｘ＝Ｆ・ｓｉｎθ、で与えられ、重力Ｇｘは、Ｇｘ＝Ｇ・ｃｏｓθ、で与えられる。つまり、移動加速度Ｆｘは、操作面１３１０の左方への傾斜が大きくなるに従って「０」から徐々に小さくなり、右方への傾斜が大きくなりに従って「０」から徐々に小さくなる。一方、重力加速度Ｇｘは、操作面１３１０の左右それぞれへの傾斜が大きくなるに従って「−Ｇ」から徐々に小さくなる。従って、検出される加速度αｘは、「理想」の状態では「−｜Ｇ｜」であり、左への傾斜角度θが大きくなるにつれて徐々に小さくなるとともに、右への傾斜角度θが大きくなるにつれて徐々に大きくなる。つまり、傾斜角度θが小さい、即ち操作面１３１０がほぼ垂直に保たれているとすれば、加速度αｘは、重力Ｇの大きさで負の「−｜Ｇ｜」に近い値、即ち「−１．０Ｇ程度」が検出される。
【００７５】
また、「理想」の状態では、加速度αｙは、移動加速度Ｆの大きさ「−｜Ｆ｜」が検出される。しかし、操作面１３１０が「左に傾斜」した状態では、加速度αｙは、移動加速度ＦのＹｃ成分「−｜Ｆｙ｜」と、重力ＧのＹｃ成分「＋｜Ｇｙ｜」との和である「−｜Ｆｙ｜＋｜Ｇｙ｜」が検出される。また、操作面１３１０が「右に傾斜」した状態では、加速度αｙは、移動加速度ＦのＹｃ成分「−｜Ｙｃ｜」と、重力ＧのＹｃ成分「−｜Ｇｙ｜」との和である「−｜Ｆｙ｜−｜Ｇｙ｜」が検出される。
【００７６】
ここで、移動加速度Ｆｙ及び重力Ｇｙの大きさは、操作面１３１０の傾斜の程度によって異なる。即ち、鉛直方向に対する操作面１３１０の傾斜角度を「θ」とすると、移動加速度Ｆｙは、Ｆｙ＝Ｆ・ｃｏｓθ、で与えられ、重力Ｇｙは、Ｇｙ＝Ｇ・ｓｉｎθ、で与えられる。つまり、移動加速度αｙは、操作面１３１０の左右の傾斜が大きくなるに従って「−｜Ｆ｜」から徐々に大きくなる。一方、重力Ｇｘは、操作面１３１０の左方への傾斜が大きくなるに従って「０」から徐々に大きくなり、右方への傾斜が大きくなるに従って「０」から徐々に小さくなる。従って、検出される加速度αｙは、「理想」の状態では「−｜Ｆ｜」であるが、左右それぞれへの傾斜角度θが大きくなるにつれて徐々に大きくなる。但し、その上昇カーブは左右対称とならない。つまり、傾斜角度θが小さい、即ち操作面１３１０がほぼ垂直に保たれているとすれば、加速度αｙは、移動加速度Ｆの大きさで負の「−｜Ｆ｜」に近い値、即ち「−数十Ｇ〜数Ｇ程度」が検出される。
【００７７】
図９は、「左スイング操作」を行った場合の、後端部１３１４側から見たゲームコントローラ１３００の側面図と、加速度センサ１３０６により検出される加速度αｘ，αｙとを示している。左スイング操作では、右スイング操作と同様に、操作面１３１０を垂直に保った状態が理想であるが、図１７の方向判定テーブル３２１で定められる条件により、操作面１３１０が鉛直方向に対して傾斜した状態であっても左スイング操作を検出する。
【００７８】
同図に示すように、操作面１３１０が垂直な「理想」の状態では、重力Ｇの向きがＸｃ軸負方向に一致し、検出される加速度Ｆの向きがＹｃ正方向に一致する。つまり、「理想」の状態では、加速度αｘは、重力Ｇの大きさで負方向の「−｜Ｇ｜」が検出される。しかし、鉛直方向に対して操作面１３１０が「左に傾斜」した状態では、加速度αｘは、移動加速度ＦのＸｃ成分「＋｜Ｆｘ｜」と、重力ＧのＹｃ成分「−｜Ｇｘ｜」との和である「｜Ｆｘ｜−｜Ｇｘ｜」が検出される。また、鉛直方向に対して操作面１３１０が「やや右に傾斜」した状態では、加速度αｘは、移動加速度ＦのＸｃ成分「−｜Ｆｘ｜」と、重力ＧのＸｃ成分「−｜Ｇｘ｜」との和である「−｜Ｆｘ｜−｜Ｇｘ｜」が検出される。
【００７９】
ここで、移動加速度Ｆｘ及び重力Ｇｘの大きさは、鉛直方向に対する操作面１３１０の傾斜角度θによって変化する。即ち、移動加速度Ｆｘは、Ｆｘ＝Ｆ・ｓｉｎθ、で与えられ、重力Ｇｘは、Ｇｘ＝Ｇ・ｃｏｓθ、で与えられる。つまり、移動加速度Ｆｘは、操作面１３１０の左方への傾斜角度θが大きくなるに従って「０」から徐々に大きくなり、右方への傾斜が大きくなるに従って「０」から徐々に小さくなる。一方、重力Ｇｘは、操作面１３１０の左右方向それぞれへの傾斜が大きくなるに従って「−｜Ｇ｜」から徐々に大きくなる。従って、検出される加速度αｘの値は、「理想」の状態では「−｜Ｇ｜」であるが、左への傾斜角度θが大きくなるにつれて徐々に大きくなるとともに、右への傾斜角度θが大きくなるにつれて徐々に小さくなる。つまり、傾斜角度θが小さい、即ち操作面１３１０がほぼ鉛直に保たれているとすれば、加速度αｘは、重力Ｇの大きさで負の「−｜Ｇ｜」に近い値、即ち「−１．０Ｇ程度」が検出される。
【００８０】
また、「理想」の状態では、加速度αｙは、移動加速度Ｆの大きさ「Ｆ」が検出される。しかし、操作面１３１０が「左に傾斜」した状態では、加速度αｙは、移動加速度ＦのＹｃ成分「＋｜Ｆｙ｜」と、重力ＧのＹｃ成分「＋｜Ｇｙ｜」との和である「Ｆｙ＋Ｇｙ」とが検出される。また、操作面１３１０が「右に傾斜」した状態では、加速度αｙは、移動加速度ＦのＹｃ成分「Ｆｙ」と、重力ＧのＹｃ成分「−｜Ｇｙ｜」との和である「｜Ｆｙ｜−｜Ｇｙ｜」が検出される。
【００８１】
ここで、移動加速度Ｆｙ及び重力Ｇｙの大きさは、鉛直方向に対する操作面１３１０の傾斜角度θによって変化する。即ち、移動加速度Ｆｙは、Ｆｙ＝Ｆ・ｃｏｓθ、で与えられ、重力Ｇｙは、Ｇｙ＝Ｇ・ｓｉｎθ、で与えられる。つまり、移動加速度Ｆｙは、操作面１３１０の左右方向それぞれへの傾斜が大きくなるに従って「Ｆ」から徐々に小さくなる。一方、重力Ｇｙは、操作面１３１０の左方への傾斜が大きくなるに従って「０」から徐々に大きくなり、右方への傾斜が大きくなるに従って「０」から徐々に小さくなる。従って、検出される加速度αｙは、「理想」の状態では「｜Ｆ｜」であり、左右方向それぞれへの傾斜角度θが大きくなるにつれて徐々に小さくなる。但し、その下降カーブは左右対称とならない。つまり、傾斜角度θが小さい、即ち操作面１３１０がほぼ垂直に保たれているとすれば、加速度αｙは、移動加速度Ｆの大きさ「｜Ｆ｜」に近い値、即ち「数Ｇ〜十数Ｇ程度」が検出される。
【００８２】
図１０は、「振り下ろし操作」の場合の、後端部１３１４側から見たゲームコントローラ１３００の側面図と、加速度センサ１３０６により検出される加速度αｘ，αｙとを示している。振り下ろし操作では、操作面１３１０を上方に向け、ゲームコントローラ１３００の左右方向（短手方向）が水平な状態が理想の状態であるが、図１７の方向判定テーブル３２１で定められる条件により、前後方向（長手方向）を軸中心として左右に傾斜した状態であっても振り下ろし操作を検出する。
【００８３】
同図に示すように、ゲームコントローラ１３００の左右方向が水平な「理想」の状態では、重力Ｇの向きがＹｃ軸負方向に一致し、検出される移動加速度Ｆの向きがＹｃ軸正方向に一致する。つまり、「理想」の状態では、加速度αｘは「０」が検出される。しかし、ゲームコントローラ１３００の左右方向が水平方向に対して「左に傾斜」した状態では、加速度αｘは、移動加速度ＦのＸｃ成分「｜Ｆｘ｜」と、重力ＧのＸｃ成分「−｜Ｇｘ｜」との和である「｜Ｆｘ｜−｜Ｇｘ｜」が検出される。また、「右に傾斜」した状態では、加速度αｘは、移動加速度ＦのＸｃ成分「−｜Ｆｘ｜」と、重力ＧのＸｃ成分「｜Ｇｘ｜」との和である「−｜Ｆｘ｜＋｜Ｇｘ｜」が検出される。
【００８４】
ここで、移動加速度Ｆｘ及び重力Ｇｘは、ゲームコントローラ１３００の左右方向の傾斜の程度によって異なる。即ち、水平方向に対する左右方向の傾斜角度を「φ」とすると、移動加速度Ｆｘは、Ｆｘ＝Ｆ・ｓｉｎφ、で与えられ、重力Ｇｘは、Ｇｘ＝Ｇ・ｓｉｎφ、で与えられる。つまり、移動加速度Ｆｘは、操作面１３１０の左方への傾斜が大きくなるに従って「０」から徐々に大きくなり、右方への傾斜が大きくなるに従って「０」から徐々に小さくなる。一方、重力Ｇｘは、操作面１３１０の左方への傾斜が大きくなるに従って「０」から徐々に大きくなるとともに、右方への傾斜が大きくなるに従って「０」から徐々に小さくなる。但し、移動加速度Ｆの大きさ「Ｆ」は、重力Ｇの大きさ「Ｇ」より充分大きい。従って、検出される加速度αｘは、「理想」の状態では「０」であるが、左への傾斜角度φが大きくなるにつれて徐々に大きくなり、右への傾斜角度φが大きくなるにつれて徐々に小さくなる。つまり、傾斜角度φが小さい、即ちゲームコントローラ１３００の左右方向がほぼ水平に保たれているとすれば、加速度αｘは、ほぼ「０」の値が検出される。
【００８５】
また、「理想」の状態では、加速度αｙは、移動加速度ＦのＹｃ成分「＋｜Ｆ｜」と、重力ＧのＹｃ成分「−｜Ｇ｜」との和である「｜Ｆ｜−｜Ｇ｜」が検出される。しかし、「左に傾斜」した状態、及び「右に傾斜」した状態では、何れも、加速度αｙは、移動加速度ＦのＹｃ成分「＋｜Ｆｙ｜」と、重力ＧのＹｃ成分「−｜Ｇｙ｜」との和である「｜Ｆｙ｜−｜Ｇｙ｜」が検出される。
【００８６】
ここで、移動加速度Ｆｙ及び重力Ｇｙは、傾斜角度φによって異なる。即ち、移動加速度Ｆｙは、Ｆｙ＝Ｆ・ｃｏｓφ、で与えられ、重力Ｇｙは、Ｇｙ＝Ｇ・ｃｏｓφ、で与えられる。つまり、移動加速度Ｆｘは、操作面１３１０の左右方向それぞれへの傾斜が大きくなるに従って「Ｆ」から徐々に小さくなる。一方、重力Ｇｘは、操作面１３１０の左右方向それぞれへの傾斜が大きくなるに従って「−｜Ｇ｜」から徐々に大きくなる。従って、検出される加速度αｙは、「理想」の状態では「｜Ｆ｜−｜Ｇ｜」であるが、左右への傾斜角度φが大きくなるにつれて徐々に小さくなる。つまり、傾斜角度φが小さい、ゲームコントローラ１３００の左右方向がほぼ水平に保たれているとすれば、加速度αｙは、「｜Ｆ｜−｜Ｇ｜」に近い値、即ち「十数Ｇ〜数Ｇ程度」の値が検出される。
【００８７】
ところで、プレーヤ１０は、スイング操作として振り下ろし操作を行う場合、ゲームコントローラ１３００を把持した右手を上方に上げた後、この右手を振り下ろす動作を行う。また、検出された加速度αのサンプリングは、ゲームコントローラ１３００の長手方向の加速度αｚの値が所定の閾値を超えたと判断された後、開始される。つまり、サンプリングされた加速度αｘ，αｙ，αｚが、プレーヤが意図する振り下げ操作の前段階である振り上げ操作を行っている期間の値である可能性がある。
【００８８】
そこで、図１１は、この「振り上げ操作」の場合の、後端部１３１４から見たゲームコントローラ１３００の側面図と、加速度センサ１３０６により検出される加速度αｘ，αｙとを示している。振り上げ操作では、振り下げ操作と同様に、ゲームコントローラ１３００の左右方向が水平に保たれた状態が理想の状態であるが、この左右方向が水平方向に対してやや傾斜した状態であっても、振り上げ操作を検知できるのは図１７に示す方向判定テーブル３２１の通りである。
【００８９】
同図に示すように、ゲームコントローラ１３００の左右方向が水平な「理想」の状態では、検出される移動加速度Ｆ及び重力Ｇの向きが、ともにＹｃ軸負方向に一致する。つまり、「理想」の状態では、加速度αｘは「０」が検出される。しかし、左右方向が水平方向に対して「左に傾斜」した状態では、加速度αｘは、移動加速度ＦのＸｃ成分「−｜Ｆｘ｜」と、重力ＧのＸｃ成分「−｜Ｇｘ｜」との和である「−｜Ｆｘ｜−｜Ｇｘ｜」が検出される。また、左右方向が水平方向に対して「右に傾斜」した状態では、加速度αｘは、移動加速度ＦのＸｃ成分「＋｜Ｆｘ｜」と、重力ＧのＸｃ成分「＋｜Ｇｘ｜」との和である「｜Ｆｘ｜＋｜Ｇｘ｜」が検出される。
【００９０】
ここで、移動加速度Ｆｘ及び重力Ｇｘの大きさは、ゲームコントローラ１３００の左右方向の水平方向に対する傾斜角度φによって異なる。即ち、移動加速度Ｆｘは、Ｆｘ＝Ｆ・ｓｉｎφ、で与えられ、重力Ｇｘは、Ｇｘ＝Ｇ・ｓｉｎφ、で与えられる。つまり、移動加速度Ｆｘ及び重力Ｇｘは、ともに、操作面１３１０の左方への傾斜が大きくなるに従って「０」から徐々に小さくなり、右方への傾斜が大きくなるに従って「０」から徐々に大きくなる。従って、検出される加速度αｘは、「理想」の状態では「０」であるが、左への傾斜角度φが大きくなるにつれて徐々に小さくなるとともに、右への傾斜角度φが大きくなるにつれて徐々に大きくなる。つまり、傾斜角度φが小さい、即ちゲームコントローラ１３００の左右方向がほぼ水平に保たれているとすれば、加速度αｘは、ほぼ「０」の値が検出される。
【００９１】
また、「理想」の状態では、加速度αｙは、移動加速度Ｆの大きさ「−｜Ｆ｜」と重力Ｇの大きさ「−｜Ｇ｜」との和である「−｜Ｆ｜−｜Ｇ｜」が検出される。しかし、ゲームコントローラ１３００の左右方向が「左に傾斜」した状態、及び「右に傾斜」した状態では、何れも、加速度αｙは、移動加速度ＦのＹｃ成分「−｜Ｆｙ｜」と、重力ＧのＹｃ成分「−｜Ｇｙ｜」との和である「−｜Ｆｙ｜−｜Ｇｙ｜」が検出される。
【００９２】
ここで、移動加速度Ｆｙ及び重力Ｇｙの大きさは、傾斜角度φによって異なる。即ち、移動加速度Ｆｙは、Ｆｙ＝Ｆ・ｃｏｓφ、で与えられ、重力Ｇｙは、Ｇｘ＝Ｇ・ｃｏｓφ、で与えられる。つまり、移動加速度Ｆｙは、操作面１３１０の左右方向それぞれへの傾斜が大きくなるに従って「Ｆ」から徐々に大きくなる。また、重力Ｇｙも、操作面１３１０の左右方向それぞれへの傾斜が大きくなるに従って「Ｇ」から徐々に大きくなる。従って、検出される加速度αｙは、「理想」の状態では「−｜Ｆ｜−｜Ｇ｜」であるが、左右への傾斜角度φが大きくなるにつれて徐々に大きくなる。つまり、傾斜角度φが小さい、即ちゲームコントローラ１３００の左右方向がほぼ水平に保たれているとすれば、加速度αｙは、「−｜Ｆ｜−｜Ｇ｜」に近い値、即ち「−十数Ｇ〜−数Ｇ程度」の値が検出される。
【００９３】
このように、スイング方向の違いに応じて、加速度センサ１３０６により検出される加速度αｘ，αｙの値の組み合わせが異なる。このため、サンプリングされた加速度αｘ，αｙ，αｚから算出された平均加速度αｘａ，αｙａの値の組み合わせを基に、プレーヤにより為されたスイング方向が判定される。
【００９４】
（２）プレーヤキャラクタ２０の武器３０の振り回し動作の制御
スイング方向が判定されると、プレーヤキャラクタ２０による武器３０の振り回し方向が決定される。武器３０の振り回し方向は、「右」、「左」及び「振り下ろし」の三種類のうちの何れかとされ、判定されたスイング方向と一致する方向に、振り回し方向が決定される。即ち、スイング方向が「右」ならば、振り回し方向は「右」であり、スイング操作が「左スイング」ならば、振り回し方向は「左」である。また、スイング操作が「振り下ろし」或いは「振り上げ」ならば、振り回し方向は「振り下ろし」である。
【００９５】
武器３０の振り回し方向が決定されると、次いで、武器３０の分銅３３の移動軌道が決定される。即ち、振り回し方向が「右」の場合、プレーヤキャラクタ２０の右方の位置から前方を通過して左方の位置に至る水平面上の曲線軌道が、移動軌道として設定される。また、振り回し方向が「左」の場合、プレーヤキャラクタ２０の左方の位置から前方を通過して右方の位置に至る水平面上の曲線軌道が、移動軌道として設定される。また、振り回し方向が「振り下ろし」の場合、プレーヤキャラクタ２０の上方の位置から前下方に至る垂直面上の曲線軌道が、移動軌道として設定される。
【００９６】
具体的には、先ず、図１２（ａ）に示すように、振り回し方向に応じた複数の基準制御点Ｑがゲーム空間に設定される。これらの基準制御点Ｑは、振り回し方向毎に定められた移動軌道の基準となる基準軌道上に設定され、これらの基準制御点Ｑを補間演算することで、該基準軌道が算出されるようになっている。同図は、振り回し方向が「右」の場合を示している。この場合、基準軌道ＴＲ１として、プレーヤキャラクタ２０の右方の位置に定められた始点Ｑ１から、プレーヤキャラクタ２０の前方を通過して左方の位置に定められた終点Ｑ８に向かう水平面上の曲線が定められており、この基準軌道ＴＲ１に沿って複数の基準制御点Ｑが設定される。
【００９７】
そして、同図（ｂ）に示すように、これらの基準制御点Ｑを基に軌道制御点Ｒが設定される。同図によれば、プレーヤキャラクタ２０の位置Ｐｐと、各基準制御点Ｑとを結ぶ直線上であって、位置Ｐｐからの距離ｒが次式（１）を満たす位置に、軌道制御点Ｒが設定される。
ｒ＝（αｍ／αｐ）×ｓ    ・・（１）
ここで、「αｐ」は、予め定められた基準加速度である。「αｍ」は、サンプリングされた加速度α（＝√（αｘ２＋αｙ２＋αｚ２））の最大値（最大加速度）である。また、「ｓ」は、位置Ｐｐから基準制御点Ｑまでの距離であり、予め定められている。
【００９８】
つまり、プレーヤキャラクタ２０の位置Ｐｐを基準として、基準制御点Ｑの位置を、検出された最大加速度αｍと予め定められた基準加速度αｐとの比に応じて変化させることで、軌道制御点Ｒが設定される。即ち、軌道制御点Ｒは、最大加速度αｍが大きいほど、プレーヤキャラクタの位置Ｐｐから離れた位置に設定される。但し、始点Ｒ１及び終点Ｒ８は固定である。そして、これらの各軌道制御点Ｒに基づく所定の補間演算（例えば、スプライン補間）を行うことで、始点Ｒ１から各軌道制御点Ｒを通って終点Ｒ８に至る移動軌道ＴＲ２が設定される。
【００９９】
更に、図１３（ａ）に示すように、これらの軌道制御点Ｒは、敵キャラクタ４０との位置関係に基づいて補正される。同図によれば、各軌道制御点Ｒそれぞれについて、所定の衝突判定領域ＪＡ内に敵キャラクタ４０が位置するか否かが判定され、敵キャラクタ４０が位置する場合、この敵キャラクタ４０の位置に軌道制御点Ｒが変更（補正）される。衝突判定領域ＪＡは、武器３０の分銅３３を敵キャラクタ４０に衝突させることとする領域であり、ここでは、軌道制御点Ｒを中心とする球体内部の領域として設定される。同図では、軌道制御点Ｒ４の衝突判定領域ＪＡ内に敵キャラクタ４０が位置しており、この敵キャラクタ４０の位置Ｐｅに軌道制御点Ｒ４が変更されている。
【０１００】
そして、同図（ｂ）に示すように、変更後の各軌道制御点Ｒに基づく補間演算を行うことで、始点Ｒ１から各軌道制御点Ｒを通って終点Ｒ８に至る移動軌道ＴＲ２が算出される。この移動軌道ＴＲ２は、点線で示す変更前の各軌道制御点Ｒに基づく移動軌道ＴＲ２´と比較して、変更された軌道制御点Ｒ４の近傍でずれている。
【０１０１】
尚、図１２，１３では、振り回し方向が「右」の場合を説明したが、他の場合も同様である。即ち、振り回し方向が「左」の場合、プレーヤキャラクタ２０の左方の位置を始点とし、プレーヤキャラクタ２０の前方を通って右手の位置を終点する水平面上の基準軌道が定められ、この基準軌道上に複数の基準制御点Ｑが設定される。また、振り回し方向が「振り下げ」の場合、プレーヤキャラクタ２０の上方の位置を始点とし、プレーヤキャラクタ２０の前方を通って前方近傍位置を終点とする鉛直面上の基準軌道が定められ、この基準軌道上に複数の基準制御点Ｑが設定される。
【０１０２】
また、検出された最大加速度αｍを基に、分銅３３の移動速度Ｖが決定される。図１４は、最大加速度αｍと、移動速度Ｖとの関係の一例を示す図である。同図では、横軸を最大加速度αｍ、縦軸を移動速度Ｖとして、最大加速度αｍと移動速度Ｖとの関係のグラフを示している。同図によれば、移動速度Ｖは、最大加速度αｍに比例して増加するように設定されている。尚、最大加速度αｍと移動速度Ｖとの関係は、同図に示すように比例関係でなくとも良い。
【０１０３】
その後、設定した移動軌道ＴＲ２に沿って、設定した移動速度Ｖで、分銅３３が移動制御される。具体的には、単位フレーム時間毎に、移動軌道ＴＲ２上に分銅３３の位置が決定される。また、この分銅３３の位置に応じて、剣身３２を構成する隣り合う各刃間の屈曲角度が、所定の角度以上（例えば、１２０度以上）であり、且つ剣柄３１に近いほど大きくなるように決定されることで、剣身３２が制御される。
【０１０４】
［機能構成］
図１５は、ゲームシステム１の機能構成を示すブロック図である。同図によれば、ゲームシステム１は、機能的には、操作入力部１１０と、処理部２００と、画像表示部１３０と、音出力部１４０と、通信部１５０と、記憶部３００とを備えて構成される。
【０１０５】
操作入力部１１０は、プレーヤによる操作入力を受け付け、操作に応じた操作信号を処理部２００に出力する。この機能は、例えばボタンスイッチやレバー、ダイヤル、マウス、キーボード、タッチパネル、各種センサ等によって実現される。図１では、ゲームコントローラ１３００がこれに該当する。また、操作入力部１１０は、加速度センサ１３０６を含み、検出された加速度αｘ，αｙ，αｚを、処理部２００に出力する。
【０１０６】
処理部２００は、ゲームシステム１の全体制御やゲームの進行、画像生成等の各種演算処理を行う。この機能は、例えばＣＰＵ（ＣＩＳＣ型、ＲＩＳＣ型）やＤＳＰ等のプロセッサ、ＡＳＩＣ（ゲートアレイ等）等の演算装置やその制御プログラムにより実現される。図１では、制御ユニット１１１０に実装されたＣＰＵがこれに該当する。また、処理部２００は、主にゲームの実行に係る演算処理を行うゲーム演算部２１０と、ゲーム演算部２１０の処理によって求められた各種のデータに基づくゲーム画像を生成する画像生成部２３０と、効果音やＢＧＭ等のゲーム音を生成する音生成部２４０とを含んでいる。
【０１０７】
ゲーム演算部２１０は、操作入力部１１０から入力された操作信号や、記憶部３００から読み出したプログラムやデータ等に基づいて種々のゲーム処理を実行する。本実施形態では、ゲーム演算部２１０は、スイング方向判定部２１１と、軌道算出部２１２と、移動制御部２１３とを含む。
【０１０８】
スイング方向判定部２１１は、加速度センサ１３０６によって検出された加速度αｘ，αｙ，αｚを基に、為されたスイング操作の操作方向（スイング方向）を判定する。具体的には、加速度センサ１３０６によって検出された加速度αｘ，αｙ，αｚのうち、加速度αｚが所定の閾値（例えば、「１．１Ｇ」）を超えたならば、スイング操作が開始された（スイング操作が為された）と判断して、各加速度αｘ，αｙ，αｚのサンプリングを開始する。即ち、所定時間間隔（例えば、フレーム時間間隔）で、入力される加速度αｘ，αｙ，αｚを、所定回数だけ取り込む。そして、サンプリングした加速度αｘ，αｙ，αｚそれぞれの平均加速度αｘａ，αｙａ，αｚａを算出する。また、サンプリング毎に、サンプリングした各加速度αｘ，αｙ、αｚを合成した加速度ベクトルの大きさである加速度αを算出し、算出した加速度αのうちから最大の加速度αｍを抽出する。
【０１０９】
サンプリングされた加速度αのデータは、サンプリングデータ３２５に格納される。図１６は、サンプリングデータ３２５のデータ構成の一例を示す図である。同図によれば、サンプリングデータ３２５は、サンプリングタイミング３２５ａ毎に、検出された加速度３５２ｂを対応付けて格納しているとともに、平均加速度３５２ｃと、最大加速度３５２ｄとを格納している。サンプリングタイミング３２５ａは、所定時間間隔（例えば、フレーム時間間隔）毎のサンプリングのタイミングである。加速度３５２ｂは、取り込んだ加速度αｘ，αｙ，αｚそれぞれの値と、加速度αの値とを格納している。
【０１１０】
次いで、スイング方向判定部２１１は、算出した平均加速度αｘａ，αｙａ，αｚａを基に、方向判定テーブル３２１を参照して、為されたスイング操作の操作方向、及び、プレーヤキャラクタ２０の武器３０の振り回し方向を判定する。
【０１１１】
図１７は、方向判定テーブル３２１のデータ構成の一例を示す図である。同図によれば、方向判定テーブル３２１は、加速度条件３２１ａと、スイング方向３２１ｂと、振り回し方向３２１ｃとを対応付けて格納している。加速度条件３２１ａは、平均加速度αｙ，αｘの値の条件である。即ち、スイング方向判定部２１１は、算出した平均加速度αｘ，αｙの値の組み合わせを満足する加速度条件に対応するスイング方向及び振り回し方向を判定する。
【０１１２】
軌道算出部２１２は、スイング方向判定部２１１により判定された振り回し方向に従って、武器３０の分銅３３の移動軌道及び移動速度Ｖを算出する。具体的には、基準軌道データ３２２に従って、判定されたスイング方向に応じた基準制御点Ｑをゲーム空間に設定する。尚、このとき、プレーヤキャラクタ２０の向きに合わせて基準制御点Ｑを設定するのは勿論である。
【０１１３】
図１８は、基準軌道データ３２２のデータ構成の一例を示す図である。同図によれば、基準軌道データ３２２は、各基準制御点３２２ａの位置を、振り回し方向３２２ｂ毎に対応付けて格納しているとともに、基準加速度３２２ｃを格納している。基準制御点３２２ａの位置は、プレーヤキャラクタに設定されたローカル座標系に従った座標値で格納されている。
【０１１４】
次いで、軌道算出部２１２は、設定した各基準制御点Ｑについて、算出された最大加速度αｍを基に軌道制御点Ｒを設定する。即ち、プレーヤキャラクタ２０の位置Ｐｐから基準制御点Ｑに向かう直線上であって、位置Ｐｐからの距離ｒが式（１）を満たす位置に、軌道制御点Ｒを設定する。但し、これらの基準制御点Ｑのうち、始点Ｑ１と終点Ｑｎについては、そのまま軌道制御点Ｒの始点Ｒ１及び終点Ｒｎとする。
【０１１５】
続いて、軌道算出部２１２は、設定した各軌道制御点Ｒについて、付与ダメージテーブル３２４を参照し、当該軌道制御点Ｒを中心とする衝突判定領域ＪＡ内に敵キャラクタ４０が位置するか否かを判定する。敵キャラクタ４０が位置する場合、その敵キャラクタ４０の位置に該軌道制御点Ｒを変更する。
【０１１６】
図１９は、付与ダメージテーブル３２４のデータ構成の一例を示す図である。同図によれば、付与ダメージテーブル３２４は、武器３０の種類３２４ａ毎に、衝突判定領域３２４ｂと、ダメージ値３２４ｃとを対応付けて格納している。衝突判定領域３２４ｂは、球形状の領域である衝突判定領域の半径ｒの値を格納している。ダメージ値３２４ｃは、対応する武器３０が衝突したと判定された敵キャラクタ４０に与えるダメージ値を格納している。
【０１１７】
そして、軌道算出部２１２は、設定した各軌道制御点Ｒに基づく所定の補間演算（例えば、スプライン補間）を行って、始点Ｒ１から各軌道制御点Ｒ１を通って終点Ｒｎに至る移動軌道ＴＲ２を算出する。
【０１１８】
また、軌道算出部２１２は、抽出された最大加速度αｍを基に、移動速度設定データ３２３を参照して、武器３０の分銅３３の移動速度Ｖを決定する。移動速度設定データ３２３は、例えば図１４に一例を示した、最大加速度αｍと移動速度Ｖとの関係を定めたデータであり、具体的にはグラフを表す関数式や、最大加速度αｍと移動速度Ｖとの値を対応付けたデータテーブルである。
【０１１９】
算出された移動軌道ＴＲ２及び移動速度Ｖのデータは、移動制御データ３２６に格納される。図２０は、移動制御データ３２６のデータ構成の一例を示す図である。同図によれば、移動制御データ３２６は、軌道制御点３２６ａ毎に、その位置３２６ｂを対応付けて格納しているとともに、算出された移動軌道３２６ｃと、移動速度３２６ｄを格納している。位置３２６ｂは、ワールド座標系に従った座標値で格納されている。
【０１２０】
移動制御部２１３は、プレーヤキャラクタ２０が持つ武器３０を制御する。具体的には、移動制御データ３２６を参照し、武器３０の分銅３３を、算出された移動軌道ＴＲ２に沿って算出された移動速度Ｖで移動させる。また、分銅３３の移動に伴って、剣身３２の隣り合う各刃間の角度を制御して、剣身３２を適当にしならせた状態に制御する。具体的には、関節構造の関節に相当する隣り合う各刃間の屈曲角度を、所定角度以上（例えば、１２０度以上）であるとともに、剣柄３１に近いほど大きくなるように決定する。
【０１２１】
衝突判定部２１４は、武器３０と各敵キャラクタ４０との衝突を判定する。具体的には、移動制御部２１３により移動制御される武器３０の剣身３２及び分銅３３それぞれと、各敵キャラクタ４０とが衝突するか否かの判定処理（ヒット判定）を行う。そして、付与ダメージテーブル３２４を参照し、衝突すると判定した敵キャラクタ４０に対して、武器３０の衝突した部分に応じたダメージを与える。即ち、敵キャラクタ４０が武器３０の分銅３３と衝突した場合には、付与ダメージテーブル３２４において該武器３０に対応付けられて定められているダメージ値を与え、剣身３２と衝突した場合には、上記ダメージ値より小さいダメージ値（例えば、武器３０によるダメージ値の０．２倍）を与える。
【０１２２】
図１５において、画像生成部２３０は、ゲーム演算部２１０による演算結果に基づき、ゲーム画面を表示するためのゲーム画像を生成し、生成した画像の画像信号を画像表示部１３０に出力する。画像表示部１３０は、画像生成部２３０からの画像信号に基づいて、所定の単位時間間隔、例えば１／６０秒毎に１フレームの画面を再描画しながらゲーム画面を表示する。この機能は、例えばＣＲＴ、ＬＣＤ、ＥＬＤ、ＰＤＰ、ＨＭＤ等のハードウェアによって実現される。図１では、ディスプレイ１２０２がこれに該当する。
【０１２３】
音生成部２４０は、ゲーム中に使用される効果音やＢＧＭ等のゲーム音を生成し、生成したゲーム音の音信号を音出力部１４０に出力する。音出力部１４０は、音生成部２４０からの音信号に基づいてＢＧＭや効果音等のゲーム音声を出力する。この機能は、例えばスピーカ等によって実現される。図１では、スピーカ１２０４がこれに該当する。
【０１２４】
通信部１５０は、処理部２００からの制御信号に従って通信回線に接続し、外部装置とのデータ通信を行う。この機能は、無線通信モジュール、有線用の通信ケーブルのジャックや制御回路などによって実現される。図１では、通信装置１１１２がこれに該当する。
【０１２５】
記憶部３００は、処理部２００にゲームシステム１を統合的に制御させるための諸機能を実現するためのシステムプログラムや、ゲームを実行させるために必要なプログラムやデータ等を記憶するとともに、処理部２００の作業領域として用いられ、処理部２００が各種プログラムに従って実行した演算結果や操作入力部１１０から入力される入力データ等を一時的に記憶する。この機能は、例えば各種ＩＣメモリやハードディスク、ＣＤ−ＲＯＭ、ＤＶＤ、ＭＯ、ＲＡＭ、ＶＲＡＭ等によって実現される。図１では、制御ユニット１１１０に搭載されたメモリがこれに該当する。本実施形態では、記憶部３００は、プログラムとしてゲームプログラム３１０を記憶するとともに、データとして、方向判定テーブル３２１と、基準軌道データ３２２と、移動速度設定データ３２３と、付与ダメージテーブル３２４と、サンプリングデータ３２５と、移動制御データ３２６と、キャラクタデータ３２７とを記憶する。キャラクタデータ３２７は、ゲームに登場するプレーヤキャラクタや敵キャラクタ等の各種キャラクタに関するデータであり、現在の位置座標や能力値、所有アイテム（武器３０を含む）、モーションデータ等を格納している。
【０１２６】
［処理の流れ］
図２１は、本実施形態のゲーム処理の流れを説明するためのフローチャートである。この処理は、ゲーム演算部２１０がゲームプログラム３１０を実行することで実現される。同図によれば、ゲーム演算部２１０は、先ず、ゲームステージを設定し、プレーヤキャラクタ２０や敵キャラクタ４０等の各キャラクタを配置するゲーム空間の設定を行う（ステップＡ１）。次いで、操作入力部１１０からの入力指示に従って、プレーヤキャラクタ２０が持つ武器３０の種類の切り替えを行う（ステップＡ３）。また、操作入力部１１０からの入力指示に従って、プレーヤキャラクタ２０の移動制御や、敵キャラクタ４０を含む他の各キャラクタの制御を行う（ステップＡ５）。
【０１２７】
続いて、スイング方向判定部２１１が、加速度センサ１３０６から入力されたゲームコントローラ１３００の加速度成分αｚが、所定の閾値（例えば、「１．１Ｇ」）を超えたか否かを判断し、超えたならば（ステップＡ７：ＹＥＳ）、ゲーム演算部２１０は、プレーヤキャラクタ２０に、所定の武器３０の振り上げ動作を開始させる（ステップＡ９）。また、スイング方向判定部２１１が、スイング方向判定処理を行って、プレーヤ１０により為されたゲームコントローラ１３００のスイング方向を判定する（ステップＡ１１）。
【０１２８】
図２２は、スイング方向判定処理の流れを説明するためのフローチャートである。
同図によれば、スイング方向判定部２１１は、加速度センサ１３０６から入力される加速度αｘ，αｙ，αｚを、所定時間間隔（例えば、フレーム時間間隔）で所定回数だけサンプリングする（ステップＢ１）。次いで、サンプリングした各加速度αｘ，αｙ，αｚの平均値である平均加速度αｘａ，αｙａ，αｚａを算出する（ステップＢ３）。また、サンプリング毎に、各加速度αｘ，αｙ，αｚを合成した加速度ベクトルの大きさである加速度αを算出し、これらの加速度αのうちの最大値である最大加速度αｍを抽出する（ステップＢ５）。そして、算出した平均加速度αｘａ，αｙａ，αｚａを基に、方向判定テーブル３２１を参照して、為されたスイング方向を判定する（ステップＢ７）。以上の処理を行うと、スイング方向判定処理を終了する。
【０１２９】
スイング方向判定処理が終了すると、スイング方向判定部２１１は、方向判定テーブル３２１を参照して、判定したスイング方向を基に、プレーヤキャラクタ２０の武器３０の振り回し方向を決定する（ステップＡ１３）。続いて、軌道算出部２１２が移動軌道算出処理を行って、武器３０の移動軌道ＴＲ２及び移動速度Ｖを算出する（ステップＡ１５）。
【０１３０】
図２３は、移動軌道算出処理の流れを説明するためのフローチャートである。同図によれば、移動軌道算出部２１２は、基準軌道データ３２２を参照して、判定された振り回し方向に応じた各基準制御点Ｑを、ゲーム空間に設定する（ステップＣ１）。このとき、プレーヤキャラクタ２０を基準とした振り回し方向となるように、該プレーヤキャラクタ２０の方向（向き）に合わせて各基準制御点Ｑを設定する。次いで、設定した各基準制御点Ｑについて、算出された最大加速度αｍと、基準加速度αｐとの比を基に、軌道制御点Ｒを設定する（ステップＣ３）。続いて、付与ダメージテーブル３２４を参照して、設定した各軌道制御点Ｒについて、衝突判定領域内に敵キャラクタが位置するか否かを判定し（ステップＣ５）、位置する場合、その敵キャラクタの位置に該軌道制御点Ｒを変更する（ステップＣ７）。その後、これらの各移動制御点Ｒに基づく補間演算を行なって移動軌道ＴＲ２を算出する（ステップＣ９）。また、移動速度設定データ３２３を参照して、最大加速度αｍを基に、移動速度Ｖを算出する（ステップＣ１１）。以上の処理を行うと、移動軌道算出処理を終了する。
【０１３１】
移動軌道算出処理が終了すると、ゲーム演算部２１０は、プレーヤキャラクタ２０に、決定された振り回し方向への武器３０の振り回しを開始させる（ステップＡ１７）。また、移動制御部２１３が、移動制御データ３２６を参照して、算出された移動軌道ＴＲ２に沿って算出された移動速度Ｖで、武器３０の分銅３３の移動制御を開始するとともに、剣身３２の隣接する各刃間の角度が所定角度以内となるように制御して、剣身３２を適当にしならせた状態とする。具体的には、剣身３２のうち、始点Ｐ１から制御点Ｒ１までの硬直部分については、関節構造の関節に相当する隣り合う各刃間の屈曲角度を真っ直ぐとなる１８０度とし、制御点Ｒから分銅３３側の屈曲部分については、隣り合う各刃間の角度が所定角度以上（例えば、１２０度以上）となるとともに、剣身３２の始点Ｐに近いほど、屈曲角度が大きくなるように決定する（ステップＢ２９）。以上の処理を行うと、（ステップＡ１９）。
【０１３２】
次いで、衝突判定部２１４が、武器３０と各敵キャラクタ４０との衝突を判定し（ステップＡ２１）、この衝突判定結果に応じて各敵キャラクタ４０にダメージを与える（ステップＡ２３）。その後、ゲーム演算部２１０は、ゲームを終了するか否かを判断し、終了しないならば（ステップＡ２５：ＮＯ）、ステップＡ３に戻り、ゲームを終了するならば（ステップＡ２５：ＹＥＳ）、ゲーム処理を終了する。
【０１３３】
［作用・効果］
このように、本実施形態によれば、ゲームコントローラ１３００を振るというスイング操作によって、プレーヤキャラクタ２０が武器３０を振り回すといった、新たなゲーム操作が実現される。即ち、ゲームコントローラ１３００に内蔵された加速度センサ１３０６で検出された加速度αの値に基づいて、為されたスイング操作の操作方向（スイング方向）が判定され、このスイング方向に一致するよう、プレーヤキャラクタ２０の武器３０の振り回し方向が決定される。次いで、決定された武器３０の振り回し方向及び加速度センサ１３０６により検出された最大加速度αｍを基に、武器３０の分銅３３の移動軌道ＴＲ２及び移動速度Ｖが算出される。そして、武器３０の、分銅３３が、この移動軌道ＴＲ２に沿って移動速度Ｖで移動するように制御される。
【０１３４】
［変形例］
尚、本発明の適用可能な実施形態は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更可能なのは勿論である。
【０１３５】
（Ａ）移動軌道ＴＲ２
例えば、移動軌道ＴＲ２を武器３０の種類に応じて可変することにしても良い。具体的には、武器３０の種類毎に、基準制御点Ｑの位置が異なる基準軌道データ３２２を対応付けて記憶しておく。そして、プレーヤキャラクタ２０が持っている武器３０の種類に対応する基準軌道データ３２２に基づく基準制御点Ｑを設定することで、移動軌道ＴＲ２を算出する。
【０１３６】
（Ｂ）軌道制御点Ｒ
また、ゲーム空間に設定した軌道制御点Ｒをプレーヤに知らせるようにしても良い。具体的には、各軌道制御点Ｒの位置に、目印となる所定の目印体（オブジェクト）を配置する。従って、分銅３４は、これらの目印体を通過するように移動することになる。勿論、この目印体は、武器３０の剣身３２や分銅３３といった他のオブジェクトに影響を与えない。
【０１３７】
また、軌道制御点Ｒの位置を、プレーヤの指示操作によって可変することにしても良い。具体的には、上述の実施形態では、各軌道制御点Ｒの位置は、プレーヤキャラクタ２０の位置Ｐｐからの距離ｒが、上述の式（１）で与えられる距離ｒとなる位置に設定されることにしたが、これを、位置Ｐｐからの距離ｒが、式（１）で算出される距離ｒに所定の係数ｋを乗じた距離ｒ´（＝ｒ×ｋ）となる位置に設定されることにする。そして、この係数ｋを、ゲームコントローラ１３００における所定の操作（例えば、操作ボタン１３０２の押下）に応じて変更する。例えば、操作ボタン１３０２が押下されていない状態でスイング操作が検知された場合には係数ｋを「１．０」とし、押下されている状態でスイング操作が検知された場合には係数ｋを「１．５」とする。
【０１３８】
（Ｃ）スイング操作の判定
また、スイング操作の操作方向を判定するための加速度αの閾値を、プレーヤの指示操作によって可変することにしても良い。具体的には、図１７に示した方向判定テーブル３２１において加速度条件として定められる平均加速度αｘ，αｙの閾値（同図では、αｘは「０．９Ｇ」、αｙは「０．０」）を、ゲームコントローラ１３００における所定の操作（例えば、操作ボタン１３０２の押下）に応じて変更する。例えば、操作ボタン１３０２が押下されていない状態では、方向判定テーブル３２１で定められる閾値そのものとし、押下されている状態では、この閾値を増減（例えば、「１．２倍」や「０．８倍」）する。
【０１３９】
（Ｄ）検出された加速度αの補正
また、加速度センサ１３０６により検出された加速度αｘ，αｙ，αｚを補正することにしても良い。具体的には、例えばゲームコントローラ１３００における所定の操作（例えば、十字キー１３０４や不図示の他の操作ボタンの押下）がなされた場合、検出された加速度αｘ，αｙ，αｚそれぞれの値を所定倍（例えば、「１．５倍」や「０．８倍」）することにしても良い。
【０１４０】
（Ｅ）武器
また、上述の実施形態では、武器３０を「蛇腹剣」を模したものとしたが、他の武器であっても良い。例えば、紐状体の一端にある程度の大きさの移動体を取り付けた「ヨーヨー」を模した武器としても良い。また、この紐状体をゴム紐やばね等の弾性体としても良い。即ち、武器３０は、振り回すことで敵キャラクタ４０に衝突させて攻撃する構成であれば、何れでも構わない。また、武器３０は、例えば「ブーメラン」を模した武器のように、接続体を有さずに移動体のみで構成され、移動体がプレーヤキャラクタ２０に接続されていなくとも良い。
【０１４１】
また、武器３０は、図２４に示すように、分銅３３を有さず、剣柄３１と剣身３２とから構成される形状としても良い。この場合、剣身３２を構成する蛇腹状に接続された複数の刃３４のうち、剣先に相当する刃３４ａを、分銅３３に代わる移動体であるとして上述の実施形態と同様の制御を行う。更に、同図に示す武器３０が敵キャラクタ４０に衝突した場合、剣身３２を構成する複数の刃３４のうち、何れが衝突したかに応じて、その敵キャラクタ４０に与えるダメージ値を可変することにしても良い。
【０１４２】
（Ｆ）プレーヤの利き手
また、上述の実施形態では、プレーヤは右手でゲームコントローラ１３００を把持することとして説明したが、左右どちらの手で把持するかをプレーヤが設定可能としても良い。具体的には、方向判定テーブル３２１として、図１７に一例を示した右手用に加えて、更に左手用も用意しておく。そして、例えばゲームの開始前に、プレーヤが右手及び左手の何れかの手で把持するかを入力設定し、この入力設定された方の方向判定テーブル３２１を用いて、為されたスイング操作の操作方向を判定する。
【０１４３】
（Ｇ）ゲームコントローラ１３００
（Ｇ−１）スピーカ
また、ゲームコントローラ１３００は、スピーカを内蔵することにしても良い。そして、このスピーカから、加速度センサ１３０６から検出された加速度αの大きさに応じた音を出力することにしても良い。この場合、例えば加速度αの大きさに応じて、「音」を構成する「音程」、「音量」及び「音質」の３つの音要素のうち、１つ或いは２つの音要素を徐々に変化させた音を出力する。例えば、加速度αの大きさに応じて、音量（音の大きさ）を可変して出力する。
【０１４４】
（Ｇ−２）バイブレータ
また、ゲームコントローラ１３００は、バイブレータを内蔵することにしても良い。そして、このバイブレータを、加速度センサ１３０６から検出された加速度αの大きさに応じた振動パターンで振動させることにしても良い。この場合、例えば加速度αの大きさに応じて振動の回数や間隔を徐々に変化させた振動パターンとする。
【０１４５】
（Ｈ）警告
また、ゲームコントローラ１３００を強く振りすぎた場合に、警告を行うことにしても良い。具体的には、加速度センサ１３０６により検出された加速度αの大きさが、所定の大きさ（閾値）以上の場合に、振りが強すぎる旨のメッセージをディスプレイ１２０２に表示する。また、内蔵するスピーカから、振りが強すぎる旨をプレーヤに報知するための所定の警告音を出力することにしても良いし、内蔵するバイブレータを、警告用の所定の振動パターンで振動させることにしても良い。
【０１４６】
（Ｉ）ゲームの種類
また、上述の実施形態では、対戦格闘ゲームに適用した場合を説明したが、他のゲームにも適用可能である。他のゲームでは、武器ではなく、プレーヤキャラクタが振り回して使用する種々の器具に本発明を適用する。
【図面の簡単な説明】
【０１４７】
【図１】ゲームシステムの外観例。
【図２】ゲームシステムにおけるゲームプレイの様子の一例。
【図３】プレーヤキャラクタが持つ武器の拡大図。
【図４】ゲームコントローラの持ち方の説明図。
【図５】右スイング操作の説明図。
【図６】左スイング操作の説明図。
【図７】振り下ろし操作の説明図。
【図８】右スイング操作を行った際に検出される加速度αの値の説明図。
【図９】左スイング操作を行った際に検出される加速度αの値の説明図。
【図１０】振り下ろし操作を行った際に検出される加速度αの値の説明図。
【図１１】振り上げ操作を行った際に検出される加速度αの値の説明図。
【図１２】移動軌道の算出の説明図。
【図１３】敵キャラクタの位置に基づく軌道制御点の変更の説明図。
【図１４】最大加速度αｍと移動速度Ｖとの関係の一例のグラフ。
【図１５】ゲームシステムの機能構成例。
【図１６】サンプリングデータのデータ構成例。
【図１７】方向判定テーブルのデータ構成例。
【図１８】基準軌道データのデータ構成例。
【図１９】付与ダメージテーブルのデータ構成例。
【図２０】移動制御データのデータ構成例。
【図２１】ゲーム処理の流れ図。
【図２２】ゲーム処理中に実行されるスイング方向判定処理の流れ図。
【図２３】ゲーム処理中に実行される移動軌道算出処理の流れ図。
【図２４】武器の変形例。
【符号の説明】
【０１４８】
１  ゲームシステム
１１０  操作入力部
１３０６加速度センサ
２００  処理部
２１０  ゲーム演算部
２１１  スイング方向判定部
２１２  軌道算出部
２１３  移動制御部
２１４  衝突判定部
３００  記憶部
３１０  ゲームプログラム
３２１  方向判定テーブル
３２２  基準軌道データ
３２３  移動速度設定データ
３２４  付与ダメージテーブル
３２５  サンプリングデータ
３２６  移動制御データ
３２７  キャラクタデータ
１０  プレーヤ
２０  プレーヤキャラクタ
３０  武器
３２  紐
３４  本体部
４０  敵キャラクタ
Ｑ  基準制御点
Ｒ  軌道制御点Ｒ
ＴＲ２  移動軌道
【図１】
2008136695.tif 000003
【図２】
2008136695.tif 000004
【図３】
2008136695.tif 000005
【図４】
2008136695.tif 000006
【図５】
2008136695.tif 000007
【図６】
2008136695.tif 000008
【図７】
2008136695.tif 000009
【図８】
2008136695.tif 000010
【図９】
2008136695.tif 000011
【図１０】
2008136695.tif 000012
【図１１】
2008136695.tif 000013
【図１２】
2008136695.tif 000014
【図１３】
2008136695.tif 000015
【図１４】
2008136695.tif 000016
【図１５】
2008136695.tif 000017
【図１６】
2008136695.tif 000018
【図１７】
2008136695.tif 000019
【図１８】
2008136695.tif 000020
【図１９】
2008136695.tif 000021
【図２０】
2008136695.tif 000022
【図２１】
2008136695.tif 000023
【図２２】
2008136695.tif 000024
【図２３】
2008136695.tif 000025
【図２４】
2008136695.tif 000026