(57)【要約】  加速度計を含む手動操作機器を動かすことによる振りの衝撃の時期および／または強度を検知するためのシステムおよび方法の一例を提供する。オブジェクトをたたくシミュレーションを行う時期およびその大きさは、手動操作機器の動きに応じた１つ以上の加速度計からの出力に基づいて決定される。聴覚的、視覚的、および触覚的な出力の少なくとも１つを用いて、前述の決定されたたたくシミュレーションの時期およびたたくシミュレーションの大きさに応じてオブジェクトをたたくシミュレーションを行う。
2009536765.tif 000002
【特許請求の範囲】
【請求項１】
加速度検出手段を含む手動操作機器の動きに基づいて、オブジェクトをたたくシミュレーションを行う方法であって、
前記手動操作機器の動きの結果として生じる第１加速度検出手段の出力に基づいて、前記オブジェクトをたたくシミュレーションの時期を決定し、
前記手動操作機器の動きの結果として生じる第２加速度検出手段の出力に基づいて、前記オブジェクトをたたくシミュレーションの大きさを決定し、
聴覚的、視覚的、および触覚的な出力の少なくとも１つを用いて、前記決定されたたたくシミュレーションの時期とたたくシミュレーションの大きさとに応じてオブジェクトをたたくシミュレーションを行う方法。
【請求項２】
前記加速度検出手段は、多軸加速度検出手段を含み、
前記第１および第２の加速度検出手段の出力は、前記多軸速度検出手段の異なる軸に対応する、請求項１に記載の方法。
【請求項３】
前記加速度検出手段は、第１および第２の異なる加速度計を含み、
前記第１および第２の加速度検出手段の出力は、前記第１および第２の加速度計からそれぞれ行われる、請求項１に記載の方法。
【請求項４】
前記第１加速度検出手段の出力は、前記手動操作機器の動きの結果として生じる下方向の加速度を示し、
前記第２加速度検出手段の出力は、前記手動操作機器の動きの結果として生じる求心加速度を示す、請求項１に記載の方法。
【請求項５】
前記たたくシミュレーションの時期は、前記第１加速度検出手段の出力が規定値を超えて極大値に達した時点として決定される、請求項１に記載の方法。
【請求項６】
前記規定値は、約１．６Ｇである、請求項５に記載の方法。
【請求項７】
前記たたくシミュレーションの大きさは、前記第２加速度検出手段の出力の積分演算に基づいて決定される、請求項１に記載の方法。
【請求項８】
搬送波に含まれ、プロセッサによって実行された際に、加速度検出手段を含む手動操作機器の動きに基づいてオブジェクトをたたくシミュレーションを行う方法をプロセッサに実行させる一連の指示を表すデータ信号であって、
前記方法は、
前記手動操作機器の動きの結果として生じる前記第１加速度検出手段の出力に基づいて、前記オブジェクトをたたくシミュレーションの時期を決定し、
前記手動操作機器の動きの結果として生じる前記第２加速度検出手段の出力に基づいて、前記オブジェクトをたたくシミュレーションの大きさを決定し、
聴覚的、視覚的、および触覚的な出力の少なくとも１つを用いて、前記決定されたたたくシミュレーションの時期とたたくシミュレーションの大きさとに応じてオブジェクトをたたくシミュレーションを行うことからなる、データ信号。
【請求項９】
実行されると、加速度検出手段を含む手動操作機器の動きに基づいて、オブジェクトをたたくシミュレーションを行う方法をプロセッサに実行させるコンピュータプログラムコードを含む、コンピュータ読み取り可能な媒体であって、
前記方法は、
第１加速度検出手段の出力に基づいて、前記オブジェクトをたたくシミュレーションの時期を決定し、
第２加速度検出手段の出力に基づいて、前記オブジェクトをたたくシミュレーションの大きさを決定し、
聴覚的、視覚的、および触覚的な出力の少なくとも１つを用いて、前記決定されたたたくシミュレーションの時期とたたくシミュレーションの大きさとに応じて前記オブジェクトをたたくシミュレーションを行うことからなる、コンピュータ読み取り可能な媒体。
【請求項１０】
前記コンピュータプログラムコードは、ビデオゲームプログラムの一部である、請求項９に記載のコンピュータ読み取り可能な媒体。
【請求項１１】
光ディスクからなる、請求項９に記載のコンピュータ読み取り可能な媒体。
【請求項１２】
加速度検出手段を含む手動操作機器の動きに基づいて、ドラムをたたくシミュレーションを行う方法であって、
前記手動操作機器の動きの結果として生じる第１加速度検出手段の出力に基づいて、前記ドラムをたたくシミュレーションの時期を決定し、
前記手動操作機器の動きによる第２加速度検出手段の出力に基づいて、前記ドラムをたたくシミュレーションの大きさを決定し、
前記決定されたたたくシミュレーションの時期およびたたくシミュレーションの大きさに応じて聴覚的にドラムをたたくシミュレーションを行う方法。
【請求項１３】
実行されると、請求項１２に記載のドラムをたたくシミュレーションを行う方法をプロセッサに実行させるコンピュータプログラムコードを含む、コンピュータ読み取り可能な媒体。
【請求項１４】
前記コンピュータプログラムコードは、ビデオゲームプログラムの一部である、請求項１３に記載のコンピュータ読み取り可能な媒体。
【請求項１５】
光ディスクからなる、請求項１３に記載のコンピュータ読み取り可能な媒体。
【請求項１６】
第１および第２加速度検出手段をそれぞれ含む第１および第２の手動操作機器の動きに基づいて、ドラムをたたくシミュレーションを行う方法であって、
前記第１の手動操作機器の動きの結果として生じる前記第１加速度検出手段の第１出力に基づいて、第１ドラムをたたくシミュレーションの時期を決定し、
前記第１の手動操作機器の動きの結果として生じる前記第１の加速度検出手段の第２出力に基づいて、第１ドラムをたたくシミュレーションの大きさを決定し、
前記第２の手動操作機器の動きの結果として生じる第２の加速度検出手段の第１出力に基づいて、第２ドラムをたたくシミュレーションの時期を決定し、
前記第１の手動操作機器の動きの結果として生じる前記第２の加速度検出手段の第２出力に基づいて、前記第２ドラムをたたくシミュレーションの大きさを決定し、
前記決定されたたたくシミュレーションの時期およびたたくシミュレーションの大きさに応じて聴覚的にドラムをたたくシミュレーションを行う方法。
【請求項１７】
実行されると、請求項１６に記載されたドラムをたたくシミュレーションを行う方法をプロセッサに実行させるコンピュータプログラムコードを含む、コンピュータ読み取り可能な媒体。
【請求項１８】
前記コンピュータプログラムコードは、ビデオゲームプログラムの一部である、請求項１７に記載のコンピュータ読み取り可能な媒体。
【請求項１９】
光ディスクからなる、請求項１７に記載のコンピュータ読み取り可能な媒体。
【請求項２０】
表示機器に接続され、加速度検出手段を含む手動操作機器からの信号を受信するコンピュータに、手動操作機器の動きに基づいてドラムをたたくシミュレーションを行うステップを実行させるプログラムコードからなり、搬送波に含まれるコンピュータデータ信号であって、
前記ステップは、
前記手動操作機器の動きの結果として生じる第１加速度検出手段の出力に基づいて、ドラムをたたくシミュレーションの時期を決定し、
前記手動操作機器の動きの結果として生じる第２加速度検出手段の出力に基づいて、前記ドラムをたたくシミュレーションの大きさを決定し、
前記決定されたたたくシミュレーションの時期およびたたくシミュレーションの大きさに応じて聴覚的にドラムをたたくシミュレーションを行うことからなる、コンピュータデータ信号。
【請求項２１】
請求項２０に記載の搬送波に含まれるコンピュータデータ信号を送信する、サーバーコンピュータ。
【請求項２２】
請求項２０に記載の搬送波に含まれるコンピュータデータ信号を受信し、かつ処理する、ゲーム装置。
【請求項２３】
加速度検出手段を含む手動操作機器の動きに基づいて、オブジェクトをたたくシミュレーションを行う方法であって、
前記手動操作機器の動きの結果として生じる少なくとも１つの加速度検出手段の出力に基づいて、前記オブジェクトをたたくシミュレーションの時期および大きさを決定し、
聴覚的、視覚的、および触覚的出力の少なくとも１つを用いて、前記決定されたたたくシミュレーションの時期とたたくシミュレーションの大きさとに応じて前記オブジェクトをたたくシミュレーションを行う方法。
【請求項２４】
加速度検出手段を含む手動操作機器を振ることに関わる振り強度を決定する方法であって、
前記振りを行っている間に前記手動操作機器に加わる求心力に対応する加速度検出手段の出力に基づいて、振り強度を決定し、
前記決定された振り強度に基づいて、聴覚的、視覚的、および触覚的な出力の少なくとも１つを生成する、方法。
【請求項２５】
実行されると、請求項２４に記載の振り強度を決定する方法をプロセッサに実行させコンピュータプログラムコードを含む、コンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、加速度計に基づいて、振りの衝撃の時期および／または強度を検出するシステムおよび方法に関する。
【発明の開示】
【課題を解決するための手段】
【０００２】
本システムおよび方法は、非限定的な例として、プレイヤが加速度計を備えたコントローラを利用してドラム、シンバル、ティンパニー、タムタムなどの打楽器を演奏するようにオブジェクトをたたくシミュレーションをするゲーム装置において利用できる。しかしながら、本システムおよび方法は、楽器演奏のシミュレーションに限定されず、剣術、ボクシング、およびその他幅広いアプリケーションのシミュレーションに利用できる。
【０００３】
コンピュータシステムへのユーザー入力は、様々な方法で行われる。例えば、コンピュータシステムがビデオゲーム装置の場合、一般にはコントローラ上に設けられた十字スイッチ、ジョイスティック、ボタンなどを使って入力が行われる。十字スイッチまたはジョイスティックは、ビデオゲームオブジェクトの様々な方向への動きを制御する際に使用され、様々なボタンは、キャラクタがジャンプする、武器を使用するなどのアクションをする際に使用される。
【０００４】
本願発明に記述されるコントローラには、当該コントローラの特定の動きおよび／または向きに基づいて、ビデオゲーム装置や他のコンピュータシステムへの入力を生成する加速度計が追加的に、または選択的に備えられる。このようなコントローラでは、例えば当該コントローラを特定の方法で動かすことにより、ビデオゲームオブジェクトの動きを制御できるなど、より直感的なユーザインタフェースが提供される。例えば、コントローラを上下に傾けることにより、プレイヤはビデオゲームの飛行機の高度を上下することができる。
【０００５】
設置された加速度計を利用して、十字スイッチ、ジョイスティック、ボタンなどを有するコントローラを用いた場合には（仮にあったとしても）簡単に得られないゲーム体験を提供できる。本願発明は、加速度計からのデータに基づき振りの衝撃の時期および／または強度を検出するシステムおよび装置に関する。本システムおよび方法により、プレイヤは、とりわけコントローラを動かしてオブジェクトをたたくシミュレーションをすることができる。非限定的な例として、プレイヤは、コントローラをドラムスティックのように動かすことにより、ドラムの演奏のシミュレーションをすることができる。加速度計の出力を用いて、ドラムをたたくタイミングおよび大きさ（強度）が決定され、聴覚的、視覚的、および触覚的な出力の少なくとも１つを用いてそのシミュレーションが行われる。例えば、スピーカーを用いてドラムをたたく音を出力してもよく、またディスプレイを用いてドラムをたたく画像を表示してもよい。追加的にまたは選択的に、振動回路をコントローラに備えてもよく、当該振動回路が振動することによりドラムをたたく感触がプレイヤに与えられる。
【発明の効果】
【０００６】
本願発明に記載のシステムおよび装置は、楽器の演奏をシミュレーションすることに限定されず、例えば、コントローラを動かして刀剣などのオブジェクトを振り動かすシミュレーションをすることにも使用できる。
【発明を実施するための最良の形態】
【０００７】
図１は、一実施例における、ゲーム装置１００、テレビ１０２、およびコントローラ１０７を含むゲームシステム１０を示す図である。
【０００８】
ゲーム装置１００は、そのハウジング１１０に形成されたスロット１０５に挿入される光ディスク１０４に記憶されたゲームプログラムまたはその他のアプリケーションを実行する。ゲームプログラムまたはその他のアプリケーションを実行した結果が、ケーブル１０６でゲーム装置１００に接続されたテレビ１０２の表示画面１０１に表示される。ゲームプログラムまたはその他のアプリケーションに関連する音声がテレビ１０２のスピーカー１０９を介して出力される。図１では、光ディスクを使用しているが、ゲームプログラムまたはその他のアプリケーションは、半導体メモリ、光磁気メモリ、磁気メモリなどのその他の記憶媒体に記憶されてもよい。
【０００９】
コントローラ１０７は、ゲーム制御データなどのデータをゲーム装置１００に無線送信する。ゲーム制御データは、例えば複数の操作ボタン、キー、スティックなどを備えたコントローラ１０７の操作部分を用いて生成することができる。コントローラ１０７はまた、ゲーム装置１００からデータを無線受信できる。コントローラ１０７とゲーム装置１００との無線通信には、ブルートゥース（登録商標）などの様々な無線プロトコルを使用してもよい。
【００１０】
後述するように、コントローラ１０７はまた、発光素子１０８ａおよび１０８ｂの画像を撮像し、かつ処理する撮像情報演算部を含む。マーカー１０８ａおよび１０８ｂは、図１ではテレビ１００の上部に示されているが、テレビ１００の下方に配置されてもよい。一実施例において、発光素子１０８ａおよび１０８ｂの中心点は、実質的に表示画面１０１の垂直中心線に一致する。発光素子１０８ａおよび１０８ｂの画像は、コントローラ１０７が指し示す方向、および表示画面１０１とコントローラ１０７との距離を決定するために用いられる。例えば、発光素子１０８ａおよび１０８ｂは、テレビ１０２の表示画面付近に備えられた２つのＬＥＤモジュール（以下、「マーカー」という）として実現されてもよいが、それに限定されない。それぞれのマーカーは赤外線を出力し、コントローラ１０７の撮像情報演算部が、ＬＥＤモジュールから出力された光を検出し、上述のようにコントローラ１０７の指し示す方向、および表示画面１０１とコントローラ１０７との距離を測定する。以下の説明により明らかとなるが、本明細書に記載のシステムおよび方法の様々な実施例においては、マーカーを必ずしも使用するわけではない。
【００１１】
図２のブロック図において、ゲーム装置１００は、ビデオゲームプログラムなどを含む（がそれに限定されない）様々なタイプのアプリケーションを実行するＲＩＳＣ中央処理装置（ＣＰＵ）２０４を有する。ＣＰＵ２０４は、例えばブートＲＯＭに格納されるブートプログラムを実行してゲーム装置１００を初期化し、光ディスクドライブ２０８に挿入された光ディスク１０４に記憶されているアプリケーションを実行する。ゲーム装置１００のハウジング１１０に設けられた、ユーザーがアクセスしやすい取り出しボタン２１０を使ってディスクドライブ２０８から光ディスクを取り出すことができる。
【００１２】
一実施例において、光ディスクドライブ２０８は、ＣＰＵ２０４とグラフィックスプロセッサ２１６との機能を利用するように開発されたアプリケーションを含む（例えば、第１サイズおよび／または第１データ構造などの）第１のタイプの光ディスクと、本来ＣＰＵ２０４および／またはグラフィックスプロセッサ２１６の機能とは異なる機能を有するＣＰＵおよび／またはグラフィックスプロセッサにて実行されるように開発されたアプリケーションを含む（例えば、第２サイズおよび／または第２データ構造などの）第２のタイプの光ディスクとの両方を収容する。例えば、第２のタイプの光ディスクは、本来Ｎｉｎｔｅｎｄｏゲームキューブ機向けに開発されたアプリケーションである。
【００１３】
ＣＰＵ２０４は、関連するグラフィックメモリ２２０、オーディオデジタル信号プロセッサ（ＤＳＰ）２１８、内部メインメモリ２２２、および入力／出力（ＩＯ）プロセッサ２２４と、グラフィック処理装置（ＧＰＵ）２１６とを含むシステムＬＳＩ２０２に接続される。
【００１４】
システムＬＳＩ２０２のＩＯプロセッサ２２４は、少なくとも１つのＵＳＢポート２２６、少なくとも１つの標準メモリカードスロット（コネクタ）２２８、ＷｉＦｉモジュール２３０、フラッシュメモリ２３２、および無線コントローラモジュール２４０に接続される。
【００１５】
ＵＳＢポート２２６は、ゲーム装置１００に様々な外部機器を接続するために用いられる。当該外部機器の例として、ゲームコントローラ、キーボード、外部ハードディスクドライブなどの記憶装置、プリンタ、デジタルカメラなどがあげられるが、それに限定されない。ＵＳＢポート２２６は、（例えばＬＡＮなどの）無線ネットワークの接続に用いてもよい。一実施例として、ＵＳＢポート２２６は２つ提供される。
【００１６】
標準メモリカードスロット（コネクタ）２２８は、工業規格のメモリカード（例えばＳＤメモリカード）を収容できる。一実施例として、メモリカードスロット２２８は１つ提供される。一般にこれらのメモリカードは、データキャリアとして用いられるが、これは一例であり、それに限定されない。例えば、プレイヤは、特定のゲームのゲームデータをメモリカードに保存し、当該ゲームカードを友人宅に持って行き、友人のゲーム装置で当該ゲームをすることができる。メモリカードは、ゲーム装置とパーソナルコンピュータやデジタルカメラなどとの間におけるデータ送信に用いてもよい。
【００１７】
ＷｉＦｉモジュール２３０により、ゲーム装置１００を無線アクセスポイントに接続することができる。アクセスポイントは、別の場所にいるプレイヤとの（音声チャットの機能付き、または機能なしの）オンラインゲームや、ウェブの閲覧、電子メール、ファイルのダウンロード（ゲームのダウンロードを含む）、およびその他様々なオンラインアクティビティを行うためのインターネット接続を提供する。一実施例として、ＷｉＦｉモジュール２３０を用いて、適切に設置された携帯ゲーム機器などの他のゲーム機器と通信を行ってもよい。本明細書では、当該モジュール２３０を、ＩＥＥＥ８０２．１１規格のファミリーに対して用いられる呼称である「ＷｉＦｉ」という。もちろん、ゲーム装置１００は、他の無線規格に準拠する無線モジュールを用いてもよい。
【００１８】
フラッシュメモリ２３２は、一例として、ゲーム保存データ、システムファイル、ゲーム装置の内部アプリケーションおよびダウンロードした（ゲームなどの）データを保存する。
【００１９】
無線コントローラモジュール２４０は、１つまたは複数のコントローラ１０７から無線送信された信号を受信し、当該受信信号をＩＯプロセッサ２２４に提供する。コントローラ１０７から無線コントローラモジュール２４０に送信される信号には、コントローラ１０７自体が生成した信号が含まれてもよい。またコントローラ１０７に接続される他の機器が生成した信号が含まれてもよい。例えば、ゲームの中には、右手および左手による別々の入力を利用できるものがあってもよい。そのようなゲームでは、他のコントローラ（図示せず）をコントローラ１０７に（例えば有線接続で）接続し、コントローラ１０７が、それ自体が生成した信号と他のコントローラが生成した信号とを無線コントローラモジュール２４０に送信する。
【００２０】
また無線コントローラモジュール２４０が、コントローラ１０７に信号を無線送信してもよい。一例として、コントローラ１０７（および／またはコントローラ１０７に接続された他のゲームコントローラ）は、振動回路を備えてもよく、振動回路制御信号が無線コントローラモジュール２４０を介して送信され、（振動回路をオン・オフするなど）振動回路を制御する。さらに一例として、コントローラ１０７はスピーカー（図示せず）を備え（あるいはスピーカーに接続され）、当該スピーカーから出力される音声信号が無線コントローラモジュール２４０を介してコントローラ１０７に無線送信されてもよい。さらに一例として、コントローラ１０７は、表示機器（図示せず）を備え（あるいは表示機器に接続され）、当該表示機器から出力される表示信号が、無線コントローラモジュール２４０を介してコントローラ１０７に無線送信されてもよい。
【００２１】
独自開発のメモリカード用スロット２４６は、独自開発のメモリカードを収容するように構成されている。一実施例において、２つのメモリカードスロットが設けられる。独自開発のメモリカードは、非標準コネクタおよび／または非標準メモリアーキテクチャなどの非標準的な特徴をいくつか有する。例えば、少なくとも１つのメモリカードスロット２４６は、Ｎｉｎｔｅｎｄｏゲームキューブ機にて用いられるメモリカードを収容するように構成されてもよい。その場合、当該スロットに挿入されたメモリカードは、ゲームキューブ機向けに開発されたゲームのデータを転送できる。一実施例において、メモリカードスロット２４６は、挿入されたメモリカードの読み出し専用アクセスのために用いてもよいが、その場合、当該メモリカードのデータを、スロット２２８に挿入された標準メモリカードなどのその他の記憶媒体に複製または転送可能かどうかに対して制限を設けてもよい。
【００２２】
１つまたは複数のコントローラコネクタ２４４は、それぞれのゲームコントローラとの無線接続のために用いられる。一実施例において、当該コネクタは４個設けられ、Ｎｉｎｔｅｎｄｏゲームキューブ機用ゲームコントローラにケーブル接続されている。または、各無線受信機をコネクタ２４４に接続し、無線ゲームコントローラからの信号を受信してもよい。当該コネクタにより、光ディスクドライブ２０８に、ゲームキューブ機向けに開発されたゲームの光ディスクを挿入すると、プレイヤはとりわけＮｉｎｔｅｎｄｏゲームキューブ機用のコントローラを使用することができる。
【００２３】
コネクタ２４８は、例えば通常の壁コンセントからのＤＣ電源に、ゲーム装置１００を接続するために提供される。もちろん、電源として１個以上のバッテリを用いてもよい。
【００２４】
ＧＰＵ２１６は、ＣＰＵ２０４からの指示に基づいて画像処理を行う。ＧＰＵ２１６は、例えば３次元（３Ｄ）グラフィックスを表示するために必要な計算を行う回路を含む。ＧＰＵ２１６は、画像処理専用のグラフィックメモリ２２０と、内部メインメモリ２２２の一部とを用いて画像処理を行う。ＧＰＵ２１６は、オーディオ／ビデオＩＣ（インターフェース）２１２を介して、オーディオ／ビデオコネクタ２１４よりテレビ１０２に出力される画像データを生成する。
【００２５】
オーディオＤＳＰ２１８は、ＣＰＵ２０４からの指示に基づいて音声処理を行う。オーディオＤＳＰ２１８によって生成された音声は、オーディオ／ビデオＩＣ２１２を介してオーディオ／ビデオコネクタ２１４よりテレビ１０２に出力される。
【００２６】
外部メインメモリ２０６および内部メインメモリ２２２は、ＣＰＵ２０４から直接アクセス可能な記憶領域である。例えば、これらメモリは、ＣＰＵ２０４が光ディスク１０４から読み出したゲームプログラム、様々なタイプのデータなどのアプリケーションプログラムを記憶することができる。
【００２７】
ＲＯＭ／ＲＴＣ２３８は、リアルタイムクロックを有し、好ましくは、外部からの電源供給がない場合でも使用できるように内部バッテリ（図示せず）で動作する。
【００２８】
電源ボタン２４２は、ゲーム装置１００の電源をオン・オフするために用いられる。一実施例において、不意に誤って電源を切る可能性をなくすために、電源ボタン２４２を特定時間（例えば、１または２秒）押下してゲーム機の電源を切るものとする。リセットボタン２４４は、ゲーム装置１００をリセット（リブート）するために用いられる。
【００２９】
図３および図４において、一例として、コントローラ１０７は、上面に操作制御部３０２ａ〜３０２ｈが設けられたハウジング３０１を有する。ハウジング３０１は、一般に直方体で、プレイヤが手で把持しやすい形状である。ハウジング３０１の上面の中央前面側に、十字スイッチ３０２ａが設けられる。十字スイッチ３０２ａは、十字型の４方向プッシュスイッチで、矢印で示された方向（前、後、右、左）に対応する操作部を有し、当該操作部は、十字の突出部に配置される。プレイヤは、十字スイッチ３０２ａの操作部の１つを押下することによって、前、後、右および左の方向を選択する。例えばプレイヤが十字スイッチ３０２ａを操作することにより、仮想ゲーム世界においてキャラクタを異なる方向に移動させることができる。
【００３０】
十字スイッチ３０２ａを一例として説明したが、他のタイプの操作部を設けてもよい。例えば、リング状の４方向操作部を備えたプッシュスイッチとセンタスイッチとを複合した複合スイッチを代わりに設けてもよい。また一例として、ハウジング３０１の上面から突出した傾倒可能なスティックを倒すことによって、スティックの傾倒方向に応じた信号を出力する操作部を設けてもよい。さらに一例として、水平移動可能な円盤状部材であって、スライドさせることにより当該スライド方向に応じた信号を出力する操作部を設けてもよい。さらに一例として、タッチパッドを用いてもよい。さらに一例として、プレイヤが押下した際に信号を出力する、少なくとも４方向（前、後、右、左等）に対応する個別のスイッチを用いてもよい。
【００３１】
ボタン（またはキー）３０２ｂ〜３０２ｇは、ハウジング３０１の上面で、かつ十字スイッチ３０２ａの後方に設けられる。ボタン３０２ｂ〜３０２ｇは、プレイヤが当該ボタンを押下した際にそれぞれの信号を出力する操作部である。例えば、ボタン３０２ｂ〜３０２ｄは、それぞれ、「Ｘ」ボタン、「Ｙ」ボタン、「Ｂ」ボタンであり、ボタン３０２ｅ〜３０２ｇは、それぞれ、セレクトスイッチ、メニュースイッチ、スタートスイッチである。一般に、ボタン３０２ｂ〜３０２ｇには、ゲーム装置１００が実行するアプリケーションに応じて様々な機能が割り当てられる。例えば図３に示す配置例では、ボタン３０２ｂ〜３０２ｄは、ハウジング３０１の上面の中央前後方向に沿って並設されている。ボタン３０２ｅ〜３０２ｇは、左右方向に沿ってボタン３０２ｂおよび３０２ｄの間に並説されている。ボタン３０２ｆは、プレイヤがコントローラ１０７を把持した際に不意に誤って押下することのないようにハウジング７０１上面に埋没している。
【００３２】
ボタン３０２ｈは、ハウジング３０１上面の十字スイッチ３０２ａの前面側に設けられる。ボタン３０２ｈは、ゲーム装置１００の電源を遠隔からオン／オフする電源スイッチである。ボタン３０２ｈもまた、プレイヤが不意に誤って押下することのないように、ハウジング３０２の上面に埋没している。
【００３３】
複数（例えば４個）のＬＥＤ３０４がハウジング３０１上面で、ボタン３０２ｃの後方側に設けられる。コントローラ１０７には、ゲーム装置１００で用いられる他のコントローラと区別するために、コントローラ種別（番号）が割り当てられ、ＬＥＤｓ３０４を用いて割り当てられたコントローラ番号を視覚的にプレイヤに通知してもよい。例えば、コントローラ１０７が無線コントローラモジュール２４０に信号を送信すると、複数のＬＥＤのうち、コントローラ種別に対応するＬＥＤが点灯する。
【００３４】
図３Ｂにおいて、ハウジング３０１の下面には凹部３０８が形成される。凹部３０８は、プレイヤがコントローラ１０７を把持したときに当該プレイヤの人差し指や中指が位置するような位置に形成される。上記凹部の後部側傾斜面３０８ａには、ボタン３０２ｉが設けられる。ボタン３０２ｉは、例えば「Ａ」ボタンとして機能し、一例としてシューティングゲームにおけるトリガスイッチとして用いられる。
【００３５】
図４に示すように、撮像素子３０５ａは、コントローラハウジング３０１前面に設けられる。撮像素子３０５ａは、コントローラ１０７の撮像情報演算部の一部を構成し、マーカー１０８ａおよび１０８ｂから受信した画像データを解析する。撮像情報演算部３０５は、例えば、最大２００フレーム／秒程度のサンプリング周期を有するため、比較的高速なコントローラ１０７の動きも追跡して解析することができる。本明細書に記載の、オブジェクトをたたくシミュレーションをする技術は、撮像情報演算部３０５からの情報を使用せずに達成できるため、撮像情報演算部の動作について更なる説明は省略する。詳細については、２００５年９月１５日出願、出願番号６０／７１６，９３７、発明の名称「無線モジュラー携帯コントローラを含むビデオゲームシステム（ＶＩＤＥＯ  ＧＡＭＥ  ＳＹＳＴＥＭ  ＷＩＴＨ  ＷＩＲＥＬＥＳＳ  ＭＯＤＵＬＡＲ  ＨＡＮＤＨＥＬＤ  ＣＯＮＴＲＯＬＬＥＲ）」、２００５年１１月３日出願、出願番号６０／７３２，６４８、発明の名称「情報処理プログラム（ＩＮＦＯＲＭＡＴＩＯＮ  ＰＲＯＣＥＳＳＩＮＧ  ＰＲＯＧＲＡＭ）」、および２００５年１１月３日出願、出願番号６０／７３２，６４９、発明の名称「情報処理システムおよび情報処理プログラム（ＩＮＦＯＲＭＡＴＩＯＮ  ＰＲＯＣＥＳＳＩＮＧ  ＳＹＳＴＥＭ  ＡＮＤ  ＰＲＯＧＲＡＭ  ＴＨＥＲＥＦＯＲ）」より得られる。前述の出願それぞれについて、その内容をそのまま本明細書に明示的に援用する。
【００３６】
コネクタ３０３は、コントローラハウジング３０１の後面に設けられる。コネクタ３０３は、コントローラ１０７に機器を接続するために用いられる。例えば、プレイヤが両手によるゲームコントロール入力を用いてゲーム操作ができるように、同様のあるいは異なる構成からなる第２のコントローラを、コネクタ３０３を介してコントローラ１０７に接続してもよい。他のゲーム装置用のゲームコントローラや、キーボード、キーパッド、タッチパッドなどの入力装置、スピーカーおよびディスプレイなどの出力装置などのその他の装置を、コネクタ３０３を用いてコントローラ１０７に接続してもよい。
【００３７】
後の説明を簡単にするために、コントローラ１０７の座標系を定義する。図３および図４に示すように、コントローラ１０７に対して左手のＸ、Ｙ、Ｚ座標系が定義されている。もちろん、この座標系は一例として示されるものであり、その他の座標系を用いた場合でも、本明細書に記載のシステムおよび方法は同様に利用可能である。
【００３８】
図５のブロック図に示すように、コントローラ１０７は、３方向、すなわち上下方向（図３および図４のＺ軸）、左右方向（図３および図４のＸ軸）、および前後方向（図３および図４のＹ軸）の直線加速度を検出する３軸直線加速度センサー５０７を備える。あるいは、例えば、Ｙ軸およびＺ軸に沿った直線加速度のみを検出する２軸の直線加速度計を用いてもよい。または、例えばＺ軸に沿った直線加速度のみを検出する１軸直線加速度計を用いてもよい。一般に、所望する制御信号の種類に基づいて、備えられるべき（３軸または２軸などの）加速度計が決められる。例えば、３軸または２軸の直線加速度計は、アナログ・デバイセズ株式会社（Ａｎａｌｏｇ  Ｄｅｖｉｃｅｓ，  Ｉｎｃ．）またはＳＴマイクロエレクトロニクス社（ＳＴＭｉｃｒｏｅｌｅｃｔｒｏｎｉｃｓ  Ｎ．Ｖ．）から入手可能であるタイプのものでもよい。好ましくは、加速度センサー５０７は、シリコン微細加工されたＭＥＭＳ（Ｍｉｃｒｏ  Ｅｌｅｃｔｒｏ  Ｍｅｃｈａｎｉｃａｌ  Ｓｙｓｔｅｍｓ：微小電子機械システム）の技術に基づいた静電容量式または静電容量結合式であってもよい。しかしながら、既存のあるいは将来開発されるその他の適切な加速度計の技術（例えば、圧電方式や圧電抵抗方式）を用いて、３軸または２軸の加速度センサー５０７が提供されてもよい。
【００３９】
当業者には公知であるように、加速度センサー５０７に用いられるような直線加速度センサーは、加速度センサーが有する各軸に対応する直線に沿った加速度のみを検知することができる。つまり、加速度センサー５０７からの直接の出力は、その２軸または３軸のそれぞれに沿った直線加速度（静的または動的）を示す信号である。そのため、加速度センサー５０７は、非直線状（例えば、円弧状）の経路に沿った動き、回転、回転運動、角変位、傾斜、位置、姿勢等のその他の物理的特性を直接検知することはできない。
【００４０】
しかしながら、加速度センサー５０７から出力される直線加速度の信号をさらに処理することにより、コントローラ１０７に関する更なる情報を推測または算出（判定）できることは、当業者であれば、本明細書の説明から容易に理解できるであろう。例えば、静的な直線加速度（重力）を検知することにより、加速度センサー５０７から出力される直線加速度を用いて、検知された直線加速度とオブジェクトの傾斜角度とを相関させて重力ベクトルに対するオブジェクトの傾斜の度合いを知ることができる。このように、加速度センサー５０７を、コントローラ１０７のマイクロコンピュータ（マイコン）５０２（または他のプロセッサ）と組み合わせて用いることにより、コントローラ１０７の傾き、姿勢または位置を判定することができる。同様に、詳細については後述するが、加速度センサー３０７を含むコントローラ１０７に対して、例えばユーザーの手などで動的な加速度が加えられた場合、加速度センサー５０７が生成する直線加速度信号の処理を通じて、加速度コントローラ１０７の様々な動きおよび／または位置を計算することができる。
【００４１】
他の実施例において、加速度センサー５０７は、マイコン５０２に信号を出力する前に内蔵の加速度計から出力された加速度信号に対して所望の処理を施すための、組み込み式の信号処理装置、または他の種類の専用処理装置を備えてもよい。例えば、加速度センサーが静的な加速度（例えば重力加速度）を検知するためのものである場合、組み込み式または専用の処理装置は、検知した加速度信号をそれに相当する傾斜角（あるいはその他好ましいパラメータ）に変換するものであってもよい。
【００４２】
図５に戻り、コントローラ１０７の撮像情報演算部５０５は、赤外線フィルタ５２８、レンズ５２９、撮像素子３０５ａ、および画像処理回路５３０を含む。赤外線フィルタ５２８は、コントローラ１０７の前面に入射する光のうち赤外線のみを通過させる。レンズ５２９は、赤外線フィルタ５２８を通過した赤外線を集光し撮像素子３０５ａに出射する。撮像素子３０５ａは、例えばＣＭＯＳセンサーまたはＣＣＤのような固体撮像素子である。撮像素子３０５ａはレンズ５２９が集光したマーカー１０８ａおよび１０８ｂからの赤外線を撮像する。従って、撮像素子３０５ａは、赤外線フィルタ５２８を通過した赤外線のみを撮像して画像データを生成する。生成された画像データは、画像処理回路５２０で処理され、高輝度部分が検知され、その検知に基づいて、検知された座標位置および当該高輝度部分の面積を示す処理結果データが通信部５０６に出力される。この情報から、コントローラ１０７が指し示す方向や、ディスプレイ１０１とコントローラ１０７との距離を知ることができる。
【００４３】
コントローラ１０７は、振動回路５１２を備えてもよい。振動回路５１２は、例えば、振動モータやソレノイドである。コントローラ１０７は、振動回路５１２の作動によって（例えばゲーム装置１００からの信号に反応して）振動し、その振動がコントローラ１０７を把持するプレイヤの手に伝達される。いわゆる、振動対応ゲームが実現できる。
【００４４】
上述のように、コントローラ１０７の３軸方向を構成する要素として、すなわち、コントローラ１０７の上下方向（Ｚ軸方向）、左右方向（Ｘ軸方向）、および前後方向（Ｙ軸方向）の要素として加速度が検知され出力される。加速度センサー５０７が検知した３軸方向の要素である加速度を示すデータが通信部５０６に出力される。加速度センサー５０７から出力された加速度データに基づいて、コントローラ１０７の動きが判定される。
【００４５】
通信部５０６は、マイコン５０２、メモリ５０３、無線モジュール５０４、およびアンテナ５０５を含む。マイコン５０２は、処理の際にメモリ５０２を記憶領域として用いながら、データを送受信する無線モジュール５０４を制御する。マイコン５０２は、操作信号（十字スイッチ、ボタン、またはキーのデータなど）を含むデータを操作部３０２から受信し、３軸方向（Ｘ軸、Ｙ軸、およびＺ軸方向の加速度データ）の加速度信号を加速度センサー５０７から受信し、撮像情報演算部５０５から処理結果データを受信する。マイコン５０２は、受信したデータをゲーム装置１００に送信する送信データとしてメモリ５０３に一時的に格納する。通信部５０６からゲーム装置１００への無線送信は、所定の周期で行われる。ゲーム処理は、一般に１／６０秒（１６．７ｍｓ）を周期単位として行われるので、無線通信は、好ましくはそれよりも短い周期で行われる必要がある。例えば、ブルートゥース（Ｂｌｕｅｔｏｏｔｈ；登録商標）で構成される通信部の送信間隔は５ｍｓである。マイコン５０２は、送信タイミングが到来すると、メモリ５０３に格納された送信データを、一連の操作情報として無線モジュール５０４に出力する。無線モジュール５０４は、例えばブルートゥース（登録商標）の技術に基づいて、所定の周波数を有する搬送波として操作情報をアンテナから送信する。従って、操作部３０２からの操作信号データ、加速度センサー５０７からのＸ軸、Ｙ軸、およびＺ軸方向の加速度データ、および撮像情報演算部５０５からの処理結果データは、コントローラ１０７から送信される。ゲーム装置１００は、搬送波信号を受信し、当該搬送波信号を復調または復号することにより、操作情報（操作信号データ、Ｘ軸、Ｙ軸およびＺ軸方向の加速度データ、および処理結果データなど）を取得する。この受信データおよび現在実行中のアプリケーションに基づき、ゲーム装置１００のＣＰＵ２０４は、アプリケーションの処理を行う。ブルートゥース（登録商標）の技術を用いて通信部５０６を構成する場合、コントローラ１０７は、ゲーム装置１００を含む装置から無線送信されたデータを受信することができる。
【００４６】
図６〜図９を参照して、ドラムをたたくシミュレーションについて説明する。この説明は一例であり、本明細書に記載するシステムおよび方法は様々な様態において使用できるように構成され、コントローラの振りまたは動きに応じた衝撃の時期および／または強度を検知することができる。
【００４７】
図６は、ドラムをたたくシミュレーションをしている際におけるコントローラ１０７の動きを示す図である。図６に示すように、コントローラの動きにより、Ｙ軸方向の加速度データとＺ軸方向の加速度データとが生成されている。Ｙ軸方向の加速度データは、ドラムをたたくシミュレーションをしている間における曲線軌道に沿った加速度センサー５０７の動きから生じた求心加速度に相当する。より具体的には、プレイヤの手によってコントローラ１０７は円弧状に移動し、コントローラに求心力が作用し、その求心力により振りの中心に向かって（肘に向かって）コントローラが引っ張られる。加速度センサー５０７は、この求心力に相当するＹ軸の加速度データを検知する。コントローラ１０７の速度は、（積分などにより）Ｙ軸の加速度データから引き出すことができ、当該速度はドラムをたたく衝撃強度を示す。Ｚ軸の加速度データは、ドラムをたたくシミュレーションをしている間において、コントローラ１０７の動きが開始した時、および停止した時を判断するために用いられる。従って、Ｚ軸の加速度データは、ドラムとの衝撃の時期を判定するために用いられる。
【００４８】
図７Ａおよび図７Ｂは、ドラムをたたくシミュレーションの一例におけるＹ軸加速度データおよびＺ軸加速度データをそれぞれ示している。図７Ｂにおいて、ドラムをたたくシミュレーションの開始は、「Ｐｒｅｐ」時間として示され、プレイヤがドラムをたたくシミュレーションを開始するためにコントローラ１０７を動かした時に相当する。ドラムをたたくシミュレーションを開始する前におけるＺ軸加速度の測定値は、コントローラの静止状態に相当し、Ｚ軸加速度は１Ｇ（すなわち重力加速度による下方向の加速度）である。プレイヤは、ドラムをたたくシミュレーションをするためにコントローラ１０７を上方に動かし、「Ｐｒｅｐ」点がコントローラを上げた位置から下方への動きの開始となる。コントローラを上方に上げる最後の時点もまた、この「Ｐｒｅｐ」点のトリガを誘発し、下方への動きの開始に融合される。簡素化と説明のために、本明細書では、「Ｐｒｅｐ」点は、下方への動きの開始に相当するものとする。
【００４９】
衝撃の時期は、Ｚ軸加速度データが最大閾値を越えた時に判定される。図７Ｂにおいては、当該最大閾値は１．６Ｇである。もちろん、この最大閾値は一例であり、他の値を閾値として用いてもよい。
【００５０】
図７Ａにおいて、「Ｐｒｅｐ」時間から衝撃の時期までのＹ軸加速度データを用いて衝撃強度が判定される。特に、Ｐｒｅｐ時間から衝撃の時期までのＹ軸加速度データに対応する面積７０５の大きさは、コントローラの速度（すなわち加速度の積分）に相当し、衝撃強度のインジケータとして用いられる。具体的には、正の加速度が加算され、面積７０５を形成する。当該面積が大きいほど（すなわち、ドラムをたたくシミュレーションにおける速度が速いほど）、衝撃強度が大きい。図８Ａを用いて後述するが、面積７０５の大きさを任意の倍率で乗算し、ドラムをたたく際の音量を知ることができる。
【００５１】
図８Ａは、一実施例における様々な音量およびピッチを有するドラム打ち検知方法におけるフローチャートである。この方法では、ボックス８１２に示す不変データと定数を用いる。ビート進行中（ＢｅａｔｌｎＰｒｏｇｒｅｓｓ）は、ブーリアン変数で、初期設定は「ＦＡＬＳＥ」である。速度（Ｖｅｌｏｃｉｔｙ）は浮動小数点変数で、初期設定は０．０である。最低閾値（ＭｉｎＴｈｒｅｓｈｏｌｄ）は固定浮動小数点変数で、０．２Ｇに設定される。ここで、Ｇは重力加速度を示す。最大閾値（ＭａｘＴｈｒｅｓｈｏｌｄ）は、固定浮動小数点変数で、１．６Ｇに設定される。
【００５２】
ＳＴ８０１にてメソッドが開始され、ＳＴ８０２に進んで３軸加速度計をサンプリングし、Ｘ軸、Ｙ軸およびＺ軸の加速度データを得る。
【００５３】
ＳＴ８０３にて、ＢｅａｔＩｎＰｒｏｇｒａｓｓ変数を参照して、ドラム音が演奏されたばかりのものであるかを判定する。変数がＦＡＬＳＥに設定されている場合（すなわち判定がＮＯの場合）、メソッドはＳＴ８０７に進み、求心加速度が０より大きいかどうかを判定する。図６に示すように、Ｙ軸加速度データを参照して求心加速度を判定することができる。求心加速度が０を超えない場合、Ｖｅｌｏｃｉｔｙ変数は、ＳＴ８０９にて０．０に設定され、メソッドはＳＴ８０５に進む。求心加速度が０を越える場合、コントローラが振られている最中であり、ＳＴ８０８にて、現在の速度に求心加速度に基づく速度を加算して新たな速度を決定する。より具体的には、フレーム（スライス）毎に加速度を加算することは、当該加速度の面積を計算することに相当する。例えば、それぞれの加速度のスライスを１単位幅とすると、スライスの面積は単純にその大きさ（スライスの面積＝大きさ×１）に等しい。各スライスを加算することにより総面積が得られる。その後、メソッドは、ＳＴ８１０に進む。
【００５４】
ＳＴ８１０にて、下方向の加速度がＭａｘＴｈｒｅｓｈｏｌｄ値（ここでは１．６Ｇ）を超えるかどうかを判断する。加速度がＭａｘＴｈｒｅｓｈｏｌｄ値を超えない場合、メソッドはＳＴ８０５に進む。ＳＴ８０５にて、割り込み時間を待ち、その後メソッドはＳＴ８０２に戻る。ＳＴ８１０にて判定された加速度がＭａｘＴｈｒｅｓｈｏｌｄ値を超える場合、メソッドはＳＴ８１１に進む。
【００５５】
ＳＴ８１１にて、ＢｅａｔｌｎＰｒｏｇｒｅｓｓ変数はＴＲＵＥに設定される。音量は、計算された速度とスケール定数に基づいて得られた値に設定される。ピッチは、横方向の加速度に基づくＣａｌｃＰｉｔｃｈ関数から算出される。より具体的には、ＣａｌｃＰｉｔｃｈは、プレイヤがコントローラ１０７を（例えばドライバーのように）ひねり、若干異なるピッチを得るためのルーチンである。このひねりは、加速度センサー５０７のＸ軸加速度データから検知される。例えば、ドラムをたたくシミュレーションにおいて、コントローラ１０７が水平である（Ｘ軸加速度データが０Ｇである）場合、特定のピッチが得られる。ドラムをたたくシミュレーションにおいて、コントローラ１０７が左または右に傾斜している（Ｘ軸加速度が０Ｇではない）場合、ドラムのピッチは、もとのピッチよりも高くなる、あるいは低くなる。ひねりの関数であるピッチの制御は、必要に応じて省略してもよい。
【００５６】
ボタンから楽器を選択（ＧｅｔｌｎｓｔｒｕｍｅｎｔＦｒｏｍＢｕｔｔｏｎｓ）ルーチンで、特定の楽器の演奏をシミュレーションするプロセスを検索する。本明細書では、プレイヤが、ドラムに対応するコントローラ１０７の１つまたは複数のボタンを押下するものと仮定する。他のボタンを単独で、あるいは組み合わせて押下することにより、他の楽器、または他の種類のドラムの演奏をシミュレーションすることができる。音の演奏（ＰｌａｙＳｏｕｎｄ）ルーチンでは、判定された音量およびピッチに応じて、ＧｅｔｌｎｓｔｒｕｍｅｎｔＦｒｏｍＢｕｔｔｏｎｓルーチンによって判定された楽器の音が演奏される。ＳＴ８１１での処理の後、メソッドはＳＴ８０５に進み、割り込み時間を待つ。
【００５７】
ＳＴ８０３にて、連打が行われていると判定された場合、ＳＴ８０４にて、下方向の加速度がＭｉｎＴｈｒｅｓｈｏｌｄ（この場合０．２Ｇ）より小さいかどうかを判断する。当該加速度がＭｉｎＴｈｒｅｓｈｏｌｄより小さくない場合、メソッドはＳＴ８０５に進み、割り込み時間を待つ。当該加速度がＭｉｎＴｈｒｅｓｈｏｌｄより小さい場合、メソッドはＳＴ８０６に進み、ＢｅａｔｌｎＰｒｏｇｒｅｓｓがＦＡＬＳＥに設定され、Ｖｅｌｏｃｉｔｙ変数が０．０に設定される。その後メソッドはＳＴ８０５に進み、割り込み時間を待つ。ＭｉｎＴｈｒｅｓｈｏｌｄ確認により、「Ｐｒｅｐ点」の発生を判定する。従って、加速度がＭｉｎＴｈｒｅｓｈｏｌｄを超える（ＭｉｎＴｈｒｅｓｈｏｌｄより下の正の下方向から動く）場合、「Ｐｒｅｐ点」が検知される。
【００５８】
上述の加速度計データは、プレイヤによるコントローラ１０７の動きに応じて、ゲームキャラクタがドラムを演奏する様子をディスプレイ１０１に表示するために用いてもよい。また、上述の方法の一例において判定された衝撃の時期に、コントローラ１０７の振動回路を作動させ、ドラムをたたいたときの感覚をプレイヤに与えるように触覚的な出力を行ってもよい。
【００５９】
図９は、ゲームのディスプレイ９０１を示す一例であり、本明細書に記述されるドラムヒット検知方法が実行されている。ゲームは、バンドの中でドラムを演奏するゲームキャラクタをプレイヤが制御するものである。バンドには、他のバンドメンバーも含まれ、ゲームプログラムの制御によって、あるいは他のプレイヤの入力によって他の楽器の演奏が行われる。ゲームの一実施例において、プレイヤは、歌のメニューから、バンドが演奏する歌を選択できる。その場合、歌のドラム演奏は、本明細書に記述のようにプレイヤがコントローラ１０７を用いることによって行われる。他のゲームの一実施例において、プレイヤは、コントローラ１０７を用いて行ったドラムのソロ演奏の録音を選択することができる。
【００６０】
上述の方法の実施例は、両手にそれぞれコントローラをもった設定にも展開できる。この設定において、プレイヤは、好みに応じてそれぞれのコントローラを用いて異なるドラムをたたくシミュレーションをすることができる。他の設定においては、２人のプレイヤが、それぞれ片手または両手にコントローラを持って、一緒にドラム二重奏を行うことができる。さらに他の設定においては、フットパッド型のコントローラ（例えば、簡単なスイッチ）を用いて、音量を変える必要のないバスドラムの制御を行うことができる。すなわち、この設定においては、プレイヤは、両手にコントローラを持ってドラムを打ち、足を使ってバスドラムスイッチをたたくことになる。
【００６１】
上述の方法の実施例においては、Ｙ軸の加速度計データから得た速度を用いたが、Ｚ軸の加速度計データから得た速度を用いてもよい。その場合、Ｚ軸の加速度計データのみが必要となる。
【００６２】
上述の方法の実施例では、ドラム演奏のシミュレーションについて説明してきたが、本方法は、剣術やボクシングのシミュレーション、およびその他のアプリケーションにも適用できる。使用する加速度計データは、個別のアプリケーションによって異なる。例えば、ボクシングゲームでは、Ｙ軸加速度データを用いて、パンチの強度および／またはパンチの衝撃の時期を判断してもよい。例えば剣術ゲームでは、上下方向のストロークに対してはＹ軸およびＺ軸の加速度計データを、また横方向のストロークにはＸ軸およびＹ軸の加速度計データを用いてもよい。
【００６３】
図８Ｂは、一実施例における可変強度を有する刀剣の振り検知方法を示すフローチャートである。この方法では、ボックス８６２に示す不変データと定数とを用いる。振り進行中（ＳｗｉｎｇｌｎＰｒｏｇｒｅｓｓ）はブーリアン変数で、初期設定として「ＦＡＬＳＥ」に設定されている。速度（Ｖｅｌｏｃｉｔｙ）は、浮動小数点変数で、初期設定は０．０である。最小閾値（ＭｉｎＴｈｒｅｓｈｏｌｄ）は、固定浮動小数点変数で、−１．５Ｇに設定されている。最大閾値（ＭａｘＴｈｒｅｓｈｏｌｄ）は、固定浮動小数点変数で、１．５Ｇに設定されている。
【００６４】
図８Ｂは、横方向の刀剣の振りに関するフローチャートである（すなわち、この例では右から左への振りのみが検知される）。複数方向の加速度計による測定と処理ルーチンは、左から右、右から左、上から下、下から上の振り、あるいは必要であればその組み合わせや微妙な違いを検知するために、個別に、かつ同時に動作する必要がある。
【００６５】
振りが始まると、Ｘ軸は非常に大きな負の加速度（ドラムをたたく場合に類似する）を受ける。刀剣の振りが終わると、Ｘ軸は、非常に大きな正の加速度（ドラムをたたく場合に類似）を受ける。横方向の動きは、重力の影響を受けないため、ＭａｘＴｈｒｅｓｈｏｌｄおよびＭｉｎＴｈｒｅｓｈｏｌｄは、（−１．５Ｇおよび１．５Ｇと）ゼロを中心に平衡を保つ（対称をなす）。ドラムの例では、重力は、常に上下の加速度に影響を与えるため、ＭａｘＴｈｒｅｓｈｏｌｄおよびＭｉｎＴｈｒｅｓｈｏｌｄは、常にゼロを中心に対称をなす（極大値は約１Ｇにそれる）。
【００６６】
ＳＴ８５３にて、ＳｗｉｎｇｌｎＰｒｏｇｒｅｓｓ変数を参照して、振りが現在行われているかどうかを判定する。変数がＦＡＬＳＥに設定されている（すなわちＮＯと判定された）場合、当該メソッドはＳＴ８５７に進み、求心加速度が０Ｇより大きいかどうかを判定する。図６を用いた上記説明に沿って、求心加速度はＹ軸加速度データに基づいて決定される。求心加速度が０Ｇを超えない場合、Ｖｅｌｏｃｉｔｙ変数はＳＴ８５９にて０．０に設定され、当該メソッドはＳＴ８５５に進む。一方、求心加速度が０Ｇより大きい場合、コントローラは現在振られており、ＳＴ８５８にて、求心加速度に基づく速度を現在の速度に加算して新たな速度が決定される。より具体的には、フレーム（スライス）毎に加速度を加算することは、加速度の面積を計算することに相当する。例えば、各加速度スライスを１単位幅とすると、当該スライスの面積は単純にその大きさ（スライスの面積＝大きさ×１）となる。各スライスを加算することにより、総面積が得られる。その後メソッドは、ＳＴ８６０に進む。
【００６７】
ＳＴ８６０にて、横方向の加速度が（例えば、Ｘ軸加速度データを用いて測定された）ＭａｘＴｈｒｅｓｈｏｌｄ値を超えるかどうかを判定する。加速度が当該値を超えない場合、メソッドはＳＴ８５５に進む。ＳＴ８５５にて、割り込み時間を待ってメソッドはＳＴ８５２に戻る。ＳＴ８６０で加速度がＭａｘＴｈｒｅｓｈｏｌｄ値より大きい場合、メソッドはＳＴ８６１に進む。
【００６８】
ＳＴ８６１にて、ＳｗｉｎｇＩｎＰｒｏｇｒｅｓｓ変数は、ＴＲＵＥに設定され、強度は、速度をスケール定数で乗じた速度と同じ値に設定される。（例えば、対応する表示を生成し、対応する音を出力する）刀剣の振りのシミュレーションを行うＳｗｉｎｇＳｗｏｒｄルーチンは、算出された強度に基づいて実行される。ＳＴ８６１での処理の後、メソッドはＳＴ８５５に進み、割り込み時間待ちをする。
【００６９】
ＳＴ８５３にて、振りが行われていると判定された場合、ＳＴ８５４にて横方向の加速度がＭｉｎＴｈｒｅｓｈｏｌｄより小さいかどうかを判定する。横方向の加速度がＭｉｎＴｈｒｅｓｈｏｌｄより小さくない場合、メソッドはＳＴ８５５に進み、割り込み時間待ちをする。ＭｉｎＴｈｒｅｓｈｏｌｄより小さい場合、メソッドはＳＴ８５６に進み、ＳｗｉｎｇｌｎＰｒｏｇｒｅｓｓをＦａｌｓｅに、Ｖｅｌｏｃｉｔｙ変数を０．０に設定する。その後、メソッドはＳＴ８５５に進み、割り込み時間待ちをする。
【００７０】
上記説明は、加速度計を用いて行ってきたが、上記加速度を導き出すことが可能な他の装置を用いてもよい。
【００７１】
本明細書に記述の方法を含むプログラムは、例えば、光ディスク１０４に、またはその他のコンピュータ読み取り可能な媒体に実体的に取り入れることができる。他の例において、当該プログラムは、通信ネットワークを介して配信するようにインターネットからダウンロード可能としてもよい。さらに、対応するプログラムを示す信号で搬送波を変調し、取得した変調波を送信し、当該変調波を受信する装置が変調波を復調し、対応するプログラムを復元してもよい。
【００７２】
現在実用的かつ好ましいと考えられる実施形態において本システムおよび方法を説明してきたが、本システムおよび方法は、開示された実施形態に限定されるものではなく、付随する請求の精神と範囲内における様々な変形例および同等の設定にも適用されるものであることはいうまでもない。
【図面の簡単な説明】
【００７３】
【図１】一実施例におけるゲームシステム１０を示す図
【図２】図１に示す一実施例におけるゲーム装置１００を示すブロック図
【図３Ａ】図１に示す一実施例におけるコントローラ１０７の上部を示す斜視図
【図３Ｂ】図１に示す一実施例におけるコントローラ１０７の下部を示す斜視図
【図４】図１に示す一実施例におけるコントローラ１０７の前面図
【図５】図１に示す一実施例におけるコントローラ１０７のブロック図
【図６】ドラムをたたくシミュレーションをしている間におけるコントローラ１０７の動きを示す図
【図７】ドラムをたたくシミュレーションの一実施例におけるＹ軸方向およびＺ軸方向の加速度データを示す図
【図８Ａ】一実施例における、可変音量および可変ピッチを有するドラム打ち検出方法を示すフローチャート
【図８Ｂ】一実施例における、可変強度を有する刀剣の振り検出方法を示すフローチャート
【図９】プレイヤがドラムを叩くシミュレーションを用いてビデオゲームをしている様子を示す図
【図１】
2009536765.tif 000003
【図２】
2009536765.tif 000004
【図３Ａ】
2009536765.tif 000005
【図３Ｂ】
2009536765.tif 000006
【図４】
2009536765.tif 000007
【図５】
2009536765.tif 000008
【図６】
2009536765.tif 000009
【図７】
2009536765.tif 000010
【図８Ａ】
2009536765.tif 000011
【図８Ｂ】
2009536765.tif 000012
【図９】
2009536765.tif 000013
【国際調査報告】
2009536765.tif 000014