Based on accelerometer data, the system for detecting the intensity of the timing and / or swinging of the impact of swing, methods, apparatus, and program

申请号 JP2009509794 申请日 2007-05-08 公开(公告)号 JP5325771B2 公开(公告)日 2013-10-23
申请人 任天堂株式会社; 发明人 ラビン スティーブ;
摘要 An example system and method is provided for detecting a moment of impact and/or strength of a swing based on moving a hand-held device including an accelerometer arrangement. A moment and a magnitude of simulated striking of the object are determined based on one or more accelerometer arrangement outputs resulting from the moving of the hand-held device. Using one or more of aural, visual and tactile outputs, the striking of the object is simulated in accordance with the determined moment of simulated striking and the determined magnitude of the simulated striking.
权利要求
  • 多軸加速度検出手段を含んだ加速度検出手段を含む手動操作機器の動きに基づいて、 コンピュータ処理により以下の各動作が実現されることによってオブジェクトをたたくシミュレーションを行う方法であって、
    前記手動操作機器の動きの結果として生じる第1加速度検出手段の出力に基づいて、前記オブジェクトをたたくシミュレーションの時期を決定し、
    前記手動操作機器の動きの結果として生じる第2加速度検出手段の出力に基づいて、前記オブジェクトをたたくシミュレーションの大きさを決定し、
    聴覚的、視覚的、および触覚的な出力の少なくとも1つを用いて、前記決定されたたたくシミュレーションの時期とたたくシミュレーションの大きさとに応じてオブジェクトをたたくシミュレーションを行 い、
    前記第1および第2の加速度検出手段の出力は、前記多軸加速度検出手段の異なる軸に対応する、方法。
  • 前記加速度検出手段は、 前記異なる軸それぞれに対応する第1および第2の異なる加速度計を含み、
    前記第1および第2の加速度検出手段の出力は、前記第1および第2の加速度計からそれぞれ行われる、請求項1に記載の方法。
  • 前記第1加速度検出手段の出力は、前記手動操作機器の動きの結果として生じる下方向の加速度を示し、
    前記第2加速度検出手段の出力は、前記手動操作機器の動きの結果として生じる求心加速度を示す、請求項1 または2に記載の方法。
  • 前記たたくシミュレーションの時期は、前記第1加速度検出手段の出力が規定値を超えて極大値に達した時点として決定される、請求項1 乃至3の何れか1つに記載の方法。
  • 前記規定値は、約1.6Gである、請求項 に記載の方法。
  • 前記たたくシミュレーションの大きさは、前記第2加速度検出手段の出力の積分演算に基づいて決定される、請求項1 乃至5の何れか1つに記載の方法。
  • 多軸加速度検出手段を含んだ加速度検出手段を含む手動操作機器の動きに基づいて オブジェクトをたたくシミュレーションを行う方法をプロセッサに実行させる プログラムであって、
    前記方法は、
    前記手動操作機器の動きの結果として生じる前記第1加速度検出手段の出力に基づいて、前記オブジェクトをたたくシミュレーションの時期を決定し、
    前記手動操作機器の動きの結果として生じる前記第2加速度検出手段の出力に基づいて、前記オブジェクトをたたくシミュレーションの大きさを決定し、
    聴覚的、視覚的、および触覚的な出力の少なくとも1つを用いて、前記決定されたたたくシミュレーションの時期とたたくシミュレーションの大きさとに応じてオブジェクトをたたくシミュレーションを行うことからな り、
    前記第1および第2の加速度検出手段の出力は、前記多軸加速度検出手段の異なる軸に対応する、 プログラム
  • 多軸加速度検出手段を含んだ加速度検出手段を含む手動操作機器の動きに基づいて、コンピュータ処理により以下の各動作が実現されることによってオブジェクトをたたくシミュレーションを行う装置であって、
    前記手動操作機器の動きの結果として生じる第1加速度検出手段の出力に基づいて、前記オブジェクトをたたくシミュレーションの時期を決定する手段と、
    前記手動操作機器の動きの結果として生じる第2加速度検出手段の出力に基づいて、前記オブジェクトをたたくシミュレーションの大きさを決定する手段と、
    聴覚的、視覚的、および触覚的な出力の少なくとも1つを用いて、前記決定されたたたくシミュレーションの時期とたたくシミュレーションの大きさとに応じてオブジェクトをたたくシミュレーションを行う手段とを備え、
    前記第1および第2の加速度検出手段の出力は、前記多軸加速度検出手段の異なる軸に対応する、装置。
  • 多軸加速度検出手段を含んだ加速度検出手段を含む手動操作機器の動きに基づいて、コンピュータ処理により以下の各動作が実現されることによってオブジェクトをたたくシミュレーションを行うシステムであって、
    前記手動操作機器の動きの結果として生じる第1加速度検出手段の出力に基づいて、前記オブジェクトをたたくシミュレーションの時期を決定する手段と、
    前記手動操作機器の動きの結果として生じる第2加速度検出手段の出力に基づいて、前記オブジェクトをたたくシミュレーションの大きさを決定する手段と、
    聴覚的、視覚的、および触覚的な出力の少なくとも1つを用いて、前記決定されたたたくシミュレーションの時期とたたくシミュレーションの大きさとに応じてオブジェクトをたたくシミュレーションを行う手段とを備え、
    前記第1および第2の加速度検出手段の出力は、前記多軸加速度検出手段の異なる軸に対応する、システム。
  • 说明书全文

    本出願は、加速度計に基づいて、振りの衝撃の時期および/または強度を検出するシステム方法、装置、およびプログラムに関する。

    本システムおよび方法は、非限定的な例として、プレイヤが加速度計を備えたコントローラを利用してドラム、シンバル、ティンパニー、タムタムなどの打楽器を演奏するようにオブジェクトをたたくシミュレーションをするゲーム装置において利用できる。 しかしながら、本システムおよび方法は、楽器演奏のシミュレーションに限定されず、剣術、ボクシング、およびその他幅広いアプリケーションのシミュレーションに利用できる。

    コンピュータシステムへのユーザー入は、様々な方法で行われる。 例えば、コンピュータシステムがビデオゲーム装置の場合、一般にはコントローラ上に設けられた十字スイッチ、ジョイスティック、ボタンなどを使って入力が行われる。 十字スイッチまたはジョイスティックは、ビデオゲームオブジェクトの様々な方向への動きを制御する際に使用され、様々なボタンは、キャラクタがジャンプする、武器を使用するなどのアクションをする際に使用される。

    本願発明に記述されるコントローラには、当該コントローラの特定の動きおよび/または向きに基づいて、ビデオゲーム装置や他のコンピュータシステムへの入力を生成する加速度計が追加的に、または選択的に備えられる。 このようなコントローラでは、例えば当該コントローラを特定の方法で動かすことにより、ビデオゲームオブジェクトの動きを制御できるなど、より直感的なユーザインタフェースが提供される。 例えば、コントローラを上下に傾けることにより、プレイヤはビデオゲームの飛行機の高度を上下することができる。

    設置された加速度計を利用して、十字スイッチ、ジョイスティック、ボタンなどを有するコントローラを用いた場合には(仮にあったとしても)簡単に得られないゲーム体験を提供できる。 本願発明は、加速度計からのデータに基づき振りの衝撃の時期および/または強度を検出するシステムおよび装置に関する。 本システムおよび方法により、プレイヤは、とりわけコントローラを動かしてオブジェクトをたたくシミュレーションをすることができる。 非限定的な例として、プレイヤは、コントローラをドラムスティックのように動かすことにより、ドラムの演奏のシミュレーションをすることができる。 加速度計の出力を用いて、ドラムをたたくタイミングおよび大きさ(強度)が決定され、聴覚的、視覚的、および触覚的な出力の少なくとも1つを用いてそのシミュレーションが行われる。 例えば、スピーカーを用いてドラムをたたく音を出力してもよく、またディスプレイを用いてドラムをたたく画像を表示してもよい。 追加的にまたは選択的に、振動回路をコントローラに備えてもよく、当該振動回路が振動することによりドラムをたたく感触がプレイヤに与えられる。

    本願発明に記載のシステムおよび装置は、楽器の演奏をシミュレーションすることに限定されず、例えば、コントローラを動かして刀剣などのオブジェクトを振り動かすシミュレーションをすることにも使用できる。

    図1は、一実施例における、ゲーム装置100、テレビ102、およびコントローラ107を含むゲームシステム10を示す図である。

    ゲーム装置100は、そのハウジング110に形成されたスロット105に挿入される光ディスク104に記憶されたゲームプログラムまたはその他のアプリケーションを実行する。 ゲームプログラムまたはその他のアプリケーションを実行した結果が、ケーブル106でゲーム装置100に接続されたテレビ102の表示画面101に表示される。 ゲームプログラムまたはその他のアプリケーションに関連する音声がテレビ102のスピーカー109を介して出力される。 図1では、光ディスクを使用しているが、ゲームプログラムまたはその他のアプリケーションは、半導体メモリ、光磁気メモリ、磁気メモリなどのその他の記憶媒体に記憶されてもよい。

    コントローラ107は、ゲーム制御データなどのデータをゲーム装置100に無線送信する。 ゲーム制御データは、例えば複数の操作ボタン、キー、スティックなどを備えたコントローラ107の操作部分を用いて生成することができる。 コントローラ107はまた、ゲーム装置100からデータを無線受信できる。 コントローラ107とゲーム装置100との無線通信には、ブルートゥース(登録商標)などの様々な無線プロトコルを使用してもよい。

    後述するように、コントローラ107はまた、発光素子108aおよび108bの画像を撮像し、かつ処理する撮像情報演算部を含む。 マーカー108aおよび108bは、図1ではテレビ100の上部に示されているが、テレビ100の下方に配置されてもよい。 一実施例において、発光素子108aおよび108bの中心点は、実質的に表示画面101の垂直中心線に一致する。 発光素子108aおよび108bの画像は、コントローラ107が指し示す方向、および表示画面101とコントローラ107との距離を決定するために用いられる。 例えば、発光素子108aおよび108bは、テレビ102の表示画面付近に備えられた2つのLEDモジュール(以下、「マーカー」という)として実現されてもよいが、それに限定されない。 それぞれのマーカーは赤外線を出力し、コントローラ107の撮像情報演算部が、LEDモジュールから出力された光を検出し、上述のようにコントローラ107の指し示す方向、および表示画面101とコントローラ107との距離を測定する。 以下の説明により明らかとなるが、本明細書に記載のシステムおよび方法の様々な実施例においては、マーカーを必ずしも使用するわけではない。

    図2のブロック図において、ゲーム装置100は、ビデオゲームプログラムなどを含む(がそれに限定されない)様々なタイプのアプリケーションを実行するRISC中央処理装置(CPU)204を有する。 CPU204は、例えばブートROMに格納されるブートプログラムを実行してゲーム装置100を初期化し、光ディスクドライブ208に挿入された光ディスク104に記憶されているアプリケーションを実行する。 ゲーム装置100のハウジング110に設けられた、ユーザーがアクセスしやすい取り出しボタン210を使ってディスクドライブ208から光ディスクを取り出すことができる。

    一実施例において、光ディスクドライブ208は、CPU204とグラフィックスプロセッサ216との機能を利用するように開発されたアプリケーションを含む(例えば、第1サイズおよび/または第1データ構造などの)第1のタイプの光ディスクと、本来CPU204および/またはグラフィックスプロセッサ216の機能とは異なる機能を有するCPUおよび/またはグラフィックスプロセッサにて実行されるように開発されたアプリケーションを含む(例えば、第2サイズおよび/または第2データ構造などの)第2のタイプの光ディスクとの両方を収容する。 例えば、第2のタイプの光ディスクは、本来Nintendoゲームキューブ機向けに開発されたアプリケーションである。

    CPU204は、関連するグラフィックメモリ220、オーディオデジタル信号プロセッサ(DSP)218、内部メインメモリ222、および入力/出力(IO)プロセッサ224と、グラフィック処理装置(GPU)216とを含むシステムLSI202に接続される。

    システムLSI202のIOプロセッサ224は、少なくとも1つのUSBポート226、少なくとも1つの標準メモリカードスロット(コネクタ)228、WiFiモジュール230、フラッシュメモリ232、および無線コントローラモジュール240に接続される。

    USBポート226は、ゲーム装置100に様々な外部機器を接続するために用いられる。 当該外部機器の例として、ゲームコントローラ、キーボード、外部ハードディスクドライブなどの記憶装置、プリンタ、デジタルカメラなどがあげられるが、それに限定されない。 USBポート226は、(例えばLANなどの)無線ネットワークの接続に用いてもよい。 一実施例として、USBポート226は2つ提供される。

    標準メモリカードスロット(コネクタ)228は、工業規格のメモリカード(例えばSDメモリカード)を収容できる。 一実施例として、メモリカードスロット228は1つ提供される。 一般にこれらのメモリカードは、データキャリアとして用いられるが、これは一例であり、それに限定されない。 例えば、プレイヤは、特定のゲームのゲームデータをメモリカードに保存し、当該ゲームカードを友人宅に持って行き、友人のゲーム装置で当該ゲームをすることができる。 メモリカードは、ゲーム装置とパーソナルコンピュータやデジタルカメラなどとの間におけるデータ送信に用いてもよい。

    WiFiモジュール230により、ゲーム装置100を無線アクセスポイントに接続することができる。 アクセスポイントは、別の場所にいるプレイヤとの(音声チャットの機能付き、または機能なしの)オンラインゲームや、ウェブの閲覧、電子メール、ファイルのダウンロード(ゲームのダウンロードを含む)、およびその他様々なオンラインアクティビティを行うためのインターネット接続を提供する。 一実施例として、WiFiモジュール230を用いて、適切に設置された携帯ゲーム機器などの他のゲーム機器と通信を行ってもよい。 本明細書では、当該モジュール230を、IEEE802.11規格のファミリーに対して用いられる呼称である「WiFi」という。 もちろん、ゲーム装置100は、他の無線規格に準拠する無線モジュールを用いてもよい。

    フラッシュメモリ232は、一例として、ゲーム保存データ、システムファイル、ゲーム装置の内部アプリケーションおよびダウンロードした(ゲームなどの)データを保存する。

    無線コントローラモジュール240は、1つまたは複数のコントローラ107から無線送信された信号を受信し、当該受信信号をIOプロセッサ224に提供する。 コントローラ107から無線コントローラモジュール240に送信される信号には、コントローラ107自体が生成した信号が含まれてもよい。 またコントローラ107に接続される他の機器が生成した信号が含まれてもよい。 例えば、ゲームの中には、右手および左手による別々の入力を利用できるものがあってもよい。 そのようなゲームでは、他のコントローラ(図示せず)をコントローラ107に(例えば有線接続で)接続し、コントローラ107が、それ自体が生成した信号と他のコントローラが生成した信号とを無線コントローラモジュール240に送信する。

    また無線コントローラモジュール240が、コントローラ107に信号を無線送信してもよい。 一例として、コントローラ107(および/またはコントローラ107に接続された他のゲームコントローラ)は、振動回路を備えてもよく、振動回路制御信号が無線コントローラモジュール240を介して送信され、(振動回路をオン・オフするなど)振動回路を制御する。 さらに一例として、コントローラ107はスピーカー(図示せず)を備え(あるいはスピーカーに接続され)、当該スピーカーから出力される音声信号が無線コントローラモジュール240を介してコントローラ107に無線送信されてもよい。 さらに一例として、コントローラ107は、表示機器(図示せず)を備え(あるいは表示機器に接続され)、当該表示機器から出力される表示信号が、無線コントローラモジュール240を介してコントローラ107に無線送信されてもよい。

    独自開発のメモリカード用スロット246は、独自開発のメモリカードを収容するように構成されている。 一実施例において、2つのメモリカードスロットが設けられる。 独自開発のメモリカードは、非標準コネクタおよび/または非標準メモリアーキテクチャなどの非標準的な特徴をいくつか有する。 例えば、少なくとも1つのメモリカードスロット246は、Nintendoゲームキューブ機にて用いられるメモリカードを収容するように構成されてもよい。 その場合、当該スロットに挿入されたメモリカードは、ゲームキューブ機向けに開発されたゲームのデータを転送できる。 一実施例において、メモリカードスロット246は、挿入されたメモリカードの読み出し専用アクセスのために用いてもよいが、その場合、当該メモリカードのデータを、スロット228に挿入された標準メモリカードなどのその他の記憶媒体に複製または転送可能かどうかに対して制限を設けてもよい。

    1つまたは複数のコントローラコネクタ244は、それぞれのゲームコントローラとの無線接続のために用いられる。 一実施例において、当該コネクタは4個設けられ、Nintendoゲームキューブ機用ゲームコントローラにケーブル接続されている。 または、各無線受信機をコネクタ244に接続し、無線ゲームコントローラからの信号を受信してもよい。 当該コネクタにより、光ディスクドライブ208に、ゲームキューブ機向けに開発されたゲームの光ディスクを挿入すると、プレイヤはとりわけNintendoゲームキューブ機用のコントローラを使用することができる。

    コネクタ248は、例えば通常の壁コンセントからのDC電源に、ゲーム装置100を接続するために提供される。 もちろん、電源として1個以上のバッテリを用いてもよい。

    GPU216は、CPU204からの指示に基づいて画像処理を行う。 GPU216は、例えば3次元(3D)グラフィックスを表示するために必要な計算を行う回路を含む。 GPU216は、画像処理専用のグラフィックメモリ220と、内部メインメモリ222の一部とを用いて画像処理を行う。 GPU216は、オーディオ/ビデオIC(インターフェース)212を介して、オーディオ/ビデオコネクタ214よりテレビ102に出力される画像データを生成する。

    オーディオDSP218は、CPU204からの指示に基づいて音声処理を行う。 オーディオDSP218によって生成された音声は、オーディオ/ビデオIC212を介してオーディオ/ビデオコネクタ214よりテレビ102に出力される。

    外部メインメモリ206および内部メインメモリ222は、CPU204から直接アクセス可能な記憶領域である。 例えば、これらメモリは、CPU204が光ディスク104から読み出したゲームプログラム、様々なタイプのデータなどのアプリケーションプログラムを記憶することができる。

    ROM/RTC238は、リアルタイムクロックを有し、好ましくは、外部からの電源供給がない場合でも使用できるように内部バッテリ(図示せず)で動作する。

    電源ボタン242は、ゲーム装置100の電源をオン・オフするために用いられる。 一実施例において、不意に誤って電源を切る可能性をなくすために、電源ボタン242を特定時間(例えば、1または2秒)押下してゲーム機の電源を切るものとする。 リセットボタン244は、ゲーム装置100をリセット(リブート)するために用いられる。

    図3および図4において、一例として、コントローラ107は、上面に操作制御部302a〜302hが設けられたハウジング301を有する。 ハウジング301は、一般に直方体で、プレイヤが手で把持しやすい形状である。 ハウジング301の上面の中央前面側に、十字スイッチ302aが設けられる。 十字スイッチ302aは、十字型の4方向プッシュスイッチで、矢印で示された方向(前、後、右、左)に対応する操作部を有し、当該操作部は、十字の突出部に配置される。 プレイヤは、十字スイッチ302aの操作部の1つを押下することによって、前、後、右および左の方向を選択する。 例えばプレイヤが十字スイッチ302aを操作することにより、仮想ゲーム世界においてキャラクタを異なる方向に移動させることができる。

    十字スイッチ302aを一例として説明したが、他のタイプの操作部を設けてもよい。 例えば、リング状の4方向操作部を備えたプッシュスイッチとセンタスイッチとを複合した複合スイッチを代わりに設けてもよい。 また一例として、ハウジング301の上面から突出した傾倒可能なスティックを倒すことによって、スティックの傾倒方向に応じた信号を出力する操作部を設けてもよい。 さらに一例として、平移動可能な円盤状部材であって、スライドさせることにより当該スライド方向に応じた信号を出力する操作部を設けてもよい。 さらに一例として、タッチパッドを用いてもよい。 さらに一例として、プレイヤが押下した際に信号を出力する、少なくとも4方向(前、後、右、左等)に対応する個別のスイッチを用いてもよい。

    ボタン(またはキー)302b〜302gは、ハウジング301の上面で、かつ十字スイッチ302aの後方に設けられる。 ボタン302b〜302gは、プレイヤが当該ボタンを押下した際にそれぞれの信号を出力する操作部である。 例えば、ボタン302b〜302dは、それぞれ、「X」ボタン、「Y」ボタン、「B」ボタンであり、ボタン302e〜302gは、それぞれ、セレクトスイッチ、メニュースイッチ、スタートスイッチである。 一般に、ボタン302b〜302gには、ゲーム装置100が実行するアプリケーションに応じて様々な機能が割り当てられる。 例えば図3に示す配置例では、ボタン302b〜302dは、ハウジング301の上面の中央前後方向に沿って並設されている。 ボタン302e〜302gは、左右方向に沿ってボタン302bおよび302dの間に並説されている。 ボタン302fは、プレイヤがコントローラ107を把持した際に不意に誤って押下することのないようにハウジング701上面に埋没している。

    ボタン302hは、ハウジング301上面の十字スイッチ302aの前面側に設けられる。 ボタン302hは、ゲーム装置100の電源を遠隔からオン/オフする電源スイッチである。 ボタン302hもまた、プレイヤが不意に誤って押下することのないように、ハウジング302の上面に埋没している。

    複数(例えば4個)のLED304がハウジング301上面で、ボタン302cの後方側に設けられる。 コントローラ107には、ゲーム装置100で用いられる他のコントローラと区別するために、コントローラ種別(番号)が割り当てられ、LEDs304を用いて割り当てられたコントローラ番号を視覚的にプレイヤに通知してもよい。 例えば、コントローラ107が無線コントローラモジュール240に信号を送信すると、複数のLEDのうち、コントローラ種別に対応するLEDが点灯する。

    図3Bにおいて、ハウジング301の下面には凹部308が形成される。 凹部308は、プレイヤがコントローラ107を把持したときに当該プレイヤの人差し指や中指が位置するような位置に形成される。 上記凹部の後部側傾斜面308aには、ボタン302iが設けられる。 ボタン302iは、例えば「A」ボタンとして機能し、一例としてシューティングゲームにおけるトリガスイッチとして用いられる。

    図4に示すように、撮像素子305aは、コントローラハウジング301前面に設けられる。 撮像素子305aは、コントローラ107の撮像情報演算部の一部を構成し、マーカー108aおよび108bから受信した画像データを解析する。 撮像情報演算部305は、例えば、最大200フレーム/秒程度のサンプリング周期を有するため、比較的高速なコントローラ107の動きも追跡して解析することができる。 本明細書に記載の、オブジェクトをたたくシミュレーションをする技術は、撮像情報演算部305からの情報を使用せずに達成できるため、撮像情報演算部の動作について更なる説明は省略する。 詳細については、2005年9月15日出願、出願番号60/716,937、発明の名称「無線モジュラー携帯コントローラを含むビデオゲームシステム(VIDEO GAME SYSTEM WITH WIRELESS MODULAR HANDHELD CONTROLLER)」、2005年11月3日出願、出願番号60/732,648、発明の名称「情報処理プログラム(INFORMATION PROCESSING PROGRAM)」、および2005年11月3日出願、出願番号60/732,649、発明の名称「情報処理システムおよび情報処理プログラム(INFORMATION PROCESSING SYSTEM AND PROGRAM THEREFOR)」より得られる。 前述の出願それぞれについて、その内容をそのまま本明細書に明示的に援用する。

    コネクタ303は、コントローラハウジング301の後面に設けられる。 コネクタ303は、コントローラ107に機器を接続するために用いられる。 例えば、プレイヤが両手によるゲームコントロール入力を用いてゲーム操作ができるように、同様のあるいは異なる構成からなる第2のコントローラを、コネクタ303を介してコントローラ107に接続してもよい。 他のゲーム装置用のゲームコントローラや、キーボード、キーパッド、タッチパッドなどの入力装置、スピーカーおよびディスプレイなどの出力装置などのその他の装置を、コネクタ303を用いてコントローラ107に接続してもよい。

    後の説明を簡単にするために、コントローラ107の座標系を定義する。 図3および図4に示すように、コントローラ107に対して左手のX、Y、Z座標系が定義されている。 もちろん、この座標系は一例として示されるものであり、その他の座標系を用いた場合でも、本明細書に記載のシステムおよび方法は同様に利用可能である。

    図5のブロック図に示すように、コントローラ107は、3方向、すなわち上下方向(図3および図4のZ軸)、左右方向(図3および図4のX軸)、および前後方向(図3および図4のY軸)の直線加速度を検出する3軸直線加速度センサー507を備える。 あるいは、例えば、Y軸およびZ軸に沿った直線加速度のみを検出する2軸の直線加速度計を用いてもよい。 または、例えばZ軸に沿った直線加速度のみを検出する1軸直線加速度計を用いてもよい。 一般に、所望する制御信号の種類に基づいて、備えられるべき(3軸または2軸などの)加速度計が決められる。 例えば、3軸または2軸の直線加速度計は、アナログ・デバイセズ株式会社(Analog Devices, Inc.)またはSTマイクロエレクトロニクス社(STMicroelectronics N.V.)から入手可能であるタイプのものでもよい。 好ましくは、加速度センサー507は、シリコン微細加工されたMEMS(Micro Electro Mechanical Systems:微小電子機械システム)の技術に基づいた静電容量式または静電容量結合式であってもよい。 しかしながら、既存のあるいは将来開発されるその他の適切な加速度計の技術(例えば、圧電方式や圧電抵抗方式)を用いて、3軸または2軸の加速度センサー507が提供されてもよい。

    当業者には公知であるように、加速度センサー507に用いられるような直線加速度センサーは、加速度センサーが有する各軸に対応する直線に沿った加速度のみを検知することができる。 つまり、加速度センサー507からの直接の出力は、その2軸または3軸のそれぞれに沿った直線加速度(静的または動的)を示す信号である。 そのため、加速度センサー507は、非直線状(例えば、円弧状)の経路に沿った動き、回転、回転運動、変位、傾斜、位置、姿勢等のその他の物理的特性を直接検知することはできない。

    しかしながら、加速度センサー507から出力される直線加速度の信号をさらに処理することにより、コントローラ107に関する更なる情報を推測または算出(判定)できることは、当業者であれば、本明細書の説明から容易に理解できるであろう。 例えば、静的な直線加速度(重力)を検知することにより、加速度センサー507から出力される直線加速度を用いて、検知された直線加速度とオブジェクトの傾斜角度とを相関させて重力ベクトルに対するオブジェクトの傾斜の度合いを知ることができる。 このように、加速度センサー507を、コントローラ107のマイクロコンピュータ(マイコン)502(または他のプロセッサ)と組み合わせて用いることにより、コントローラ107の傾き、姿勢または位置を判定することができる。 同様に、詳細については後述するが、加速度センサー307を含むコントローラ107に対して、例えばユーザーの手などで動的な加速度が加えられた場合、加速度センサー507が生成する直線加速度信号の処理を通じて、加速度コントローラ107の様々な動きおよび/または位置を計算することができる。

    他の実施例において、加速度センサー507は、マイコン502に信号を出力する前に内蔵の加速度計から出力された加速度信号に対して所望の処理を施すための、組み込み式の信号処理装置、または他の種類の専用処理装置を備えてもよい。 例えば、加速度センサーが静的な加速度(例えば重力加速度)を検知するためのものである場合、組み込み式または専用の処理装置は、検知した加速度信号をそれに相当する傾斜角(あるいはその他好ましいパラメータ)に変換するものであってもよい。

    図5に戻り、コントローラ107の撮像情報演算部505は、赤外線フィルタ528、レンズ529、撮像素子305a、および画像処理回路530を含む。 赤外線フィルタ528は、コントローラ107の前面に入射する光のうち赤外線のみを通過させる。 レンズ529は、赤外線フィルタ528を通過した赤外線を集光し撮像素子305aに出射する。 撮像素子305aは、例えばCMOSセンサーまたはCCDのような固体撮像素子である。 撮像素子305aはレンズ529が集光したマーカー108aおよび108bからの赤外線を撮像する。 従って、撮像素子305aは、赤外線フィルタ528を通過した赤外線のみを撮像して画像データを生成する。 生成された画像データは、画像処理回路520で処理され、高輝度部分が検知され、その検知に基づいて、検知された座標位置および当該高輝度部分の面積を示す処理結果データが通信部506に出力される。 この情報から、コントローラ107が指し示す方向や、ディスプレイ101とコントローラ107との距離を知ることができる。

    コントローラ107は、振動回路512を備えてもよい。 振動回路512は、例えば、振動モータやソレノイドである。 コントローラ107は、振動回路512の作動によって(例えばゲーム装置100からの信号に反応して)振動し、その振動がコントローラ107を把持するプレイヤの手に伝達される。 いわゆる、振動対応ゲームが実現できる。

    上述のように、コントローラ107の3軸方向を構成する要素として、すなわち、コントローラ107の上下方向(Z軸方向)、左右方向(X軸方向)、および前後方向(Y軸方向)の要素として加速度が検知され出力される。 加速度センサー507が検知した3軸方向の要素である加速度を示すデータが通信部506に出力される。 加速度センサー507から出力された加速度データに基づいて、コントローラ107の動きが判定される。

    通信部506は、マイコン502、メモリ503、無線モジュール504、およびアンテナ505を含む。 マイコン502は、処理の際にメモリ502を記憶領域として用いながら、データを送受信する無線モジュール504を制御する。 マイコン502は、操作信号(十字スイッチ、ボタン、またはキーのデータなど)を含むデータを操作部302から受信し、3軸方向(X軸、Y軸、およびZ軸方向の加速度データ)の加速度信号を加速度センサー507から受信し、撮像情報演算部505から処理結果データを受信する。 マイコン502は、受信したデータをゲーム装置100に送信する送信データとしてメモリ503に一時的に格納する。 通信部506からゲーム装置100への無線送信は、所定の周期で行われる。 ゲーム処理は、一般に1/60秒(16.7ms)を周期単位として行われるので、無線通信は、好ましくはそれよりも短い周期で行われる必要がある。 例えば、ブルートゥース(Bluetooth;登録商標)で構成される通信部の送信間隔は5msである。 マイコン502は、送信タイミングが到来すると、メモリ503に格納された送信データを、一連の操作情報として無線モジュール504に出力する。 無線モジュール504は、例えばブルートゥース(登録商標)の技術に基づいて、所定の周波数を有する搬送波として操作情報をアンテナから送信する。 従って、操作部302からの操作信号データ、加速度センサー507からのX軸、Y軸、およびZ軸方向の加速度データ、および撮像情報演算部505からの処理結果データは、コントローラ107から送信される。 ゲーム装置100は、搬送波信号を受信し、当該搬送波信号を復調または復号することにより、操作情報(操作信号データ、X軸、Y軸およびZ軸方向の加速度データ、および処理結果データなど)を取得する。 この受信データおよび現在実行中のアプリケーションに基づき、ゲーム装置100のCPU204は、アプリケーションの処理を行う。 ブルートゥース(登録商標)の技術を用いて通信部506を構成する場合、コントローラ107は、ゲーム装置100を含む装置から無線送信されたデータを受信することができる。

    図6〜図9を参照して、ドラムをたたくシミュレーションについて説明する。 この説明は一例であり、本明細書に記載するシステムおよび方法は様々な様態において使用できるように構成され、コントローラの振りまたは動きに応じた衝撃の時期および/または強度を検知することができる。

    図6は、ドラムをたたくシミュレーションをしている際におけるコントローラ107の動きを示す図である。 図6に示すように、コントローラの動きにより、Y軸方向の加速度データとZ軸方向の加速度データとが生成されている。 Y軸方向の加速度データは、ドラムをたたくシミュレーションをしている間における曲線軌道に沿った加速度センサー507の動きから生じた求心加速度に相当する。 より具体的には、プレイヤの手によってコントローラ107は円弧状に移動し、コントローラに求心力が作用し、その求心力により振りの中心に向かって(肘に向かって)コントローラが引っ張られる。 加速度センサー507は、この求心力に相当するY軸の加速度データを検知する。 コントローラ107の速度は、(積分などにより)Y軸の加速度データから引き出すことができ、当該速度はドラムをたたく衝撃強度を示す。 Z軸の加速度データは、ドラムをたたくシミュレーションをしている間において、コントローラ107の動きが開始した時、および停止した時を判断するために用いられる。 従って、Z軸の加速度データは、ドラムとの衝撃の時期を判定するために用いられる。

    図7Aおよび図7Bは、ドラムをたたくシミュレーションの一例におけるY軸加速度データおよびZ軸加速度データをそれぞれ示している。 図7Bにおいて、ドラムをたたくシミュレーションの開始は、「Prep」時間として示され、プレイヤがドラムをたたくシミュレーションを開始するためにコントローラ107を動かした時に相当する。 ドラムをたたくシミュレーションを開始する前におけるZ軸加速度の測定値は、コントローラの静止状態に相当し、Z軸加速度は1G(すなわち重力加速度による下方向の加速度)である。 プレイヤは、ドラムをたたくシミュレーションをするためにコントローラ107を上方に動かし、「Prep」点がコントローラを上げた位置から下方への動きの開始となる。 コントローラを上方に上げる最後の時点もまた、この「Prep」点のトリガを誘発し、下方への動きの開始に融合される。 簡素化と説明のために、本明細書では、「Prep」点は、下方への動きの開始に相当するものとする。

    衝撃の時期は、Z軸加速度データが最大閾値を越えた時に判定される。 図7Bにおいては、当該最大閾値は1.6Gである。 もちろん、この最大閾値は一例であり、他の値を閾値として用いてもよい。

    図7Aにおいて、「Prep」時間から衝撃の時期までのY軸加速度データを用いて衝撃強度が判定される。 特に、Prep時間から衝撃の時期までのY軸加速度データに対応する面積705の大きさは、コントローラの速度(すなわち加速度の積分)に相当し、衝撃強度のインジケータとして用いられる。 具体的には、正の加速度が加算され、面積705を形成する。 当該面積が大きいほど(すなわち、ドラムをたたくシミュレーションにおける速度が速いほど)、衝撃強度が大きい。 図8Aを用いて後述するが、面積705の大きさを任意の倍率で乗算し、ドラムをたたく際の音量を知ることができる。

    図8Aは、一実施例における様々な音量およびピッチを有するドラム打ち検知方法におけるフローチャートである。 この方法では、ボックス812に示す不変データと定数を用いる。 ビート進行中(BeatlnProgress)は、ブーリアン変数で、初期設定は「FALSE」である。 速度(Velocity)は浮動小数点変数で、初期設定は0.0である。 最低閾値(MinThreshold)は固定浮動小数点変数で、0.2Gに設定される。 ここで、Gは重力加速度を示す。 最大閾値(MaxThreshold)は、固定浮動小数点変数で、1.6Gに設定される。

    ST801にてメソッドが開始され、ST802に進んで3軸加速度計をサンプリングし、X軸、Y軸およびZ軸の加速度データを得る。

    ST803にて、BeatInPrograss変数を参照して、ドラム音が演奏されたばかりのものであるかを判定する。 変数がFALSEに設定されている場合(すなわち判定がNOの場合)、メソッドはST807に進み、求心加速度が0より大きいかどうかを判定する。 図6に示すように、Y軸加速度データを参照して求心加速度を判定することができる。 求心加速度が0を超えない場合、Velocity変数は、ST809にて0.0に設定され、メソッドはST805に進む。 求心加速度が0を越える場合、コントローラが振られている最中であり、ST808にて、現在の速度に求心加速度に基づく速度を加算して新たな速度を決定する。 より具体的には、フレーム(スライス)毎に加速度を加算することは、当該加速度の面積を計算することに相当する。 例えば、それぞれの加速度のスライスを1単位幅とすると、スライスの面積は単純にその大きさ(スライスの面積=大きさ×1)に等しい。 各スライスを加算することにより総面積が得られる。 その後、メソッドは、ST810に進む。

    ST810にて、下方向の加速度がMaxThreshold値(ここでは1.6G)を超えるかどうかを判断する。 加速度がMaxThreshold値を超えない場合、メソッドはST805に進む。 ST805にて、割り込み時間を待ち、その後メソッドはST802に戻る。 ST810にて判定された加速度がMaxThreshold値を超える場合、メソッドはST811に進む。

    ST811にて、BeatlnProgress変数はTRUEに設定される。 音量は、計算された速度とスケール定数に基づいて得られた値に設定される。 ピッチは、横方向の加速度に基づくCalcPitch関数から算出される。 より具体的には、CalcPitchは、プレイヤがコントローラ107を(例えばドライバーのように)ひねり、若干異なるピッチを得るためのルーチンである。 このひねりは、加速度センサー507のX軸加速度データから検知される。 例えば、ドラムをたたくシミュレーションにおいて、コントローラ107が水平である(X軸加速度データが0Gである)場合、特定のピッチが得られる。 ドラムをたたくシミュレーションにおいて、コントローラ107が左または右に傾斜している(X軸加速度が0Gではない)場合、ドラムのピッチは、もとのピッチよりも高くなる、あるいは低くなる。 ひねりの関数であるピッチの制御は、必要に応じて省略してもよい。

    ボタンから楽器を選択(GetlnstrumentFromButtons)ルーチンで、特定の楽器の演奏をシミュレーションするプロセスを検索する。 本明細書では、プレイヤが、ドラムに対応するコントローラ107の1つまたは複数のボタンを押下するものと仮定する。 他のボタンを単独で、あるいは組み合わせて押下することにより、他の楽器、または他の種類のドラムの演奏をシミュレーションすることができる。 音の演奏(PlaySound)ルーチンでは、判定された音量およびピッチに応じて、GetlnstrumentFromButtonsルーチンによって判定された楽器の音が演奏される。 ST811での処理の後、メソッドはST805に進み、割り込み時間を待つ。

    ST803にて、連打が行われていると判定された場合、ST804にて、下方向の加速度がMinThreshold(この場合0.2G)より小さいかどうかを判断する。 当該加速度がMinThresholdより小さくない場合、メソッドはST805に進み、割り込み時間を待つ。 当該加速度がMinThresholdより小さい場合、メソッドはST806に進み、BeatlnProgressがFALSEに設定され、Velocity変数が0.0に設定される。 その後メソッドはST805に進み、割り込み時間を待つ。 MinThreshold確認により、「Prep点」の発生を判定する。 従って、加速度がMinThresholdを超える(MinThresholdより下の正の下方向から動く)場合、「Prep点」が検知される。

    上述の加速度計データは、プレイヤによるコントローラ107の動きに応じて、ゲームキャラクタがドラムを演奏する様子をディスプレイ101に表示するために用いてもよい。 また、上述の方法の一例において判定された衝撃の時期に、コントローラ107の振動回路を作動させ、ドラムをたたいたときの感覚をプレイヤに与えるように触覚的な出力を行ってもよい。

    図9は、ゲームのディスプレイ901を示す一例であり、本明細書に記述されるドラムヒット検知方法が実行されている。 ゲームは、バンドの中でドラムを演奏するゲームキャラクタをプレイヤが制御するものである。 バンドには、他のバンドメンバーも含まれ、ゲームプログラムの制御によって、あるいは他のプレイヤの入力によって他の楽器の演奏が行われる。 ゲームの一実施例において、プレイヤは、歌のメニューから、バンドが演奏する歌を選択できる。 その場合、歌のドラム演奏は、本明細書に記述のようにプレイヤがコントローラ107を用いることによって行われる。 他のゲームの一実施例において、プレイヤは、コントローラ107を用いて行ったドラムのソロ演奏の録音を選択することができる。

    上述の方法の実施例は、両手にそれぞれコントローラをもった設定にも展開できる。 この設定において、プレイヤは、好みに応じてそれぞれのコントローラを用いて異なるドラムをたたくシミュレーションをすることができる。 他の設定においては、2人のプレイヤが、それぞれ片手または両手にコントローラを持って、一緒にドラム二重奏を行うことができる。 さらに他の設定においては、フットパッド型のコントローラ(例えば、簡単なスイッチ)を用いて、音量を変える必要のないバスドラムの制御を行うことができる。 すなわち、この設定においては、プレイヤは、両手にコントローラを持ってドラムを打ち、足を使ってバスドラムスイッチをたたくことになる。

    上述の方法の実施例においては、Y軸の加速度計データから得た速度を用いたが、Z軸の加速度計データから得た速度を用いてもよい。 その場合、Z軸の加速度計データのみが必要となる。

    上述の方法の実施例では、ドラム演奏のシミュレーションについて説明してきたが、本方法は、剣術やボクシングのシミュレーション、およびその他のアプリケーションにも適用できる。 使用する加速度計データは、個別のアプリケーションによって異なる。 例えば、ボクシングゲームでは、Y軸加速度データを用いて、パンチの強度および/またはパンチの衝撃の時期を判断してもよい。 例えば剣術ゲームでは、上下方向のストロークに対してはY軸およびZ軸の加速度計データを、また横方向のストロークにはX軸およびY軸の加速度計データを用いてもよい。

    図8Bは、一実施例における可変強度を有する刀剣の振り検知方法を示すフローチャートである。 この方法では、ボックス862に示す不変データと定数とを用いる。 振り進行中(SwinglnProgress)はブーリアン変数で、初期設定として「FALSE」に設定されている。 速度(Velocity)は、浮動小数点変数で、初期設定は0.0である。 最小閾値(MinThreshold)は、固定浮動小数点変数で、−1.5Gに設定されている。 最大閾値(MaxThreshold)は、固定浮動小数点変数で、1.5Gに設定されている。

    図8Bは、横方向の刀剣の振りに関するフローチャートである(すなわち、この例では右から左への振りのみが検知される)。 複数方向の加速度計による測定と処理ルーチンは、左から右、右から左、上から下、下から上の振り、あるいは必要であればその組み合わせや微妙な違いを検知するために、個別に、かつ同時に動作する必要がある。

    振りが始まると、X軸は非常に大きな負の加速度(ドラムをたたく場合に類似する)を受ける。 刀剣の振りが終わると、X軸は、非常に大きな正の加速度(ドラムをたたく場合に類似)を受ける。 横方向の動きは、重力の影響を受けないため、MaxThresholdおよびMinThresholdは、(−1.5Gおよび1.5Gと)ゼロを中心に平衡を保つ(対称をなす)。 ドラムの例では、重力は、常に上下の加速度に影響を与えるため、MaxThresholdおよびMinThresholdは、常にゼロを中心に対称をなす(極大値は約1Gにそれる)。

    ST853にて、SwinglnProgress変数を参照して、振りが現在行われているかどうかを判定する。 変数がFALSEに設定されている(すなわちNOと判定された)場合、当該メソッドはST857に進み、求心加速度が0Gより大きいかどうかを判定する。 図6を用いた上記説明に沿って、求心加速度はY軸加速度データに基づいて決定される。 求心加速度が0Gを超えない場合、Velocity変数はST859にて0.0に設定され、当該メソッドはST855に進む。 一方、求心加速度が0Gより大きい場合、コントローラは現在振られており、ST858にて、求心加速度に基づく速度を現在の速度に加算して新たな速度が決定される。 より具体的には、フレーム(スライス)毎に加速度を加算することは、加速度の面積を計算することに相当する。 例えば、各加速度スライスを1単位幅とすると、当該スライスの面積は単純にその大きさ(スライスの面積=大きさ×1)となる。 各スライスを加算することにより、総面積が得られる。 その後メソッドは、ST860に進む。

    ST860にて、横方向の加速度が(例えば、X軸加速度データを用いて測定された)MaxThreshold値を超えるかどうかを判定する。 加速度が当該値を超えない場合、メソッドはST855に進む。 ST855にて、割り込み時間を待ってメソッドはST852に戻る。 ST860で加速度がMaxThreshold値より大きい場合、メソッドはST861に進む。

    ST861にて、SwingInProgress変数は、TRUEに設定され、強度は、速度をスケール定数で乗じた速度と同じ値に設定される。 (例えば、対応する表示を生成し、対応する音を出力する)刀剣の振りのシミュレーションを行うSwingSwordルーチンは、算出された強度に基づいて実行される。 ST861での処理の後、メソッドはST855に進み、割り込み時間待ちをする。

    ST853にて、振りが行われていると判定された場合、ST854にて横方向の加速度がMinThresholdより小さいかどうかを判定する。 横方向の加速度がMinThresholdより小さくない場合、メソッドはST855に進み、割り込み時間待ちをする。 MinThresholdより小さい場合、メソッドはST856に進み、SwinglnProgressをFalseに、Velocity変数を0.0に設定する。 その後、メソッドはST855に進み、割り込み時間待ちをする。

    上記説明は、加速度計を用いて行ってきたが、上記加速度を導き出すことが可能な他の装置を用いてもよい。

    本明細書に記述の方法を含むプログラムは、例えば、光ディスク104に、またはその他のコンピュータ読み取り可能な媒体に実体的に取り入れることができる。 他の例において、当該プログラムは、通信ネットワークを介して配信するようにインターネットからダウンロード可能としてもよい。 さらに、対応するプログラムを示す信号で搬送波を変調し、取得した変調波を送信し、当該変調波を受信する装置が変調波を復調し、対応するプログラムを復元してもよい。

    現在実用的かつ好ましいと考えられる実施形態において本システムおよび方法を説明してきたが、本システムおよび方法は、開示された実施形態に限定されるものではなく、付随する請求の精神と範囲内における様々な変形例および同等の設定にも適用されるものであることはいうまでもない。

    一実施例におけるゲームシステム10を示す図

    図1に示す一実施例におけるゲーム装置100を示すブロック図

    図1に示す一実施例におけるコントローラ107の上部を示す斜視図

    図1に示す一実施例におけるコントローラ107の下部を示す斜視図

    図1に示す一実施例におけるコントローラ107の前面図

    図1に示す一実施例におけるコントローラ107のブロック図

    ドラムをたたくシミュレーションをしている間におけるコントローラ107の動きを示す図

    ドラムをたたくシミュレーションの一実施例におけるY軸方向およびZ軸方向の加速度データを示す図

    一実施例における、可変音量および可変ピッチを有するドラム打ち検出方法を示すフローチャート

    一実施例における、可変強度を有する刀剣の振り検出方法を示すフローチャート

    プレイヤがドラムを叩くシミュレーションを用いてビデオゲームをしている様子を示す図

    QQ群二维码
    意见反馈