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