JP5430123B2 - ゲーム装置およびゲームプログラム - Google Patents

ゲーム装置およびゲームプログラム Download PDF

Info

Publication number
JP5430123B2
JP5430123B2 JP2008280190A JP2008280190A JP5430123B2 JP 5430123 B2 JP5430123 B2 JP 5430123B2 JP 2008280190 A JP2008280190 A JP 2008280190A JP 2008280190 A JP2008280190 A JP 2008280190A JP 5430123 B2 JP5430123 B2 JP 5430123B2
Authority
JP
Japan
Prior art keywords
game
acceleration
data
angular velocity
input device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2008280190A
Other languages
English (en)
Other versions
JP2010104592A (ja
Inventor
善一 山下
一郎 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2008280190A priority Critical patent/JP5430123B2/ja
Priority to US12/340,820 priority patent/US8267785B2/en
Priority to EP08022269.8A priority patent/EP2181740B1/en
Publication of JP2010104592A publication Critical patent/JP2010104592A/ja
Application granted granted Critical
Publication of JP5430123B2 publication Critical patent/JP5430123B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/211Input arrangements for video game devices characterised by their sensors, purposes or types using inertial sensors, e.g. accelerometers or gyroscopes
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • A63F13/428Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving motion or position input signals, e.g. signals representing the rotation of an input controller or a player's arm motions sensed by accelerometers or gyroscopes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/80Special adaptations for executing a specific game genre or game mode
    • A63F13/803Driving vehicles or craft, e.g. cars, airplanes, ships, robots or tanks
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/10Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals
    • A63F2300/105Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals using inertial sensors, e.g. accelerometers, gyroscopes
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/6045Methods for processing data by generating or executing the game program for mapping control signals received from the input arrangement into game commands
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/8005Athletics
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/8017Driving on land or water; Flying

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Position Input By Displaying (AREA)

Description

本発明は、ジャイロセンサと加速度センサを利用したゲームを実行するゲーム装置およびゲームプログラムに関し、より特定的には、入力装置に加えられた動きを検出してゲーム処理に反映するゲーム装置およびゲームプログラムに関する。
従来より、ジャイロセンサと加速度センサを備えた、ゲーム装置の入力制御装置が知られている(例えば、特許文献1)。当該入力制御装置は棒状に形成されており、これを刀に見立てて遊ぶゲーム処理が実行される。このゲーム処理では、加速度センサの出力に基づいて、刀を振る動作、例えば、強弱、前後左右上下の移動のデータが作成される。また、ジャイロセンサの出力に基づいて、刀を回す(ひねる)姿勢や、前後左右に傾ける姿勢のデータが作成される。そして、上記作成されたデータに基づいて、ゲーム内のオブジェクト(この場合には、刀)の移動した様子を、モニタのゲーム画面に出力している。
特開2000−308756号公報
しかしながら、上述したような入力制御装置を用いたゲーム処理においては、以下に示す問題点があった。まず、上記入力制御装置の各動作の検出に際しては、加速度センサ、ジャイロセンサのいずれか一方のセンサ出力しか利用していない。すなわち、刀を振る動作の検出については、加速度センサからの出力のみを利用しており、刀を回す動作の検出については、ジャイロセンサからの出力のみしか利用していない。そのため、例えば、移動速度に基づいた操作等に関しては、開示されていない。また、移動速度を加速度の積分から算出することも考えられるが、この場合、誤差が発生しやすいという問題がある。また、入力制御装置を円状に動かすような回転運動を行った場合、当該回転運動に係る円の大きさ(円の半径や直径)は把握することができない。
それ故に、本発明の目的は、加速度センサとジャイロセンサの双方を用いるゲームにおいて、新規な制御によってゲームが実行できるゲーム装置を提供することである。本願のさらに他の目的は、加速度センサとジャイロセンサの双方を用いるゲームにおいて、入力装置の移動速度や回転の半径に基づいた制御が可能なゲーム装置を提供することである。
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係の一例を示したものであって、本発明を何ら限定するものではない。
第1の発明は、操作データ取得手段(10)と、推定手段(10)と、ゲーム処理手段(109とを備えるゲーム装置(3)である。操作データ取得手段は、加速度センサとジャイロセンサとを少なくとも備えた入力装置(8)から加速度データと角速度データとを少なくとも含む操作データを取得する。推定手段は、加速度データと角速度データに基づいて、入力装置自体の移動速度および/または入力装置自体に加えられた回転運動の中心と入力装置との相対的な位置関係を推定する。ゲーム処理手段は、推定された移動速度および/または位置関係に基づいてゲーム処理を行う。
第1の発明によれば、入力装置に加えられた回転運動の中心と移動速度を推定でき、新規な操作性を有するゲーム装置を提供することができる。
第2の発明は、第1の発明において、推定手段は、回転運動に対して当該回転運動の中心の変化の影響を無視する近似を行って入力装置自体の移動速度および/または相対的な位置関係を推定する。
第2の発明によれば、処理を簡易なものとしつつ、入力装置に加えられた回転運動の中心と移動速度を推定できる。
第3の発明は、第1の発明において、推定手段は、所定の期間内における角速度データの変化に基づいて角加速度データを算出する角加速度算出手段(10)を含む。そして、推定手段は、加速度データ、角速度データ、角加速度データに基づいて相対的な位置関係を算出し、当該位置関係および角速度データに基づいて移動速度を算出する。
第3の発明によれば、入力装置の移動速度をより適切に算出することが可能となる。
第4の発明は、第1の発明において、ゲーム装置は、加速度データと角速度データに基づいて入力装置の姿勢を算出する姿勢算出手段(10)を更に備える。
第4の発明によれば、入力装置の姿勢を反映したゲーム処理を実行することができる。
第5の発明は、第4の発明において、加速度データには重力加速度が含まれている。また、推定手段は、姿勢算出手段によって算出された入力装置の姿勢に基づいて重力加速度を推定する重力加速度推定手段と、加速度データから重力加速度を除くことによって重力成分以外の加速度成分である運動成分を算出する運動成分算出手段(10)とを含む。
第5の発明によれば、より正確に回転運動の中心および入力装置の移動速度を推定することが可能となる。
第6の発明は、第4の発明において、ゲーム処理手段は、姿勢算出手段が算出した入力装置の姿勢および推定手段が算出した移動速度に基づいてゲーム処理を実行する。
第6の発明によれば、入力装置の姿勢と入力装置の移動速度を反映したゲーム処理を実行することでき、新規な操作でゲームを行うゲーム装置を提供することができる。
第7の発明は、第6の発明において、ゲーム処理手段は、プレイヤの操作対象となる操作対象オブジェクトの仮想ゲーム空間内における姿勢を入力装置の姿勢に基づいて決定し、当該操作対象オブジェクトの位置を移動速度に基づいて決定する。
第8の発明は、第7の発明において、ゲーム処理手段は、入力装置の姿勢に基づいた制御を行い、当該姿勢に基づく制御量を、移動速度に基づいてさらに変化させる。
第7乃至第8の発明によれば、プレイヤが入力装置に対して加えた運動をゲーム処理により正確に反映することが可能となる。
第9の発明は、第1の発明において、ゲーム処理手段は、移動速度に基づいて第1の制御を行い、位置関係に基づいて第2の制御を行う。
第9の発明によれば、入力装置の移動速度と、回転運動の中心と入力装置との相対的な位置関係とを個別に扱うことができ、新規なゲームを提供する事が可能となる。
第10の発明は、第1の発明において、推定手段は、相対的な位置関係を回転運動における半径を示す値として推定する。
第11の発明は、第1の発明において、推定手段は、相対的な位置関係を回転運動における中心から入力装置の位置へのベクトルとして推定する。
第10乃至第11の発明によれば、回転運動の中心と入力装置の相対的な位置関係を示すデータをより簡便に扱うことができる。
第12の発明は、第9または10の発明において、ゲーム装置は、角速度データで示される角速度の大きさに応じて、相対的な位置関係を補正する補正手段を更に備える。
第13の発明は、第11の発明において、補正手段は、角速度が大きいほど、当該角速度が相対的な位置関係に反映される度合いが高くなるように補正を行い、角速度が小さいほど、当該角速度が当該相対的な位置関係に反映される度合いが低くなるように補正を行う。
第12乃至第13の発明によれば、プレイヤが入力装置に対して加えた運動をゲーム処理により正確に反映することが可能となる。
第14の発明は、第5の発明において、推定手段は、位置関係を以下の数式を用いて算出する。
Figure 0005430123
なお、Rsは位置関係として示される値を意味し、Aは運動成分として示される値を意味し、ωは角速度データとして示される3軸成分の角速度の値を意味する。
Figure 0005430123
第14の発明によれば、上記第1の発明と同様の効果を得ることができる。
第15の発明は、ゲーム装置のコンピュータを、操作データ取得手段(S1)と、推定手段(S5,S6)と、ゲーム処理手段(S7,S8)として機能させるゲームプログラムである。操作データ取得手段は、加速度センサとジャイロセンサとを少なくとも備えた入力装置から加速度データと角速度データとを少なくとも含む操作データを取得する。推定手段は、加速度データと角速度データに基づいて、入力装置自体の移動速度および/または入力装置自体に加えられた回転運動の中心と入力装置との相対的な位置関係を推定する。ゲーム処理手段は、推定された移動速度および/または位置関係に基づいてゲーム処理を行う。
第16の発明は、第15の発明において、推定手段は、回転運動に対して当該回転運動の中心の変化の影響を無視する近似を行って入力装置自体の移動速度および/または相対的な位置関係を推定する。
第17の発明は、第17の発明において、推定手段は、所定の期間内における角速度データの変化に基づいて角加速度データを算出する角加速度算出手段(S4)を含む。そして、推定手段は、加速度データ、角速度データ、角加速度データに基づいて相対的な位置関係を算出し、当該位置関係および角速度データに基づいて移動速度を算出する。
第18の発明は、第17の発明において、ゲームプログラムは、コンピュータを、加速度データと角速度データに基づいて入力装置の姿勢を算出する姿勢算出手段(S2)として更に機能させる。
第19の発明は、第17の発明において、加速度データには重力加速度が含まれている。また、推定手段は、姿勢算出手段によって算出された入力装置の姿勢に基づいて重力加速度を推定する重力加速度推定手段(S3)と、加速度データから重力加速度を除くことによって重力成分以外の加速度成分である運動成分を算出する運動成分算出手段(S3)とを含む。
第20の発明は、第17の発明において、ゲーム処理手段は、姿勢算出手段が算出した入力装置の姿勢および推定手段が算出した移動速度に基づいてゲーム処理を実行する。
第21の発明は、第17の発明において、ゲーム処理手段は、プレイヤの操作対象となる操作対象オブジェクトの仮想ゲーム空間内における姿勢を入力装置の姿勢に基づいて決定し、当該操作対象オブジェクトの位置を前記移動速度に基づいて決定する。
第22の発明は、第21の発明において、ゲーム処理手段は、操作対象オブジェクトの仮想ゲーム空間内における姿勢を入力装置の姿勢および移動速度に基づいて決定する。
第23の発明は、第15の発明において、ゲーム処理手段は、移動速度に基づいて第1の制御を行い、位置関係に基づいて第2の制御を行う。
第24の発明は、第15の発明において、推定手段は、相対的な位置関係を回転運動における半径を示す値として推定する。
第25の発明は、第15の発明において、推定手段は、相対的な位置関係を回転運動における中心から入力装置の位置へのベクトルとして推定する。
第26の発明は、第24または25の発明において、ゲームプログラムは、コンピュータを、角速度データで示される角速度の大きさに応じて、相対的な位置関係を補正する補正手段として更に機能させる。
第27の発明は、第26の発明において、補正手段は、角速度が大きいほど、当該角速度が相対的な位置関係に反映される度合いが高くなるように補正を行い、角速度が小さいほど、当該角速度が当該相対的な位置関係に反映される度合いが低くなるように補正を行う。
第28の発明は、第19の発明において、推定手段は、位置関係を以下の数式を用いて算出する。
Figure 0005430123
なお、Rsは位置関係として示される値を意味し、Aは運動成分として示される値を意味し、ωは角速度データとして示される3軸成分の角速度の値を意味する。
Figure 0005430123
本発明のゲームプログラムによれば、上述した本発明のゲーム装置と同様の効果を得ることができる。
本発明によれば、入力装置に加えられた回転運動にかかる中心、および移動速度を推定することができる。これにより、新規な操作でゲームを行うゲーム装置、およびゲームプログラムを提供することができる。
以下、本発明の実施の形態について、図面を参照して説明する。尚、この実施例により本発明が限定されるものではない。
[ゲームシステムの全体構成]
図1を参照して、本発明の一実施形態に係る姿勢算出装置の一例であるゲーム装置を含むゲームシステム1について説明する。図1は、ゲームシステム1の外観図である。以下、据置型のゲーム装置を一例にして、本実施形態のゲーム装置およびゲームプログラムについて説明する。図1において、ゲームシステム1は、テレビジョン受像器(以下、単に「テレビ」と記載する)2、ゲーム装置3、光ディスク4、入力装置8、およびマーカ部6を含む。本システムは、入力装置8を用いたゲーム操作に基づいてゲーム装置3でゲーム処理を実行するものである。
ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着可能に挿入される。光ディスク4には、ゲーム装置3において実行されるためのゲームプログラムが記憶されている。ゲーム装置3の前面には光ディスク4の挿入口が設けられている。ゲーム装置3は、挿入口に挿入された光ディスク4に記憶されているゲームプログラムを読み出して実行することによってゲーム処理を実行する。
ゲーム装置3には、表示装置の一例であるテレビ2が接続コードを介して接続される。テレビ2は、ゲーム装置3において実行されるゲーム処理の結果得られるゲーム画像を表示する。また、テレビ2の画面の周辺(図1では画面の上側)には、マーカ部6が設置される。マーカ部6は、その両端に2つのマーカ6Rおよび6Lを備えている。マーカ6R(マーカ6Lも同様)は、具体的には1以上の赤外LEDであり、テレビ2の前方に向かって赤外光を出力する。マーカ部6はゲーム装置3に接続されており、ゲーム装置3はマーカ部6が備える各赤外LEDの点灯を制御することが可能である。
入力装置8は、自機に対して行われた操作の内容を示す操作データをゲーム装置3に与えるものである。本実施形態では、入力装置8はコントローラ5とジャイロセンサユニット7とを含む。詳細は後述するが、入力装置8は、コントローラ5に対してジャイロセンサユニット7が着脱可能に接続されている構成である。コントローラ5とゲーム装置3とは無線通信によって接続される。本実施形態では、コントローラ5とゲーム装置3との間の無線通信には例えばBluetooth(ブルートゥース)(登録商標)の技術が用いられる。なお、他の実施形態においてはコントローラ5とゲーム装置3とは有線で接続されてもよい。
[ゲーム装置3の内部構成]
次に、図2を参照して、ゲーム装置3の内部構成について説明する。図2は、ゲーム装置3の構成を示すブロック図である。ゲーム装置3は、CPU10、システムLSI11、外部メインメモリ12、ROM/RTC13、ディスクドライブ14、およびAV−IC15等を有する。
CPU10は、光ディスク4に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。CPU10は、システムLSI11に接続される。システムLSI11には、CPU10の他、外部メインメモリ12、ROM/RTC13、ディスクドライブ14およびAV−IC15が接続される。システムLSI11は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。システムLSIの内部構成について後述する。揮発性の外部メインメモリ12は、光ディスク4から読み出されたゲームプログラムや、フラッシュメモリ17から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、CPU10のワーク領域やバッファ領域として用いられる。ROM/RTC13は、ゲーム装置3の起動用のプログラムが組み込まれるROM(いわゆるブートROM)と、時間をカウントするクロック回路(RTC:Real Time Clock)とを有する。ディスクドライブ14は、光ディスク4からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ11eまたは外部メインメモリ12に読み出したデータを書き込む。
また、システムLSI11には、入出力プロセッサ(I/Oプロセッサ)11a、GPU(Graphics Processor Unit)11b、DSP(Digital Signal Processor)11c、VRAM11d、および内部メインメモリ11eが設けられる。図示は省略するが、これらの構成要素11a〜11eは内部バスによって互いに接続される。
GPU11bは、描画手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)に従って画像を生成する。VRAM11dは、GPU11bがグラフィクスコマンドを実行するために必要なデータ(ポリゴンデータやテクスチャデータ等のデータ)を記憶する。画像が生成される際には、GPU11bは、VRAM11dに記憶されたデータを用いて画像データを作成する。
DSP11cは、オーディオプロセッサとして機能し、内部メインメモリ11eや外部メインメモリ12に記憶されるサウンドデータや音波形(音色)データを用いて、音声データを生成する。
上述のように生成された画像データおよび音声データは、AV−IC15によって読み出される。AV−IC15は、読み出した画像データをAVコネクタ16を介してテレビ2に出力するとともに、読み出した音声データを、テレビ2に内蔵されるスピーカ2aに出力する。これによって、画像がテレビ2に表示されるとともに音がスピーカ2aから出力される。
入出力プロセッサ11aは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ11aは、フラッシュメモリ17、無線通信モジュール18、無線コントローラモジュール19、拡張コネクタ20、およびメモリカード用コネクタ21に接続される。無線通信モジュール18にはアンテナ22が接続され、無線コントローラモジュール19にはアンテナ23が接続される。
入出力プロセッサ11aは、無線通信モジュール18およびアンテナ22を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ11aは、定期的にフラッシュメモリ17にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、無線通信モジュール18およびアンテナ22を介してネットワークに送信する。また、入出力プロセッサ11aは、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ22および無線通信モジュール18を介して受信し、受信したデータをフラッシュメモリ17に記憶する。CPU10はゲームプログラムを実行することにより、フラッシュメモリ17に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ17には、ゲーム装置3と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置3を利用してプレイしたゲームのセーブデータ(ゲームの結果データまたは途中データ)が記憶されてもよい。
また、入出力プロセッサ11aは、コントローラ5から送信される操作データをアンテナ23および無線コントローラモジュール19を介して受信し、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域に記憶(一時記憶)する。
さらに、入出力プロセッサ11aには、拡張コネクタ20およびメモリカード用コネクタ21が接続される。拡張コネクタ20は、USBやSCSIのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール18に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ21は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ11aは、拡張コネクタ20やメモリカード用コネクタ21を介して外部記憶媒体にアクセスし、外部記憶媒体にデータを保存したり、外部記憶媒体からデータを読み出したりすることができる。
ゲーム装置3には、電源ボタン24、リセットボタン25、およびイジェクトボタン26が設けられる。電源ボタン24およびリセットボタン25は、システムLSI11に接続される。電源ボタン24がオンされると、ゲーム装置3の各構成要素に対して、図示しないACアダプタを経て電源が供給される。リセットボタン25が押されると、システムLSI11は、ゲーム装置3の起動プログラムを再起動する。イジェクトボタン26は、ディスクドライブ14に接続される。イジェクトボタン26が押されると、ディスクドライブ14から光ディスク4が排出される。
[入力装置8の構成]
次に、図3〜図6を参照して、入力装置8について説明する。図3は、入力装置8の外観構成を示す斜視図である。図4は、コントローラ5の外観構成を示す斜視図である。図3は、コントローラ5の上側後方から見た斜視図であり、図4は、コントローラ5を下側前方から見た斜視図である。
図3および図4において、コントローラ5は、例えばプラスチック成型によって形成されたハウジング31を有している。ハウジング31は、その前後方向(図3に示すZ軸方向)を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。プレイヤは、コントローラ5に設けられたボタンを押下すること、および、コントローラ5自体を動かしてその位置や姿勢を変えることによってゲーム操作を行うことができる。
ハウジング31には、複数の操作ボタンが設けられる。図3に示すように、ハウジング31の上面には、十字ボタン32a、1番ボタン32b、2番ボタン32c、Aボタン32d、マイナスボタン32e、ホームボタン32f、プラスボタン32g、および電源ボタン32hが設けられる。本明細書では、これらのボタン32a〜32hが設けられるハウジング31の上面を「ボタン面」と呼ぶことがある。一方、図4に示すように、ハウジング31の下面には凹部が形成されており、当該凹部の後面側傾斜面にはBボタン32iが設けられる。これらの各操作ボタン32a〜32iには、ゲーム装置3が実行するゲームプログラムに応じた機能が適宜割り当てられる。また、電源ボタン32hは遠隔からゲーム装置3本体の電源をオン/オフするためのものである。ホームボタン32fおよび電源ボタン32hは、その上面がハウジング31の上面に埋没している。これによって、プレイヤがホームボタン32fまたは電源ボタン32hを誤って押下することを防止することができる。
ハウジング31の後面にはコネクタ33が設けられている。コネクタ33は、コントローラ5に他の機器(例えば、ジャイロセンサユニット7や他のコントローラ)を接続するために利用される。また、ハウジング31の後面におけるコネクタ33の両側には、上記他の機器が容易に離脱することを防止するために係止穴33aが設けられている。
ハウジング31上面の後方には複数(図3では4つ)のLED34a〜34dが設けられる。ここで、コントローラ5には、他のメインコントローラと区別するためにコントローラ種別(番号)が付与される。各LED34a〜34dは、コントローラ5に現在設定されている上記コントローラ種別をプレイヤに通知したり、コントローラ5の電池残量をプレイヤに通知したりする等の目的で用いられる。具体的には、コントローラ5を用いてゲーム操作が行われる際、上記コントローラ種別に応じて複数のLED34a〜34dのいずれか1つが点灯する。
また、コントローラ5は撮像情報演算部35(図6)を有しており、図4に示すように、ハウジング31前面には撮像情報演算部35の光入射面35aが設けられる。光入射面35aは、マーカ6Rおよび6Lからの赤外光を少なくとも透過する材質で構成される。
ハウジング31上面における1番ボタン32bとホームボタン32fとの間には、コントローラ5に内蔵されるスピーカ49(図5)からの音を外部に放出するための音抜き孔31aが形成されている。
次に、図5および図6を参照して、コントローラ5の内部構造について説明する。図5および図6は、コントローラ5の内部構造を示す図である。なお、図5は、コントローラ5の上筐体(ハウジング31の一部)を外した状態を示す斜視図である。図6は、コントローラ5の下筐体(ハウジング31の一部)を外した状態を示す斜視図である。図6に示す斜視図は、図5に示す基板30を裏面から見た斜視図となっている。
図5において、ハウジング31の内部には基板30が固設されており、当該基板30の上主面上に各操作ボタン32a〜32h、各LED34a〜34d、加速度センサ37、アンテナ45、およびスピーカ49等が設けられる。これらは、基板30等に形成された配線(図示せず)によってマイクロコンピュータ(Micro Computer:マイコン)42(図6参照)に接続される。本実施形態では、加速度センサ37は、X軸方向に関してコントローラ5の中心からずれた位置に配置されている。これによって、コントローラ5をZ軸回りに回転させたときのコントローラ5の動きが算出しやすくなる。また、加速度センサ37は、長手方向(Z軸方向)に関してコントローラ5の中心よりも前方に配置されている。また、無線モジュール44(図6)およびアンテナ45によって、コントローラ5がワイヤレスコントローラとして機能する。
一方、図6において、基板30の下主面上の前端縁に撮像情報演算部35が設けられる。撮像情報演算部35は、コントローラ5の前方から順に赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を備えている。これらの部材38〜41はそれぞれ基板30の下主面に取り付けられる。
さらに、基板30の下主面上には、上記マイコン42およびバイブレータ48が設けられている。バイブレータ48は、例えば振動モータやソレノイドであり、基板30等に形成された配線によってマイコン42と接続される。マイコン42の指示によりバイブレータ48が作動することによってコントローラ5に振動が発生する。これによって、コントローラ5を把持しているプレイヤの手にその振動が伝達される、いわゆる振動対応ゲームを実現することができる。本実施形態では、バイブレータ48は、ハウジング31のやや前方寄りに配置される。つまり、バイブレータ48がコントローラ5の中心よりも端側に配置することによって、バイブレータ48の振動によりコントローラ5全体を大きく振動させることができる。また、コネクタ33は、基板30の下主面上の後端縁に取り付けられる。なお、図5および図6に示す他、コントローラ5は、マイコン42の基本クロックを生成する水晶振動子、スピーカ49に音声信号を出力するアンプ等を備えている。
また、ジャイロセンサユニット7は、3軸回りの角速度を検知するジャイロセンサ(図7に示すジャイロセンサ55および56)を有する。ジャイロセンサユニット7は、コントローラ5のコネクタ33に着脱可能に装着される。ジャイロセンサユニット7の前端(図3に示すZ軸正方向側の端部)には、コネクタ33に接続可能なプラグ(図7に示すプラグ53)が設けられる。さらに、プラグ53の両側にはフック(図示せず)が設けられる。ジャイロセンサユニット7がコントローラ5に対して装着される状態では、プラグ53がコネクタ33に接続されるとともに、上記フックがコントローラ5の係止穴33aに係止する。これによって、コントローラ5とジャイロセンサユニット7とがしっかりと固定される。また、ジャイロセンサユニット7は側面(図3に示すX軸方向の面)にボタン51を有している。ボタン51は、それを押下すれば上記フックの係止穴33aに対する係止状態を解除することができるように構成されている。したがって、ボタン51を押下しながらプラグ53をコネクタ33から抜くことによって、ジャイロセンサユニット7をコントローラ5から離脱することができる。
また、ジャイロセンサユニット7の後端には、上記コネクタ33と同形状のコネクタが設けられる。したがって、コントローラ5(のコネクタ33)に対して装着可能な他の機器は、ジャイロセンサユニット7のコネクタに対しても装着可能である。なお、図3においては、当該コネクタに対してカバー52が着脱可能に装着されている。
なお、図3〜図6に示したコントローラ5およびジャイロセンサユニット7の形状や、各操作ボタンの形状、加速度センサやバイブレータの数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であっても、本発明を実現することができる。また、本実施形態では、撮像手段による撮像方向はZ軸正方向であるが、撮像方向はいずれの方向であってもよい。すなわち、コントローラ5における撮像情報演算部35の位置(撮像情報演算部35の光入射面35a)は、ハウジング31の前面でなくてもよく、ハウジング31の外部から光を取り入れることができれば他の面に設けられてもかまわない。
図7は、入力装置8(コントローラ5およびジャイロセンサユニット7)の構成を示すブロック図である。コントローラ5は、操作部32(各操作ボタン32a〜32i)、コネクタ33、撮像情報演算部35、通信部36、および加速度センサ37を備えている。コントローラ5は、自機に対して行われた操作内容を示すデータを操作データとしてゲーム装置3へ送信するものである。
操作部32は、上述した各操作ボタン32a〜32iを含み、各操作ボタン32a〜32iに対する入力状態(各操作ボタン32a〜32iが押下されたか否か)を示す操作ボタンデータを通信部36のマイコン42へ出力する。
撮像情報演算部35は、撮像手段が撮像した画像データを解析してその中で輝度が高い領域を判別してその領域の重心位置やサイズなどを算出するためのシステムである。撮像情報演算部35は、例えば最大200フレーム/秒程度のサンプリング周期を有するので、比較的高速なコントローラ5の動きでも追跡して解析することができる。
撮像情報演算部35は、赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を含んでいる。赤外線フィルタ38は、コントローラ5の前方から入射する光から赤外線のみを通過させる。レンズ39は、赤外線フィルタ38を透過した赤外線を集光して撮像素子40へ入射させる。撮像素子40は、例えばCMOSセンサやあるいはCCDセンサのような固体撮像素子であり、レンズ39が集光した赤外線を受光して画像信号を出力する。ここで、テレビ2の表示画面近傍に配置されるマーカ部6のマーカ6Rおよび6Lは、テレビ2の前方に向かって赤外光を出力する赤外LEDで構成される。したがって、赤外線フィルタ38を設けることによって、撮像素子40は、赤外線フィルタ38を通過した赤外線だけを受光して画像データを生成するので、マーカ6Rおよび6Lの画像をより正確に撮像することができる。以下では、撮像素子40によって撮像された画像を撮像画像と呼ぶ。撮像素子40によって生成された画像データは、画像処理回路41で処理される。画像処理回路41は、撮像画像内における撮像対象(マーカ6Rおよび6L)の位置を算出する。画像処理回路41は、算出された位置を示す座標を通信部36のマイコン42へ出力する。この座標のデータは、マイコン42によって操作データとしてゲーム装置3に送信される。以下では、上記座標を「マーカ座標」と呼ぶ。マーカ座標はコントローラ5自体の向き(傾斜角度)や位置に対応して変化するので、ゲーム装置3はこのマーカ座標を用いてコントローラ5の向きや位置を算出することができる。
なお、他の実施形態においては、コントローラ5は画像処理回路41を備えていない構成であってもよく、撮像画像自体がコントローラ5からゲーム装置3へ送信されてもよい。このとき、ゲーム装置3は、画像処理回路41と同様の機能を有する回路あるいはプログラムを有しており、上記マーカ座標を算出するようにしてもよい。
加速度センサ37は、コントローラ5の加速度(重力加速度を含む)を検出する、すなわち、コントローラ5に加わる力(重力を含む)を検出する。加速度センサ37は、当該加速度センサ37の検出部に加わっている加速度のうち、センシング軸方向に沿った直線方向の加速度(直線加速度)の値を検出する。例えば、2軸以上の多軸加速度センサの場合には、加速度センサの検出部に加わっている加速度として、各軸に沿った成分の加速度をそれぞれ検出する。例えば、3軸または2軸の加速度センサは、アナログ・デバイセズ株式会社(Analog Devices, Inc.)またはSTマイクロエレクトロニクス社(STMicroelectronics N.V.)から入手可能である種類のものでもよい。なお、加速度センサ37は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。
本実施形態では、加速度センサ37は、コントローラ5を基準とした上下方向(図3に示すY軸方向)、左右方向(図3に示すX軸方向)および前後方向(図3に示すZ軸方向)の3軸方向に関してそれぞれ直線加速度を検出する。加速度センサ37は、各軸に沿った直線方向に関する加速度を検出するものであるため、加速度センサ37からの出力は3軸それぞれの直線加速度の値を表すものとなる。すなわち、検出された加速度は、入力装置8(コントローラ5)を基準に設定されるXYZ座標系(コントローラ座標系)における3次元のベクトル(ax,ay,az)として表される。以下では、加速度センサ37によって検出される3軸に関する各加速度値を各成分とするベクトルを加速度ベクトルと呼ぶ。
加速度センサ37が検出した加速度を示すデータ(加速度データ)は、通信部36へ出力される。なお、加速度センサ37が検出した加速度は、コントローラ5自体の向き(傾斜角度)や動きに対応して変化するので、ゲーム装置3は加速度データを用いてコントローラ5の向きや動きを算出することができる。本実施形態では、ゲーム装置3は、加速度データに基づいてコントローラ5の姿勢を判断する。
加速度センサ37が検出した加速度(加速度ベクトル)を示すデータ(加速度データ)は、通信部36へ出力される。本実施形態において、加速度センサ37は、コントローラ5の傾斜角度を判断するためのデータを出力するセンサとして用いられる。
なお、加速度センサ37から出力される加速度の信号に基づいて、ゲーム装置3のプロセッサ(例えばCPU10)またはコントローラ5のプロセッサ(例えばマイコン42)等のコンピュータが処理を行うことによって、コントローラ5に関するさらなる情報を推測または算出(判定)することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、加速度センサ37を搭載するコントローラ5が静止状態であることを前提としてコンピュータ側の処理が実行される場合(すなわち、加速度センサによって検出される加速度が重力加速度のみであるとして処理が実行される場合)、コントローラ5が現実に静止状態であれば、検出された加速度に基づいてコントローラ5の姿勢が重力方向に対して傾いているか否かまたはどの程度傾いているかを知ることができる。具体的には、加速度センサ37の検出軸が鉛直下方向を向いている状態を基準としたとき、1G(重力加速度)がかかっているか否かによって、コントローラ5が基準に対して傾いているか否かを知ることができるし、その大きさによって基準に対してどの程度傾いているかも知ることができる。また、多軸の加速度センサ37の場合には、さらに各軸の加速度の信号に対して処理を施すことによって、重力方向に対してコントローラ5がどの程度傾いているかをより詳細に知ることができる。この場合において、プロセッサは、加速度センサ37からの出力に基づいてコントローラ5の傾斜角度を算出してもよいし、当該傾斜角度を算出せずに、コントローラ5の傾斜方向を算出するようにしてもよい。このように、加速度センサ37をプロセッサと組み合わせて用いることによって、コントローラ5の傾斜角度または姿勢を判定することができる。
一方、コントローラ5が動的な状態(コントローラ5が動かされている状態)であることを前提とする場合には、加速度センサ37は重力加速度に加えてコントローラ5の動きに応じた加速度を検出するので、検出された加速度から重力加速度の成分を所定の処理により除去することによってコントローラ5の動き方向を知ることができる。また、コントローラ5が動的な状態であることを前提とする場合であっても、検出された加速度から、加速度センサの動きに応じた加速度の成分を所定の処理により除去することによって、重力方向に対するコントローラ5の傾きを知ることが可能である。なお、他の実施例では、加速度センサ37は、内蔵の加速度検出手段で検出された加速度信号をマイコン42に出力する前に当該加速度信号に対して所定の処理を行うための、組込み式の処理装置または他の種類の専用の処理装置を備えていてもよい。組込み式または専用の処理装置は、例えば、加速度センサ37が静的な加速度(例えば、重力加速度)を検出するために用いられる場合、加速度信号を傾斜角(あるいは、他の好ましいパラメータ)に変換するものであってもよい。
通信部36は、マイコン42、メモリ43、無線モジュール44、およびアンテナ45を含んでいる。マイコン42は、処理を行う際にメモリ43を記憶領域として用いながら、マイコン42が取得したデータをゲーム装置3へ無線送信する無線モジュール44を制御する。また、マイコン42はコネクタ33に接続されている。ジャイロセンサユニット7から送信されてくるデータは、コネクタ33を介してマイコン42に入力される。以下、ジャイロセンサユニット7の構成について説明する。
ジャイロセンサユニット7は、プラグ53、マイコン54、2軸ジャイロセンサ55、および1軸ジャイロセンサ56を備えている。上述のように、ジャイロセンサユニット7は、3軸(本実施形態では、XYZ軸)周りの角速度を検出し、検出した角速度を示すデータ(角速度データ)をコントローラ5へ送信する。
2軸ジャイロセンサ55は、X軸周りの角速度およびY軸周りの(単位時間あたりの)角速度を検出する。また、1軸ジャイロセンサ56は、Z軸周りの(単位時間あたりの)角速度を検出する。なお、本明細書では、コントローラ5の撮像方向(Z軸正方向)を基準として、XYZ軸周りの回転方向を、それぞれ、ピッチ方向、ヨー方向、ロール方向と呼ぶ。すなわち、2軸ジャイロセンサ55は、ピッチ方向(X軸周りの回転方向)およびヨー方向(Y軸周りの回転方向)の角速度を検出し、1軸ジャイロセンサ56は、ロール方向(Z軸周りの回転方向)の角速度を検出する(図8参照)。
なお、本実施形態では、3軸回りの角速度を検出するために、2軸ジャイロセンサ55と1軸ジャイロセンサ56とを用いる構成としたが、他の実施形態においては、3軸回りの角速度を検出することができればよく、用いるジャイロセンサの数および組み合わせはどのようなものであってもよい。
また、本実施形態では、後述する姿勢算出処理における計算を容易にする目的で、各ジャイロセンサ55および56が角速度を検出する3つの軸は、加速度センサ37が加速度を検出する3つの軸(XYZ軸)と一致するように設定される。ただし、他の実施形態においては、各ジャイロセンサ56および57が角速度を検出する3つの軸と、加速度センサ37が加速度を検出する3つの軸とは一致しなくてもよい。
各ジャイロセンサ56および57で検出された角速度を示すデータは、マイコン54に出力される。したがって、マイコン54には、XYZ軸の3軸回りの角度速度を示すデータが入力されることになる。マイコン54は、上記3軸回りの角速度を示すデータを角速度データとしてプラグ53を介してコントローラ5へ送信する。なお、マイコン54からコントローラ5への送信は所定の周期毎に逐次行われるが、ゲームの処理は1/60秒を単位として(1フレーム時間として)行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。
コントローラ5の説明に戻り、操作部32、撮像情報演算部35、および加速度センサ37からマイコン42へ出力されたデータ、ならびに、ジャイロセンサユニット7からマイコン42へ送信されてきたデータは、一時的にメモリ43に格納される。これらのデータは、上記操作データとしてゲーム装置3へ送信される。すなわち、マイコン42は、ゲーム装置3の無線コントローラモジュール19への送信タイミングが到来すると、メモリ43に格納されている操作データを無線モジュール44へ出力する。無線モジュール44は、例えばBluetooth(ブルートゥース)の技術を用いて、所定周波数の搬送波を操作データで変調し、その微弱電波信号をアンテナ45から放射する。つまり、操作データは、無線モジュール44で微弱電波信号に変調されてコントローラ5から送信される。微弱電波信号はゲーム装置3側の無線コントローラモジュール19で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置3は操作データを取得することができる。そして、ゲーム装置3のCPU10は、取得した操作データとゲームプログラムとに基づいて、ゲーム処理を行う。なお、通信部36から無線コントローラモジュール19への無線送信は所定の周期毎に逐次行われるが、ゲームの処理は1/60秒を単位として(1フレーム時間として)行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。コントローラ5の通信部36は、例えば1/200秒に1回の割合で各操作データをゲーム装置3の無線コントローラモジュール19へ出力する。
上記コントローラ5を用いることによって、プレイヤは、各操作ボタンを押下する従来の一般的なゲーム操作に加えて、コントローラ5を任意の傾斜角度に傾ける操作を行うことができる。その他、上記コントローラ5によれば、プレイヤは、コントローラ5によって画面上の任意の位置を指示する操作、および、コントローラ5自体を動かす操作を行うこともできる。
次に、図9〜図12を用いて、本実施形態で想定するゲームの概要について説明する。本実施形態で想定するゲームは、カヌーを題材にしたゲームである。図9は、本実施形態で想定するゲームの画面の一例である。図9において、ゲーム画面にはカヌー(一人乗り用)に乗っているプレイヤオブジェクト101と、カヌーを漕ぐためのパドル102(シングルブレードパドル)が表示されている。本ゲームは、入力装置8をカヌーのパドル(より正確には、パドルの柄)に見立て、パドルを漕ぐように(パドルで水を掻くように)入力装置8を動かす事で、図9〜図12に示すように、ゲーム画面内のパドル102も移動する。これにより、仮想ゲーム空間内の水を掻くことでカヌーを移動させることができ、擬似的にカヌーを楽しむことができるゲームである。
本ゲームの操作方法について、更に説明する。上記のように、本ゲームでは入力装置8をパドルと見立てて把持する。そして、パドリングを模した操作(以下、単にパドリング操作と呼ぶ)を行ってプレイする。そして、本実施形態は、このパドリング操作を検出して、仮想ゲーム空間内のパドル102の姿勢や動作に反映させる。図13及び図14は、プレイヤが行う上記パドリング操作の一例を示す模式図である。本ゲームでは、プレイヤは、図13に示すように、入力装置8をボタン面が手前に来るようにして右手で握る。なお、図13では説明の便宜上、右手のみで入力装置8を把持している場合を例にしているが、両手を使って入力装置8を握って操作しても良い。
上記のように入力装置8を把持したプレイヤは、図14に示すように、パドルで水を掻くように入力装置8を自身の後方に移動させる(図14(a)〜(c))。その後、パドルを水から引き上げるように、一旦上に移動させ、その後、前方に移動させていく(図14(d)〜(f)。基本的に、プレイヤはこのような操作を繰り返すことでパドリング操作を行う。
なお、本ゲームでは、ゲームの展開に応じて、図15〜図19に示すように、漕ぐ位置をカヌーの右側と左側とで適宜切り替えながら操作を行うことも可能である。図15〜図19では、漕ぐ位置がカヌーの左側から右側に切り替わっている様子が示されている。この場合は、プレイヤは自己の体の左側で行っていたパドリング操作について、入力装置8を自己の体の右側に移動させて(片手操作の場合は、入力装置8を左手から右手に持ち替えて)パドリング操作を継続することになる。
ところで、上記パドリング操作における入力装置8の動きに注目すると、図20に示すような移動軌跡となっている。人間の運動は関節を中心とした回転の組み合わせによって構成されると考えられるので、この一連の動きを所定の単位時間に区切って考えると(図20では参照符号A〜Gで示す)、各単位時間における入力装置8の運動は、それぞれどこかを中心とする回転運動の一部とみなすことができる。図21は、図20における単位時間A、C、E、G、Hの状態を抜き出したものであり、それぞれ、ある点を中心とした回転運動の一部となっていることを示している。たとえば肘の回転のみによる運動であれば、その中心は肘の位置になる。肘と肩の両方の回転による運動であれば、両方の回転の影響を合わせた運動を、肘や肩以外のどこかを中心とした回転運動とみなすことができる。換言すれば、入力装置8に発生している速度は、どこかを中心点とする回転運動によって生じていることになる。なお、人間が完全な円運動を行うことは難しいので、タイミングごとに中心位置や半径は多少変化することになる。
そこで、本実施形態では、上記加速度センサ37およびジャイロセンサユニット7から得られる加速度と角速度から入力装置8の姿勢を推定し、更に、上記回転運動の中心や入力装置8の移動速度を推定して、これらの要素をパドル102の姿勢・動作に反映させるための処理を実行する。
次に、本実施形態における上記回転運動の中心や移動速度の推定の原理について説明する。ここでは、図22のような状態を例にして説明する。図22は、ある単位時間における入力装置8と回転運動の中心との関係を示す図である。回転運動については、入力装置8のコントローラ座標系(ローカル座標系)におけるx軸回りに回転しているものとする。以下、この回転軸方向(この場合はx軸方向)のベクトルをωとして示す(以下、回転軸ベクトルωと呼ぶこともある)。回転速度はベクトルωの大きさによって表される。また、図22では、入力装置8の位置(ここでは入力装置8の中心部分としている)をR、回転運動の中心をCとして示し、回転運動に係るCからRまでのベクトルをRsとして示している(以下、半径ベクトルRsと呼ぶこともある)。なお、当該ベクトルRsは、回転中心Cと入力装置8との相対的な位置関係を示すものであり、また、回転運動にかかる半径を示すものでもある。また、回転運動に係る入力装置8の移動速度を示すベクトルをV(以下、速度ベクトルVと呼ぶこともある)として示している。また、上記入力装置8のコントローラ座標系における所定の位置を原点としている。そして、原点から回転中心までのベクトルをR0で示している。
図22のような場合を例にすると、まず、速度ベクトルVは、以下の数式に示すように、ベクトルωとベクトルRsとの外積によって求めることができる。
Figure 0005430123
なお、上記数式において、”×”は外積を示す(以下の数式でも同様)。
ここで、ベクトルωについては、ジャイロセンサユニット7からの出力によって算出することが可能である。すなわち、ジャイロセンサユニット7から出力されるxyz軸の3軸回りの角速度のそれぞれをxyz成分とするベクトルが、回転軸ベクトルωとなる。一方、ベクトルRsについては、以下に述べるようにして算出することが可能である。
ここで、上記図14で示したような入力装置8に加えられた一連の運動に際して、回転運動の中心位置は多少変動する(上記図22の変化量R0に多少の変動が起きる)場合はあるが、上記のようなパドリング操作のような場合は、当該中心の位置は、回転運動に比べて相対的に非常に緩やかに変化すると考えられる。そのため、本実施形態では、回転運動に対して中心の変化の影響を無視できるものと考える。つまり、図14に示したようなパドリング操作における一連の回転運動において、並進的な運動を無視し、回転運動だけ行われているものと考える。したがって、式1の右辺には、中心の移動、すなわちR0の変動による成分を含まないものとする近似を行っている。そして、上記式1を微分すると、以下のような数式が導き出される。
Figure 0005430123
Figure 0005430123
ここで、”A”は、Vの微分であって加速度を示すが、加速度センサから得られた加速度から重力成分を除去した加速度成分(以下、運動成分と呼ぶ)によって特定することができる。また、文字の上に傍点を付している要素は、微分を示すものである。また、”[I]”は単位行列を示す。
次に、上記式2を変形すると、以下の数式が導出される。
Figure 0005430123
更に、式3を変形すると、以下の数式が導出される。
Figure 0005430123
また、上記ベクトルωは回転軸であって、上記ベクトルRsは回転の半径であるので、ベクトルRsが最短となるよう(つまり図22において、回転中心と入力装置8の図中での奥行きは同じ)定義すれば、ベクトルωとベクトルRsは常に直交する。そして、両ベクトルが直交するということは、すなわち、内積が0になるということである。したがって、上記式4において、「(ω・Rs)ω」の要素は”0”になる。その結果、上記式4を変形すると、以下のような数式となる。
Figure 0005430123
上記式5に示されるように、ベクトルRsは、運動成分Aおよびベクトルωが判れば算出可能である。ここで、運動成分Aは、上記加速度から重力成分を除去することで求められる。重力成分を除去するには重力方向を知る必要があるが、本実施形態では、角速度と加速度から入力装置8の姿勢を推定し、当該推定した姿勢から重力方向を推定する。
以上の事を踏まえて、上記式2を変形すると、以下のような数式となる。
Figure 0005430123
上記式6で示されるように、運動成分Aと角速度ωおよび角加速度が判れば、ベクトルRsが算出可能である。そこで、本実施形態では、角速度および加速度から入力装置8の姿勢を推定し、この推定姿勢に基づいて運動成分Aを算出する。運動成分Aが算出できれば、上記のようにベクトルRsが算出できる。そして、ベクトルRsが算出できれば、上記式1により、ベクトルωとの外積をとることで速度Vを算出するという処理を行う。
次に、本実施形態にかかる処理の概要を説明する。図23は、本実施形態にかかる処理概要を説明するための図である。図23において、四角で囲まれている要素は、データの発生源を示す。また、丸で囲まれた要素はプロセスを示し、pn(nは整数)の形式の参照符号を付している。また、上下の直線に挟まれている要素はデータ(およびその保管先;後述の図24のメモリマップに対応)を示し、図23ではdn(nは整数)の形式の参照符号を付している。
図23において、ジャイロセンサユニット7から角速度d1が取得される。また、加速度センサ37から加速度d2が取得される。角速度d1および加速度d2は姿勢推定p1のプロセスに入力される。姿勢推定p2では、角速度d1および加速度d2に基づいて入力装置8の姿勢を算出し、推定姿勢d3として出力する処理が実行される。加速度および角速度に基づく推定姿勢の算出方法はどのようなものでもよいが、本実施形態では、角速度で示される姿勢ベクトルを、加速度で示されるベクトルで補正することで、入力装置8の姿勢を算出するものとする。理想的には、単位時間ごとに角速度に基づいて姿勢を更新すれば、角速度のみから入力装置8の姿勢を算出することができ、空間と姿勢との関係から、入力装置8から見た実空間の下方向(つまり重力方向)が推定される。しかし、ジャイロセンサの出力には誤差が含まれる可能性があり、誤差が含まれる場合、上述の姿勢算出においては時間とともに誤差が蓄積することになる。一方、加速度センサからの出力は、入力装置8に加えられる加速度であり、入力装置8の静止時には重力成分のみとなるが、入力装置8が動いているときは重力以外の加速度も含むため、加速度のみから重力方向を算出するのが困難になるという性質がある。しがたって、角速度に基づいて推定される姿勢を更新するとともに、さらに当該姿勢から推定される重力方向が、加速度が示す方向に近づくように姿勢を補正するようにする。さらにその際、加速度の大きさが重力加速度の大きさに近いほど補正の度合いを大きくするようにしている。このような補正を行うことによって、動きの少ないときには加速度により正確な姿勢が算出され、かつ動いているときでもある程度妥当な姿勢が常に推定できることになる。
姿勢推定p1で算出された推定姿勢d3は重力成分除去p3のプロセスに入力される。重力成分除去p3では、当該推定姿勢d3から重力成分を算出する処理が実行される。重力方向は姿勢に対応して推定され、重力の大きさは1Gで既知である。そして、重力成分除去p3では、更に加速度d1を取得し、当該加速度d1から重力成分を除去することで、重力の影響を除いた運動成分d4を算出する。当該運動成分d4は、後述の回転中心推定p4のプロセスに入力される。
一方、角速度d1は、時系列差分p2、回転中心推定p4、速度算出p5の各プロセスへも入力される。時系列差分p2では、角速度d1に基づいて角加速度d5を算出する処理が実行される。算出された角加速度d5は、回転中心推定p4へ入力される。
回転中心推定p4では、角速度d1、運動成分d4、角加速度d5に基づき、上述したような数式を適用することで、上記のような回転運動の中心Cを推定するための処理が実行される。より具体的には、上記ベクトルRsを算出する処理が実行される。そして、当該ベクトルRsを示すデータが半径ベクトルd6として出力される。
半径ベクトルd6は、速度算出p5のプロセスに入力される。速度算出p5では、角速度d1および半径ベクトルd6に基づき、更に上記の数式を用いることで、入力装置8の移動速度Vを推定するための処理が実行され、推定速度d7が出力される。
このように、本実施形態では、ジャイロセンサユニット7および加速度センサ37から出力される角速度および加速度を入力として、回転運動に係る入力装置8の移動速度を出力する処理が実行される。そして、本実施形態にかかるゲーム処理においては、上記移動速度等の各種データをパドル102の姿勢制御に用いる。
次に、ゲーム装置3において実行される処理の詳細について説明する。まず、ゲーム装置3における処理において用いられる主なデータについて図24を用いて説明する。図24は、ゲーム装置3のメインメモリ(外部メインメモリ12または内部メインメモリ11e)に記憶される主なデータを示す図である。図24に示すように、ゲーム装置3のメインメモリには、ゲームプログラム60、操作データ62、およびゲーム処理用データ67が記憶される。なお、メインメモリには、図24に示すデータの他、ゲームに登場する各種オブジェクトの画像データや、オブジェクトの各種パラメータを示すデータ等、ゲーム処理に必要なデータが記憶される。
ゲームプログラム120は、ゲーム装置3に電源が投入された後の適宜のタイミングで光ディスク4からその一部または全部が読み込まれてメインメモリに記憶される。ゲームプログラム120には、パドリング操作プログラム121が含まれる。パドリング操作プログラム121は、入力装置8の姿勢を算出し、これに基づいてパドル102の姿勢を制御するための処理を実行するためのプログラムである。
操作データ122は、コントローラ5(入力装置8)からゲーム装置3へ送信されてくる操作データである。上述したように、コントローラ5からゲーム装置3へ1/200秒に1回の割合で操作データが送信されるので、外部メインメモリ12に記憶される操作データ122はこの割合で更新される。
操作データ122には、角速度データ123、加速度データ124、マーカ座標データ125、および操作ボタンデータ126が含まれる。角速度データ123は、ジャイロセンサユニット7のジャイロセンサ55および56によって検出された角速度を示すデータである(上記図23の角速度d1に対応する)。ここでは、角速度データ123は、図3に示すXYZの3軸回りのそれぞれの角速度を示す。また、加速度データ64は、加速度センサ37によって検出された加速度(加速度ベクトル)を示すデータである(上記図23の加速度d2に対応する)。ここでは、加速度データ64は、図3に示すXYZの3軸の方向に関する加速度を各成分とする3次元の加速度ベクトルを示す。また、本実施形態においては、コントローラ5が静止している状態で加速度センサ37が検出する加速度ベクトルの大きさを”1”とする。つまり、加速度センサ37によって検出される重力加速度の大きさは”1”である。
マーカ座標データ125は、撮像情報演算部35の画像処理回路41によって算出される座標、すなわち上記マーカ座標を示すデータである。マーカ座標は、撮像画像に対応する平面上の位置を表すための2次元座標系で表現される。なお、撮像素子40によって2つのマーカ6Rおよび6Lが撮像される場合には、2つのマーカ座標が算出される。一方、撮像素子40の撮像可能な範囲内にマーカ6Rおよび6Lのいずれか一方が位置しない場合には、撮像素子40によって1つのマーカのみが撮像され、1つのマーカ座標のみが算出される。また、撮像素子40の撮像可能な範囲内にマーカ6Rおよび6Lの両方が位置しない場合には、撮像素子40によってマーカが撮像されず、マーカ座標は算出されない。したがって、マーカ座標データ65は、2つのマーカ座標を示す場合もあるし、1つのマーカ座標を示す場合もあるし、マーカ座標がないことを示す場合もある。
操作ボタンデータ126は、各操作ボタン32a〜32iに対する入力状態を示すデータである。
ゲーム処理用データ127は、後述するゲーム処理(図25,図26に示すフローチャート)において用いられるデータである。ゲーム処理用データ127は、推定姿勢データ128、運動成分データ129、角加速度データ130、回転半径データ131、推定速度データ132、を含む。なお、図24に示すデータの他、ゲーム処理用データ127は、ゲーム処理において用いられる各種データ(ゲームパラメータを示すデータ等)を含む。
推定姿勢データ128は、角速度データ123および加速度データ124から算出される、入力装置8の姿勢を示すデータである(上記図23の推定姿勢d3に対応する)。
運動成分データ129は、上記加速度データ124で示される加速度から重力方向成分を除去することで得られる運動成分を示すデータである(上記図23の運動成分d4に対応する)。
角加速度データ130は、単位時間あたりの角速度の変化、すなわち、角加速度を示すデータである(上記図23の角加速度d5に対応する)。
回転半径データ131は、上記ベクトルRsを示すデータであり、入力装置8の回転運動における中心位置を示すためのデータでもある(上記図23の半径ベクトルd6に対応する)。
推定速度データ132は、上記のような入力装置8の回転運動による入力装置8の移動速度を示すデータである(上記図23の推定速度d7に対応する)。
なお、上記推定姿勢データ128は空間内における入力装置8の姿勢を示す回転行列等であって、運動成分データ129、角加速度データ130、回転半径データ131、および推定速度データ132はそれぞれ、入力装置8(コントローラ5)を基準に設定されるXYZ座標系(コントローラ座標系)における3次元のベクトルとして表される。
次に、図25〜図26を参照して、ゲーム装置3によって実行されるゲーム処理について説明する。ゲーム装置3の電源が投入されると、ゲーム装置3のCPU10は、ROM/RTC13に記憶されている起動プログラムを実行し、これによって外部メインメモリ12等の各ユニットが初期化される。そして、光ディスク4に記憶されたゲームプログラムが外部メインメモリ12に読み込まれ、CPU10によって当該ゲームプログラムの実行が開始される。図25に示すフローチャートは、以上の処理が完了した後に行われるゲーム処理を示すフローチャートである。また、図25に示すステップS1〜ステップS10の処理ループは、1フレーム毎に繰り返し実行される。
図25において、まず、CPU10は、入力装置8から加速度データ124および角速度データ123を取得する(ステップS1)。
次に、CPU10は、加速度データ124および角速度データ123に基づいて入力装置8の姿勢を推定する処理を実行する(ステップS2)。本処理は、どのような処理方法であっても良いが、本実施形態では、上記のように、まず、ジャイロセンサユニット7で検出された角速度に基づいて入力装置8の姿勢を算出する。角速度から姿勢を算出する方法は、例えば、初期姿勢に(単位時間あたりの)角速度を逐次加算する方法がある。すなわち、ジャイロセンサユニット7から逐次出力される角速度を積分し、初期状態からの姿勢の変化量を積分結果から算出することによって、現在の姿勢を算出することができる。次に、加速度センサ37で検出された加速度データに基づいて上記角速度から算出された姿勢を補正する。本実施形態では、上記角速度からの姿勢を加速度データから決まる姿勢へと近づける補正を行う。加速度データから決まる姿勢とは、具体的には、加速度データが示す加速度の向きが鉛直下向きであると想定する場合における入力装置8の姿勢を指す。すなわち、加速度データが示す加速度が重力加速度であると仮定して算出された姿勢である。このようにして補正された姿勢が、推定姿勢データ128として外部メインメモリ12に記憶される。
次に、CPU10は、運動成分を算出するための処理を実行する(ステップS3)。まず、CPU10は、上記推定姿勢から重力方向を算出する。そして、CPU10は、当該算出した重力方向に基づいて、上記加速度データ124から重力成分(例えば、重力方向を示すベクトル(0,−1,0))を除去することで、重力の影響を除いた運動成分を算出する。そして、CPU10は、算出した運動成分を運動成分データ129として外部メインメモリ12に記憶する。
次に、CPU10は、角加速度を算出するための処理を実行する(ステップS4)。より具体的には、CPU10は、予め定められた所定の期間内における角速度の変化量を算出する。例えば、現在の処理にかかるフレームで得られた角速度と、直前のフレームにおける処理で得られた角速度との差分を算出し、記憶する。これを、1フレーム分記憶しておき、前フレームとの間の角速度の差分を算出し、角加速度データ130として外部メインメモリ12に記憶する。
次に、CPU10は、回転運動にかかるベクトルRsを算出する処理を実行する(ステップS5)。すなわち、CPU10は、角速度データ123、角加速度データ130、運動成分データ129に基づき、上記式6を適用することで、ベクトルRsを算出する。そして、算出したベクトルRsを回転半径データ131として外部メインメモリ12に記憶する。
次に、CPU10は、入力装置の移動速度Vを算出する(ステップS6)。上記式1で示したように、ベクトルRsがわかれば、回転軸ベクトルω(角速度データ123)との外積を求めることで移動速度Vが算出できる。そして、CPU10は、算出した移動速度Vを、推定速度データ132として外部メインメモリ12に記憶する。
次に、CPU10は、パドル102の動作を制御するためのパドル動作制御処理を実行する(ステップS7)。本処理では、上記推定姿勢データ128と推定速度データ132に基づいてパドル102の制御を行う。
図26は、上記ステップS7で示したパドル動作制御処理の詳細を示すフローチャートである。図26の処理では、最初に、変数φ1、φ2,φ3を設定する処理が実行される。ここで、各変数について説明すると、まず、変数φ1は、図27に示すように、y−z軸(コントローラ座標系)における入力装置8の重力方向軸からの傾き角度を示すための変数である。つまり、パドルを漕いだときに増加し、戻したときに減少する。
次に、変数φ2は、パドリング操作における「引き抜き」を考慮するために用いられる変数である。ここで、「引き抜き」とは、図28に示すように、水を掻いた後、パドルを真上に突き上げる(引き抜く)ように移動させるような漕ぎ方を称するものとする。プレイヤのパドリング操作の仕方には個人差があるため、プレイヤによってはこのような引き抜きの操作が行われる可能性がある。この場合、上記図20に示したような入力装置8の動き方に比べると、引き抜きのタイミングでコントローラ座標系におけるZ軸方向に大きな動きが発生する。このような動きの場合、ユーザとしてはパドルを引き戻した操作を行ったはずである一方、角度の減少は少ない。したがって、ベクトルの長さを、パドル102の傾き角度に反映させる(ベクトルの長さに応じて角度を増減する)ように変数φ2を設定する。なお、変数φ2には初期値として”0”が設定されるものとする。
次に、変数φ3は、パドリング操作における「並進漕ぎ」を考慮するための変数である。「並進漕ぎ」とは、図29に示すように、パドルの姿勢をあまり変えずにそのまま後方に動かすようにして水を掻く漕ぎ方を称するものとする。つまり、図20に示したような動き方に比べ、角度の変化があまり発生しないような漕ぎ方となる。そして、変数φ3も変数φ2と同様に、並進のベクトルの長さに応じて角度を増減するために用いられる。なお、変数φ3には初期値として”0”が設定されるものとする。
図26に戻り、以下、パドル動作制御処理の詳細を説明する。図26において、まず、CPU10は、上記変数φ1を設定する(ステップS21)。変数φ1については、上記推定姿勢データ128と推定姿勢から導出される重力方向とのなす角度として算出可能である。
次に、CPU10は、推定速度データ132に基づいて、変数φ2を設定する(ステップS22)。より具体的には、CPU10は、推定速度データ132で示される速度ベクトルVのz軸成分Vz(図30参照)に応じて変数φ2を減少する(その結果、変数φ2は負の値をとる)。
次に、CPU10は、推定速度データ132に基づいて、変数φ3を設定する(ステップS23)。より具体的には、CPU10は、ワールド座標系におけるx−z平面での成分、つまり、コントローラ座標系の速度ベクトルV(推定速度データ132で示されるベクトル)をワールド座標系に変換した後のベクトルにおける(図31参照;図31は、ワールド座標系を真上からみたイメージである)、y軸成分以外の成分Vxzを算出する。そして、当該成分Vxzの長さに応じて、変数φ3を増加させる。
次に、CPU10は、速度ベクトルVのx軸成分Vxに応じて、ワールド座標系のx軸上におけるパドル102の位置(パドル102の所定の基準点=パドルの柄のうち握っている部分に相当)を決定する(ステップS24)。図32に、当該処理の概念を示す。本ステップの処理では、図32(a)に示すように、入力装置8の速度ベクトルVのx軸成分Vxに応じて、図32(b)に示すように、仮想ゲーム空間内におけるパドル102上に予め定められている所定の点をx軸方向に沿って移動させることで、パドル102の左右方向での位置を決める。
次に、CPU10は、図33および図34に示すように、ワールド座標系でのx−z平面上におけるパドル102の傾き具合を決めるための角度θを算出する。角度θは、上記推定姿勢に基づいて算出される(図33)。そして、当該角度θに基づいてx−z平面上におけるパドル102の姿勢(図34)が決定される(ステップS25)。
次に、CPU10は、上記ステップS24で決定したx軸上のパドルの位置とステップS25で決定したパドル102の傾き具合に基づいて、図35に示すように、ワールド座標系でのx−z平面上におけるパドル102の最終的な姿勢を決定する(ステップS26)。併せて、CPU10は、漕ぎ位置(カヌーの右側を漕ぐのか左側を漕ぐのか)も決定する。
次に、CPU10は、図36に示すような、ワールド座標系でのy−z平面上でのパドル102の漕ぎ度合いを示す変数Φを、以下の数式を用いて算出する。
Φ=φ1+φ2+φ3
そして、当該変数Φに応じてパドル102の最終的な姿勢を決定する(ステップS27)。パドルはΦだけ傾くようにしてもよいが、それに限らずΦの大きさの推移に対応して位置と姿勢が設定されるようにすればよい。
次に、CPU10は、変数φ2および変数φ3を所定の割合で0に近づける処理を実行する(ステップS28)。つまり、φ2およびφ3は姿勢自体による変数ではないので、静止時には実際の姿勢に対応したΦを算出するためにφ2およびφ3をゆっくり0に近づけるようにする。
次に、CPU10は、上記の処理で決定したパドルの姿勢を仮想ゲーム空間内に適用することで、パドル102の位置や姿勢を更新する(ステップS29)。以上で、パドル動作制御処理は終了する。
図25に戻り、次に、CPU10は、上記更新後のパドル102の姿勢に基づいてプレイヤオブジェクト101の姿勢および動作制御を行う(ステップS8)。
次に、CPU10は、その他のゲーム処理(例えば、障害物との衝突判定等)を実行し、更に、表示処理が行われる(ステップS9)。すなわち、仮想カメラで仮想空間を撮影した画像をゲーム画像としてテレビ2に表示する処理がされる。ステップS9の後、ステップS10において、ゲーム終了か否かが判断され、YESの場合、ゲーム処理を終了し、NOの場合、ステップS1に戻って、ゲーム処理を繰り返す。以上で、本実施形態にかかるゲーム処理は終了する。なお、ステップS8やステップS9は、ゲーム処理時間の単位であるたとえば60分の1秒ごとに行われるようにすればよいが、それ以前の処理は60分の1秒ごとに繰り返されるようにしても、入力装置からデータを得られる200分の1秒ごとに繰り返されるようにしてもよい。200分の1秒ごとに繰り返されるようにした方が精度は高くなる。
このように、本実施形態では、ジャイロセンサから得られる角速度および加速度センサから加速度に基づき、入力装置8自体に加えられた運動にかかる回転半径(回転中心)および移動速度を算出し、ゲーム処理に利用している。これにより、入力装置の移動速度や回転運動の半径の長さを利用したゲームを提供する事が可能となり、また、新規な操作で楽しめるゲームを提供する事が可能となる。また、入力装置の動きの算出等の処理に関しては、上記のような「速度」を処理に用いる方が「加速度」を用いる場合よりも扱いやすいという利点もある。更に、入力装置8の移動速度が判ることで、入力装置の「姿勢」と入力装置の「動き(移動速度)」を個別に扱うことが可能となり、新規なゲームを提供する事が可能となる。例えば、空中に文字を書くようなゲームを想定し、任意の一文字の「払い」の部分についての動きをより正確に検出することができ、ゲーム処理(例えば、文字を書いた軌跡に基づく画面への文字の描画や点数加算等)に反映することが可能となる。
また、上述のように、角速度および加速度から回転運動の中心を推定することができるため、例えば、回転運動の中心がプレイヤの肩となり、プレイヤの腕の長さがベクトルRsに相当するような回転運動による操作(つまり、肩を支点にして腕を大きく回すような操作)を行って楽しむゲーム等において、各プレイヤの腕の長さの違いをゲーム処理に反映することも可能となる。もしくは、肩を中心に回しているか、肘、もしくは手首を中心にして回しているかの違いをゲームに反映させるようなこともできる。
なお、実行するゲームの内容に応じ、上記ベクトルRsに対して所定の補正を行ってもよい。たとえばノイズ除去の補正として、図25を用いて上述したステップS5の処理において、当該処理で算出した上記ベクトルRsに、前回算出されたベクトルRsを所定の係数(例えば0〜1の範囲の値を採る)の割合で近づけたものを最新のベクトルRsとするようにしてもよい。この際、ベクトルωの大きさに応じて係数を変化させるようにしてもよい。これにより、プレイヤが行った操作をより適切にゲームに反映することができる。ベクトルRsを算出するための式6の性質上、ベクトルωが小さい場合にくらべて大きい場合の方が誤差が小さくなる。したがって、ベクトルωが大きいときはベクトルRsに信頼性が高いので係数を大きくし、ベクトルωが小さいときには係数を小さくするようにすれば、より精度の高いノイズ除去を行うことができる。
それ以外の補正として、ゲームによっては予めプレイヤの腕の長さや入力装置8の振り方を想定して、ベクトルRsを補正するようにしてもよい。つまり、算出されたベクトルRsが、想定される腕の長さよりも大きく異なった大きさである場合には、その長さに制限を設けたり、所定割合で特定の大きさに近づけるようにすれば、ゲームの目的に適した入力が得られる。
いずれの補正の例においても、速度ベクトルVを補正するのではなく、ベクトルRsに補正を加えることで、角速度ベクトルωの変化によって速度ベクトルVを変化させることは可能である。速度ベクトルVに補正を加えると、速度に基づいたゲームにおいて応答性が低下する可能性があるが、ベクトルω自体は常にある程度の精度で得られる値であるので、補正されたベクトルRsとベクトルωによって、精度が高く応答性も高い入力を行うことができる。
上述の実施形態においては、速度ベクトルVをカヌーのゲームに利用している。速度ベクトルVは上述のように半径ベクトルRsから算出されるものであるので、半径ベクトルRsを用いたゲームであるともいえる。別の実施形態においては、半径ベクトルRs自体をゲームの制御に反映させてもよい。例えば、半径ベクトルRsの長さに応じて、ゲーム内でパドルを漕ぐ半径、すなわち深さをさらに制御するようにしてもよい。また、上述の実施形態においては、ゲームの制御のためにベクトルを算出する構成となっているが、制御に必要な値がスカラーである場合には、スカラー値で半径を算出するように変更してもよい。
また、上述した実施形態はカヌーを題材にしたゲームを例に挙げたが、この他、例えば、フィギュアスケートを題材にしたゲーム処理にも本発明は適用可能である。例えば、入力装置8を把持したプレイヤがフィギュアスケートにおけるスピン動作を模した動きを行い、この回転運動にかかる中心や半径を算出し、仮想ゲーム空間内のプレイヤキャラクタの姿勢および動作制御を行うことが考えられる。
また、ドラムを叩くことを題材とした音楽ゲームのゲーム処理にも本発明は適用可能である。すなわち、プレイヤは、入力装置8をドラムのスティックに見立てて、ドラムを叩くような操作を行う。当該ドラムを叩く操作も、単位時間毎の動作はどこかを中心点とした回転運動の一部と考えることができるため、その中心を算出して、仮想ゲーム空間でのドラムのスティックの姿勢制御を行うことが考えられる。
また、ダンスを題材にしたゲーム処理にも本発明は適用可能である。すなわち、上記入力装置8を把持した状態で、画面に表示されているキャラクタが行う振り付けに併せて、プレイヤも自身の腕を動かす。この腕の動きにかかる入力装置8の姿勢や移動速度を算出し、仮想ゲーム空間内のプレイヤキャラクタの腕の動き等を制御してもよい。
また、野球ゲームやゴルフゲームに適用することも可能である。たとえば、入力装置を野球のバットやゴルフクラブに見立ててスイングをするような操作において、スイングの速度を入力装置8の移動速度に基づいて制御し、大きく振る、コンパクトに振る等の打ち分けを回転運動の半径の長さに基づいて制御するような処理に利用可能である。
本発明にかかるゲーム装置およびゲームプログラムは、入力装置に加えられた回転運動の中心や移動速度を推定することができ、据置型ゲーム装置や、加速度センサおよびジャイロセンサを内蔵した携帯型ゲーム装置、携帯電話やスマートフォン等に有用である。
本発明の一実施形態に係るゲームシステム1を説明するための外観図 図1のゲーム装置3の機能ブロック図 図1のコントローラ7の上面後方から見た斜視図 図3のコントローラ7を下面前方から見た斜視図 図3のコントローラ7の上ハウジングを外した状態を示す斜視図 図3のコントローラ7の下ハウジングを外した状態を示す斜視図 図3のコントローラ7の構成を示すブロック図 本実施形態の角速度の方向を示す図 本実施形態で想定するゲーム画面の一例 本実施形態で想定するゲーム画面の一例 本実施形態で想定するゲーム画面の一例 本実施形態で想定するゲーム画面の一例 パドリング操作の一例を示す模式図 パドリング操作の一例を示す模式図 本実施形態で想定するゲーム画面の一例 本実施形態で想定するゲーム画面の一例 本実施形態で想定するゲーム画面の一例 本実施形態で想定するゲーム画面の一例 本実施形態で想定するゲーム画面の一例 パドリング操作における入力装置8の動きを示す図 パドリング操作における入力装置8の動きを示す図 移動速度の推定の原理について説明するための図 本実施形態にかかる処理概要を説明するための図 ゲーム装置3のメインメモリ(外部メインメモリ12または内部メインメモリ11e)に記憶される主なデータを示す図 本発明の実施形態に係るゲーム処理を示すフローチャート 図25のステップS7で示したパドル動作制御処理の詳細を示したフローチャート 変数φ1について説明するための図 「引き抜き」を説明するための図 「並進漕ぎ」を説明するための図 速度ベクトルVのz軸成分Vzを示す図 変数φ3について説明するための図 図26のステップS24の処理概要を説明するための図 図25のステップS25の処理について説明するための図 図25のステップS25の処理について説明するための図 図26のステップS26の処理について説明するための図 図26のステップS27の処理について説明するための図
符号の説明
1…ゲームシステム
2…モニタ
2a…スピーカ
3…ゲーム装置
4…光ディスク
7…コントローラ
10…CPU
11…システムLSI
11a…入出力プロセッサ
11b…GPU
11c…DSP
11d…VRAM
11e…内部メインメモリ
12…外部メインメモリ
13…ROM/RTC
14…ディスクドライブ
15…AV−IC
16…AVコネクタ
17…フラッシュメモリ
18…無線通信モジュール
19…無線コントローラモジュール
20…拡張コネクタ
21…外部メモリカード用コネクタ
22…アンテナ
23…アンテナ
24…電源ボタン
25…リセットボタン
26…イジェクトボタン
71…ハウジング
72…操作部
73…コネクタ
74…撮像情報演算部
741…赤外線フィルタ
742…レンズ
743…撮像素子
744…画像処理回路
75…通信部
751…マイコン
752…メモリ
753…無線モジュール
754…アンテナ
700…基板
701…加速度センサ
702…LED
703…水晶振動子
704…バイブレータ
707…サウンドIC
708…アンプ

Claims (28)

  1. 加速度センサとジャイロセンサとを少なくとも備えた入力装置から加速度データと角速度データとを少なくとも含む操作データを取得する操作データ取得手段と、
    前記加速度データと前記角速度データに基づいて、前記入力装置自体の移動速度および前記入力装置自体に加えられた回転運動の中心と前記入力装置との相対的な位置関係を推定する推定手段と、
    推定された前記移動速度および前記位置関係に基づいてゲーム処理を行うゲーム処理手段とを備えるゲーム装置。
  2. 前記推定手段は、前記回転運動に対して当該回転運動の中心の変化の影響を無視する近似を行って前記入力装置自体の移動速度および前記相対的な位置関係を推定する、請求項1に記載のゲーム装置。
  3. 前記推定手段は、
    所定の期間内における前記角速度データの変化に基づいて角加速度データを算出する角加速度算出手段を含み、
    前記加速度データ、角速度データ、角加速度データに基づいて前記相対的な位置関係を算出し、当該位置関係および角速度データに基づいて前記移動速度を算出する、請求項1に記載のゲーム装置。
  4. 前記ゲーム装置は、前記加速度データと前記角速度データに基づいて前記入力装置の姿勢を算出する姿勢算出手段を更に備える、請求項1に記載のゲーム装置。
  5. 前記加速度データで示される加速度には重力加速度が含まれており、
    前記推定手段は、
    前記姿勢算出手段によって算出された前記入力装置の姿勢に基づいて重力加速度を推定する重力加速度推定手段と、
    前記加速度データで示される加速度から前記重力加速度を除くことによって重力成分以外の加速度成分である運動成分を算出する運動成分算出手段とを含む、
    請求項4に記載のゲーム装置。
  6. 前記ゲーム処理手段は、前記姿勢算出手段が算出した入力装置の姿勢および前記推定手段が算出した前記移動速度に基づいてゲーム処理を実行する、請求項4に記載のゲーム装置。
  7. 前記ゲーム処理手段は、プレイヤの操作対象となる操作対象オブジェクトの仮想ゲーム空間内における姿勢を前記入力装置の姿勢に基づいて決定し、当該操作対象オブジェクトの位置を前記移動速度に基づいて決定する、請求項6に記載のゲーム装置。
  8. 前記ゲーム処理手段は、前記入力装置の姿勢に基づいた制御を行い、当該姿勢に基づく制御量を、前記移動速度に基づいてさらに変化させる、請求項7に記載のゲーム装置。
  9. 前記ゲーム処理手段は、前記移動速度に基づいて第1の制御を行い、前記位置関係に基づいて第2の制御を行う、請求項1に記載のゲーム装置。
  10. 前記推定手段は、前記相対的な位置関係を前記回転運動における半径を示す値として推定する、請求項1に記載のゲーム装置。
  11. 前記推定手段は、前記相対的な位置関係を前記回転運動における中心から入力装置の位置へのベクトルとして推定する、請求項1に記載のゲーム装置。
  12. 前記ゲーム装置は、前記角速度データで示される角速度の大きさに応じて、前記相対的な位置関係を補正する補正手段を更に備える、請求項10または11に記載のゲーム装置。
  13. 前記補正手段は、前記角速度が大きいほど、当該角速度が前記相対的な位置関係に反映される度合いが高くなるように補正を行い、前記角速度が小さいほど、当該角速度が当該相対的な位置関係に反映される度合いが低くなるように補正を行う、請求項12に記載のゲーム装置。
  14. 前記推定手段は、前記位置関係を以下の数式を用いて算出する、請求項5に記載のゲーム装置。
    Figure 0005430123
    ここで、Rsは前記位置関係として示される値を意味し、Aは前記運動成分算出手段が算出した運動成分として示される値を意味し、ωは前記角速度データとして示される、互いに直交するxyz軸の3軸成分で構成される角速度の値を意味する。
    Figure 0005430123
  15. ゲーム装置のコンピュータに実行させるゲームプログラムであって、
    前記コンピュータを、
    加速度センサとジャイロセンサとを少なくとも備えた入力装置から加速度データと角速度データとを少なくとも含む操作データを取得する操作データ取得手段と、
    前記加速度データと前記角速度データに基づいて、前記入力装置自体の移動速度および前記入力装置自体に加えられた回転運動の中心と前記入力装置との相対的な位置関係を推定する推定手段と、
    推定された前記移動速度および前記位置関係に基づいてゲーム処理を行うゲーム処理手段として機能させる、ゲームプログラム。
  16. 前記推定手段は、前記回転運動に対して当該回転運動の中心の変化の影響を無視する近似を行って前記入力装置自体の移動速度および前記相対的な位置関係を推定する、請求項15に記載のゲームプログラム。
  17. 前記推定手段は、
    所定の期間内における前記角速度データの変化に基づいて角加速度データを算出する角加速度算出手段を含み、
    前記加速度データ、角速度データ、角加速度データに基づいて前記相対的な位置関係を算出し、当該位置関係および前記角速度データに基づいて前記移動速度を算出する、請求項15に記載のゲームプログラム。
  18. 前記ゲームプログラムは、前記コンピュータを、前記加速度データと前記角速度データに基づいて前記入力装置の姿勢を算出する姿勢算出手段として更に機能させる、請求項15に記載のゲームプログラム。
  19. 前記加速度データで示される加速度には重力加速度が含まれており、
    前記推定手段は、
    前記姿勢算出手段によって算出された前記入力装置の姿勢に基づいて重力加速度を推定する重力加速度推定手段と、
    前記加速度データで示される加速度から前記重力加速度を除くことによって重力成分以外の加速度成分である運動成分を算出する運動成分算出手段とを含む、
    請求項18に記載のゲームプログラム。
  20. 前記ゲーム処理手段は、前記姿勢算出手段が算出した入力装置の姿勢および前記推定手段が算出した前記移動速度に基づいてゲーム処理を実行する、請求項18に記載のゲームプログラム。
  21. 前記ゲーム処理手段は、プレイヤの操作対象となる操作対象オブジェクトの仮想ゲーム空間内における姿勢を前記入力装置の姿勢に基づいて決定し、当該操作対象オブジェクトの位置を前記移動速度に基づいて決定する、請求項20に記載のゲームプログラム。
  22. 前記ゲーム処理手段は、操作対象オブジェクトの仮想ゲーム空間内における姿勢を、前記入力装置の姿勢および前記移動速度に基づいて決定する、請求項21に記載のゲームプログラム。
  23. 前記ゲーム処理手段は、前記移動速度に基づいて第1の制御を行い、前記位置関係に基づいて第2の制御を行う、請求項15に記載のゲームプログラム。
  24. 前記推定手段は、前記相対的な位置関係を前記回転運動における半径を示す値として推定する、請求項15に記載のゲームプログラム。
  25. 前記推定手段は、前記相対的な位置関係を前記回転運動における中心から入力装置の位置へのベクトルとして推定する、請求項15に記載のゲームプログラム。
  26. 前記ゲーム装置は、前記角速度データで示される角速度の大きさに応じて、前記相対的な位置関係を補正する補正手段を更に備える、請求項24または25に記載のゲームプログラム。
  27. 前記補正手段は、前記角速度が大きいほど、当該角速度が前記相対的な位置関係に反映される度合いが高くなるように補正を行い、前記角速度が小さいほど、当該角速度が当該相対的な位置関係に反映される度合いが低くなるように補正を行う、請求項26に記載のゲームプログラム。
  28. 前記推定手段は、前記位置関係を以下の数式を用いて算出する、請求項19に記載のゲームプログラム。
    Figure 0005430123
    ここで、Rsは前記位置関係として示される値を意味し、Aは前記運動成分算出手段が算出した運動成分として示される値を意味し、ωは前記角速度データとして示される、互いに直交するxyz軸の3軸成分で構成される角速度の値を意味する。
    Figure 0005430123
JP2008280190A 2008-10-30 2008-10-30 ゲーム装置およびゲームプログラム Active JP5430123B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008280190A JP5430123B2 (ja) 2008-10-30 2008-10-30 ゲーム装置およびゲームプログラム
US12/340,820 US8267785B2 (en) 2008-10-30 2008-12-22 Game apparatus and computer readable storage medium having game program stored thereon
EP08022269.8A EP2181740B1 (en) 2008-10-30 2008-12-22 Game apparatus and computer readable storage medium having game program stored thereon

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008280190A JP5430123B2 (ja) 2008-10-30 2008-10-30 ゲーム装置およびゲームプログラム

Publications (2)

Publication Number Publication Date
JP2010104592A JP2010104592A (ja) 2010-05-13
JP5430123B2 true JP5430123B2 (ja) 2014-02-26

Family

ID=41650543

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008280190A Active JP5430123B2 (ja) 2008-10-30 2008-10-30 ゲーム装置およびゲームプログラム

Country Status (3)

Country Link
US (1) US8267785B2 (ja)
EP (1) EP2181740B1 (ja)
JP (1) JP5430123B2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9690386B2 (en) 2009-07-14 2017-06-27 Cm Hk Limited Method and apparatus for performing motion recognition using motion sensor fusion, and associated computer program product
US9760186B2 (en) * 2010-01-06 2017-09-12 Cm Hk Limited Electronic device for use in motion detection and method for obtaining resultant deviation thereof
EP2577427A4 (en) * 2010-06-03 2016-01-27 Hillcrest Lab Inc DETERMINATION OF A FORWARD DIRECTION OF A PORTABLE DEVICE
US20120065926A1 (en) * 2010-09-14 2012-03-15 Samsung Electronics Co., Ltd Integrated motion sensing apparatus
US8555205B2 (en) * 2010-10-08 2013-10-08 Cywee Group Limited System and method utilized for human and machine interface
JP5853394B2 (ja) * 2011-04-07 2016-02-09 セイコーエプソン株式会社 カーソル表示システム、カーソル表示方法、及び、プロジェクター
KR101956186B1 (ko) * 2011-04-27 2019-03-11 삼성전자주식회사 가속도 센서를 이용한 자세 추정 장치 및 방법
WO2014036269A1 (en) * 2012-08-30 2014-03-06 The Regents Of The University Of Michigan Ball joint center locating method using data from attached inertial measurement unit
US10179726B2 (en) 2016-09-30 2019-01-15 Matthew J Steele Wirelessly-activated and controlled portable hydration systems, devices, components and methods
KR101870542B1 (ko) * 2016-12-28 2018-06-25 주식회사 스탠딩에그 모션 인식 방법 및 장치
CN109731342A (zh) * 2019-01-28 2019-05-10 青岛海科虚拟现实研究院 一种与游戏互动的vr划船机
US10421655B1 (en) 2019-05-17 2019-09-24 Arapaho Technologies Inc. Portable hydration system
JP7281810B2 (ja) * 2019-09-10 2023-05-26 H2L株式会社 映像表示システム

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03126477A (ja) * 1989-10-11 1991-05-29 Maruman Golf Corp スイング分析装置
US6162123A (en) * 1997-11-25 2000-12-19 Woolston; Thomas G. Interactive electronic sword game
JP2000308756A (ja) 1999-04-27 2000-11-07 Taito Corp ゲーム装置の入力制御装置
JP4028708B2 (ja) * 2001-10-19 2007-12-26 株式会社コナミデジタルエンタテインメント ゲーム装置及びゲームシステム
US10086282B2 (en) * 2002-07-27 2018-10-02 Sony Interactive Entertainment Inc. Tracking device for use in obtaining information for controlling game program execution
US9682319B2 (en) * 2002-07-31 2017-06-20 Sony Interactive Entertainment Inc. Combiner method for altering game gearing
WO2006090197A1 (en) * 2005-02-24 2006-08-31 Nokia Corporation Motion-input device for a computing terminal and method of its operation
JP4240510B2 (ja) 2005-08-24 2009-03-18 任天堂株式会社 ゲームコントローラおよびゲームシステム
WO2007045021A1 (en) * 2005-10-17 2007-04-26 Diversionary Therapy Technologies Pty Ltd Diversionary therapy apparatus and methods and interactive devices
JP5204381B2 (ja) 2006-05-01 2013-06-05 任天堂株式会社 ゲームプログラム、ゲーム装置、ゲームシステム及びゲーム処理方法
JP4895352B2 (ja) * 2006-02-07 2012-03-14 任天堂株式会社 対象選択プログラム、対象選択装置、対象選択システム、および対象選択方法
JP4260814B2 (ja) * 2006-03-09 2009-04-30 任天堂株式会社 ゲーム装置およびゲームプログラム
JP4142061B2 (ja) 2006-05-02 2008-08-27 株式会社ソニー・コンピュータエンタテインメント ゲームコントローラ
JP4989105B2 (ja) * 2006-05-09 2012-08-01 任天堂株式会社 ゲームコントローラ
US9405372B2 (en) * 2006-07-14 2016-08-02 Ailive, Inc. Self-contained inertial navigation system for interactive control using movable controllers
JP2008073210A (ja) * 2006-09-21 2008-04-03 Seiko Epson Corp ゴルフクラブ、そのスイング評価支援装置
US8781151B2 (en) * 2006-09-28 2014-07-15 Sony Computer Entertainment Inc. Object detection using video input combined with tilt angle information
TWI317498B (en) * 2006-12-12 2009-11-21 Ind Tech Res Inst Inertial input apparatus with six-axial detection ability and the opearting method thereof
EP2147320A1 (en) * 2007-04-13 2010-01-27 Keynetik, Inc. A force sensing apparatus and method to determine the radius of rotation of a moving object
JP4325707B2 (ja) * 2007-07-04 2009-09-02 ソニー株式会社 入力装置、制御装置、制御システム及び制御方法
US8655622B2 (en) * 2008-07-05 2014-02-18 Ailive, Inc. Method and apparatus for interpreting orientation invariant motion

Also Published As

Publication number Publication date
US20100113151A1 (en) 2010-05-06
JP2010104592A (ja) 2010-05-13
EP2181740A2 (en) 2010-05-05
US8267785B2 (en) 2012-09-18
EP2181740B1 (en) 2019-06-19
EP2181740A3 (en) 2012-03-21

Similar Documents

Publication Publication Date Title
JP5430123B2 (ja) ゲーム装置およびゲームプログラム
JP5294442B2 (ja) ゲーム装置およびゲームプログラム
US8306768B2 (en) Game apparatus and computer-readable recording medium recording game program for controlling attitude and position of an object in a virtual space
US7833099B2 (en) Game apparatus and recording medium recording game program for displaying a motion matching a player's intention when moving an input device
JP5374287B2 (ja) 情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法
JP5421655B2 (ja) ゲームプログラム及びゲーム装置
JP5361044B2 (ja) ゲーム装置、およびゲームプログラム
JP5035972B2 (ja) 情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法
US20080204407A1 (en) Computer-readable storage medium having stored therein information processing program and information processing apparatus
JP2009003651A (ja) 情報処理プログラムおよび情報処理装置
US20080204406A1 (en) Computer-readable storage medium having stored therein information processing program and information processing apparatus
JP2008048961A (ja) ゲームプログラムおよびゲーム装置
JP5507880B2 (ja) 情報処理プログラムおよび情報処理装置
JP5005627B2 (ja) 情報処理プログラムおよび情報処理装置
JP5358168B2 (ja) ゲーム装置およびゲームプログラム
JP5872137B2 (ja) 姿勢算出装置、姿勢算出プログラム、姿勢算出システム、および、姿勢算出方法
JP2008142509A (ja) ゲームシステムおよびゲームプログラム
JP5525177B2 (ja) 情報処理プログラム、および、情報処理装置
JP5563790B2 (ja) ゲーム装置およびゲームプログラム
JP5339490B2 (ja) ゲーム装置およびゲームプログラム
JP5438382B2 (ja) 情報処理プログラムおよび情報処理装置
JP5420954B2 (ja) ゲーム装置及びゲームプログラム
JP5420955B2 (ja) ゲーム装置及びゲームプログラム

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110902

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130829

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131028

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131126

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131203

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5430123

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250