説明

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

【課題】加速度センサを内蔵したゲームコントローラを用いてゲーム空間中の移動体の移動を制御する際に、興趣性のある新たな操作を実現すること。
【解決手段】プレーヤ10がゲームコントローラ1300を振る操作に応じて、プレーヤキャラクタ20を武器30を振り回す動作を行う。操作モードには、「発動モード」及び「追従モード」の二種類があり、ゲームコントローラ1300の定められた操作ボタンを押下しているか否かによって切り替えられる。「発動モード」では、予め定められた複数種類のスイング操作のうち、何れかのスイング操作を行うと、プレーヤキャラクタ20が、行ったスイング操作に対応付けられている武器30の振り回し動作を開始する。また、「追従モード」では、随時、ゲームコントローラ1300の操作に追従して、プレーヤキャラクタ20が武器30を持った右腕を振り回す動作を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体及びゲーム装置に関する。
【背景技術】
【0002】
ゲームコントローラに内蔵されている加速度検出器(加速度センサ)からの出力値に応じてゲームを進行制御する技術が知られている。例えば、特許文献1には、ゲームコントローラを傾かせる傾き操作を加速度センサで検出し、その傾き方向及び傾き量に応じて、ゲーム画像やゲームサウンドを変化させる技術が開示されている。
【特許文献1】特開2003−325972号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、加速度センサを内蔵したゲームコントローラに関する技術としては、特許文献1に代表されるように、現実空間においてプレーヤがゲームコントローラをどちらの方向にどれだけ傾けているのかによって、リアルタイムにゲーム空間中の移動体の移動方向を変化させるといった、ゲームコントローラの姿勢を移動体の移動に直接対応させる技術が主であった。そのため、操作方法が単純かつワンパターンであり、面白みに欠けた。
【0004】
本発明は、加速度センサを内蔵したゲームコントローラを用いてゲーム空間中の移動体の移動を制御する際に、興趣性のある新たな操作を実現することを目的としてなされたものである。
【課題を解決するための手段】
【0005】
上記課題を解決するための第1の発明は、
コンピュータに所定のゲームを実行させるためのプログラム(例えば、図20のゲームプログラム310)であって、
加速度検出器(例えば、図1,20の加速度センサ1306)を内蔵するとともに操作ボタン(例えば、図1の操作ボタン1302)を備えたゲームコントローラ(例えば、図1のゲームコントローラ1300)に対してなされた操作に基づいて、少なくとも第1及び第2の操作モードの中から択一的に操作モードを選択する操作モード選択手段(例えば、図20のゲーム演算部210;図20のステップA7)、
前記操作モード選択手段により第1の操作モードが選択された場合に、前記加速度検出器により検出された加速度に基づく第1の制御方法で操作対象物を制御する第1の操作制御手段(例えば、図20の発動モード制御部211;図20のステップA11)、
前記操作モード選択手段により第2の操作モードが選択された場合に、前記加速度検出器により検出された加速度に基づく前記第1の制御方法とは異なる第2の制御方法で前記操作対象物を制御する第2の操作制御手段(例えば、図20の追従モード制御部212;図20のステップA21)、
として前記コンピュータを機能させるためのプログラムである。
【0006】
また、第18の発明は、
加速度検出器を内蔵するとともに操作ボタンを備えたゲームコントローラ(例えば、図1のゲームコントローラ1300)と、
前記ゲームコントローラに対してなされた操作に基づいて、少なくとも第1及び第2の操作モードの中から択一的に操作モードを選択する操作モード選択手段(例えば、図20のゲーム演算部210)と、
前記操作モード選択手段により第1の操作モードが選択された場合に、前記加速度検出器により検出された加速度に基づく第1の制御方法で操作対象物を制御する第1の操作制御手段(例えば、図20の発動モード制御部211)と、
前記操作モード選択手段により第2の操作モードが選択された場合に、前記加速度検出器により検出された加速度に基づく前記第1の制御方法とは異なる第2の制御方法で前記操作対象物を制御する第2の操作制御手段(例えば、図2の追従モード制御部212)と、
を備えたゲーム装置(例えば、図1,20のゲームシステム1)である。
【0007】
この第1又は第18の発明によれば、ゲームコントローラに対してなされた操作に基づいて操作モードが択一的に選択され、選択された操作モードに応じた制御方法で、ゲームコントローラに内蔵された加速度検出器により検出された加速度に基づく操作対象物の制御がなされる。即ち、ゲームコントローラを動かす操作が同じであっても、操作モードが異なると検出された加速度に基づく操作対象物の制御方法が異なる。プレーヤは、ゲームコントローラに対する操作によって操作モードを簡単に切り替えることができ、加速度検出器を内蔵したゲームコントローラを用いた操作の興趣性を向上させることができる。
【0008】
第2の発明は、第1の発明のプログラムであって、
前記ゲームコントローラは前記操作ボタンを複数備え、
前記加速度検出器は複数方向の加速度検出可能であり、
前記操作モード選択手段が、前記複数の操作ボタン及び前記加速度検出器の検出可能な複数方向の組合せのうち、予め定められた前記各操作モードに対応する組合せの操作が為されたか否かに基づいて、操作モードを選択するように前記コンピュータを機能させるためのプログラムである。
【0009】
この第2の発明によれば、ゲームコントローラに備えられる複数の操作ボタン及び加速度検出器の検出可能な複数方向の組み合わせに基づいて、操作モードが選択される。
【0010】
第3の発明は、第1又は第2の発明のプログラムであって、
前記ゲームコントローラは前記操作ボタンの押下量又は押圧を検出する検出器を備え、
前記操作モード選択手段が、更に、予め定められた前記検出器により検出される押下量又は押圧に基づく操作モードの選択条件に従って、前記検出器により検出された押下量又は押圧に対応する操作モードを選択するように前記コンピュータを機能させるためのプログラムである。
【0011】
この第3の発明によれば、操作ボタンの押下量又は押圧に基づいて操作モードが選択される。
【0012】
第4の発明は、第1の発明のプログラムであって、
前記操作モード選択手段が、前記ゲームコントローラの前記操作ボタンが押下操作されているか否かに応じて、前記第1又は第2の操作モードを選択するように前記コンピュータを機能させるためのプログラムである。
【0013】
この第4の発明によれば、ゲームコントローラの操作ボタンが押下操作されているか否かに応じて、第1又は第2の操作モードが選択される。即ち、操作ボタンを押下するといった簡単な操作で、操作モードを選択することができる。
【0014】
第5の発明は、第1又は第4の発明のプログラムであって、
前記操作ボタンが押下操作されている場合に、前記加速度検出器により検出される加速度を補正する加速度補正手段として前記コンピュータを機能させるためのプログラムである。
【0015】
この第5の発明によれば、操作ボタンが押下操作されている場合に、加速度検出器により検出される加速度が補正される。
【0016】
第6の発明は、第5の発明のプログラムであって、
前記加速度補正手段が、前記操作ボタンが押下操作されている場合に、前記加速度検出器により検出される加速度を大きくするように補正する、ように前記コンピュータを機能させるためのプログラムである。
【0017】
この第6の発明によれば、操作ボタンが押下されている場合に、加速度が大きくなるように補正される。
【0018】
第7の発明は、第1〜第6の何れかの発明のプログラムであって、
前記ゲームコントローラにはスピーカが内蔵されており、
前記操作モード選択手段により選択された操作モードに応じて異なる音を前記ゲームコントローラの前記スピーカから出力させる音出力制御手段として前記コンピュータを機能させるためのプログラムである。
【0019】
この第7の発明によれば、選択された操作モードに応じて異なる音が、ゲームコントローラに内蔵されたスピーカから出力される。従って、スピーカからの出力音から、現在選択されている操作モードを判別することができる。
【0020】
第8の発明は、第7の発明のプログラムであって、
前記音出力制御手段が、音程、音量及び音質の音要素の内の1つ又は2つが前記加速度検出器により検出された加速度に応じて異なる音であって、残余の1つ又は2つの音要素が前記操作モード選択手段により選択された操作モードに応じて異なる音を、前記加速度検出器による検出に応じて出力させる加速度対応音出力制御手段を有するように前記コンピュータを機能させるためのプログラムである。
【0021】
この第8の発明によれば、加速度検出器により検出された加速度及び選択された操作モードに応じて異なる音が、加速度検出器による検出に応じて出力される。即ち、スピーカからの出力音から、検出された加速度及び現在選択されている操作モードを判別することができる。
【0022】
第9の発明は、第7又は第8の発明のプログラムであって、
前記音出力制御手段が、前記操作モード選択手段により新たに選択された操作モードが直前に選択された操作モードと異なった時に、当該新たに選択された操作モードに応じた音を出力させるモード切替時音出力制御手段を有するように前記コンピュータを機能させるためのプログラムである。
【0023】
この第9の発明によれば、新たに選択された操作モードが直前に選択された操作モードと異なったときに、新たに選択された操作モードに応じた音が出力される。即ち、スピーカからの出力音から、操作モードの切り替わり、及び、切り替わり後の操作モードを判別することができる。
【0024】
第10の発明は、第1〜第9の何れかの発明のプログラムであって、
前記ゲームコントローラにはバイブレータが内蔵されており、
前記操作モード選択手段により新たに選択された操作モードが直前に選択された操作モードと異なった時に、前記バイブレータを振動させるモード切替時振動制御手段として前記コンピュータを機能させるためのプログラムである。
【0025】
この第10の発明によれば、新たに選択された操作モードが直前に選択された操作モードと異なったときに、ゲームコントローラに内蔵されたバイブレータが振動される。即ち、バイブレータの振動から、操作モードの切り替わりを判別することができる。
【0026】
第11の発明は、第1〜第10の何れかの発明のプログラムであって、
前記第1の操作制御手段が、
前記加速度検出器の検出結果が予め定められた動作制御発動条件を満たしたことを検出する条件満足検出手段(例えば、図20の発動モード制御部211;図30のステップC7)と、
前記条件満足検出手段による検出に応じて、予め定められた制御内容による前記操作対象物の制御を開始する制御発動手段(例えば、図20の発動モード制御部211;図29のステップB11〜B13)と、
を有するように前記コンピュータを機能させるためのプログラムである。
【0027】
この第11の発明によれば、第1の制御方法として、加速度検出器の検出結果が動作制御発動条件を満たした場合に、制御内容による操作対象物の制御が開始される。つまり、例えばゲームコントローラを傾ける操作をしても、検出された加速度が動作制御発動条件を満たさなければ操作対象物の制御が開始されず、動作制御発動条件を満たす操作が行われたことによって操作対象物の制御が開始されるといった、新たな操作が実現される。
【0028】
第12の発明は、第11の発明のプログラムであって、
前記操作対象物の複数の制御内容ごとに前記動作制御発動条件が予め定められており、
前記条件満足検出手段が、前記加速度検出器の検出結果が前記複数の動作制御発動条件のうちの何れかを満足したことを検出し、
前記制御発動手段が、前記条件満足検出手段による検出に応じて、当該検出された満足する動作制御発動条件に対応する制御内容による前記操作対象物の制御を開始する、
ように前記コンピュータを機能させるためのプログラムである。
【0029】
この第12の発明によれば、複数の制御内容毎に動作制御発動条件が予め定められており、加速度検出器の検出結果が、何れかの動作制御発動条件を満足した場合、その動作制御発動条件に対応する制御内容の制御が開始される。
【0030】
第13の発明は、第11又は第12の発明のプログラムであって、
前記制御発動手段が、前記操作対象物の制御として、当該操作対象物であるプレーヤキャラクタが所持する所定の移動体を移動開始させるように、当該プレーヤキャラクタを制御する、ように前記コンピュータを機能させるためのプログラムである。
【0031】
この第13の発明によれば、操作対象物であるプレーヤキャラクタが所持する所定の移動体の移動が開始される。
【0032】
第14の発明は、第1〜第13の何れかの発明のプログラムであって、
前記第2の操作制御手段が、
前記加速度検出器による現在の検出値に応じて制御動作を決定づける制御パラメータの値を随時算出する制御パラメータ値算出手段(例えば、図20の追従モード制御部212;図32のステップE1)と、
前記制御パラメータ値算出手段により随時算出される制御パラメータの値に基づいて前記操作対象物の動作を随時制御する操作対象物随時制御手段(例えば、図20の追従モード制御部212;図32のステップE5)と、
を有するように前記コンピュータを機能させるためのプログラムである。
【0033】
この第14の発明によれば、第2の制御方法として、加速度検出器により検出されている現在の検出値に応じて制御パラメータの値が随時算出され、その制御パラメータの値に基づいて操作対象物の動作が随時制御される。加速度検出器は、ゲームコントローラを動かさなくとも常に何らかの検出値を出力しており、ゲームコントローラを動かすと、その動きに応じた検出値を随時出力する。従って、ゲームコントローラの動き等の現在の状況に追従した、操作対象物のリアルタイムな制御が実現される。
【0034】
第15の発明は、第14の発明のプログラムであって、
前記制御パラメータの値には、少なくとも前記操作対象物の動作方向を示す値が含まれ、
前記制御パラメータ値算出手段が、前記加速度検出器による現在の検出値に応じて前記操作対象物の動作方向を示す値を随時算出し、
前記操作対象物随時制御手段が、前記制御パラメータ値算出手段により随時算出される動作方向を示す値に基づいて前記操作対象物の動作方向を随時可変に制御する、
ように前記コンピュータを機能させるためのプログラムである。
【0035】
この第15の発明によれば、加速度検出器による現在の検出値に応じて操作対象物の動作方向を示す値が随時算出され、その算出される動作方向を示す値に基づいて操作対象物の動作方向が随時可変に制御される。即ち、加速度検出器による現在の検出値に応じた動作方向に対する操作対象物の制御がなされる。
【0036】
第16の発明は、第14又は第15の発明のプログラムであって、
前記ゲーム空間中に、移動体(例えば、図3の分銅33)と、回転運動可能な腕部(例えば、図3の右腕21)と、前記移動体と前記腕部とを接続する接続体(例えば、図3の剣柄1及び剣身32)とを有する前記操作対象物であるプレーヤキャラクタ(例えば、図3のプレーヤキャラクタ20)を配置する配置手段(例えば、図20のゲーム演算部210;図28のステップA1)として前記コンピュータを機能させ、
前記操作対象物随時制御手段が、
前記操作対象物の随時制御として、前記プレーヤキャラクタの腕部の回転運動を随時制御する腕部制御手段(例えば、図20の追従モード制御部212;図32のステップE5)と、
前記接続体を介して前記腕部制御手段による腕部の回転運動に従動するように前記移動体を随時移動させる移動体制御手段(例えば、図20の追従モード制御部212;図32のステップE29)と、
を有するように前記コンピュータを機能させる、
ためのプログラムである。
【0037】
この第16の発明によれば、ゲームコントローラに内蔵された加速度検出器により検出される加速度に基づいて、ゲーム空間に配置された腕部の回転運動が制御される。腕部には、接続体を介して移動体が接続されており、この接続体を介して、腕部の回転運動に従動するように移動体の移動が制御される。即ち、プレーヤの操作が直接反映されるのはあくまで腕部であって、移動体は、腕部に接続された接続体を介した従動移動の制御となる。このため、プレーヤによるゲームコントローラの操作方向に応じた方向に移動体が移動するとは限らず、興趣性のある操作が実現される。
【0038】
第17の発明は、第1〜第16の何れかの発明のプログラムを記憶したコンピュータ読取可能な情報記憶媒体(例えば、図20の記憶部300)である。
【0039】
ここで、情報記憶媒体とは、記憶されている情報をコンピュータが読み取り可能な、例えばハードディスクやMO、CD−ROM、DVD、メモリカード、ICメモリ、ゲームカセット等の記憶媒体である。従って、この第17の発明によれば、情報記憶媒体に記憶されている情報をコンピュータに読み取らせて演算処理を実行させることで、第1〜第16の何れかの発明と同様の効果を奏することができる。
【発明の効果】
【0040】
本発明によれば、ゲームコントローラに対してなされた操作に基づいて操作モードが択一的に選択され、選択された操作モードに応じた制御方法で、ゲームコントローラに内蔵された加速度検出器により検出された加速度に基づく操作対象物の制御がなされる。即ち、ゲームコントローラを動かす操作が同じであっても、操作モードが異なると検出された加速度に基づく操作対象物の制御方法が異なる。プレーヤは、ゲームコントローラに対する操作によって操作モードを簡単に切り替えることができ、加速度検出器を内蔵したゲームコントローラを用いた操作の興趣性を向上させることができる。
【発明を実施するための最良の形態】
【0041】
以下、図面を参照して、本発明の好適な実施形態を説明する。
【0042】
[ゲームシステム]
図1は、本実施形態におけるゲームシステム1の外観図である。同図によれば、ゲームシステム1は、本体装置1100と、ビデオモニタ1200と、プレーヤがゲーム操作を入力するためのリモコン型のゲームコントローラ1300とを備えて構成される。ビデオモニタ1200は、ディスプレイ1202及びスピーカ1204を備え、画像信号及び音信号を伝送可能な信号ケーブル1121によって本体装置1100に接続されている。
【0043】
本体装置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を操作してゲームを楽しむ。
【0044】
ゲームシステム1がゲーム処理を行うために必要な情報(システムプログラムやゲームプログラム、ゲームデータ等)は、制御ユニット1110に搭載されているICメモリや、光学ディスク1102、メモリカード1104等に格納されている。より具体的には、システムプログラムは制御ユニット1110のICメモリに格納され、ゲームプログラム及びゲームデータは、本体装置1100に着脱自在な情報記憶媒体である光学ディスク1102及びメモリカード1104に格納されている。即ち、プレーヤは、この光学ディスク1102等を交換することで異なるゲームを楽しむことができる。尚、このゲーム情報等は、本体装置1100が具備する通信装置1112を介して通信回線Nに接続し、外部装置から取得することにしても良い。
【0045】
ゲームコントローラ1300は、プレーヤが片手で把持可能な略直方体の棒形状を成している。また、ゲームコントローラ1300は、操作ボタン1302と、十字キー1304が設けられた操作面1310をその表面に有しているとともに、加速度センサ1306と、無線通信機1308とを内蔵している。
【0046】
加速度センサ1306は、ゲームコントローラ1300に生じる加速度αを検出する三軸の加速度センサであり、互いに直交するXc,Yc,Zc軸それぞれの方向の加速度αx,αy,αzを検出する。これらの検出軸は、ゲームコントローラ1300に固定的に設定されている。即ち、Zc軸方向がゲームコントローラ1300の長手方向に一致し、Xc軸方向が短手方向に一致し、Yc軸が操作面1310の垂直方向に一致するように設定されている、
【0047】
無線通信機1308は、本体装置1100の近距離無線通信モジュール1114との近距離無線通信を行って、加速度センサ1306による検出信号や、操作ボタン1302や十字キー1304の操作に応じた操作信号を本体装置1100に送信する。
【0048】
ここで、ゲームコントローラ1300の方向を次のように定義する。即ち、長手方向を前後方向とし、先端部1312側を前、後端部1314側を後ろとする。また、短手方向を左右方向とし、先端部1312に向かって右側を右、左側を左とする。また、操作面1310の垂直方向を上下方向とし、操作面1310側を上、裏面側を下とする。
【0049】
[ゲーム概要]
本実施形態では、プレーヤキャラクタを操作して敵キャラクタと対戦する、いわゆる対戦格闘ゲームが実行される。図2は、ゲームシステム1における本実施形態のゲームプレイの様子を示した図である。同図によれば、ディスプレイ1202には、武器30を持ったプレーヤキャラクタ20と、敵キャラクタ40が登場するゲーム画面が表示される。
【0050】
図3は、プレーヤキャラクタ20が持つ武器30の拡大図である。同図によれば、武器30は、いわゆる「蛇腹剣」であり、剣柄31と、剣身32と、剣身32の剣先に取り付けられた分銅33とから構成される。剣身32は、複数の刃が蛇腹状に繋がれた関節構造を有し、関節に相当する各刃の繋ぎ目それぞれには、回転角度に制限が設けられており、隣接する刃間の角度が一定の角度以内に制御される。従って、剣身32はしなりながら移動する。そして、剣柄31が、プレーヤキャラクタ20の右手に握られて固定されている。つまり、移動体である分銅33が、剣柄31及び剣身32から成る接続体によってプレーヤキャラクタ20の右手に接続されているといえる。
【0051】
プレーヤ10は、ディスプレイ1202に対峙し、右手にゲームコントローラ1300を把持する。即ち、図4に示すように、親指で操作ボタン1302や十字キー1304を操作するように親指を操作面1310側にして、先端部1312をディスプレイ1202に向けるように把持する。そして、プレーヤ10は、ゲーム操作として、ゲームコントローラ1300を振る操作(スイング操作)をする。すると、このスイング操作に応じてプレーヤキャラクタ20が武器30を振り回す動作をし、武器30が敵キャラクタ40に衝突すると、この敵キャラクタ40の所定のダメージが与えられる。
【0052】
[原理]
本実施形態では、操作モードには、「発動モード」及び「追従モード」の2種類がある。何れの操作モードも、ゲームコントローラ1300の加速度センサ1306により検出される加速度αを基にプレーヤキャラクタ20が制御されるが、その制御内容が異なる。従って、同一のスイング操作を行ったとしても、操作モードが異なるとプレーヤキャラクタ20の動作が異なる。また、この操作モードの選択は、操作ボタン1302の押下操作によって実現される。即ち、操作ボタン1302を押下している状態が「追従モード」であり、操作ボタン1302を押下していない状態(離している状態)が「発動モード」である。
【0053】
(A)発動モード
「発動モード」は、予め複数種類のスイング操作が定められており、何れかのスイング操作を行うと、プレーヤキャラクタ20が、行ったスイング操作に応じて予め定められた武器30の振り回し動作を開始するモードである。即ち、定められたスイング操作を発動条件として、この条件が満たされると、予め定められた振り回し動作が発動(開始)される。具体的には、発動モードでは、スイング操作として、「右スイング」、「左スイング」、「振り下ろし」の何れかの操作がなされたか判定される。
【0054】
図5は、「右スイング操作」を説明するための図である。同図(a)は、右スイング操作を行っているプレーヤ10の正面図である。同図(a)に示すように、右スイング操作は、プレーヤ10が、ゲームコントローラ1300を把持した右手を、体の右方の位置から前方に向かって水平に動かす操作である。このスイング操作の操作方向を「右」とする。
【0055】
このとき、プレーヤ10は、ゲームコントローラ1300を、同図(b)に示す姿勢に保つ。同図(b)は、先端部1312側から見たゲームコントローラ1300の側面図である。同図(b)によれば、右スイング操作では、ゲームコントローラ1300の操作面1310を略鉛直に保ち、操作面1310を前方向に向けて操作する。つまり、操作面1310がスイング操作の操作方向(スイング方向)に向いた状態となる。
【0056】
すると、プレーヤキャラクタ20が、同図(c)に示すように、武器30を振り回す動作をする。同図(c)は、ゲーム空間におけるプレーヤキャラクタ20の動作例である。同図(c)によれば、プレーヤキャラクタ20は、武器30を、スイング方向に一致した方向、即ち右から左前方向に向けて水平に振り回す(繰り出す)動作を行う。この振り回し方向を「右」とする。
【0057】
図6は、「左スイング操作」を説明するための図である。同図(a)は、左スイング操作を行っているプレーヤ10の正面図である。同図(a)に示すように、左スイング操作は、プレーヤ10が、ゲームコントローラ1300を把持した右手を、体の左方の位置から前方に向かって水平に動かす操作である。このスイング方向を「左」とする。
【0058】
このとき、プレーヤ10は、ゲームコントローラ1300を、同図(b)に示す姿勢に保つ。同図(b)は、先端部1312側から見たゲームコントローラ1300の側面図である。同図(b)によれば、左スイング操作では、ゲームコントローラ1300の操作面1310を略鉛直に保ち、操作面1310を後方に向けて操作する。つまり、操作面1310がスイング方向と逆の方向に向いた状態となる。
【0059】
すると、プレーヤキャラクタ20は、同図(c)に示すように、武器30を振り回す動作をする。同図(c)は、ゲーム空間におけるプレーヤキャラクタ20の動作例である。同図(c)によれば、プレーヤキャラクタ20は、武器30を、スイング方向に一致した方向、即ち左から右前方向に向けて略水平に振り回す(繰り出す)動作を行う。この振り回し方向を「左」とする。
【0060】
図7は、「振り下ろし操作」を説明するための図である。同図(a)は、振り下ろし操作を行っているプレーヤ10の正面図である。同図(a)に示すように、振り下ろし操作は、プレーヤ10が、ゲームコントローラ1300を把持した右手を、体の上方の位置から前方に向かって動かす操作である。このスイング方向を「振り下ろし」とする。
【0061】
このとき、プレーヤ10は、ゲームコントローラ1300を、同図(b)に示す姿勢に保つ。同図(b)は、先端部1312側から見たゲームコントローラ1300の側面図である。同図(b)によれば、振り下ろし操作では、ゲームコントローラ1300の操作面1310を上方に向けて操作する。つまり、操作面1310がスイング方向と逆の方向に向いた状態となる。
【0062】
すると、プレーヤキャラクタ20は、同図(c)に示すように、武器30を振り回す動作をする。同図(c)は、ゲーム空間におけるプレーヤキャラクタ20の動作例である。同図(c)によれば、プレーヤキャラクタ20は、武器30を、スイング方向に一致した方向、即ち上から前下方向に向けて振り回す(繰り出す)動作を行う。この振り回し方向を「振り下ろし」とする。
【0063】
発動モードにおけるプレーヤキャラクタ20による武器30の振り回し動作は、次のように制御される。即ち、プレーヤ10によるスイング操作が為されると、為された操作方向に武器30を振り回すように、プレーヤキャラクタ20の右腕21が制御される。また、為されたスイング方向に応じて、武器30の分銅33の移動軌道が設定され、設定された移動軌道に沿って移動するように分銅33が制御される。
【0064】
(A−1)スイング方向の判定
プレーヤによって為されたスイング操作は、ゲームコントローラ1300の加速度センサ1306により検出された加速度αx,αy,αzを基に判定される。尚、加速度センサ1306では、常に重力加速度が検出されているため、加速度αとして、重力Gと、スイング操作によるゲームコントローラ1300の動きによって生じる移動加速度Fとの合成値が検出される。重力Gは、常に鉛直下向きに発生し、その大きさは「1.0G」である。また、移動加速度Fは、スイング方向と逆向きに発生し、その大きさは重力Gより充分大きく「数G〜十数G程度」である。
【0065】
先ず、スイング操作の開始、即ちゲームコントローラ1300の振り始めが検出される。具体的には、加速度αzが所定の閾値(具体的には、重力Gの大きさより大きい値。例えば「1.1G」)を超えた時点で、スイング操作が開始されたと判定される。これは、ゲームコントローラ1300を振る操作をすると、長手方向に大きな遠心力が発生し、この遠心力が、長手方向に一致するZc軸方向の加速度αzとして検出されるからである。
【0066】
スイング操作の開始が判定されると、続いて、加速度センサ1306により検出された加速度αx,αy,αzのサンプリング(取り込み)が、所定時間間隔(例えば、フレーム時間間隔)で所定時間分だけ行われる。次いで、サンプリングされた加速度成分αx,αy,αzそれぞれについて、サンプリング毎の値の平均値である平均加速度αxa,αya,αzaが算出される。そして、この平均加速度αxa,αya,αzaを基に、スイング操作の操作方向が判定される。
【0067】
ここで、各方向へのスイング操作を行った場合に加速度センサ1306により検出される加速度αx,αy,αzについて、簡単に説明する。尚、簡明化のため、Z軸方向の加速度成分αzについては省略して説明する。
【0068】
図8は、「右スイング操作」の場合の、後端部1314側から見たゲームコントローラ1300の側面図と、加速度センサ1306により検出される加速度αx,αyとを示している。右スイング操作では、操作面1310を鉛直に保った状態が理想の状態であるが、図22を用いて後述するように、方向判定テーブル331で定められる条件により、操作面1310が鉛直方向に対して傾斜した状態であっても右スイング操作を検出する。
【0069】
図8に示すように、ゲームコントローラ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|」が検出される。
【0070】
ここで、移動加速度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程度」が検出される。
【0071】
また、「理想」の状態では、加速度αyは、移動加速度Fの大きさ「−|F|」が検出される。しかし、操作面1310が「左に傾斜」した状態では、加速度αyは、移動加速度FのYc成分「−|Fy|」と、重力GのYc成分「+|Gy|」との和である「−|Fy|+|Gy|」が検出される。また、操作面1310が「右に傾斜」した状態では、加速度αyは、移動加速度FのYc成分「−|Yc|」と、重力GのYc成分「−|Gy|」との和である「−|Fy|−|Gy|」が検出される。
【0072】
ここで、移動加速度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程度」が検出される。
【0073】
図9は、「左スイング操作」を行った場合の、後端部1314側から見たゲームコントローラ1300の側面図と、加速度センサ1306により検出される加速度αx,αyとを示している。左スイング操作では、右スイング操作と同様に、操作面1310を垂直に保った状態が理想であるが、図22の方向判定テーブル331で定められる条件により、操作面1310が鉛直方向に対して傾斜した状態であっても左スイング操作を検出する。
【0074】
図9に示すように、操作面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|」が検出される。
【0075】
ここで、移動加速度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程度」が検出される。
【0076】
また、「理想」の状態では、加速度αyは、移動加速度Fの大きさ「F」が検出される。しかし、操作面1310が「左に傾斜」した状態では、加速度αyは、移動加速度FのYc成分「+|Fy|」と、重力GのYc成分「+|Gy|」との和である「Fy+Gy」とが検出される。また、操作面1310が「右に傾斜」した状態では、加速度αyは、移動加速度FのYc成分「Fy」と、重力GのYc成分「−|Gy|」との和である「|Fy|−|Gy|」が検出される。
【0077】
ここで、移動加速度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程度」が検出される。
【0078】
図10は、「振り下ろし操作」の場合の、後端部1314側から見たゲームコントローラ1300の側面図と、加速度センサ1306により検出される加速度αx,αyとを示している。振り下ろし操作では、操作面1310を上方に向け、ゲームコントローラ1300の左右方向(短手方向)が水平な状態が理想の状態であるが、図22の方向判定テーブル331で定められる条件により、前後方向(長手方向)を軸中心として左右に傾斜した状態であっても振り下ろし操作を検出する。
【0079】
図10に示すように、ゲームコントローラ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|」が検出される。
【0080】
ここで、移動加速度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」の値が検出される。
【0081】
また、「理想」の状態では、加速度αyは、移動加速度FのYc成分「+|F|」と、重力GのYc成分「−|G|」との和である「|F|−|G|」が検出される。しかし、「左に傾斜」した状態、及び「右に傾斜」した状態では、何れも、加速度αyは、移動加速度FのYc成分「+|Fy|」と、重力GのYc成分「−|Gy|」との和である「|Fy|−|Gy|」が検出される。
【0082】
ここで、移動加速度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程度」の値が検出される。
【0083】
ところで、プレーヤ10は、スイング操作として振り下ろし操作を行う場合、ゲームコントローラ1300を把持した右手を上方に上げた後、この右手を振り下ろす動作を行う。また、検出された加速度αのサンプリングは、ゲームコントローラ1300の長手方向の加速度αzの値が所定の閾値を超えたと判断された後、開始される。つまり、サンプリングされた加速度αx,αy,αzが、プレーヤが意図する振り下げ操作の前段階である振り上げ操作を行っている期間の値である可能性がある。
【0084】
そこで、図11は、この「振り上げ操作」の場合の、後端部1314から見たゲームコントローラ1300の側面図と、加速度センサ1306により検出される加速度αx,αyとを示している。振り上げ操作では、振り下げ操作と同様に、ゲームコントローラ1300の左右方向が水平に保たれた状態が理想の状態であるが、この左右方向が水平方向に対してやや傾斜した状態であっても、図22の方向判定テーブル331で定められる条件によって検出可能である。
【0085】
図11に示すように、ゲームコントローラ1300の左右方向が水平な「理想」の状態では、検出される移動加速度F及び重力Gの向きが、ともにYc軸負方向に一致する。つまり、「理想」の状態では、加速度αxは「0」が検出される。しかし、左右方向が水平方向に対して「左に傾斜」した状態では、加速度αxは、移動加速度FのXc成分「−|Fx|」と、重力GのXc成分「−|Gx|」との和である「−|Fx|−|Gx|」が検出される。また、左右方向が水平方向に対して「右に傾斜」した状態では、加速度αxは、移動加速度FのXc成分「+|Fx|」と、重力GのXc成分「+|Gx|」との和である「|Fx|+|Gx|」が検出される。
【0086】
ここで、移動加速度Fx及び重力Gxの大きさは、ゲームコントローラ1300の左右方向の水平方向に対する傾斜角度φによって異なる。即ち、移動加速度Fxは、Fx=F・sinφ、で与えられ、重力Gxは、Gx=G・sinφ、で与えられる。つまり、移動加速度Fx及び重力Gxは、ともに、操作面1310の左方への傾斜が大きくなるに従って「0」から徐々に小さくなり、右方への傾斜が大きくなるに従って「0」から徐々に大きくなる。従って、検出される加速度αxは、「理想」の状態では「0」であるが、左への傾斜角度φが大きくなるにつれて徐々に小さくなるとともに、右への傾斜角度φが大きくなるにつれて徐々に大きくなる。つまり、傾斜角度φが小さい、即ちゲームコントローラ1300の左右方向がほぼ水平に保たれているとすれば、加速度αxは、ほぼ「0」の値が検出される。
【0087】
また、「理想」の状態では、加速度αyは、移動加速度Fの大きさ「−|F|」と重力Gの大きさ「−|G|」との和である「−|F|−|G|」が検出される。しかし、ゲームコントローラ1300の左右方向が「左に傾斜」した状態、及び「右に傾斜」した状態では、何れも、加速度αyは、移動加速度FのYc成分「−|Fy|」と、重力GのYc成分「−|Gy|」との和である「−|Fy|−|Gy|」が検出される。
【0088】
ここで、移動加速度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程度」の値が検出される。
【0089】
このように、スイング方向の違いに応じて、加速度センサ1306により検出される加速度αx,αyの値の組み合わせが異なる。このため、サンプリングされた加速度αx,αy,αzから算出された平均加速度αxa,αyaの値の組み合わせを基に、プレーヤにより為されたスイング方向が判定される。
【0090】
(A−2)プレーヤキャラクタ20の武器30の振り回し動作の制御
スイング方向が判定されると、プレーヤキャラクタ20による武器30の振り回し方向が決定される。武器30の振り回し方向は、「右」、「左」及び「振り下ろし」の三種類のうちの何れかとされ、判定されたスイング方向と一致する方向に、振り回し方向が決定される。即ち、スイング操作が「右スイング」ならば、振り回し方向は「右」であり、スイング操作が「左スイング」ならば、振り回し方向は「左」である。また、スイング操作が「振り下ろし」或いは「振り上げ」ならば、振り回し方向は「振り下ろし」である。
【0091】
武器30の振り回し方向が決定されると、次いで、武器30の分銅33の移動軌道が決定される。即ち、振り回し方向が「右」の場合、プレーヤキャラクタ20の右方の位置から前方を通過して左方の位置に至る水平面上の曲線軌道が、移動軌道として設定される。また、振り回し方向が「左」の場合、プレーヤキャラクタ20の左方の位置から前方を通過して右方の位置に至る水平面上の曲線軌道が、移動軌道として設定される。また、振り回し方向が「振り下ろし」の場合、プレーヤキャラクタ20の上方の位置から前下方に至る垂直面上の曲線軌道が、移動軌道として設定される。
【0092】
具体的には、先ず、図12(a)に示すように、振り回し方向に応じた複数の基準制御点Qがゲーム空間に設定される。これらの基準制御点Qは、振り回し方向毎に定められた移動軌道の基準となる基準軌道上に設定され、これらの基準制御点Qを補間演算することで、該基準軌道が算出されるようになっている。同図は、振り回し方向が「右」の場合を示している。この場合、基準軌道TR1として、プレーヤキャラクタ20の右方の位置に定められた始点Q1から、プレーヤキャラクタ20の前方を通過して左方の位置に定められた終点Q8に向かう水平面上の曲線が定められており、この基準軌道TR1に沿って複数の基準制御点Qが設定される。
【0093】
そして、同図(b)に示すように、これらの基準制御点Qを基に軌道制御点Rが設定される。同図によれば、プレーヤキャラクタ20の位置Ppと、各基準制御点Qとを結ぶ直線上であって、位置Ppからの距離rが次式(1)を満たす位置に、軌道制御点Rが設定される。
r=(αm/αp)×s ・・(1)
ここで、「αp」は、予め定められた基準加速度である。「αm」は、サンプリングされた加速度α(=√(αx+αy+αz))の最大値(最大加速度)である。また、「s」は、位置Ppから基準制御点Qまでの距離であり、予め定められている。
【0094】
つまり、プレーヤキャラクタ20の位置Ppを基準として、基準制御点Qの位置を、検出された最大加速度αmと予め定められた基準加速度αpとの比に応じて変化させることで、軌道制御点Rが設定される。即ち、軌道制御点Rは、最大加速度αmが大きいほど、プレーヤキャラクタの位置Ppから離れた位置に設定される。但し、始点R1及び終点R8は固定である。そして、これらの各軌道制御点Rに基づく所定の補間演算(例えば、スプライン補間)を行うことで、始点R1から各軌道制御点Rを通って終点R8に至る移動軌道TR2が設定される。
【0095】
更に、図13(a)に示すように、これらの軌道制御点Rは、敵キャラクタ40との位置関係に基づいて補正される。同図によれば、各軌道制御点Rそれぞれについて、所定の衝突判定領域JA内に敵キャラクタ40が位置するか否かが判定され、敵キャラクタ40が位置する場合、この敵キャラクタ40の位置に軌道制御点Rが変更(補正)される。衝突判定領域JAは、武器30の分銅33を敵キャラクタ40に衝突させることとする領域であり、ここでは、軌道制御点Rを中心とする球体内部の領域として設定される。同図では、軌道制御点R4の衝突判定領域JA内に敵キャラクタが位置した場合を示しており、この敵キャラクタの位置Peに軌道制御点R4が変更されている。
【0096】
そして、同図(b)に示すように、変更後の各軌道制御点R間の補間演算を行うことで、始点R1から各軌道制御点Rを通って終点R8に至る移動軌道TR2が算出される。この移動軌道TR2は、点線で示す変更前の各軌道制御点Rに基づく移動軌道TR2´と比較して、変更された軌道制御点R4の近傍部分がずれている。
【0097】
尚、図12,図13では、振り回し方向が「右」の場合を説明したが、他の場合も同様である。即ち、振り回し方向が「左」の場合、プレーヤキャラクタ20の左方の位置を始点とし、プレーヤキャラクタ20の前方を通って右手の位置を終点する水平面上の基準軌道が定められ、この基準軌道上に複数の基準制御点Qが設定される。また、振り回し方向が「振り下げ」の場合、プレーヤキャラクタ20の上方の位置を始点とし、プレーヤキャラクタ20の前方を通って前方近傍位置を終点とする鉛直面上の基準軌道が定められ、この基準軌道上に複数の基準制御点Qが設定される、
【0098】
また、検出された最大加速度αmを基に、分銅33の移動速度Vが決定される。図14は、最大加速度αmと、移動速度Vとの関係の一例を示す図である。同図では、横軸を最大加速度αm、縦軸を移動速度Vとして、最大加速度αmと移動速度Vとの関係のグラフを示している。同図によれば、移動速度Vは、最大加速度αmに比例して増加するように設定されている。尚、最大加速度αmと移動速度Vとの関係は、同図に示すように比例関係でなくとも良い。その後、設定した移動軌道TR2に沿って、設定した移動速度Vで、分銅33が移動制御される。
【0099】
(B)追従モード
「追従モード」は、プレーヤ10がスイング操作を行うと、ゲームコントローラ1300の動きに追従してプレーヤキャラクタ20が武器30を振り回す動作を行うモードである。具体的には、プレーヤ10により為されたスイング操作に応じた方向に、プレーヤキャラクタ20が武器30を持っている右腕21を振り回す。すると、この振り回しに従動するように追従して武器30が移動する。
【0100】
追従モードにおけるプレーヤキャラクタ20の武器30の振り回しは、ゲームコントローラ1300の加速度センサ1306により検出される加速度αを基に制御される。
【0101】
先ず、加速度センサ1306により検出された加速度αx,αy,αzを基に、プレーヤキャラクタ20の右腕21が制御される。図15は、プレーヤキャラクタ20の右腕の制御を説明するための図である。同図に示すように、加速度センサ1306の検出座標系(Xc,Yc,Zc)と、ゲーム空間におけるプレーヤキャラクタ20を基準としたローカル座標系(Xp,Yp,Zp)とが対応付けられている。プレーヤキャラクタ20のローカル座標系(Xp,Yp,Zp)は、Zc軸正方向がゲーム空間中のプレーヤキャラクタ20の向きに一致し、Xp軸正方向がプレーヤキャラクタ20の右方向に一致し、Yp軸正方向がプレーヤキャラクタ20の鉛直方向に一致するように設定されている。そして、プレーヤキャラクタ20の右腕21の向き(長手方向)が、検出された加速度αzx,αy,αzを合成した加速度ベクトルαの向きに一致するように制御される。この右腕21は、プレーヤキャラクタ20の所定位置(例えば、右肩)を中心として自在に回転する。
【0102】
また、検出された加速度αを基に、剣身32に制御点Tが設定される。即ち、図16(a)に示すように、剣柄31と剣身32との接続部分である始点Sから剣身32に沿って所定の長さ(制御長)L1だけ離れた位置に、制御点Tが設定される。そして、始点Sから制御点Tまでの部分が、剣柄31の長手方向に沿った方向に真っ直ぐに硬直した状態の硬直部分とされる。但し、制御長L1は、剣身32の長さ(全長)Lより短い。この剣身32の長さLは、剣身32に沿った始点Sから分銅33との接続位置までの長さであり、即ち剣身32が真っ直ぐに伸びた状態(伸身時)の長さである。尚、同図において、武器30は簡略化されて表示されている。
【0103】
また、制御長L1は、検出された加速度αの大きさを基に決定される。同図(b)は、加速度αの大きさと制御長L1との関係の一例を示す図であり、横軸を加速度α、縦軸を制御長L1としたグラフを示している。同図によれば、制御長L1は、加速度αが所定値αs以下では「0」であり、この所定値αsを超えると、加速度αが大きくなるに従って長くなるように定められている。但し、最大長L1mは、剣身32の長さ(全長)Lより短い。即ち、制御点Tは、加速度αが小さい場合には、剣身32の始点Sの位置に定められ、加速度αが所定値αsを超えると、加速度αが大きくなるに従って分銅33寄りの位置に変化する。
【0104】
尚、加速度αと制御長L1との関係は、同図(b)に示す関係で無くとも良い。例えば、加速度αが所定値αtより小さい間は、加速度αが大きくなるに従って制御長L1が長くなり、加速度αが所定値αtより大きくなると、加速度αが大きくなるに従って制御長L1が徐々に短くなるように設定しても良い。
【0105】
そして、同図(c)に示すように、武器30は、剣柄31の長手方向がプレーヤキャラクタ20の右腕21の延長方向に一致するように固定される。即ち、右腕21と、剣柄31と、剣身32の始点Sから制御点Tまでの硬直部分との方向が一致して一体に保たれた状態となる。これにより、剣身32のうち、この硬直部分を除いた分銅33寄りの部分のみが自在に移動可能となる。即ち、自在に移動可能な剣身32の部分が短くなることで、右腕21の振り回しに伴う分銅33の移動の追従性が高まり、プレーヤにとって操作性が良くなる。
【0106】
続いて、分銅33の制御について説明する。図17は、分銅33の制御を説明するための図であり、分銅33の現在の位置K0から、単位フレーム時間(例えば、1/60秒)後の位置の算出方向を説明するための図である。先ず、検出された加速度ベクトルαを基にプレーヤキャラクタ20の右腕21が制御され、単位フレーム時間後の剣身32の始点S1及び制御点T1それぞれの位置が決定される。次いで、分銅33に設定されている現在の移動ベクトルU0に従ってこの分銅33を移動させたと仮定した場合の、単位フレーム時間後の分銅33の仮の位置(仮位置)K1´が算出される。そして、制御点T1とこの仮位置K1´の間の距離Dが算出される。
【0107】
この距離Dと制御長L1との和「D+L1」が剣身32の長さL以下ならば、図18に示すように、仮位置K1´が、単位フレーム時間後の分銅33の位置(分銅位置)K1とされる。また、現在の移動ベクトルU0が、そのまま、単位フレーム時間後の移動ベクトルU1とされる。
【0108】
一方、距離Dと制御長L1との和「D+L1」が剣身32の長さLを超える場合には、図19に示すように、現在の分銅位置K0と単位フレーム時間後の制御点T1の位置とを結ぶ直線上であって、制御点T1の位置からの距離が「L2(=(剣身32の長さL)−(制御長L1))」となる位置に、単位フレーム時間後の分銅の位置(分銅位置)K1が設定される。そして、現在の移動ベクトルU0と作用ベクトルWとの和が、単位フレーム時間後の移動ベクトルU1として設定される。作用ベクトルWは、分銅33が剣身32に引っ張られることを表現したベクトルであり、向きが分銅位置K1から制御点T1の位置に向かい、大きさが加速度αに比例した大きさである。
【0109】
[機能構成]
図20は、ゲームシステム1の機能構成を示すブロック図である。同図によれば、ゲームシステム1は、機能的には、操作入力部110と、画像表示部130と、音出力部140と、通信部150と、処理部200と、記憶部300とを備えて構成される。
【0110】
操作入力部110は、プレーヤによる操作入力を受け付け、操作に応じた操作信号を処理部200に出力する。この機能は、例えばボタンスイッチやレバー、ダイヤル、マウス、キーボード、タッチパネル、各種センサ等によって実現される。図1では、ゲームコントローラ1300がこれに該当する。また、操作入力部110は、加速度センサ1306を含み、検出された加速度αx,αy,αzを、処理部200に出力する。
【0111】
処理部200は、ゲームシステム1の全体制御やゲームの進行、画像生成等の各種演算処理を行う。この機能は、例えばCPU(CISC型、RISC型)やDSP等のプロセッサ、ASIC(ゲートアレイ等)等の演算装置やその制御プログラムにより実現される。図1では、制御ユニット1110に実装されたCPUがこれに該当する。また、処理部200は、主にゲームの実行に係る演算処理を行うゲーム演算部210と、ゲーム演算部210の処理によって求められた各種のデータに基づくゲーム画像を生成する画像生成部230と、効果音やBGM等のゲーム音を生成する音生成部240とを含んでいる。
【0112】
ゲーム演算部210は、操作入力部110から入力された操作信号や、記憶部300から読み出したプログラムやデータ等に基づいて種々のゲーム処理を実行する。例えば、操作入力部110から入力される操作信号を基に、現在の操作モードを判断する。即ち、所定の操作ボタン1302が押下されているならば「追従モード」と判断し、押下されていないならば「発動モード」であると判断する。判断された操作モードは、操作モードデータ321に格納される。
【0113】
また、ゲーム演算部210は。操作入力部110から入力される操作信号に従って、予め用意された複数種類の武器30のうちから、プレーヤキャラクタ20が持つ武器30の種類を切り替える。現在、プレーヤキャラクタ20が持っている武器30の種類(所持武器の種類)のデータは、所持武器種類データ322に格納される。
【0114】
また、本実施形態では、ゲーム演算部210は、発動モード制御部211と、追従モード制御部212とを含む。
【0115】
(A)発動モード制御部、
発動モード制御部211は、発動モードにおけるプレーヤキャラクタ20及び武器30の制御を行う。具体的には、加速度センサ1306により検出される加速度αzを監視し、この加速度αzが所定の閾値(例えば、「1.1G」)を超えたならば、プレーヤキャラクタ20の振り回し動作の制御及び武器30の移動制御を開始(発動)する。
【0116】
即ち、先ず、プレーヤキャラクタ20に、武器30を振り回すための前段階の動作として、武器30を持った右腕21を振り上げる動作を行わせる。また、加速度センサ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を抽出する。
【0117】
サンプリングされた加速度αのデータは、サンプリングデータ333に格納される。図21は、サンプリングデータ333のデータ構成の一例を示す図である。同図によれば、サンプリングデータ333は、サンプリングタイミング333a毎に、検出された加速度333bを対応付けて格納しているとともに、平均加速度333cと、最大加速度333dとを格納している。サンプリングタイミング333aは、所定時間間隔(例えば、フレーム時間間隔)毎のサンプリングのタイミングである。加速度333bは、取り込んだ加速度αx,αy,αzそれぞれの値と、加速度αの値とを格納している。
【0118】
次いで、発動モード制御部211は、算出した平均加速度αxa,αya,αzaを基に、方向判定テーブル331を参照して、為されたスイング操作の操作方向、及び、プレーヤキャラクタ20の武器30の振り回し方向を判定する。
【0119】
図22は、方向判定テーブル331のデータ構成の一例を示す図である。同図によれば、方向判定テーブル331は、加速度条件331aと、スイング方向331bと、振り回し方向331cとを対応付けて格納している。加速度条件331aは、平均加速度αy,αxの値の条件である。即ち、発動モード制御部211は、算出した平均加速度αx,αyの値の組み合わせを満足する加速度条件に対応するスイング方向及び振り回し方向を判定する。
【0120】
続いて、発動モード制御部211は、判定した振り回し方向に従って、武器30の分銅33の移動軌道及び移動速度Vを算出する。具体的には、現在プレーヤキャラクタ20が持っている武器30の種類(所持武器の種類)に応じた発動モード用武器データ332を参照して、判定した振り回し方向に応じた基準制御点Qをゲーム空間に設定する。尚、このとき、プレーヤキャラクタ20の向きに合わせて基準制御点Qを設定するのは勿論である。
【0121】
図23は、発動モード用武器データ332のデータ構成の一例を示す図である。同図によれば、発動モード用武器データ332は、武器30の種類毎に生成され、該当する武器の種類332aと、基準軌道データ332bと、基準加速度332eと、移動速度設定データ332fと、衝突判定領域332gと、ダメージ値332hとを格納している。基準軌道データ332bは、各基準制御点332cの位置を、振り回し方向332d毎に対応付けて格納している。基準制御点332cの位置は、プレーヤキャラクタ20に設定されたローカル座標系に従った座標値で格納されている。基準加速度332eは、基準制御点Qを基に軌道制御点Rを設定する際の基準となる基準加速度αpの値を格納している。移動速度設定データ332fは、例えば図14に一例を示した、最大加速度αmと移動速度Vとの関係を定めたデータであり、具体的にはグラフを表す関数式や、最大加速度αmと移動速度Vとの値を対応付けたデータテーブルである。衝突判定領域332gは、球形状の領域である衝突判定領域JAの半径rの値を格納している。ダメージ値332hは、対応する武器30が衝突したと判定された敵キャラクタ40に与えるダメージ値を格納している。
【0122】
次いで、発動モード制御部211は、設定した各基準制御点Qについて、算出された最大加速度αmを基に軌道制御点Rを設定する。即ち、プレーヤキャラクタ20の位置Ppから基準制御点Qに向かう直線上であって、位置Ppからの距離rが式(1)を満たす位置に、軌道制御点Rを設定する。但し、これらの基準制御点Qのうち、始点Q1と終点Qnについては、そのまま軌道制御点Rの始点R1及び終点Rnとする。
【0123】
そして、設定した各軌道制御点Rについて、所持武器の種類に該当する発動モード用武器データ332を参照し、当該軌道制御点Rを中心とする衝突判定領域JA内に敵キャラクタ40が位置するか否かを判定する。敵キャラクタ40が位置する場合、その敵キャラクタ40の位置に該軌道制御点Rを変更する。
【0124】
その後、設定した各軌道制御点Rに基づく所定の補間演算(例えば、スプライン補間)を行って、始点R1から各軌道制御点R1を通って終点Rnに至る移動軌道TR2を算出する。
【0125】
また、発動モード制御部211は、最大加速度αmを基に、所持武器の種類に該当する発動モード用武器データ332を参照して、武器30の分銅33の移動速度Vを決定する。
【0126】
算出された移動軌道TR2及び移動速度Vのデータは、発動モード用制御データ334に格納される。図24は、発動モード用制御データ334のデータ構成の一例を示す図である。同図によれば、発動モード用制御データ334は、軌道制御点334a毎に、その位置334bを対応付けて格納しているとともに、算出された移動軌道334cと、移動速度334dを格納している。位置334bは、ワールド座標系に従った座標値で格納されている。
【0127】
その後、発動モード制御部211は、プレーヤキャラクタ20及び武器30を制御する。即ち、プレーヤキャラクタ20に、判定した振り回し方向に応じた方向に右腕21を振り回す動作を行わせる。また、発動モード用制御データ334を参照し、武器30の分銅33を、算出された移動軌道TR2に沿って算出された移動速度Vで移動させる。また、分銅33の移動に伴って、プレーヤキャラクタ20の右手と分銅33とを接続する剣身32を制御する。
【0128】
そして、武器30と各敵キャラクタ40との衝突を判定する。具体的には、武器30の剣身32及び分銅33それぞれと、各敵キャラクタ40とが衝突するか否かの判定処理(ヒット判定)を行う。そして、所持武器の種類に対応する発動モード用武器データ332を参照し、衝突すると判定した敵キャラクタ40に対して、武器30の衝突した部分に応じたダメージを与える。即ち、敵キャラクタ40が武器30の分銅33と衝突した場合には、該発動モード用武器データ332で定められているダメージ値を与え、剣身32と衝突した場合には、上記ダメージ値より小さいダメージ値(例えば、武器30によるダメージ値の0.2倍)を与える。
【0129】
追従モード制御部212は、追従モードにおけるプレーヤキャラクタ20及び武器30を制御する。具体的には、随時、加速度センサ1306により検出される加速度αに基づいて、プレーヤキャラクタ20の武器30の振り回し動作を制御する。
【0130】
即ち、所定の単位フレーム時間(例えば、1/60秒)毎に、加速度センサ1306により検出される加速度αx,αy,αzを合成した加速度ベクトルαを算出し、右腕21の向きが、算出した加速度ベクトルαの方向に一致するように回転運動させる。
【0131】
検出された加速度αのデータは、検出加速度データ342に格納される。図25は、検出加速度データ342のデータ構成の一例を示す図である。同図によれば、検出加速度データ342は、加速度センサ1306により検出された加速度αx,αy,αzそれぞれと、加速度の大きさαとを格納している。
【0132】
次いで、追従モード制御部212は、単位フレーム時間毎のプレーヤキャラクタ20の右腕21の制御に伴う武器30の制御を行う。即ち、検出された現在の加速度αを基に、所持武器の種類に応じた追従モード用武器データ341を参照して、剣身32の始点Sから制御点Tまでの制御長L1を算出し、剣身32に制御点Tを設定する。この制御点Tを、単位フレーム時間後の制御点T1とする。そして、剣身32の始点Sから算出した制御長L1までの部分を、剣身32の延長方向に一致した硬直部分とする。
【0133】
図26は、追従モード用武器データ341のデータ構成の一例を示す図である。同図によれば、追従モード用武器データ341は、武器30の種類毎に生成され、該当する武器30の種類341aと、剣身32の長さ341bと、ダメージ値341cと、制御長設定データ341dとを格納している。ダメージ値341cは、該当する種類の武器30が衝突したと判定された敵キャラクタ40に与えるダメージ値を格納している。制御長設定データ341dは、例えば図16(b)に一例を示したように、加速度αと制御長L1との関係を定めたデータであり、武器30の種類毎に定められている剣身32の長さLや、分銅33の重さ、敵キャラクタ40に与えるダメージ値を決定する攻撃力(強さ)といったパラメータに基づいて、制御長L1の最大値L1mや閾値である加速度αsの値が異なるように定められている。また、この制御長設定データ341dは、図27ではグラフであるが、このグラフを表す関係式や、加速度αと制御長L1との値を対応付けたデータテーブルとしても良い。
【0134】
追従モード制御部212は、続いて、分銅33に設定されている現在の移動ベクトルU0を基に、単位フレーム時間後の分銅33の仮の位置(仮位置)K1´を算出する。そして、単位フレーム時間後の制御点T1の位置とこの仮位置K1´との間の距離Dを算出し、算出した距離Dと制御長L1との和「D+L1」と、剣身32の長さLとを比較する。そして、「D+L1」が剣身32の長さL以下であるならば、仮位置K1´を単位フレーム時間後の分銅33の位置(分銅位置)K1として設定する。また、現在の移動ベクトルU0を、そのまま、単位フレーム時間後の移動ベクトルU1として設定する。
【0135】
一方、「D+L1」が剣身32の長さLを超えるならば、現在の分銅位置K0と単位フレーム時間後の制御点T1の位置とを結ぶ直線上であって、制御点T1の位置からの距離が「L2(=L−L1)」である位置に、単位フレーム時間後の分銅の位置(分銅位置)K1を設定する。また、検出された加速度ベクトルαの所定倍(n倍)の大きさであって、分銅位置K1から制御点T1の位置に向かう作用ベクトルWを算出し、この作用ベクトルWと現在の移動ベクトルU0との和を、単位フレーム時間後の移動ベクトルU1として設定する。
【0136】
ここで、算出された各位置等のデータは、追従モード用制御データ343に格納される。図27は、追従モード用制御データ343のデータ構成の一例を示す図である。同図によれば、追従モード用制御データ343は、制御長343aと、剣身32の始点Sの位置343bと、制御点Tの位置343cと、分銅33の位置343dと、移動ベクトル343eとのそれぞれについて、現在の値及び単位フレーム時間後の値を格納している。
【0137】
図20において、画像生成部230は、ゲーム演算部210による演算結果に基づき、ゲーム画面を表示するためのゲーム画像を生成し、生成した画像の画像信号を画像表示部130に出力する。画像表示部130は、画像生成部230からの画像信号に基づいて、所定の単位時間間隔、例えば1/60秒毎に1フレームの画面を再描画しながらゲーム画面を表示する。この機能は、例えばCRT、LCD、ELD、PDP、HMD等のハードウェアによって実現される。図1では、ディスプレイ1202がこれに該当する。
【0138】
音生成部240は、ゲーム中に使用される効果音やBGM等のゲーム音を生成し、生成したゲーム音の音信号を音出力部140に出力する。音出力部140は、音生成部240からの音信号に基づいてBGMや効果音等のゲーム音声を出力する。この機能は、例えばスピーカ等によって実現される。図1では、スピーカ1204がこれに該当する。
【0139】
通信部150は、処理部200からの制御信号に従って通信回線に接続し、外部装置とのデータ通信を行う。この機能は、無線通信モジュール、有線用の通信ケーブルのジャックや制御回路などによって実現される。図1では、通信装置1112がこれに該当する。
【0140】
記憶部300は、処理部200にゲームシステム1を統合的に制御させるための諸機能を実現するためのシステムプログラムや、ゲームを実行させるために必要なプログラムやデータ等を記憶するとともに、処理部200の作業領域として用いられ、処理部200が各種プログラムに従って実行した演算結果や操作入力部110から入力される入力データ等を一時的に記憶する。この機能は、例えば各種ICメモリやハードディスク、CD−ROM、DVD、MO、RAM、VRAM等によって実現される。図1では、制御ユニット1110に搭載されたメモリがこれに該当する。本実施形態では、記憶部300は、プログラムとして、処理部200をゲーム演算部210として機能させるためのゲームプログラム310を記憶するとともに、データとして、操作モードデータ321と、所持武器種データ322と、キャラクタデータ323と、発動モード用データ群330と、追従モード用データ群340とを記憶する。
【0141】
キャラクタデータ323は、ゲームに登場するプレーヤキャラクタ20や敵キャラクタ40等の各種キャラクタに関するデータであり、現在の位置座標や能力値、所有アイテム(武器30を含む)、モーションデータ等を格納している。
【0142】
発動モード用データ群330は、発動モードで用いられるデータ群であり、方向判定テーブル331と、発動モード用武器データ332と、サンプリングデータ333と、発動モード用制御データ334とを含んでいる。追従モード用データ群340は、追従モードで用いられるデータ群であり、追従モード用武器データ341と、検出加速度データ342と、追従モード用制御データ343とを含んでいる。
【0143】
[処理の流れ]
図28は、本実施形態におけるゲーム処理の流れを説明するためのフローチャートである。この処理は、ゲーム演算部210がゲームプログラム310を実行することで実現される。同図によれば、ゲーム演算部210は、先ず、ゲームステージを設定し、プレーヤキャラクタ20や敵キャラクタ40等の各キャラクタを配置するゲーム空間の設定を行う(ステップA1)。次いで、操作入力部110からの入力指示に従って、プレーヤキャラクタ20が持つ武器30の種類の切り替えを行う(ステップA3)。また、操作入力部110からの入力指示に従って、プレーヤキャラクタ20の移動制御や、敵キャラクタ40を含む他の各キャラクタの制御を行う(ステップA5)。続いて、ゲーム演算部210は、現在の操作モードを判定する(ステップA7)。そして、判定した操作モードが「発動モード」ならば(ステップA9:「発動」)、発動モード制御部211が発動モード処理を行う(ステップA11)。
【0144】
図29は、発動モード処理の流れを説明するためのフローチャートである。同図によれば、発動モード制御部211は、加速度センサ1306から入力される加速度成分αzが、所定の閾値(例えば、「1.1G」)を超えたか否かを判断し、超えたならば(ステップB1:YES)、プレーヤキャラクタ20に、所定の武器30の振り上げ動作を開始させる(ステップB3)。次いで、スイング方向判定処理を行って、プレーヤ10により為されたゲームコントローラ1300のスイング方向を判定する(ステップB5)。
【0145】
図30は、スイング方向判定処理の流れを説明するためのフローチャートである。同図によれば、発動モード制御部211は、加速度センサ1306から入力される加速度αx,αy,αzを、所定時間間隔(例えば、フレーム時間間隔)で所定時間分の回数だけサンプリングする(ステップC1)。次いで、サンプリングした各加速度αx,αy,αzの平均値である平均加速度αxa,αya,αzaを算出する(ステップC3)。また、サンプリング毎に、各加速度αx,αy,αzを合成した加速度ベクトルの大きさである加速度αを算出し、これらの加速度αのうちの最大値である最大加速度αmを抽出する(ステップC5)。そして、方向判定テーブル331を参照して、算出した平均加速度αxa,αya,αzaを基に、為されたスイング方向を判定する(ステップC7)。以上の処理を行うと、スイング方向判定処理を終了する。
【0146】
スイング方向判定処理が終了すると、発動モード制御部211は、方向判定テーブル331を参照して、判定したスイング方向を基に、プレーヤキャラクタ20の武器30の振り回し方向を決定する(ステップB7)。続いて、移動軌道算出処理を行って、武器30の移動軌道TR2及び移動速度Vを算出する(ステップB9)。
【0147】
図31は、移動軌道算出処理の流れを説明するためのフローチャートである。同図によれば、発動モード制御部211は、所持武器の種類に対応する発動モード用武器データ332を参照して、判定した振り回し方向に応じた各基準制御点Qを、ゲーム空間に設定する(ステップD1)。このとき、プレーヤキャラクタ20を基準とした振り回し方向となるように、該プレーヤキャラクタ20の方向(向き)に合わせて各基準制御点Qを設定する。次いで、設定した各基準制御点Qについて、算出された最大加速度αmと、基準加速度αpとの比を基に、軌道制御点Rを設定する(ステップD3)。続いて、設定した各軌道制御点Rについて、衝突判定領域JA内に敵キャラクタが位置するか否かを判定し(ステップD5)、位置する場合、その敵キャラクタ40の位置に該軌道制御点Rを変更する(ステップD7)。その後、これらの各移動制御点Rに基づく補間演算を行なって移動軌道TR2を算出する(ステップD9)。また、最大加速度αmを基に、移動速度Vを算出する(ステップD11)。以上の処理を行うと、移動軌道算出処理を終了する。
【0148】
移動軌道算出処理が終了すると、発動モード制御部211は、プレーヤキャラクタ20に、決定された振り回し方向への武器30の振り回しを開始させる(ステップB11)。また、算出した移動軌道TR2に沿って算出した移動速度Vで、武器30の分銅33の移動制御を開始する(ステップB13)。以上の処理を行うと、発動モード処理を終了する。
【0149】
図29において、発動モード処理が終了すると、ゲーム演算部210は、武器30と各敵キャラクタ40との衝突を判定し(ステップA13)、この衝突判定結果に応じて各敵キャラクタ40にダメージを与える(ステップA15)。次いで、プレーヤキャラクタ20の振り回し動作制御及び武器30の移動制御がともに終了したか否かを判断し、終了していないならば(ステップA17:NO)、ステップA13に戻る。
【0150】
図32は、追従モード処理の流れを説明するためのフローチャートである。同図によれば、追従モード制御部212は、加速度センサ1306から入力される加速度αx,αy,αzを取り込み(ステップE1)、取り込んだ加速度αx,αy,αzの合成した加速度ベクトルαを算出する(ステップE3)。次いで、プレーヤキャラクタ20の右腕を、算出した加速度αの向きに一致するように制御する(ステップE5)。
【0151】
続いて、算出した加速度ベクトルαの大きさである加速度αを基に、所持武器の種類に対応する追従モード用武器データ341を参照して制御長L1を算出し(ステップE7)、剣身32の始点Sからの長さが算出した制御長L1である位置に、単位フレーム時間後の制御点T1を設定する(ステップE9)。そして、剣身32の始点Sから制御点T1までの部分を、剣身32の延長方向に一致させて真っ直ぐに硬直させた状態とする(ステップE11)。
【0152】
また、現在の移動ベクトルU0に基づいて分銅33を移動させた場合の、単位フレーム時間後の分銅33の仮位置K1´を算出し(ステップE13)、紐の始点S1の位置とこの仮位置K1´との間の距離Dを算出する(ステップE15)。そして、算出した距離Dと制御長L1との和「D+L1」と、剣身32の長さLとを比較する。
【0153】
その結果、「D+L1」が剣身32の長さL以下ならば(ステップE17:YES)、仮位置K1´を、単位フレーム時間後の分銅位置K1として設定し(ステップE19)、また、現在の移動ベクトルU0を、そのまま、単位フレーム時間後の移動ベクトルU1として設定する(ステップE21)。
【0154】
一方、「D+L1」が剣身32の長さLより長いならば(ステップE17:NO)、現在の分銅位置K0と単位フレーム時間後の制御点T1とを結ぶ直線上であって、制御点T1の位置からの距離が「L−L1」の位置を、単位フレーム時間後の分銅位置K1として設定する(ステップE23)。次いで、向きが分銅位置K1から剣身32の始点S1の位置に向かう向きで、大きさが加速度αの所定倍(n倍)の大きさである作用ベクトルWを算出し(ステップE25)、算出した作用ベクトルWと現在の移動ベクトルU0との和を、単位フレーム時間後の移動ベクトルU1として設定する(ステップE27)。
【0155】
その後、追従モード制御部212は、分銅33を、設定した単位フレーム時間後の分銅位置K1に配置するとともに、剣身32の始点Sと分銅位置K1との間の距離に応じて、剣身32の隣接する各刃間の角度が所定角度以内となるように制御して、剣身32を適当にしならせた状態とする(ステップE29)。以上の処理を行うと、追従モード制御部212は、追従モード処理を終了する。
【0156】
図29において、追従モード処理が終了すると、ゲーム演算部210は、武器30と各敵キャラクタ40との衝突を判定し(ステップA23)、この衝突判定結果に応じて各敵キャラクタ40にダメージを与える(ステップA25)。
【0157】
その後、ゲーム演算部210は、ゲームを終了するか否かを判断し、終了しないならば(ステップA27:NO)、ステップA3に戻り、ゲームを終了するならば(ステップA27:YES)、ゲーム処理を終了する。
【0158】
[作用・効果]
このように、本実施形態によれば、ゲームコントローラ1300を振る操作に応じてプレーヤキャラクタ20を武器30を振り回すといった新たなゲーム操作が実現される。操作モードには、「発動モード」及び「追従モード」の二種類があり、操作ボタン1302を押下しているか否かによって切り替えられる。
【0159】
「発動モード」では、予め定められた複数種類のスイング操作のうち、何れかのスイング操作を行うと、プレーヤキャラクタ20が、行ったスイング操作に対応付けられている振り回し動作を開始する。即ち、ゲームコントローラ1300に内蔵された加速度センサ1306で検出された加速度αの値を基になされたスイング操作の操作方向(スイング方向)が判定され、更にプレーヤキャラクタ20の武器30の振り回し方向が決定される。次いで、決定した振り回し方向に合わせて武器30の分銅33の移動軌道TR2及び移動速度Vが決定され、武器30の分銅33が、決定した移動軌道TR2に沿って決定した移動速度Vで移動制御される。また、「追従モード」では、プレーヤキャラクタ20が、随時、ゲームコントローラ1300の操作に追従した動作を行う。即ち、随時、加速度センサ1306により検出された加速度αを基にプレーヤキャラクタ20の右腕21が制御され、この右腕21の動きに追従して武器30の分銅33が移動制御される。
【0160】
このように、ゲームコントローラ1300を動かす操作が同じであっても、操作モードが異なるとプレーヤキャラクタ20の制御方法が異なり、従ってプレーヤキャラクタ20の動作が異なる。そして、プレーヤは、操作ボタン1302を押下するか否かに応じて、所望の操作モードに簡単に切り替えることができる。このため、加速度センサ1306を内蔵したゲームコントローラ1300を用いたゲーム操作の興趣性の向上が実現される。
【0161】
[変形例]
尚、本発明の適用可能な実施形態は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更可能なのは勿論である。
【0162】
(A)操作モードの切り替え
例えば、上述の実施形態では、1つの操作ボタン1302が押下されている状態であるか否かによって操作モードを選択することにしたが、これを、次の方法によって実現しても良い。
【0163】
(A−1)操作ボタン1302の押下
例えば、操作ボタン1302を押下する度に操作モードを切り替えるようにしても良い。具体的には、現在の操作モードが「発動モード」である場合、操作ボタン1302を1回押下することで、「発動モード」から「追従モード」に切り替わる。次いで、再度操作ボタン1302を押下すると、「追従モード」から「発動モード」に切り替わる。このようにすることで、操作ボタン1302を押しっぱなしにする必要が無く、操作性がより向上する。
【0164】
(A−2)ゲームコントローラ1300の姿勢
また、ゲームコントローラ1300の姿勢に応じて切り替えることにしても良い。具体的には、予め、操作モードそれぞれにゲームコントローラ1300の異なる姿勢を対応付けておく。そして、加速度センサ1306により検出される加速度αx,αy,αzを基にゲームコントローラ1300の姿勢を判断し、判断した姿勢が定められた姿勢である場合、該姿勢に対応する操作モードに切り替える。例えば、「発動モード」に、ゲームコントローラ1300の先端部1312を上方に向けて長手方向が鉛直方向に沿った姿勢を対応付けるとともに、「追従モード」には、ゲームコントローラ1300の先端部1312を下方に向けて長手方向が鉛直方向に沿った姿勢を対応付けておく。ゲームコントローラ1300を前者の姿勢で静止させた場合、加速度センサ1306により検出される加速度α、αx,αzは、加速度αzがほぼ「1.0G」であり、加速度αx,αyはほぼゼロ(0)となる。また、ゲームコントローラ1300を後者の姿勢で静止させた場合、加速度センサ1306により検出される加速度α、αx,αzは、加速度αzはほぼ「−1.0G」であり、加速度αx,αyはほぼゼロ(0)となる。従って、検出された加速度αx,αy,αzが、所定時間の間上記の値である場合、操作モードの選択操作がなされたと判断して、対応する操作モードに切り替える。
【0165】
(A−3)操作ボタン1302と加速度センサ1306との組み合わせ
また、ゲームコントローラ1300が有する各操作ボタン及び加速度センサ1306により検出される各加速度αx,αy,αzの組み合わせに応じて切り替えることにしても良い。具体的には、ゲームコントローラ1300は複数の操作ボタンを有することとし、これら各操作ボタンの押下操作と、加速度センサ1306により検出される各加速度αx,αy,αzとの組み合わせそれぞれに、操作モードを対応付けておく。そして、これらの組み合わせの操作がなされた場合、対応する操作モードに切り替える。例えば、「AボタンとBボタンを同時に押下」に一方の操作モードを対応付け、「ゲームコントローラ1300の先端部1312を鉛直下向きとした姿勢でAボタンを押下」に他方の操作モードを対応付ける。
【0166】
(A−4)
更に、操作ボタン1302の押し込み量や押し込み圧を検出可能に構成して、該操作ボタン1302の押下操作そのものに応じて操作モードを切り替えるとしてもよい。例えば、強い押下或いは深い押下には一方の操作モード、軽い押下或いは浅い押下には他方の操作モードといったように、操作条件と操作モードとを対応付けておく。そして、なされた操作ボタン1302の押し込み量や押し込み圧に対応する操作モードに切り替える。
【0167】
(B)検出された加速度の補正
また、加速度センサ1306により検出された加速度αx,αy,αzを補正することにしても良い。具体的には、例えばゲームコントローラ1300における所定の操作(例えば、十字キー1304や不図示の他の操作ボタンの押下)がなされた場合、検出された加速度αx,αy,αzそれぞれの値を所定倍(例えば、「1.5倍」や「0.8倍」)することにしても良い。
【0168】
更に、この加速度αの補正と操作モードの選択とを組み合わせることにしても良い。具体的には、操作モードそれぞれと、加速度αの補正の有無との組み合わせそれぞれに、ゲームコントローラ1300が有する複数の操作ボタンそれぞれを対応付けておく。そして、押下操作がなされたボタンに対応する操作モードに切り替えるとともに、加速度αの補正を行う/行わないを決定する。例えば、十字キー1304の「右」に「発動モードで加速度αの補正有り」を対応付け、「左」に「発動モードで加速度αの補正無し」を対応付け、「上」に「追従モードで加速度αの補正有り」を対応付け、「下」に「追従モードで加速度αの補正無し」を対応付ける。
【0169】
(C)ゲームコントローラ1300
(C−1)スピーカ
また、ゲームコントローラ1300は、スピーカを内蔵することにしても良い。そして、このスピーカから、操作モードに応じた音を出力する。具体的には、予め、操作モードそれぞれに異なる報知音を対応付けておく。そして、例えば操作モードが切り替えられた場合、切り替え後の操作モードに対応する報知音を出力する。ここで、「音」には、「音程」、「音量」及び「音質」の3つの音要素が含まれる。そこで、操作モードそれぞれには、これらの音要素のうち、1つ或いは2つが異なる報知音を対応付けることが望ましい。
【0170】
また、スピーカから、加速度センサ1306から検出された加速度αの大きさに応じた音を出力することにしても良い。この場合、例えば加速度αの大きさに応じて、上述の音要素のうち1つ或いは2つの音要素を徐々に変化させた音を出力する。更にこの場合、検出された加速度αの大きさ及び現在の操作モードの組み合わせに応じた音を出力しても良い。このとき、例えば加速度αの大きさに応じて上述の音要素のうち1つ或いは2つの音要素を徐々に変化させるとともに、残りの1つ或いは2つの音要素が現在の操作モードに応じた音を出力させる。例えば、加速度αの大きさに応じて音量(音の大きさ)を可変して出力し、更に、操作モードに応じて音程(音の高さ)を可変にする。
【0171】
また、加速度センサ1306により検出された加速度αの大きさが、正常なスイング操作により検出され得る加速度αの大きさを超える場合、振りが強すぎる旨をプレーヤに報知するための警告音を出力することにしても良い。
【0172】
(C−2)バイブレータ
また、ゲームコントローラ1300は、バイブレータを内蔵することにしても良い。そして、このバイブレータを、操作モードに応じた振動パターンで振動させる。具体的には、予め、操作モードそれぞれに異なる振動パターンを対応付けておく。そして、例えば操作モードが切り替えられた場合、切り替え後の操作モードに対応する振動パターンでバイブレータを振動させる。
【0173】
また、加速度センサ1306から検出された加速度αの大きさに応じた振動パターンでバイブレータを振動させることにしても良い。この場合、例えば加速度αの大きさに応じて振動の回数や間隔を徐々に変化させた振動パターンとする。更に、検出された加速度αの大きさ及び現在の操作モードの組み合わせに応じた振動パターンで振動させることにしても良い。
【0174】
また、加速度センサ1306により検出された加速度αの大きさが、正常なスイング操作により検出され得る加速度αの大きさを超える場合、振りが強すぎる旨をプレーヤに報知するための警告用の振動パターンで振動させることにしても良い。
【0175】
(D)警告
また、ゲームコントローラ1300を強く振りすぎた場合に、警告を行うことにしても良い。具体的には、加速度センサ1306により検出された加速度αの大きさが、所定の大きさ(閾値)以上の場合に、振りが強すぎる旨のメッセージをディスプレイ1202に表示する。また、内蔵するスピーカから、振りが強すぎる旨をプレーヤに報知するための所定の警告音を出力することにしても良いし、内蔵するバイブレータを、警告用の所定の振動パターンで振動させることにしても良い。
【0176】
(E)発動モード
また、発動モードにおいて次のようにしても良い。
(E−1)軌道制御点R
例えば、ゲーム空間に設定した軌道制御点Rをプレーヤに知らせるようにしても良い。
具体的には、各軌道制御点Rの位置に、目印となる所定の目印体(オブジェクト)を配置する。従って、分銅34は、これらの目印体を通過するように移動することになる。勿論、この目印体は、武器30の剣身32や分銅33といった他のオブジェクトに影響を与えない。
【0177】
また、軌道制御点Rの位置を、プレーヤの指示操作によって可変することにしても良い。具体的には、上述の実施形態では、各軌道制御点Rの位置は、プレーヤキャラクタ20の位置Ppからの距離rが、上述の式(1)で与えられる距離rとなる位置に設定されることにしたが、これを、位置Ppからの距離rが、式(1)で算出される距離rに所定の係数kを乗じた距離r´(=r×k)となる位置に設定されることにする。そして、この係数kを、ゲームコントローラ1300における所定の操作(例えば、十字キー1304や不図示の他の操作ボタンの押下)に応じて変更する。例えば、操作ボタン1302が押下されていない状態でスイング操作が検知された場合には係数kを「1.0」とし、押下されている状態でスイング操作が検知された場合には係数kを「1.5」とする。
【0178】
(E−2)スイング操作の判定
また、スイング操作の操作方向を判定するための加速度αの閾値を、プレーヤの指示操作によって可変することにしても良い。具体的には、図22に示した方向判定テーブル331において加速度条件として定められる平均加速度αx,αyの閾値(同図では、αxは「0.9G」、αyは「0.0」)を、ゲームコントローラ1300における所定の操作(例えば、操作ボタン1302の押下)に応じて変更する。例えば、操作ボタン1302が押下されていない状態では、方向判定テーブル321で定められる閾値そのものとし、押下されている状態では、この閾値を増減(例えば、「1.2倍」や「0.8倍」)する。
【0179】
(E−3)プレーヤの利き手
また、上述の実施形態では、プレーヤ10は右手でゲームコントローラ1300を把持することとして説明したが、左右どちらの手で把持するかをプレーヤが設定可能としても良い。具体的には、「発動モード」における方向判定テーブル331として、図22に一例を示した右手用に加えて、更に左手用も用意しておく。そして、例えばゲームの開始前に、プレーヤが右手及び左手の何れかの手で把持するかを入力設定し、この入力設定された方の方向判定テーブル331を用いてなされたスイング操作の操作方向を判定する。
【0180】
(F)追従モード
また、追従モードにおいて次のようにしても良い。
例えば、上述の実施形態では、検出された加速度αを基に制御長L1を決定することで、剣身32に制御点Tを設定することにしたが、これを、次のように可変して設定することにしても良い。
【0181】
(a)プレーヤの指示操作
例えば、プレーヤの指示操作に従って可変する。具体的には、予め、例えば始点Pの位置や分銅33との接続位置、剣身32の全長を二分する位置といったように、剣身32の制御点Tの候補位置を定めておく。そして、ゲームコントローラ1300における所定の操作(例えば、操作ボタン1302の押下)に応じた候補位置に制御点Tを設定する。例えば、操作ボタン1302の押下操作がなされていない状態では、制御点Tを、剣身32の始点Pの位置に設定し、押下操作がなされている状態では、剣身32の分銅33との接続位置に設定する。即ち、操作ボタン1302の押下操作により、剣身32の硬直部分が切り替えられる。
【0182】
(b)プレーヤキャラクタ20のパラメータ
また、プレーヤキャラクタ20のパラメータに応じて可変することにしても良い。具体的には、プレーヤキャラクタ20の経験値やレベル、所持アイテム、対戦した敵キャラクタの種類や数といった、ゲームの進行に伴って変更し得るパラメータの値に応じて、武器30の剣身32に制御点Tを設定する。例えば、経験値やレベルが高いほど、剣身32の分銅33寄りの位置(剣先に近い位置)に制御点Tを設定する。
【0183】
(c)武器30の位置
また、武器30の位置に応じて可変することにしても良い。具体的には、例えば分銅33の位置の地表面からの高さが高いほど、制御点Tを剣身32の始点P寄りの位置に設定するといったように、ゲーム空間における分銅33の位置に応じて設定する。また、分銅33がプレーヤキャラクタ20の前方又は後方に位置している場合には、制御点Tを剣身32の分銅33寄りの位置に設定し、右方又は左方に位置している場合に、始点P寄りの位置に設定する、或いは、分銅33とプレーヤキャラクタ20との間の距離が長いほど、制御点Tを剣身32の分銅33寄りの位置に設定するといったように、分銅33とプレーヤキャラクタ20との相対的な位置関係に応じて設定しても良い。
【0184】
(d)武器30の移動速度
また、武器30の移動速度に応じて可変することにしても良い。具体的には、分銅33の移動速度を決定する移動ベクトルUの大きさが小さい、即ち分銅33の移動速度が遅いほど、制御点Tを分銅33との接続位置寄りの位置に設定し、剣身23の硬直部分を長くして操作の追従性を向上させる。
【0185】
(G)右腕21の長さ
また、プレーヤキャラクタ20の右腕21の長さを、例えば検出された加速度αに応じて可変することにしても良い。例えば、加速度αが大きくなるに従って、右腕21の長さを徐々に長くする。この場合、剣身32の長さLは固定としても良いし、或いは、更に剣身32の長さLも可変することにしても良い。
【0186】
(H)武器30
(H−1)パラメータ
例えば、武器30の剣身32の長さLや、分銅33の重さ、敵キャラクタ40に与えるダメージ値を決定する攻撃力(強さ)といった武器30のパラメータを可変することにしても良い。具体的には、例えば検出された加速度αや、プレーヤキャラクタ20のレベルやこれまでの使用期間といったゲームの進行状況に基づいて可変する。ここで、剣身32の長さLを可変する場合、剣身32を構成する各刃の繋ぎ目の間隔を調整することが望ましい。但し、長さLの可変量がある程度以上に大きく或いは小さくなる場合には、剣身32を構成する刃の数を増やす或いは減少させることにしても良い。または、刃の長さを、所定の最大長まで長くする、或いは最小長まで短くすることにしても良い。
【0187】
(H−2)形状
また、上述の実施形態では、武器30を「蛇腹剣」を模したものとしたが、他の武器であっても良い。例えば、接続体である紐状体の一端にある程度の大きさの移動体を取り付けた「ヨーヨー」を模した形状としても良い。このとき、この紐状体をゴム紐やばね等の弾性体としても良い。また、接続体である鎖の先端に分銅を取り付けた形状としても良い。即ち、武器30は、振り回すことで敵キャラクタ40に衝突させて攻撃する構成であれば、何れでも構わない。また、接続体を不可視としても良い。更に、武器30は、例えば「ブーメラン」を模した武器のように、接続体を有さずに移動体のみで構成され、移動体がプレーヤキャラクタ20に接続されていなくとも良い。
【0188】
また、武器30は、図33に示すように、分銅33を有さず、剣柄31と剣身32とから構成される形状としても良い。この場合、剣身32を構成する蛇腹状に接続された複数の刃34のうち、剣先に相当する刃34aを、分銅33に代わる移動体であるとして上述の実施形態と同様の制御を行う。更に、同図に示す武器30が敵キャラクタ40に衝突した場合、剣身32を構成する複数の刃34のうち、何れが衝突したかに応じて、その敵キャラクタ40に与えるダメージ値を可変することにしても良い。
【0189】
また、武器30を、剣身32の剣先に取り付けられている分銅33を剣身32から切り離して発射可能な構成としても良い。具体的には、ゲームコントローラ1300における所定の操作(例えば、操作ボタン1302の押下操作)がなされると、剣身32から分銅33を切り離し、分銅33を発射するように独立して移動制御する。またこの場合、ゲーム空間において分銅33がプレーヤキャラクタ20の周囲を周回した回数に応じて、切り離し後の分銅33の移動速度を制御することにしても良い。例えば、周回回数が多いほど、切り離し後の分銅33の移動速度を速くする。
【0190】
(I)ゲームの種類
また、上述の実施形態では、対戦格闘ゲームに適用した場合を説明したが、他のゲームにも適用可能である。他のゲームでは、武器ではなく、プレーヤキャラクタが振り回して使用する種々の器具に本発明を適用する。
【0191】
例えば、城壁を登る場面で使用される、ロープ(接続体)の先端に鉤部(移動体)が接続された道具(器具)に本発明を適用する。即ち、ロープを振り回し、所定の投擲指示操作を行うことで先端の鉤部が投げられ(発射され)、鉤部が城壁の上部に引っ掛けるように使用されるが、この場合、ゲーム空間において鉤部がプレーヤキャラクタの周囲を周回した回数に応じて、投げられた鉤部の飛距離を決定することにしても良い。例えば、周回回数が多いほど、飛距離を長くする。また、類似した器具として、先端部がリング状に形成されたロープを投げて他キャラクタを捕える武器についても、同様に適用することが可能である。
【図面の簡単な説明】
【0192】
【図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】発動モード用制御データのデータ構成例。
【図25】検出加速度データのデータ構成例。
【図26】追従モード用武器データのデータ構成例。
【図27】追従モード用制御データのデータ構成例。
【図28】ゲーム処理の流れ図。
【図29】ゲーム処理中に実行される発動モード処理の流れ図。
【図30】発動モード処理中に実行されるスイング方向判定処理の流れ図。
【図31】発動モード処理中に実行される移動軌道算出処理の流れ図。
【図32】ゲーム処理中に実行される追従モード処理の流れ図。
【図33】武器の変形例
【符号の説明】
【0193】
1 ゲームシステム
110 操作入力部
1306 加速度センサ
200 処理部
210 ゲーム演算部
211 発動モード制御部
212 追従モード制御部
300 記憶部
310 ゲームプログラム
321 操作モードデータ
322 所持武器種類データ
323 キャラクタデータ
330 発動モード用データ群
331 方向判定テーブル
332 発動モード用武器データ
333 サンプリングデータ
334 発動モード用制御データ
340 追従モード用データ群
341 追従モード用武器データ
342 検出加速度データ
343 追従モード用制御データ

【特許請求の範囲】
【請求項1】
コンピュータに所定のゲームを実行させるためのプログラムであって、
加速度検出器を内蔵するとともに操作ボタンを備えたゲームコントローラに対してなされた操作に基づいて、少なくとも第1及び第2の操作モードの中から択一的に操作モードを選択する操作モード選択手段、
前記操作モード選択手段により第1の操作モードが選択された場合に、前記加速度検出器により検出された加速度に基づく第1の制御方法で操作対象物を制御する第1の操作制御手段、
前記操作モード選択手段により第2の操作モードが選択された場合に、前記加速度検出器により検出された加速度に基づく前記第1の制御方法とは異なる第2の制御方法で前記操作対象物を制御する第2の操作制御手段、
として前記コンピュータを機能させるためのプログラム。
【請求項2】
前記ゲームコントローラは前記操作ボタンを複数備え、
前記加速度検出器は複数方向の加速度検出可能であり、
前記操作モード選択手段が、前記複数の操作ボタン及び前記加速度検出器の検出可能な複数方向の組合せのうち、予め定められた前記各操作モードに対応する組合せの操作が為されたか否かに基づいて、操作モードを選択するように前記コンピュータを機能させるための請求項1に記載のプログラム。
【請求項3】
前記ゲームコントローラは前記操作ボタンの押下量又は押圧を検出する検出器を備え、
前記操作モード選択手段が、更に、予め定められた前記検出器により検出される押下量又は押圧に基づく操作モードの選択条件に従って、前記検出器により検出された押下量又は押圧に対応する操作モードを選択するように前記コンピュータを機能させるための請求項1又は2に記載のプログラム。
【請求項4】
前記操作モード選択手段が、前記ゲームコントローラの前記操作ボタンが押下操作されているか否かに応じて、前記第1又は第2の操作モードを選択するように前記コンピュータを機能させるための請求項1に記載のプログラム。
【請求項5】
前記操作ボタンが押下操作されている場合に、前記加速度検出器により検出される加速度を補正する加速度補正手段として前記コンピュータを機能させるための請求項1又は4に記載のプログラム。
【請求項6】
前記加速度補正手段が、前記操作ボタンが押下操作されている場合に、前記加速度検出器により検出される加速度を大きくするように補正する、ように前記コンピュータを機能させるための請求項5に記載のプログラム。
【請求項7】
前記ゲームコントローラにはスピーカが内蔵されており、
前記操作モード選択手段により選択された操作モードに応じて異なる音を前記ゲームコントローラの前記スピーカから出力させる音出力制御手段として前記コンピュータを機能させるための請求項1〜6の何れか一項に記載のプログラム。
【請求項8】
前記音出力制御手段が、音程、音量及び音質の音要素の内の1つ又は2つが前記加速度検出器により検出された加速度に応じて異なる音であって、残余の1つ又は2つの音要素が前記操作モード選択手段により選択された操作モードに応じて異なる音を、前記加速度検出器による検出に応じて出力させる加速度対応音出力制御手段を有するように前記コンピュータを機能させるための請求項7に記載のプログラム。
【請求項9】
前記音出力制御手段が、前記操作モード選択手段により新たに選択された操作モードが直前に選択された操作モードと異なった時に、当該新たに選択された操作モードに応じた音を出力させるモード切替時音出力制御手段を有するように前記コンピュータを機能させるための請求項7又は8に記載のプログラム。
【請求項10】
前記ゲームコントローラにはバイブレータが内蔵されており、
前記操作モード選択手段により新たに選択された操作モードが直前に選択された操作モードと異なった時に、前記バイブレータを振動させるモード切替時振動制御手段として前記コンピュータを機能させるための請求項1〜9の何れか一項に記載のプログラム。
【請求項11】
前記第1の操作制御手段が、
前記加速度検出器の検出結果が予め定められた動作制御発動条件を満たしたことを検出する条件満足検出手段と、
前記条件満足検出手段による検出に応じて、予め定められた制御内容による前記操作対象物の制御を開始する制御発動手段と、
を有するように前記コンピュータを機能させるための請求項1〜10の何れか一項に記載のプログラム。
【請求項12】
前記操作対象物の複数の制御内容ごとに前記動作制御発動条件が予め定められており、
前記条件満足検出手段が、前記加速度検出器の検出結果が前記複数の動作制御発動条件のうちの何れかを満足したことを検出し、
前記制御発動手段が、前記条件満足検出手段による検出に応じて、当該検出された満足する動作制御発動条件に対応する制御内容による前記操作対象物の制御を開始する、
ように前記コンピュータを機能させるための請求項11に記載のプログラム。
【請求項13】
前記制御発動手段が、前記操作対象物の制御として、当該操作対象物であるプレーヤキャラクタが所持する所定の移動体を移動開始させるように、当該プレーヤキャラクタを制御する、
ように前記コンピュータを機能させるための請求項11又は12に記載のプログラム。
【請求項14】
前記第2の操作制御手段が、
前記加速度検出器による現在の検出値に応じて制御動作を決定づける制御パラメータの値を随時算出する制御パラメータ値算出手段と、
前記制御パラメータ値算出手段により随時算出される制御パラメータの値に基づいて前記操作対象物の動作を随時制御する操作対象物随時制御手段と、
を有するように前記コンピュータを機能させるための請求項1〜13の何れか一項に記載のプログラム。
【請求項15】
前記制御パラメータの値には、少なくとも前記操作対象物の動作方向を示す値が含まれ、
前記制御パラメータ値算出手段が、前記加速度検出器による現在の検出値に応じて前記操作対象物の動作方向を示す値を随時算出し、
前記操作対象物随時制御手段が、前記制御パラメータ値算出手段により随時算出される動作方向を示す値に基づいて前記操作対象物の動作方向を随時可変に制御する、
ように前記コンピュータを機能させるための請求項14に記載のプログラム。
【請求項16】
前記ゲーム空間中に、移動体と、回転運動可能な腕部と、前記移動体と前記腕部とを接続する接続体とを有する前記操作対象物であるプレーヤキャラクタを配置する配置手段として前記コンピュータを機能させ、
前記操作対象物随時制御手段が、
前記操作対象物の随時制御として、前記プレーヤキャラクタの腕部の回転運動を随時制御する腕部制御手段と、
前記接続体を介して前記腕部制御手段による腕部の回転運動に従動するように前記移動体を随時移動させる移動体制御手段と、
を有するように前記コンピュータを機能させる、
ための請求項14又は15に記載のプログラム。
【請求項17】
請求項1〜16の何れか一項に記載のプログラムを記憶したコンピュータ読取可能な情報記憶媒体。
【請求項18】
加速度検出器を内蔵するとともに操作ボタンを備えたゲームコントローラと、
前記ゲームコントローラに対してなされた操作に基づいて、少なくとも第1及び第2の操作モードの中から択一的に操作モードを選択する操作モード選択手段と、
前記操作モード選択手段により第1の操作モードが選択された場合に、前記加速度検出器により検出された加速度に基づく第1の制御方法で操作対象物を制御する第1の操作制御手段と、
前記操作モード選択手段により第2の操作モードが選択された場合に、前記加速度検出器により検出された加速度に基づく前記第1の制御方法とは異なる第2の制御方法で前記操作対象物を制御する第2の操作制御手段と、
を備えたゲーム装置。

【図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

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate


【公開番号】特開2008−136697(P2008−136697A)
【公開日】平成20年6月19日(2008.6.19)
【国際特許分類】
【出願番号】特願2006−326381(P2006−326381)
【出願日】平成18年12月1日(2006.12.1)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】