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

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

Info

Publication number
JP5730463B2
JP5730463B2 JP2008181717A JP2008181717A JP5730463B2 JP 5730463 B2 JP5730463 B2 JP 5730463B2 JP 2008181717 A JP2008181717 A JP 2008181717A JP 2008181717 A JP2008181717 A JP 2008181717A JP 5730463 B2 JP5730463 B2 JP 5730463B2
Authority
JP
Japan
Prior art keywords
game
data
acceleration
angular velocity
controller
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
JP2008181717A
Other languages
English (en)
Other versions
JP2010017405A (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 JP2008181717A priority Critical patent/JP5730463B2/ja
Priority to US12/498,465 priority patent/US8882596B2/en
Publication of JP2010017405A publication Critical patent/JP2010017405A/ja
Application granted granted Critical
Publication of JP5730463B2 publication Critical patent/JP5730463B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • A63F13/06
    • 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/20Input arrangements for video game devices
    • 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
    • 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
    • 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/1006Features 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 having additional degrees of freedom
    • 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/8017Driving on land or water; Flying

Description

この発明はゲーム装置およびゲームプログラムに関し、特にたとえば、コントローラ自体にプレイヤが動きを加えることによってゲームをプレイさせるゲーム装置およびゲームプログラムに関する。
この種の装置の一例が、非特許文献1に開示されている。この背景技術では、「Wiiリモコン」(Wii:登録商標)は、自身の傾きや動きの変化を検出する3軸の加速度センサを備えている。「ヌンチャク」もまた、3軸の加速度センサを備えている。
3軸の加速度センサの出力に基づいてゲームを行うため、プレイヤは、Wiiリモコンを片方の手で、ヌンチャクをもう片方の手でそれぞれ把持して、Wiiリモコンおよびヌンチャクを振ったり傾けたりして操作を行うことができる。
http://www.nintendo.co.jp/wii/controllers/index.html
上記非特許文献1においては、加速度センサを用いているのでコントローラの姿勢の変化を重力加速度によって判断することができるが、ヨー方向、つまり重力方向を軸とした回転を検出することができないという問題がある。また、重力以外の加速度が強く加えられている場合には、姿勢を正確に算出できないという問題がある。また、ゆっくりした姿勢の変化でなく、速い回転操作が行われた場合には、加速度が加えられたこととの判別のために複雑な処理が必要という問題がある。
したがって、本願の目的は、新規なゲーム装置およびゲームプログラムを提供することである。本願のさらに別の目的は、姿勢や回転を反映させてより多様な操作を行うことができるゲーム装置およびゲームプログラムを提供することである。
この発明は、上記の課題を解決するために、以下の構成を採用した。第1の発明は、ゲーム空間内のプレイヤオブジェクトが第1の制御対象および第2の制御対象を含むゲーム装置のコンピュータで実行されるプログラムであって、前記コンピュータを、第1の加速度センサと角速度センサとを少なくとも備える第1の入力装置と、第2の加速度センサを少なくとも備える第2の入力装置とから操作データを取得する操作データ取得手段と、少なくとも、前記操作データにおける、前記第1の加速度センサの出力に応じた第1加速度データ、前記第2の加速度センサの出力に応じた第2加速度データ、および前記角速度センサの出力に応じた角速度データに基づいて、ゲーム処理を行うゲーム処理手段として機能させ、前記ゲーム処理手段は、前記第1加速度データに基づいて前記第1の制御対象の制御を行う第1対象制御手段と、前記第2加速度データに基づいて前記第2の制御対象の制御を行う第2対象制御手段とを含み、第1対象制御手段は第1の制御対象をゲーム空間内で動かす動作をさせ、さらに、前記角速度データに基づいて、当該第1の制御対象の動作に回転を加える、ゲームプログラムである。
第2の発明は、ゲーム空間内にプレイヤオブジェクトを表示するゲーム装置のコンピュータで実行されるプログラムであって、前記コンピュータを、第1の加速度センサと角速度センサとを少なくとも備える第1の入力装置と、第2の加速度センサを少なくとも備える第2の入力装置とから操作データを取得する操作データ取得手段と、少なくとも、前記操作データにおける、前記第1の加速度センサの出力に応じた第1加速度データ、前記第2の加速度センサの出力に応じた第2加速度データ、および前記角速度センサの出力に応じた角速度データに基づいて、ゲーム処理を行うゲーム処理手段として機能させ、前記ゲーム処理手段は、前記第1加速度データおよび第2加速度データ両方に基づいて、前記プレイヤオブジェクトの制御を行う第1対象制御手段を含み、前記ゲーム処理手段は、前記角速度データに基づいて前記第1の入力装置の所定軸回りの回転を検出し、当該回転に基づいて前記プレイヤオブジェクトに特定のアクションを行わせる、ゲームプログラムである。
の発明は、第の発明において、前記ゲーム処理手段が、前記角速度データに基づいて、前記第1の制御対象および第2の制御対象の向きまたは位置を制御する、全体制御手段をさらに含む、ゲームプログラムである。
の発明は、第の発明において、前記第1対象制御手段がさらに、前記角速度データに基づいて、前記第1の制御対象の向きまたは位置を制御する、ゲームプログラムである。
第5の発明は、ゲーム空間内のプレイヤオブジェクトが第1の制御対象および第2の制御対象を含むゲーム装置であって、第1の加速度センサと角速度センサとを少なくとも備える第1の入力装置と、第2の加速度センサを少なくとも備える第2の入力装置とから操作データを取得する操作データ取得手段、および少なくとも、前記操作データにおける、前記第1の加速度センサの出力に応じた第1加速度データ、前記第2の加速度センサの出力に応じた第2加速度データ、および前記角速度センサの出力に応じた角速度データに基づいて、ゲーム処理を行うゲーム処理手段を備え、前記ゲーム処理手段は、前記第1加速度データに基づいて前記第1の制御対象の制御を行う第1対象制御手段と、前記第2加速度データに基づいて前記第2の制御対象の制御を行う第2対象制御手段とを含み、第1対象制御手段は第1の制御対象をゲーム空間内で動かす動作をさせ、さらに、前記角速度データに基づいて、当該第1の制御対象の動作に回転を加える、ゲーム装置である。
第6の発明は、ゲーム空間内にプレイヤオブジェクトを表示するゲーム装置であって、第1の加速度センサと角速度センサとを少なくとも備える第1の入力装置と、第2の加速度センサを少なくとも備える第2の入力装置とから操作データを取得する操作データ取得手段、および少なくとも、前記操作データにおける、前記第1の加速度センサの出力に応じた第1加速度データ、前記第2の加速度センサの出力に応じた第2加速度データ、および前記角速度センサの出力に応じた角速度データに基づいて、ゲーム処理を行うゲーム処理手段を備え、前記ゲーム処理手段は、前記第1加速度データおよび第2加速度データ両方に基づいて、前記プレイヤオブジェクトの制御を行う第1対象制御手段を含み、前記ゲーム処理手段は、前記角速度データに基づいて前記第1の入力装置の所定軸回りの回転を検出し、当該回転に基づいて前記プレイヤオブジェクトに特定のアクションを行わせる、ゲーム装置である。
第7の発明は、ゲーム空間内のプレイヤオブジェクトが第1の制御対象および第2の制御対象を含むゲームシステムであって、第1の加速度センサと角速度センサとを少なくとも備える第1の入力装置と、第2の加速度センサを少なくとも備える第2の入力装置とから操作データを取得する操作データ取得手段、および少なくとも、前記操作データにおける、前記第1の加速度センサの出力に応じた第1加速度データ、前記第2の加速度センサの出力に応じた第2加速度データ、および前記角速度センサの出力に応じた角速度データに基づいて、ゲーム処理を行うゲーム処理手段を備え、前記ゲーム処理手段は、前記第1加速度データに基づいて前記第1の制御対象の制御を行う第1対象制御手段と、前記第2加速度データに基づいて前記第2の制御対象の制御を行う第2対象制御手段とを含み、第1対象制御手段は第1の制御対象をゲーム空間内で動かす動作をさせ、さらに、前記角速度データに基づいて、当該第1の制御対象の動作に回転を加える、ゲームシステムである。
第8の発明は、ゲーム空間内にプレイヤオブジェクトを表示するゲームシステムであって、第1の加速度センサと角速度センサとを少なくとも備える第1の入力装置と、第2の加速度センサを少なくとも備える第2の入力装置とから操作データを取得する操作データ取得手段、および少なくとも、前記操作データにおける、前記第1の加速度センサの出力に応じた第1加速度データ、前記第2の加速度センサの出力に応じた第2加速度データ、および前記角速度センサの出力に応じた角速度データに基づいて、ゲーム処理を行うゲーム処理手段を備え、前記ゲーム処理手段は、前記第1加速度データおよび第2加速度データ両方に基づいて、前記プレイヤオブジェクトの制御を行う第1対象制御手段を含み、前記ゲーム処理手段は、前記角速度データに基づいて前記第1の入力装置の所定軸回りの回転を検出し、当該回転に基づいて前記プレイヤオブジェクトに特定のアクションを行わせる、ゲームシステムである。
第9の発明は、ゲーム空間内のプレイヤオブジェクトが第1の制御対象および第2の制御対象を含むゲーム装置のゲーム制御方法であって、第1の加速度センサと角速度センサとを少なくとも備える第1の入力装置と、第2の加速度センサを少なくとも備える第2の入力装置とから操作データを取得する操作データ取得ステップ、および少なくとも、前記操作データにおける、前記第1の加速度センサの出力に応じた第1加速度データ、前記第2の加速度センサの出力に応じた第2加速度データ、および前記角速度センサの出力に応じた角速度データに基づいて、ゲーム処理を行うゲーム処理ステップを含み、前記ゲーム処理ステップは、前記第1加速度データに基づいて前記第1の制御対象の制御を行う第1対象制御ステップと、前記第2加速度データに基づいて前記第2の制御対象の制御を行う第2対象制御ステップとを含み、第1対象制御ステップでは第1の制御対象をゲーム空間内で動かす動作をさせ、さらに、前記角速度データに基づいて、当該第1の制御対象の動作に回転を加える、ゲーム制御方法である
第10の発明は、ゲーム空間内にプレイヤオブジェクトを表示するゲーム装置におけるゲーム制御方法であって、第1の加速度センサと角速度センサとを少なくとも備える第1の入力装置と、第2の加速度センサを少なくとも備える第2の入力装置とから操作データを取得する操作データ取得ステップ、および少なくとも、前記操作データにおける、前記第1の加速度センサの出力に応じた第1加速度データ、前記第2の加速度センサの出力に応じた第2加速度データ、および前記角速度センサの出力に応じた角速度データに基づいて、ゲーム処理を行うゲーム処理ステップを含み、前記ゲーム処理ステップは、前記第1加速度データおよび第2加速度データ両方に基づいて、前記プレイヤオブジェクトの制御を行う第1対象制御ステップを含み、前記ゲーム処理ステップでは、前記角速度データに基づいて前記第1の入力装置の所定軸回りの回転を検出し、当該回転に基づいて前記プレイヤオブジェクトに特定のアクションを行わせる、ゲーム制御方法である。
本願発明によれば、新規なゲームプログラムおよびゲーム装置を提供することができる。また、コントローラの動きを用いて多様な操作が実現可能なゲームプログラムおよびゲーム装置を提供することができる。
図1を参照して、この発明の一実施例であるゲームシステム10は、ビデオゲーム装置(以下、単に「ゲーム装置」ということがある。)12およびコントローラ14を含む。コントローラ14は、ユーザないしプレイヤの入力装置ないし操作装置として機能する。ゲーム装置12とコントローラ14とは無線によって接続される。たとえば、無線通信は、Bluetooth(登録商標)規格に従って実行されるが、赤外線や無線LANなど他の規格に従って実行されてもよい。
ゲーム装置12は、略直方体のハウジング16を含み、ハウジング16の前面にはディスクスロット18および外部メモリカードスロットカバー20が設けられる。ディスクスロット18から、ゲームプログラムおよびデータを記憶した情報記憶媒体の一例である光ディスク22が挿入されて、ハウジング16内のディスクドライブ74(図10)に装着される。外部メモリカードスロットカバー20の内側には外部メモリカード用コネクタ48(図10)が設けられており、その外部メモリカード用コネクタ48には外部メモリカード(図示せず)が挿入される。メモリカードは、光ディスク22から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム10を利用してプレイされたゲームのゲームデータ(結果データまたは途中データ)を保存(セーブ)しておいたりするために利用される。また、上記ゲームデータの保存は、外部メモリカードに代えて、たとえばフラッシュメモリ64(図10)等の内部メモリに対して行うようにしてもよい。
ゲーム装置12のハウジング16の後面には、AVケーブルコネクタ(図示せず)が設けられ、当該コネクタを用いて、ゲーム装置12はAVケーブル24を介してモニタ(ディスプレイ)26に接続される。このモニタ26は典型的にはカラーテレビジョン受像機であり、AVケーブル24は、ゲーム装置12からの映像信号をカラーテレビのビデオ入力端子に入力し、音声信号を音声入力端子に入力する。したがって、カラーテレビ(モニタ)26の画面上にたとえば3Dビデオゲームのゲーム画像が表示され、内蔵されるスピーカ28からゲーム音楽や効果音などのステレオゲーム音声が出力される。
また、モニタ26の周辺(この実施例では、モニタ26の上側)には、2つの赤外LED(マーカ)30aおよび30bを備えるマーカ部30が設けられる。このマーカ部30は、電源ケーブル(図示せず)を通してゲーム装置12に接続される。したがって、マーカ部30には、ゲーム装置12から電源が供給される。これによって、マーカ30a,30bは発光し、それぞれモニタ26の前方に向けて赤外光を出力する。
なお、ゲーム装置12の電源は、一般的なACアダプタ(図示せず)によって与えられる。ACアダプタは家庭用の標準的な壁ソケットに接続され、家庭用電源を、ゲーム装置12を駆動するのに適した低いDC電圧信号に変換する。他の実施例では、電源としてバッテリが用いられてもよい。
コントローラ14は、詳細は後述されるが、それぞれが片手で把持可能な第1コントローラ34および第2コントローラ36と、第1コントローラ34に着脱可能に装着されるジャイロセンサユニット100とを含む。第1コントローラ34の後端面にはコネクタ42(図2(A)、図11)が設けられ、第2コントローラ36の後端から延びるケーブル38の先端にはコネクタ40(図1、図5、図11)が設けられ、そしてジャイロセンサユニット100の先端面および後端面にはコネクタ106および108(図6(A)、図6(B)、図7および図11)がそれぞれ設けられる。ジャイロセンサユニット100の先端面側のコネクタ106は第1コントローラ34のコネクタ42と接続可能であり、第2コントローラ36のコネクタ40は第1コントローラ34のコネクタ42またはジャイロセンサユニット100の後端面側のコネクタ108と接続可能である。
コネクタ106をコネクタ42に接続することで、ジャイロセンサユニット100は、第1コントローラ34と物理的および電気的に結合される。こうして第1コントローラ34に装着(一体化)されたジャイロセンサユニット100からは、第1コントローラ34の角速度を示す角速度データが出力される。
こうして第1コントローラ34にジャイロセンサユニット100が装着された場合、第2コントローラ36のコネクタ40は、ジャイロセンサユニット100の後端面側のコネクタ108に接続される。すなわち、コネクタ42は、コネクタ106とコネクタ40の両者を選択的に接続可能な構造であって、コネクタ40は、コネクタ42とコネクタ108の両者に選択的に接続可能な構造である。したがって、ジャイロセンサユニット100に設けられるコネクタ106とコネクタ108とは、同一のハウジングに設けられるため実際は接続できないが、コネクタの形状としては互いに接続可能な形状をしていることになる。第2コントローラ36の入力データは、ケーブル38およびジャイロセンサユニット100を介して第1コントローラ34に与えられる。第1コントローラ34は、第1コントローラ34自身の入力データと、ジャイロセンサユニット100からの角速度データと、第2コントローラ36の入力データとを含むコントローラデータをゲーム装置12に送信する。
なお、コネクタ40をコネクタ42に接続した場合には、第2コントローラ36の操作データないし入力データはケーブル38を介して第1コントローラ34に与えられ、第1コントローラ34は、第1コントローラ34自身の入力データと第2コントローラ36の入力データとを含むコントローラデータをゲーム装置12に送信する。
このとき、第1コントローラ34の入力データと、第2コントローラ36の入力データを送信するシステムにおいて、一度に送信するデータ量を追加することができないように設計されている場合もあるが、ジャイロユニット100を追加した場合に、ジャイロユニット100からの角速度データと、第2コントローラ36からの入力データとを交互に第1コントローラ36へ出力することによって、両者のデータを送信することができる。このデータ制御はジャイロユニット100で行うことができるので、第1コントローラ34や第2コントローラ36には何ら設計の変更をする必要がない。
このように、第1コントローラ34がゲーム装置12から離れて、無線などによって、そのコントローラ34の操作信号や操作データ(データ)だけでなく、第2コントローラ36やジャイロセンサユニット100からの操作信号や操作データ(データ)を、ゲーム装置12に対して入力するので、第1コントローラ34を以下において、「リモコン」と呼ぶこともある。また、第2コントローラ36は、その形態から「ヌンチャク」と愛称されているので、以下において、そのように呼ぶこともある。
このように、ジャイロセンサユニット100は、既存の第1コントローラ34および第2コントローラ36をそのまま利用しながら、第1コントローラ34にジャイロ機能を付加するための拡張ユニットである。
このゲームシステム10において、ゲーム(または他のアプリケーション)をプレイするために、ユーザはまずゲーム装置12の電源をオンし、次いで、ユーザはビデオゲーム(もしくは実行したいと思う他のアプリケーション)を記憶している適宜の光ディスク22を選択し、その光ディスク22をゲーム装置12のディスクスロット18からディスクドライブ74にローディングする。これに応じて、ゲーム装置12がその光ディスク22に記憶されているソフトウェアに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザはゲーム装置12に入力を与えるためにコントローラ14を操作する。
図2にはリモコンまたは第1コントローラ34の外観の一例が示される。図2(A)は、第1コントローラ34を上面後方から見た斜視図であり、図2(B)は、第1コントローラ34を下面前方から見た斜視図である。
第1コントローラ34は、たとえばプラスチック成型によって形成されたハウジング44を有している。ハウジング44は、その前後方向(Z軸方向)を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。一例として、ハウジング44は人間の掌とほぼ同じ長さまたは幅を持つ大きさをしている。プレイヤは、第1コントローラ34を用いて、それに設けられたボタンを押下することと、第1コントローラ34自体の位置や向きを変えることとによって、ゲーム操作を行うことができる。
ハウジング44には、複数の操作ボタンが設けられる。すなわち、ハウジング44の上面には、十字キー46a、1(いち)ボタン46b、2(に)ボタン46c、Aボタン46d、−(マイナス)ボタン46e、ホーム(HOME)ボタン46f、および+(プラス)ボタンないしスタートボタン46gが設けられる。一方、ハウジング44の下面には凹部が形成されており、当該凹部の後方側傾斜面にはBボタン46hが設けられる。これら各ボタン(スイッチ)46a−46hには、ゲーム装置12が実行するゲームプログラムに応じてそれぞれ適宜な機能が割り当てられる。また、ハウジング44の上面には、遠隔からゲーム装置12本体の電源をオン/オフするための電源スイッチ46iが設けられる。第1コントローラ34に設けられる各ボタン(スイッチ)は、包括的に参照符号46を用いて操作手段または入力手段として示されることもある。
十字キー46aは、4方向プッシュスイッチであり、矢印で示す4つの方向、前(または上)、後ろ(または下)、右および左の操作部を含む。この操作部のいずれか1つを操作することによって、プレイヤによって操作可能なキャラクタまたはオブジェクト(プレイヤキャラクタまたはプレイヤオブジェクト)の移動方向を指示したり、カーソルの移動方向を指示したり、単に方向を指示したりすることができる。
1ボタン46bおよび2ボタン46cは、それぞれ、押しボタンスイッチである。たとえば3次元ゲーム画像を表示する際の視点位置や視点方向、すなわち仮想カメラの位置や画角を調整する等のゲームの操作に使用される。または、1ボタン46bおよび2ボタン46cは、Aボタン46dおよびBボタン46hと同じ操作或いは補助的な操作をする場合に用いるようにしてもよい。
Aボタンスイッチ46dは、押しボタンスイッチであり、プレイヤキャラクタまたはプレイヤオブジェクトに、方向指示以外の動作、すなわち、打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプするなどの任意のアクションをさせるために使用される。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かすなどを指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。また、Aボタンスイッチ46dは、コントローラ34をポインティングデバイスとして用いる場合に、ゲーム画面上でポインタ(指示画像)が指示するアイコンないしボタン画像の決定を指示するために使用される。たとえば、アイコンやボタン画像が決定されると、これらに対応して予め設定されている指示ないし命令(コマンド)を入力することができる。
−ボタン46e、ホームボタン46f、+ボタン46gおよび電源スイッチ46iもまた、押しボタンスイッチである。−ボタン46eは、ゲームモードを選択するために使用される。ホームボタン46fは、ゲームメニュー(メニュー画面)を表示するために使用される。+ボタン46gは、ゲームを開始(再開)したり、一時停止したりするなどのために使用される。電源スイッチ46iは、ゲーム装置12の電源を遠隔操作によってオン/オフするために使用される。
なお、この実施例では、コントローラ34自体をオン/オフするための電源スイッチは設けておらず、コントローラ34の操作手段ないし入力手段46のいずれかを操作することによってコントローラ34はオンとナリ、一定時間(たとえば、30秒)以上操作しなければ自動的にオフとなるようにしてある。
Bボタン46hもまた、押しボタンスイッチであり、主として、弾を撃つなどのトリガを模した入力を行ったり、コントローラ34で選択した位置を指定したりするために使用される。また、Bボタン46hを押し続けると、プレイヤオブジェクトの動作やパラメータを一定の状態に維持することもできる。また、一定の場合には、Bボタン46hは、通常のBボタンと同様に機能し、Aボタン46dによって決定したアクションやコマンドなどを取り消すなどのために使用される。
ハウジング44内には、図2に示すX、YおよびZの3軸方向(すなわち左右方向、上下方向および前後方向)の加速度を検出する加速度センサ84(図11)が設けられる。なお、加速度センサ84としては、ハウジング44の形状または第1コントローラ34の持たせ方の限定等に応じて、上下方向、左右方向および前後方向のうちいずれか2方向の加速度を検出する2軸加速度センサが用いられてもよい。場合によっては1軸加速度センサが用いられてもよい。
ハウジング44の前面には光入射口44bが形成され、ハウジング44内には撮像情報演算部50がさらに設けられる。撮像情報演算部50は、赤外線を撮像するカメラと撮像対象の画像内での座標を算出する演算部とによって構成され、上述のマーカ30aおよび30bを含む被写界を赤外線で捉えて、マーカ30aおよび30bの被写界内における位置座標を算出する。
また、ハウジング44の後面には、上述のコネクタ42が設けられている。コネクタ42は、第1コントローラ34に他の機器を接続するために利用される。この実施例では、コネクタ42には第2コントローラ36のコネクタ40またはジャイロセンサユニット100のコネクタ106が接続される。
ハウジング44の後面にはまた、コネクタ42を左右(X軸方向)に挟んで対向する位置に、一対の孔48aおよび48bが形成されている。この一対の孔48aおよび48bは、ジャイロセンサユニット100をハウジング44の後面に固定するためのフック112Faおよび112Fb(図6(A))が挿入される。ハウジング44の後面にはさらに、ストラップ56(図5)を装着するための孔48cも形成されている。
図3にはヌンチャクまたは第2コントローラ36の本体の外観の一例が示される。図3(A)は、第2コントローラ36を上面後方から見た斜視図であり、図3(B)は、第2コントローラ36を下面前方から見た斜視図である。なお、図3では、第2コントローラ36のケーブル38は省略されている。
第2コントローラ36は、たとえばプラスチック成型によって形成されたハウジング52を有している。ハウジング52は、平面視では、前後方向(Z軸方向)に略細長い楕円形状を有し、後端側の左右方向(X軸方向)の幅が先端側のそれよりも狭くされている。また、ハウジング52は、側面視では、全体として湾曲した形状を有しており、先端側の水平部分から後端側に向かって下がるように湾曲している。ハウジング52は、第1コントローラ34と同様に、全体として大人や子供の片手で把持可能な大きさであるが、長手方向(Z軸方向)の長さは、第1コントローラ34のハウジング44よりもやや短くされている。この第2コントローラ36でも、プレイヤは、ボタンやスティックを操作することと、コントローラ自体の位置や向きを変えることとによって、ゲーム操作を行うことができる。
ハウジング52の上面の先端側には、アナログジョイスティック54aが設けられる。ハウジング52の先端には、後方にやや傾斜する先端面が設けられており、この先端面には、上下方向(図3に示すY軸方向)に並べて、Cボタン54bおよびZボタン54cが設けられる。アナログジョイスティック54aおよび各ボタン54b,54cには、ゲーム装置12が実行するゲームプログラムに応じてそれぞれ適宜な機能が割り当てられる。
第2コントローラ36に設けられるアナログジョイスティック54aおよび各ボタン54b,54cは、包括的に参照符号88を用いて示されることもある。
また、第2コントローラ36のハウジング52内には加速度センサ86(図11)が設けられている。この加速度センサ86としては、第1コントローラ34の加速度センサ84と同様の加速度センサが適用される。具体的には、この実施例では3軸加速度センサが適用され、第2コントローラ36の上下方向(Y軸方向)、左右方向(X軸方向)および前後方向(Z軸方向)の3軸方向のそれぞれで加速度を検知する。したがって、第1コントローラ34の場合と同様に、検出された加速度に適宜な演算処理を施すことによって、第2コントローラ36の傾きや回転、重力方向に対する加速度センサ86の姿勢などを算出することができる。また、振り等によって第1コントローラ34に加えられた動きについても同様に算出することができる。
図4には第2コントローラ36のコネクタ40の外観の一例が示される。図4は、コネクタ40を下面前方から見た斜視図である。なお、ここでもケーブル38は省略されている。コネクタ40は、たとえばプラスチック成型によって形成されたハウジング122を有する。ハウジング122の下面にはフック124が設けられている。このフック124は、本来的には、図5に示すように、コネクタ40を第1コントローラ34(のコネクタ42)と直に接続した場合に、第1コントローラ34に装着されたストラップ56のひもを掛け止めるためのものである。
図6にはジャイロセンサユニット100の外観の一例が示される。図6(A)は、ジャイロセンサユニット100を上面前方から見た斜視図であり、図6(B)は、ジャイロセンサユニット100を下面後方から見た斜視図である。
ジャイロセンサユニット100は、たとえばプラスチック成型によって形成されたハウジング110を有している。ハウジング110は、略直方体形状を有しており、その長さは第1コントローラ34のハウジング44の長さのおよそ1/5、その幅および厚みはハウジング44の幅および厚みとほぼ同じである。プレイヤは、第1コントローラ34にジャイロセンサユニット100を装着した状態でも、第1コントローラ34自体の位置や向きを変えることによって、ゲーム操作を行うことができる。
ハウジング110の前面および後面には上述のコネクタ106および108が、ハウジング110の両側面には一対のリリースボタン112aおよび112bが、そしてハウジング110の下面にはロックスイッチ114が、それぞれ設けられている。ハウジング110の前面下端から下面先端にかけては、第1コントローラ34にジャイロセンサユニット100を装着した状態でストラップ56用の孔48cが露見するように(図8)、略球面状の凹部110aが設けられている。
ハウジング110の前面にはまた、コネクタ106を挟んで横方向(X軸方向)に対向する位置に、一対のリリースボタン112aおよび112bとそれぞれ連繋する一対のフック112Faおよび112Fbが設けられている。ジャイロセンサユニット100を第1コントローラ34に装着するべく、コネクタ106をコネクタ42に接続すると、一対のフック112Faおよび112Fbはハウジング44後面の一対の孔48aおよび48b(図2(A))に挿入され、フック112Faおよび112Fbの爪がハウジング44の内壁に引っ掛かる。これによって、ジャイロセンサユニット100は、第1コントローラ34の後面に固定される。
こうして第1コントローラ34に装着されたジャイロセンサユニット100が図8に示される。この状態で一対のリリースボタン112aおよび112bを押せば、爪の引っ掛かりは解け、ジャイロセンサユニット100を第1コントローラ34から取り外せるようになる。
ロックスイッチ114は、このようなリリースボタン112aおよび112bにロックをかけるためのスライドスイッチである。リリースボタン112aおよび112bは、ロックスイッチ114が第1位置(たとえば後ろ寄り)にあるとき押下不能(ロック状態)であり、ロックスイッチ114が第2位置(たとえば前寄り)にあるとき押下可能(解除状態)である。ハウジング110内には、ロックバネ118aおよび118b(図7)が設けられ、リリースボタン112aおよび112bを押下すると反発するように構成され、押下されていないときは爪が引っ掛かった状態を維持するように構成されている。このため、ジャイロセンサユニット100を取り外すには、ユーザは、ロックスイッチ114を第1位置から第2位置にスライドさせたうえで、リリースボタン112aおよび112bを押す必要がある。
このように、ジャイロセンサユニット100は、第1コントローラ34の後面に装着されるため、ゲーム操作中にジャイロセンサユニット100に加わる遠心力は専ら、ジャイロセンサユニット100を第1コントローラ34に押し付けるように作用する。また、ジャイロセンサユニット100をフック112Faおよび112Fbで第1コントローラ34の後面に固定する一方、フック112Faおよび112Fbを開放するためリリースボタン112aおよび112bにはロックスイッチ114を設けたため、ジャイロセンサユニット100を第1コントローラ34に固定することができる。
ハウジング110の後面にはまた、コネクタ108に装着されるコネクタカバー116を収納可能な凹部110bが、このコネクタ108の周囲に形成される。コネクタカバー116は、その主面の一方端部に、前後(Z軸方向)に長細い薄手の(すなわち曲折容易な)突起116aを有する。この突起116aの先端部分がハウジング110と係合されており、コネクタカバー116は、コネクタ108から取り外された状態でもハウジング110に係留される。
コネクタカバー116はまた、その主面の他方端部に、左右(X軸方向)に長細い厚手の(すなわち曲折困難な)突起116bを有する。突起116bの厚み(Z軸方向の高さ)は、第2コントローラ36のコネクタ40に設けられたフック124(図4)の厚み(Y軸方向の高さ)とほぼ同じである。第1コントローラ34にジャイロセンサユニット100を介して第2コントローラ36が接続された場合、コネクタカバー116は、図9に示すように、その主面が水平となって、突起116bがフック124の側面と係合される。コネクタ108から取り外されたコネクタカバー116をこうしてコネクタ40と一体化することで、操作性や見た目が改善されるだけでなく、コネクタ40をジャイロセンサユニット100に固定することができる。
図7にはジャイロセンサユニット100の構成の一例が示される。ジャイロセンサユニット100は、上述したハウジング110、コネクタ106および108、リリースボタン112aおよび112b、フック112Faおよび112Fb、ロックスイッチ114、コネクタカバー116ならびにロックバネ118aおよび118bに加え、ジャイロ基板120および支持部材122を備える。ジャイロ基板120はコネクタ106および108の各々と信号線で接続され、支持部材122はジャイロ基板120ならびにコネクタ106および108を支持する。
ジャイロ基板120にはジャイロセンサ104が設けられる。ジャイロセンサ104は、1軸のジャイロセンサ104aおよび2軸のジャイロセンサ104bの2チップで構成される。ジャイロセンサ104aはヨー角に関する角速度(Y軸周りの角速度)を検出するためのものであり、ジャイロセンサ104bはロール角およびピッチ角に関する2つの角速度(Z軸周りの角速度およびX軸周りの角速度)を検出するためのものである。ジャイロセンサ104aおよび104bは、ジャイロ基板120の上面120aに水平に並べて設けられる。
なお、ジャイロセンサ104aおよび104bの配置は、図7に示されたものに限らない。他の実施例では、ジャイロセンサ104aは、ジャイロ基板120の上面120aおよび下面120bの一方に水平に設けられ、ジャイロセンサ104bは、ジャイロ基板120の上面120aおよび下面120bの他方に水平に、ジャイロ基板120を挟んでジャイロセンサ104aと対向するように設けられる。その他の実施例では、ジャイロセンサ104aはジャイロ基板120の上面120aおよび下面120bの一方に垂直に設けられ、ジャイロセンサ104bはジャイロ基板120の上面120aおよび下面120bの他方に水平に設けられる。
また、ジャイロセンサ104は、2チップ構成とは限らず、3個の1軸ジャイロセンサ(3チップ)で構成してもよく、1個の3軸ジャイロセンサ(1チップ)で構成してもよい。いずれの場合も、上述の3つの角速度を適正に検出できるように、各チップの位置や向きが決定される。さらにまた、場合によっては、ジャイロセンサ104は、1個の2軸ジャイロセンサで構成しても、2個または1個の1軸ジャイロセンサで構成してもよい。
なお、図2に示した第1コントローラ34、図3および図4に示した第2コントローラ36、および図6に示したジャイロセンサユニット100の形状や、ボタン(スイッチまたはスティック等)の形状、数および設置位置等は単なる一例に過ぎず、他の形状、数および設置位置等に適宜変更され得る。
なお、センサは、好ましい実施例ではジャイロセンサ(角速度センサ)であるが、たとえば加速度センサ、速度センサ、変位センサ、回転角センサなど、他のモーションセンサでもよい。モーションセンサ以外にも、傾斜センサ、イメージセンサ、光センサ、圧力センサ、磁気センサ、温度センサなどがあり、いずれのセンサを追加する場合でも、センサの検出対象を利用した操作が可能となる。いずれのセンサを用いた場合でも、従来操作装置に接続されていた他の装置をそのまま使用しながら、操作装置に当該センサを追加することができる。
また、コントローラ14の電源は、第1コントローラ34内に取替可能に収容されるバッテリ(図示せず)によって与えられる。第2コントローラ36には、コネクタ40およびケーブル38を介してこの電源が供給される。第1コントローラ34にジャイロセンサユニット100が接続されている場合、ジャイロセンサユニット100にはコネクタ42および106を介してこの電源が供給される。さらにジャイロセンサユニット100に第2コントローラ36が接続されていれば、第1コントローラ34からジャイロセンサユニット100に供給された電源の一部は、コネクタ108、コネクタ40およびケーブル38を介して第2コントローラ36にも与えられる。
図10は図1実施例のビデオゲームシステム10の電気的な構成を示すブロック図である。図示は省略するが、ハウジング14内の各コンポーネントは、プリント基板に実装される。図2に示すように、ゲーム装置12には、CPU60が設けられ、ゲームプロセッサとして機能する。また、CPU60には、システムLSI62が接続される。このシステムLSI62には、外部メインメモリ66、ROM/RTC68、ディスクドライブ74およびAV IC76が接続される。
外部メインメモリ66は、ゲームプログラム等のプログラムを記憶したり、各種データを記憶したりして、CPU60のワーク領域やバッファ領域として用いられる。ROM/RTC68は、いわゆるブートROMであり、ゲーム装置12の起動用のプログラムが組み込まれるとともに、時間をカウントする時計回路が設けられる。ディスクドライブ74は、光ディスク18からプログラム,画像データや音声データ等を読み出し、CPU60の制御の下で、後述する内部メインメモリ62eまたは外部メインメモリ66に書き込む。
システムLSI62には、入出力プロセッサ62a、GPU(GraphicsProcessor Unit)62b,DSP(Digital Signal Processor)62c,VRAM62dおよび内部メインメモリ62eが設けられ、図示は省略するが、これらは内部バスによって互いに接続される。入出力プロセッサ(I/Oプロセッサ)62aは、データの送受信を実行したり、データのダウンロードを実行したりする。データの送受信やダウンロードについては後述する。
GPU62bは、描画手段の一部を形成し、CPU60からのグラフィクスコマンド(作画命令)を受け、そのコマンドに従ってゲーム画像データを生成する。ただし、CPU60は、グラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをGPU62bに与える。
図示は省略するが、上述したように、GPU62bにはVRAM62dが接続される。GPU62bが作画コマンドを実行するにあたって必要なデータ(画像データ:ポリゴンデータやテクスチャデータなどのデータ)は、GPU62bがVRAM62dにアクセスして取得する。ただし、CPU60は、描画に必要な画像データを、GPU62bを介してVRAM62dに書き込む。GPU62bは、VRAM62dにアクセスして描画のためのゲーム画像データを作成する。
なお、この実施例では、GPU62bがゲーム画像データを生成する場合について説明するが、ゲームアプリケーション以外の任意のアプリケーションを実行する場合には、GPU62bは当該任意のアプリケーションについての画像データを生成する。
また、DSP62cは、オーディオプロセッサとして機能し、内部メインメモリ62eや外部メインメモリ66に記憶されるサウンドデータや音波形(音色)データを用いて、スピーカ28から出力する音、音声或いは音楽に対応するオーディオデータを生成する。
上述のように生成されたゲーム画像データおよびオーディオデータは、AV IC76によって読み出され、AVコネクタ78を介してモニタ26およびスピーカ28に出力される。したがって、ゲーム画面がモニタ26に表示され、ゲームに必要な音(音楽)がスピーカ28から出力される。
また、入出力プロセッサ62aには、フラッシュメモリ64、無線通信モジュール70および無線コントローラモジュール72が接続されるとともに、拡張コネクタ80およびメモリカード用コネクタ82が接続される。また、無線通信モジュール70にはアンテナ70aが接続され、無線コントローラモジュール72にはアンテナ72aが接続される。
図示は省略するが、入出力プロセッサ62aは、無線通信モジュール70を介して、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。ただし、ネットワークを介さずに、直接的に他のゲーム装置と通信することもできる。入出力プロセッサ62aは、定期的にフラッシュメモリ64にアクセスし、ネットワークへ送信する必要があるデータ(「送信データ」とする)の有無を検出し、当該送信データが有る場合には、無線通信モジュール70およびアンテナ70aを介してネットワークに送信する。また、入出力プロセッサ62aは、他のゲーム装置から送信されるデータ(「受信データ」とする)を、ネットワーク、アンテナ70aおよび無線通信モジュール70を介して受信し、当該受信データをフラッシュメモリ64に記憶する。ただし、受信データが一定の条件を満たさない場合には、当該受信データはそのまま破棄される。さらに、入出力プロセッサ62aは、ダウンロードサーバからダウンロードしたデータ(ダウンロードデータとする)をネットワーク、アンテナ70aおよび無線通信モジュール70を介して受信し、そのダウンロードデータをフラッシュメモリ64に記憶する。
また、入出力プロセッサ62aは、コントローラ34から送信される入力データをアンテナ72aおよび無線コントローラモジュール72を介して受信し、内部メインメモリ62eまたは外部メインメモリ66のバッファ領域に記憶(一時記憶)する。入力データは、CPU60の処理(たとえば、ゲーム処理)によって利用された後、バッファ領域から消去される。
なお、この実施例では、上述したように、無線コントローラモジュール72は、Bluetooth規格に従ってコントローラ34との間で通信を行う。このため、コントローラ14からデータを取得するだけでなく、ゲーム装置12からコントローラ14に所定の命令を送信し、コントローラ14の動作をゲーム装置12から制御することもできる。
さらに、入出力プロセッサ62aには、拡張コネクタ80およびメモリカード用コネクタ82が接続される。拡張コネクタ80は、USBやSCSIのようなインタフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、コントローラ34とは異なる他のコントローラのような周辺機器を接続したりすることができる。また、拡張コネクタ80に有線LANアダプタを接続し、無線通信モジュール70に代えて当該有線LANを利用することもできる。メモリカード用コネクタ82には、メモリカードのような外部記憶媒体を接続することができる。したがって、たとえば、入出力プロセッサ62aは、拡張コネクタ80やメモリカード用コネクタ82を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
詳細な説明は省略するが、電源ボタンがオンされると、システムLSI62には、ゲーム装置12の各コンポーネントに図示しないACアダプタを経て電源が供給され、通常の通電状態となるモード(「通常モード」と呼ぶこととする)が設定される。一方、電源ボタンがオフされると、システムLSI62には、ゲーム装置12の一部のコンポーネントのみに電源が供給され、消費電力を必要最低限に抑えるモード(以下、「スタンバイモード」という)が設定される。
この実施例では、スタンバイモードが設定された場合には、システムLSI62は、入出力プロセッサ62a、フラッシュメモリ64、外部メインメモリ66、ROM/RTC68および無線通信モジュール70、無線コントローラモジュール72以外のコンポーネントに対して、電源供給を停止する指示を行う。したがって、この実施例では、スタンバイモードにおいて、CPU60がアプリケーションを実行することはない。
なお、システムLSI62には、スタンバイモードにおいても電源が供給されるが、GPU62b、DSP62cおよびVRAM62dへのクロックの供給を停止することにより、これらを駆動しないようにして、消費電力を低減するようにしてある。
また、図示は省略するが、ゲーム装置12のハウジング14内部には、CPU60やシステムLSI62などのICの熱を外部に排出するためのファンが設けられる。スタンバイモードでは、このファンも停止される。
ただし、スタンバイモードを利用したくない場合には、スタンバイモードを利用しない設定にしておくことにより、電源ボタンがオフされたときに、すべての回路コンポーネントへの電源供給が完全に停止される。
また、通常モードとスタンバイモードとの切り替えは、コントローラ34の電源スイッチ80iのオン/オフの切り替えによって、遠隔操作によって行うことが可能である。当該遠隔操作を行わない場合には、スタンバイモードにおいて無線コントローラモジュール72aへの電源供給を行わない設定にしてもよい。
リセットボタンもまた、システムLSI62に接続される。リセットボタンが押されると、システムLSI62は、ゲーム装置12の起動プログラムを再起動する。イジェクトボタンは、ディスクドライブ74に接続される。イジェクトボタンが押されると、ディスクドライブ74から光ディスク22が排出される。
図11には、第1コントローラ34と第2コントローラ36とがジャイロセンサユニット100を介して接続されたときのコントローラ14全体の電気的構成の一例が示される。
第1コントローラ34は、その内部に通信部88を備え、通信部88には、操作部46、撮像情報演算部50、加速度センサ84およびコネクタ42が接続される。操作部46は、上述の操作ボタンないし操作スイッチ46a‐46iを示す。操作部46が操作されると、その操作を示すデータが通信部88に出力される。撮像情報演算部50からは、マーカ30aおよび30bの被写界内における位置座標を示すデータが通信部88に出力される。
さらに、上述したように、コントローラ34には、撮像情報演算部50が設けられる。この撮像情報演算部50は、赤外線フィルタ50a、レンズ50b、撮像素子50cおよび画像処理回路50dによって構成される。赤外線フィルタ50aは、コントローラ34の前方から入射する光から赤外線のみを通過させる。上述したように、モニタ26の表示画面近傍(周辺)に配置されるマーカ30aおよび30bは、モニタ26の前方に向かって赤外光を出力する赤外LEDである。したがって、赤外線フィルタ50aを設けることによってマーカ30aおよび30bの画像をより正確に撮像することができる。レンズ50bは、赤外線フィルタ50aを透過した赤外線を集光して撮像素子50cへ出射する。撮像素子50cは、たとえばCMOSセンサあるいはCCDのような固体撮像素子であり、レンズ50bによって集光された赤外線を撮像する。したがって、撮像素子50cは、赤外線フィルタ50aを通過した赤外線だけを撮像して画像データを生成する。以下では、撮像素子50cによって撮像された画像を撮像画像と呼ぶ。撮像素子50cによって生成された画像データは、画像処理回路50dで処理される。画像処理回路50dは、撮像画像内における撮像対象(マーカ30aおよび30b)の位置を算出し、第4所定時間毎に、当該位置を示す各座標値を撮像データ(後述するマーカ座標データ)としてプロセッサ70に出力する。なお、画像処理回路50dにおける処理については後述する。
図12は、コントローラ34を用いてゲームプレイするときの状態を概説する図解図である。ただし、ゲームプレイのみならず、他のアプリケーションを実行したり、DVDを再生したりする場合も同様である。図12に示すように、ビデオゲームシステム10でコントローラ34を用いてゲームをプレイする際、プレイヤは、一方の手でコントローラ34を把持する。厳密に言うと、プレイヤは、コントローラ34の先端面(撮像情報演算部50が撮像する光の入射口44b側)がマーカ30aおよび30bの方を向く状態でコントローラ34を把持する。ただし、図1からも分かるように、マーカ30aおよび30bは、モニタ26の画面の横方向と平行に配置されている。この状態で、プレイヤは、コントローラ34が指示する画面上の位置を変更したり、コントローラ34と各マーカ30aおよび30bとの距離を変更したりすることによってゲーム操作を行う。
なお、図12では分かり難いが、上述したジャイロユニット100がコントローラ34に接続される場合も同様である。
図13は、マーカ30aおよび30bと、コントローラ34との視野角を説明するための図である。図13に示すように、マーカ30aおよび30bは、それぞれ、視野角θ1の範囲で赤外光を放射する。また、撮像情報演算部50の撮像素子50cは、コントローラ34の視線方向を中心とした視野角θ2の範囲で入射する光を受光することができる。たとえば、マーカ30aおよび30bの視野角θ1は、共に34°(半値角)であり、一方、撮像素子50cの視野角θ2は41°である。プレイヤは、撮像素子50cが2つのマーカ30aおよび30bからの赤外光を受光することが可能な位置および向きとなるように、コントローラ34を把持する。具体的には、撮像素子50cの視野角θ2の中にマーカ30aおよび30bの少なくとも一方が存在し、かつ、マーカ30aまたは30bの少なくとも一方の視野角θ1の中にコントローラ34が存在する状態となるように、プレイヤはコントローラ34を把持する。この状態にあるとき、コントローラ34は、マーカ30aおよび30bの少なくとも一方を検知することができる。プレイヤは、この状態を満たす範囲でコントローラ34の位置および向きを変化させることによってゲーム操作を行うことができる。
なお、コントローラ34の位置および向きがこの範囲外となった場合、コントローラ34の位置および向きに基づいたゲーム操作を行うことができなくなる。以下では、上記範囲を「操作可能範囲」と呼ぶ。
操作可能範囲内でコントローラ34が把持される場合、撮像情報演算部50によって各マーカ30aおよび30bの画像が撮像される。すなわち、撮像素子50cによって得られる撮像画像には、撮像対象である各マーカ30aおよび30bの画像(対象画像)が含まれる。図14は、対象画像を含む撮像画像の一例を示す図である。対象画像を含む撮像画像の画像データを用いて、画像処理回路50dは、各マーカ30aおよび30bの撮像画像における位置を表す座標(マーカ座標)を算出する。
撮像画像の画像データにおいて対象画像は高輝度部分として現れるため、画像処理回路50dは、まず、この高輝度部分を対象画像の候補として検出する。次に、画像処理回路50dは、検出された高輝度部分の大きさに基づいて、その高輝度部分が対象画像であるか否かを判定する。撮像画像には、対象画像である2つのマーカ30aおよび30bに対応する画像30a’および30b’のみならず、窓からの太陽光や部屋の蛍光灯の光によって対象画像以外の画像が含まれていることがある。高輝度部分が対象画像であるか否かの判定処理は、対象画像である画像30a’および30b’と、それ以外の画像とを区別し、対象画像を正確に検出するために実行される。具体的には、当該判定処理においては、検出された高輝度部分が、予め定められた所定範囲内の大きさであるか否かが判定される。そして、高輝度部分が所定範囲内の大きさである場合には、当該高輝度部分は対象画像を表すと判定される。逆に、高輝度部分が所定範囲内の大きさでない場合には、当該高輝度部分は対象画像以外の画像を表すと判定される。
さらに、上記の判定処理の結果、対象画像を表すと判定された高輝度部分について、画像処理回路50dは当該高輝度部分の位置を算出する。具体的には、当該高輝度部分の重心位置を算出する。ここでは、当該重心位置の座標をマーカ座標と呼ぶ。また、重心位置は撮像素子50cの解像度よりも詳細なスケールで算出することが可能である。ここでは、撮像素子50cによって撮像された撮像画像の解像度が126×96であるとし、重心位置は1024×768のスケールで算出されるものとする。つまり、マーカ座標は、(0,0)から(1024,768)までの整数値で表現される。
なお、撮像画像における位置は、撮像画像の左上を原点とし、下向きをY軸正方向とし、右向きをX軸正方向とする座標系(XY座標系)で表現されるものとする。
また、対象画像が正しく検出される場合には、判定処理によって2つの高輝度部分が対象画像として判定されるので、2箇所のマーカ座標が算出される。画像処理回路50dは、算出された2箇所のマーカ座標を示すデータを出力する。出力されたマーカ座標のデータ(マーカ座標データ)は、上述したように、プロセッサ70によって入力データに含まれ、ゲーム装置12に送信される。
ゲーム装置12(CPU60)は、受信した入力データからマーカ座標データを検出すると、このマーカ座標データに基づいて、モニタ26の画面上におけるコントローラ34の指示位置(指示座標)と、コントローラ34からマーカ30aおよび30bまでの各距離とを算出することができる。具体的には、2つのマーカ座標の中点の位置から、コントローラ34の向いている位置すなわち指示位置が算出される。また、撮像画像における対象画像間の距離が、コントローラ34と、マーカ30aおよび30bとの距離に応じて変化するので、2つのマーカ座標間の距離を算出することによって、ゲーム装置12はコントローラ34と、マーカ330aおよび30bとの間の距離を把握できる。
図11に戻って、加速度センサ84が検出した加速度を示すデータもまた、通信部88へ出力される。加速度センサ84は、たとえば最大200フレーム/秒程度のサンプリング周期を有する。
コネクタ42には、ジャイロセンサユニットのコネクタ106が接続される。ジャイロセンサユニット100は、その内部にマイコン102およびジャイロセンサ104を含む。ジャイロセンサ104は、上述のジャイロセンサ104aおよび104bを示しており、たとえば加速度センサ84と同様のサンプリング周期を有する。マイコン102は、ジャイロセンサ104が検出した角速度を示すデータをコネクタ106およびコネクタ42を介して通信部88に出力する。
ジャイロセンサユニット100のコネクタ108には、第2コントローラ36から延びるケーブル38のコネクタ40が接続される。コネクタ40には、第2コントローラ36の操作部88および加速度センサ86が接続される。操作部88は、上述のスティック54aおよび操作ボタン54b、54cを示す。操作部88が操作されると、その操作を示すデータがケーブル38、コネクタ40およびコネクタ42を介してジャイロセンサユニット100のマイコン102に与えられる。マイコン102は、このデータをコネクタ106、コネクタ42を介して通信部88に出力する。また、加速度センサ86も、加速度センサ84と同様のサンプリング周期を有しており、これにより検出された加速度を示すデータもまた、マイコン102によって通信部88に出力される。
なお、上述した通信部88への各出力は、たとえば1/200秒周期で実行される。したがって、任意の1/200秒間に、操作部46からの操作データと、撮像情報演算部50のからの位置座標データと、加速度センサ84からの加速度データと、ジャイロセンサ104からの角速度データと、操作部88からの操作データと、加速度センサ86からの加速度データとが、1回ずつ通信部88に出力される。
図16には、図11に示した全体構成のうちジャイロセンサユニット100の要部構成が示される。上述のコネクタ42、コネクタ106、コネクタ108およびコネクタ40は、それぞれたとえば6ピンのコネクタであり、この6ピンの中に、コネクタ間の接続状態を示す変数“Attach”を制御するためのAttachピンが含まれている。Attachは、コネクタ間が切断されていることを示す“Low”と、コネクタ間が接続されていることを示す“High”との間で変化する。以下では特に、コネクタ42・コネクタ106間つまり第1コントローラ34・ジャイロセンサユニット100間のAttachを“Attach1”と呼び、コネクタ108・コネクタ40間つまりジャイロセンサユニット100・第2コントローラ36間のAttachを“Attach2”と呼ぶ。
Attach1は、第1コントローラ34にジャイロセンサユニット100が装着されていても、アプリケーションがジャイロ非対応型であり、かつジャイロセンサユニット100に第2コントローラ36が接続されていない場合には、このジャイロ非対応アプリからジャイロセンサユニット100が見えなくなるように、ジャイロセンサユニット100のマイコン102によって“Low”に制御される(スタンバイモード:図14参照)。スタンバイモードでは、ジャイロセンサ104への電源供給は停止され、ジャイロ機能は停止状態となる。マイコン102は専ら、Attach2に基づくモード切り替えと、ジャイロ対応アプリからの指示に基づく電源管理とを行う。
上記6ピンのうち他の2つにはI2Cバスが割り当てられており、ジャイロセンサユニット100は、第1コントローラ34側のI2Cバスと第2コントローラ36側のI2Cバスとを互いに接続/分離するためのバススイッチSWをさらに含む。バススイッチSWは、第2コントローラ36がジャイロセンサユニット100を介して第1コントローラ34に接続された状態で、ジャイロ非対応アプリが実行されるときに、マイコン102によりオンされる。以降、第2コントローラ36からのデータは、マイコン102を経由することなく、I2Cバスを通じて通信部88に出力されるようになる(バイパスモード:図14参照)。したがって、マイコン102は、スタンバイモードと同様、モード切り替えと電源管理とを行えばよく、消費電力が抑制される。また、ジャイロセンサユニット100を装着したままでも、ジャイロ非対応アプリを実行できる。バススイッチSWがオフのときは、バスはマイコン102に接続され、第1コントローラ34に出力するデータは、マイコン102によって制御される。
バススイッチSWはまた、スタンバイモードでもオンされる。これによって、ジャイロ対応型のアプリケーションは、上述のようにAttach1が“Low”に制御されていても、I2Cバスの特別なアドレスを参照することで、第1コントローラ34にジャイロセンサユニット100が装着されているかどうかを確認できる。
なお、ジャイロセンサユニット100には、上述した“スタンバイ”および“バイパス”に加え、“ジャイロ”および“ジャイロ&第2コントローラ”の計4モードが準備されている。後の2つのモードでは、バススイッチSWはオフされる。
ジャイロセンサユニット100のマイコン102は、2種類のA/D変換回路102aおよび102bを含んでおり、ジャイロセンサ104から出力される3軸周りの角速度信号は、これらA/D変換回路102aおよび102bの各々に与えられる。A/D変換回路102aでは、ジャイロセンサ104の検出範囲の全部(たとえば±360度/秒)を対象とする高角速度モードのA/D変換処理が実行され、A/D変換回路102bでは、ジャイロセンサ104の検出範囲の一部(たとえば±90度/秒)を対象とする低角速度モードのA/D変換処理が実行される。マイコン102は、これら2種類のA/D変換結果のいずれか一方を角速度データとして出力する。
具体的には、A/D変換回路102aおよび102bからある時刻に対応する2種類の角速度データが出力されると、マイコン102は最初、このうち低角速度モードの角速度データについて、その値Aが第1閾値Th1から第2閾値Th2(>Th1)までの範囲内にあるかどうか、すなわち条件“Th1≦A≦Th2”が満足されるか否かを、軸毎に、つまりヨー、ロールおよびピッチの各々について判定する。次に、これら3つの判定結果に基づいて、低角速度モードおよび高角速度モードのいずれか1つを選択する。たとえば、3つの判定結果それぞれに関して、YESであれば低角速度モードを選択し、NOであれば高角速度モードを軸ごとに選択する。そして、軸ごとに選択されたモードに従う角速度データを、選択されたモードを示すモード情報と共にそれぞれ出力する。つまり、角速度に応じてデータの精度を変えることによって、同じデータ量であっても、低速のときにはより精度の高いデータを出力することができる。
図16には、ジャイロセンサユニット100が取り扱うデータのフォーマットが示される。図16(A)はジャイロセンサユニット100用データのフォーマットを示し、図16(B)は第2コントローラ36用データのフォーマットを示す。ジャイロセンサユニット100用のデータは、ヨー角速度データ、ロール角速度データおよびピッチ角速度データと、ヨー角速度モード情報、ロール角速度モード情報およびピッチ角速度モード情報と、第2コネクタ接続情報と、ジャイロ・第2コントローラ識別情報とを含む。
ただし、図17に示すように、y軸の回転がヨー角で表わされ、x軸の回転がピッチ角で表わされ、そして、z軸の回転がロール角で表わされるものとする。
ヨー角速度データ、ロール角速度データおよびピッチ角速度データは、ジャイロセンサ104から出力されるヨー角速度信号、ロール角速度信号およびピッチ角速度信号をA/D変換して得られる、たとえば各14ビットのデータである。ヨー角速度モード情報、ロール角速度モード情報およびピッチ角速度モード情報は、それぞれ対応する角速度データのモードを示す各1ビットの情報であり、高角速度モードに対応する“0”と、低角速度モードに対応する“1”との間で変化する。
第2コントローラ接続情報は、コネクタ106に第2コントローラ36が接続されているか否かを示す1ビットの情報であり、非接続を示す“0”と、接続を示す“1”との間で変化する。ジャイロ・第2コントローラ識別情報は、当該データがジャイロセンサユニット100から出力されたデータであるか第2コントローラ36から出力されたデータであるかを識別する1ビットの情報であり、ジャイロセンサユニット100からのデータであることを示す“1”と、第2コントローラ36からのデータであることを示す“0”との間で変化する。
一方、第2コントローラ36用のデータは、左右方向(X軸方向)のスティック操作および前後方向(Z軸方向)のスティック操作をそれぞれ示すXスティック操作データおよびYスティック操作データと、X軸方向の加速度、Y軸方向の加速度およびZ軸方向の加速度をそれぞれ示すX加速度データ、Y加速度データおよびZ加速度データと、ボタン操作データと、第2コネクタ接続情報と、ジャイロ・第2コントローラ識別情報とを含む。
ジャイロセンサユニット100は通信部88に、図16(a)のフォーマットに従うジャイロ用データと、図16(B)のフォーマットに従う第2コントローラ用データとを、それぞれたとえば1/200秒周期で交互に出力する。したがって、片方のフォーマットに関しては、1/100秒周期で出力されることになるが、これはゲームの処理等で一般的な処理期間である1/60秒周期よりも十分短いことから、データを交互に出力してもゲーム処理で両方のデータを1フレームで同時に利用することができる。
図11に示す通信部88は、マイクロコンピュータ(マイコン)90、メモリ92、無線モジュール94およびアンテナ96を含む。マイコン90は、処理の際にメモリ92を記憶領域(作業領域やバッファ領域)として用いながら、無線モジュール94を制御して、取得したデータをゲーム装置12に送信したりゲーム装置12からのデータを受信したりする。
ジャイロセンサユニット100から通信部88に出力されたデータは、マイコン90を経て一時的にメモリ92に格納される。第1コントローラ34内の操作部46、撮像情報演算部50および加速度センサ84から通信部88に出力されたデータもまた、メモリ92に一時的に格納される。マイコン90は、ゲーム装置12への送信タイミングが到来すると、メモリ92に格納されているデータをコントローラデータとして無線モジュール94へ出力する。コントローラデータには、図16(A)および図16(B)に示したジャイロ用データおよび/または第2コントローラ用データに加えて、第1コントローラ用データが含まれる。第1コントローラ用データには、加速度センサ84の出力に基づくX加速度データ、Y加速度データおよびZ加速度データと、撮像情報演算部50の出力に基づく位置座標データと、操作部または入力手段46の出力に基づくボタン操作データ(キーデータ)とが含まれる。
無線モジュール94は、Bluetoothのような近距離無線通信技術を用いて、所定周波数の搬送波をコントローラデータで変調し、その微弱電波信号をアンテナ96から放射する。つまり、コントローラデータは、無線モジュール94で微弱電波信号に変調されて第1コントローラ34から送信される。微弱電波信号はゲーム装置12側のBluetooth通信ユニット74で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置12はコントローラデータを取得することができる。ゲーム装置12のCPU60は、コントローラ14から取得したコントローラデータに基づいてゲーム処理を行う。なお、第1コントローラ34とゲーム装置12との無線通信は、無線LANなど他の規格に従って実行されてもよい。
このゲームシステム10では、ボタン操作だけでなく、コントローラ14自体を動かすことによっても、ゲームなどのアプリケーションに対する入力を行うことができる。ゲームをプレイする際には、たとえば図18に示すように、プレイヤは、その右手で第1コントローラ34(具体的にはハウジング44の把持部44a:図2)を持ち、その左手で第2コントローラ36を持つ。上述のように、第1コントローラ34には3軸方向の加速度を検出する加速度センサ84が内蔵され、第2コントローラ36にも同様の加速度センサ86が内蔵されている。第1コントローラ34および第2コントローラ36がそれぞれプレイヤによって動かされると、加速度センサ84および加速度センサ86によって、それぞれのコントローラ自身の動きを示す3軸方向の加速度値が検出される。第1コントローラ34にジャイロセンサユニット100が装着されている場合には、第1コントローラ34自身の動きを示す3軸周りの角速度値がさらに検出される。
これらの検出値は、先述したコントローラデータの態様でゲーム装置12に送信される。ゲーム装置12(図10)では、コントローラ14からのコントローラデータは、入出力プロセッサ62aによってアンテナ72aおよび無線コントローラモジュール72を介して受信され、受信されたコントローラデータは、内部メインメモリ62eまたは外部メインメモリ66のバッファ領域に書き込まれる。CPU44は、内部メインメモリ62eまたは外部メインメモリ66のバッファ領域に格納されたコントローラデータを読み出し、このコントローラデータから検出値つまりコントローラ14によって検出された加速度および/または角速度の値を復元する。
なお、角速度データには高角速度および低角速度の2つのモードがあるため、これら2つのモードにそれぞれ対応する2種類の角速度復元アルゴリズムが準備される。角速度データから角速度の値を復元するにあたっては、当該角速度データのモードに対応する角速度復元アルゴリズムが、角速度モード情報に基づいて選択される。
CPU60はまた、このような復元処理と並行して、復元された加速度からコントローラ14の速度を計算する処理を実行してもよい。さらに並行して、計算された速度からコントローラ14の移動距離ないし位置を求めることもできる。一方、復元された角速度からは、コントローラ14の回転角が求まる。なお、加速度を積算して速度を求めたり、角速度を積算して回転角を求めたりする際の初期値(積分定数)は、たとえば、撮像情報演算部50のからの位置座標データに基づいて計算できる。位置座標データはまた、積算によって蓄積されていく誤差の修正にも用いることができる。
ゲーム処理は、こうして求められた加速度、速度、移動距離、角速度および回転角などの変数に基づいて実行される。したがって、上記の処理は全てを行わなくともよく、ゲーム処理に必要な変数を適宜算出すればよい。なお、角速度や回転角も、原理的には加速度から計算し得るが、そのためには、ゲームプログラムに複雑なルーチンが必要で、CPU60にも重い処理負荷がかかる。ジャイロセンサユニット100を利用することで、プログラム開発が容易になり、CPU60の処理負荷も軽減される。
ところで、ゲームには、第1コントローラ34しか利用しない1コントローラ用ゲームと、第1コントローラ34および第2コントローラ36を利用する2コントローラ用ゲームとがあり、そして各ゲームは、ジャイロ対応およびジャイロ非対応のいずれかに分類される。メインコントローラである第1コントローラ34は、いずれのゲームをプレイする場合にも使用できる。また、拡張コントローラである第2コントローラ36は、2コントローラ用ゲームをプレイするときジャイロセンサユニット100を介して、または直に第1コントローラ34に接続され、1コントローラゲームをプレイするときには通常取り外される。
一方、拡張センサないし拡張コントローラであるジャイロセンサユニット100は、ジャイロ非対応ゲームをプレイする場合には不要であるが、わざわざ取り外さなくてもよい。このため、ジャイロセンサユニット100は通常、第1コントローラ34に装着したままにされ、第1コントローラ34と一体で取り扱われる。第2コントローラ36は、コネクタ40の接続先がコネクタ42からコネクタ108に変わる点を除けば、ジャイロセンサユニット100が介在しない場合と同様に着脱される。
図19には、ジャイロセンサユニット100のマイコン102による制御がモード毎に記載したテーブルが示される。ジャイロセンサユニット100に準備されているモードは、先述した“スタンバイ”、“バイパス”、“ジャイロ”および“ジャイロ&第2コントローラ”の4種類であり、マイコン102の制御対象は、“ジャイロ機能”、“ジャイロ電源”、“バススイッチ”、“拡張コネクタ”、“Attach1”および“I2Cアドレス”の6項目に及ぶ。
ジャイロ機能は、スタンバイおよびバイパスの各モードでは停止状態(No Active)に置かれる一方、ジャイロおよびジャイロ&第2コントローラの各モードでは起動状態(Active)に置かれる。ジャイロ電源つまりジャイロセンサ104への電源供給は、スタンバイおよびバイパスの各モードで停止(OFF)され、ジャイロおよびジャイロ&第2コントローラの各モードではていし停止(ON)される。バススイッチSWは、スタンバイおよびバイパスの各モードで接続(Connect)され、ジャイロおよびジャイロ&第2コントローラの各モードでは切断(Disconnect)される。
拡張コネクタつまりコネクタ108は、バイパスおよびジャイロ&第2コントローラの各モードで起動状態に置かれ、スタンバイおよびジャイロの各モードでは停止状態に置かれる。Attach1は、スタンバイモードで非接続状態を示す“Low”に制御され、バイパス、ジャイロおよびジャイロ&第2コントローラの各モードでは接続状態を示す“High”に制御される。I2Cアドレスに関しては、スタンバイおよびバイパスの各モードに限って、特別なアドレスが注目される。
モード間の切り換えは、図20に示す要領で行われる。図20(A)にはアプリケーションがジャイロ対応である場合の切り換え処理が、図20(B)にはアプリケーションがジャイロ非対応である場合の切り換え処理が、それぞれ示される。図20(A)および図20(B)に共通して、すなわちジャイロ対応アプリかジャイロ非対応アプリかによらず、ジャイロセンサユニット100は、ジャイロセンサユニット100自身が第1コントローラ34に接続されるのに応答して起動し、初期モードであるスタンバイモードに入る。ここで第2コントローラ36が接続されると、スタンバイモードからバイパスモードに移行し、その後に第2コントローラ36が取り外されると、バイパスモードからスタンバイモードに復帰する。
ここで、ジャイロ対応アプリは、必要に応じて角速度データを取得するべく、ジャイロセンサユニット100に対して呼び出しおよびリセットをかける。上述のように、本実施例では、通信によってゲーム機からコントローラを制御することが可能であるので、アプリケーションによってジャイロセンサユニット100を制御することが可能である。このため、図19(A)に示すように、ジャイロセンサユニット100は、スタンバイモードでアプリケーションから呼び出しを受けるとジャイロモードに移行し、ジャイロモードでアプリケーションからリセットを受けるとスタンバイモードに復帰する。ジャイロセンサユニット100はまた、ジャイロモードで第2コントローラ36が接続されるとジャイロ&第2コントローラモードに移行し、ジャイロ&第2コントローラモードで第2コントローラ36が取り外されるとジャイロモードに復帰する。ジャイロセンサユニット100はさらにまた、ジャイロ&第2コントローラモードでアプリケーションからリセットを受けるとバイパスモードに移行し、バイパスモードでアプリケーションから呼び出しを受けるとジャイロ&第2コントローラモードに復帰する。
一方、ジャイロ非対応アプリは、ジャイロセンサユニット100に対して呼び出しやリセットといった働きかけを行う機能がない。このため、ジャイロ非対応アプリを実行する際には、図20(B)に示すように、ジャイロセンサユニット100のモードは、スタンバイモードおよびバイパスモードの間で切り換わるに止まる。
ジャイロセンサユニット100のこのようなモード切り替えは、マイコン102が、図19に示したテーブルを参照して、実現するが、ここではこれ以上の詳細な説明は省略する。
このようなゲームシステム10を用いた仮想ゲームの一例を、図面を参照しながら説明することにする。まず、ゲームの概要について説明をする。図21は、第1の実施例としてのゲームをプレイヤがプレイする様子を示した図である。第1の実施例は、プレイヤが、第1コントローラ34と、第2コントローラ36とを動かすことによってゲーム内の水上バイクを操作するゲームである。図21に示すように、プレイヤは第1コントローラ34と第2コントローラ36とを向かい合わせ、2つを一体となったハンドルであるかのように持つ。そして、水上バイクのゲーム開始後は、2つのコントローラをなるべく一直線上にしたまま、実際の水上バイクのハンドルのように傾ける。実際の水上バイクと同様に、2つのコントローラをプレイヤから見てロール方向に傾ければ機体が傾くとともに進行方向を左右へ曲げることができる。たとえば図21に示すように、プレイヤが両コントローラを左に傾けた場合には、図22(a)に示すように、ゲーム空間内の水上バイク(および水上バイクと一体となったプレイヤオブジェクト)POは左に姿勢を傾けつつ左に曲がる。また、プレイヤが両コントローラをピッチ方向へ傾ければ、機体の姿勢を前後に傾けることができる。たとえば、プレイヤが、上を向く方向に両コントローラを傾ければ、図22(b)に示すように、ゲーム空間内において、水上バイクPOは機体の前部分を浮き上がらせるような姿勢をとる。ただし、図22(b)はゲーム空間内の水上バイクPOを横から示したもので、実際のゲーム画面は図22(a)のように水上バイクPOを後ろから見たものになる。
また、たとえばBボタン46hをアクセルボタンとして、Bボタン46hを押し続けている間は前進できるものとする。したがって、実際の水上バイクのハンドルに設けられたアクセルと同じような感覚でアクセル操作をすることができる。
ところで、水上バイクではなく通常のバイクのハンドルであれば、右手で握る側のハンドルをピッチ方向へひねることによって加速を行うが、本実施例のゲームにおいても、右手のひねりで加速をすることもできる。具体的には、第1コントローラ34がz軸を中心に回転された場合に、ゲーム内の水上バイクPOを加速させる。つまり、右手を本物のバイクのアクセルのようにひねることで加速することができる。本実施例においては、アクセル操作は、上述のBボタン46hの操作を基本とし、さらにひねりを加えることによって、一時的にボタン操作での上限の速度以上に加速できる。
すなわち、プレイヤは実際の水上バイクに近い直感的なハンドル操作とアクセル操作ができる。そしてさらに実際のバイクのアクセル操作に近い操作で水上バイクPOをさらに加速させることもできる。プレイヤは加速のために常にコントローラをひねり続けなくともボタンによって速度の制御ができ、特に加速したいタイミングでひねりを加えることで、通常走行以上の速度を出すことができるようになっているので、常にひねらせることに比べてプレイヤの負担を軽減している。したがって、水上バイクではなく通常のバイクのゲーム等の別実施例において、よりリアルな操作をさせることを優先させる場合には、第1コントローラ34の姿勢のみからアクセルの強さを決定するようにしてもよい。
さらに、本実施例においては、第1コントローラ34をプレイヤのヨー方向(第1コントローラのy軸回り、もしくは場合によりx軸回り)に回転させると、図22(c)に示すように水上バイクPOを横にスピンさせる演技を行うことができる。この操作に際しては、第1コントローラ34を手元で回転させてもよいし、プレイヤ自身が2つのコントローラを持ったまま横に一回転してもよい。
図23および図24において、上述のコントローラの姿勢に基づいた操作をより詳細に示す。図23において、M1およびM2は、それぞれ第1コントローラ34および第2コントローラ36の姿勢である。姿勢はたとえば、3次元の回転行列として表され、基準となる状態からどのような回転をした姿勢であるかを表す。基準となる状態は、たとえば第1コントローラ34と第2コントローラ36を向かい合わせて水平にした状態であって、図23(a)に示すような状態である。それぞれの加速度センサの各軸方向を、それぞれ第1コントローラ34に関するものをx1、x1、z1、第2コントローラ36に関するものをx2、y2、z2として示すが、図23(a)の基準状態において、第1コントローラ34と第2コントローラ36の軸方向が一致せずに向かい合うことになる。回転の算出は、加速度センサの座標系ではなくて、空間内に定められた座標系(図23(a)に示すxyz)で表される回転として算出される。本実施例における座標系の設定の例として、座標系のx方向をプレイヤから見て右方向、つまり基準状態のz2方向とし、y方向をプレイヤの上方向、つまり基準状態でのy1およびy2方向、z方向をプレイヤから見て正面方向、つまり基準状態でのx1方向になるように定める。
姿勢M1およびM2は、加速度に基づいて決定される。すなわち、第1コントローラ34および第2コントローラ36からそれぞれ得られる加速度が重力加速度g1およびg2であるとみなして、重力方向は鉛直下方向であるという前提から、コントローラの姿勢M1とM2を算出する。すなわち、加速度データg1およびg2がそれぞれの加速度センサの座標系における3次元のベクトルとして得られ、それらを空間座標系において鉛直下方向、y軸負方向に向ければ、相対的にセンサの各軸が空間座標系で向いている方向が定められ、その姿勢が基準状態からどのような回転をしたものであるかを算出することで姿勢M1、M2も算出される。たとえば、図23(b)に示すように、第1コントローラ34に加えられる加速度がg1’に変化した場合に、g1’のベクトル方向を空間座標系でのy軸負方向へ向けた場合のx1、y1、z1の向きがx1’、y1’、z1’であるので、回転M1’を算出することができる。姿勢M1およびM2が算出された後、M1とM2を平均した姿勢Mmを算出する。平均の姿勢Mmが、ゲームでの水上バイクPOの制御に用いられる。平均の姿勢Mmを制御に用いることで、誤入力等の影響を軽減できるだけでなく、片方のコントローラに並行して他の操作を行っても自然な入力になる。さらに、バイクのハンドルでは、左右のハンドルが一直線上でなく、ハの字状のように所定の角度をなしていたり、並行に近かったりするものもあるが、そのようなハンドルのような向きにプレイヤが2つのコントローラを把持したとしても、平均の姿勢は一直線上にハンドルを把持した場合と同じ姿勢になるので、プレイヤの持ち方のばらつきによる影響を軽減することができる。
図23において、3次元の回転とともに便宜上定めた特定のベクトルの向きがどのように変化するかを示し、各コントローラの回転と平均の回転がどのように変化するか説明する。ここでは第1コントローラ34および第2コントローラ36の姿勢に対して、上述の基準状態においてコントローラの上方向を向く2つのベクトル(ここではそれぞれy1、y2方向)の平均のベクトルをベクトルaveとし、aveを参照して平均の姿勢Mmの説明をする。基準状態である図23(a)においては、平均ベクトルaveは上向き、つまりy軸正方向である。そして、それぞれのコントローラの姿勢の変化により、それぞれのコントローラの上向きベクトルが図23(b)のy1’、y2’となったとき、平均ベクトルは図23(b)のave’となる。図23(b)においては、第1コントローラ34と第2コントローラ36の傾き方が異なっているが、平均ベクトルave’の傾きはそれらの平均となる。そして、この平均ベクトルの姿勢に対応するように水上バイクPOの姿勢も決定されることになる。実際にはベクトルを算出しなくともよく、aveがave’となるような回転Mm’自体を算出すればよい。水上バイクPOの姿勢は、基準状態での姿勢に回転Mm’を加えたものとなり、図23(c)に示すように、右に傾くことになる。水上バイクPOの姿勢は、単に基準状態での姿勢を回転させるのではなく、Mmの値に対応して予め姿勢が定められていてもよい。そのようにすれば、傾きに応じて水上バイクPO上でのプレイヤオブジェクトのポーズ等を詳細に設定することができる。
次に、図24を参照して、第1コントローラ34の角速度に基づいた操作を説明する。まず、第1コントローラ34にひねりを加えることによる水上バイクPOの加速操作について説明する。図24(a)および(b)は、図23と同様にそれぞれ基準状態と操作後におけるコントローラの状態と、平均の回転を示したものであるが、ここではプレイヤの横方向、つまり図23で空間に定義されたx方向に沿って見た図である。図24(a)は、図23(a)同様、基準状態を示す。そして、第1コントローラ34を手前にひねる操作が加えられた状態を図24(b)に示す。つまり、第1コントローラ34をバイクのアクセルに見立てて、水上バイクPOを加速させる操作が行われた状態である。このとき、ジャイロセンサ104によって第1コントローラ34のz軸回り(本実施例では第1コントローラ34を横向きに持っているのでピッチ方向の回転となる)に角速度Rzが検出される。コントローラの姿勢は、第1コントローラ34が大きく傾いた状態となるが、第2コントローラ36は傾いていないので、平均の回転Mm’は少ししか傾かない回転となる。すなわち、水上バイクPOの姿勢を傾ける目的で第1コントローラ34と第2コントローラ36の両方を傾けた場合は傾けた分だけ水上バイクPOが傾くが、加速目的で第1コントローラ34のみをひねった場合は、水上バイクPOの傾きは限定的なものとなり、不自然に傾いてしまうことが抑制される。水上バイクPOは図24(c)に示されるように少しだけ浮き上がるように傾き、それと共に角速度Rzの入力に基づいてゲーム空間内で加速される。すなわち、加速と共に浮き上がるので、水上バイクの挙動としても違和感が無いものとなる。このように、第1コントローラ34の回転を加速操作に用いても、姿勢の反映が軽減され、かつ、加速と共に浮き上がらせるので、コントローラの姿勢によるオブジェクトの姿勢制御と、コントローラの回転によるオブジェクトの加速とを同時に、かつ違和感無く実現することができる。
また、第1コントローラ34のz軸回りの角速度Rzとは別に、プレイヤから見たヨー方向、つまり第1コントローラ34のy軸回りの角速度が検出された場合についてさらに説明する。前述のように、第1コントローラ34にヨー方向の回転を加えると、水上バイクPOに空中で横スピンする等の演技をさせることができる。つまり、第1コントローラ34のy軸回りに角速度Ryが検出された場合には、図24(d)に示すように水上バイクPOを横回転させる。加速度による姿勢算出には、ヨー方向の回転は影響しないので、プレイヤは姿勢制御とは独立してこの演技の入力を行うことができる。なお、横スピン指示のための入力は、y軸回りの角速度に限らず、x軸回りの角速度に基づいてもよい。すなわち、当該横スピンの入力は、プレイヤから見たヨー方向の回転であればよく、第1コントローラ34が傾いているときにはそのような回転は第1コントローラのx軸回りの回転となるためである。第1コントローラ34のy軸回りの角速度と、x軸回りの角速度については、第1コントローラ34の姿勢に応じていずれか一方を条件とするようにしてもよいし、常に両方を条件とするようにしてもよい。
次に、本実施例のプログラム処理の流れについて、図25−図27を参照して詳細に説明する。図25は、本実施例のプログラムの実行に用いられるデータのメモリマップである。これらのデータはゲーム装置12の内部メインメモリ62eや外部メインメモリ66に記憶される。また、内部メインメモリ62eや外部メインメモリ66には、プログラムも記憶されるが、図示を省略している。
操作データ201は、コントローラ14から送信されてくる操作データである。これらの中には、加速度センサ84の出力に基づいた第1コントローラ34の3軸加速度を示す第1加速度データ201a、加速度センサ86の出力に基づいた第2コントローラ36の3軸加速度を示す第2加速度データ201b、ジャイロセンサ104の出力に基づいた第1コントローラ34の3軸の角速度を示す角速度データ201cや、それぞれのボタン操作に基づいたボタンデータ201d等が含まれる。
制御データ202は、操作データ201に基づいて算出される、ゲームの制御のためのデータである。制御データ202には、第1姿勢データ202a、第2姿勢データ202b、平均姿勢データ202c等が含まれる。第1姿勢データ202aは、第1加速度データ201aに基づいて算出される第1コントローラ34の姿勢であって、図23や図24のM1にあたる。第2姿勢データ202bは、第2加速度データ201bに基づいて算出される第2コントローラ36の姿勢であって、図23や図24のM2にあたる。平均姿勢データ202cは、第1姿勢データ202a、第2姿勢データ202bの平均の姿勢であって、図23や図24のMmにあたる。これらの姿勢データは、本実施例においては3次元の回転行列で表されるが、姿勢が特定できれば他の形式のデータで表されてもよい。
オブジェクトデータ203は、ゲーム内のオブジェクトのデータであって、プレイヤオブジェクト(本実施例においては水上バイクPO)のゲーム空間内での姿勢を示すオブジェクト姿勢データ203a、プレイヤオブジェクトのゲーム空間内での速さや進行方向を示すオブジェクト速度データ203b、プレイヤオブジェクトの状態、たとえばスピン中であるか否か等の状態を示すオブジェクト状態データ203cが少なくとも含まれる。なお、オブジェクトデータには、それ以外にも、オブジェクトの形状を示すモデルデータや、テクスチャ画像のデータ等も含まれるし、プレイヤオブジェクト以外に関するデータも含まれるが、ここでは図示を省略する。また、これら以外にも、ゲームに必要な音楽や画像のデータ等が適宜記憶されるが、ここでは省略している。
図26および図27は、本実施例の水上バイクのゲームプログラムの処理の流れを説明するフローチャートである。このゲームプログラムは、ゲーム装置12のCPU60等において実行される。
まず、ステップS101において、ゲームの開始処理が行われ、所定の初期化処理が行われる。
次に、ステップS102では、コントローラ14から送信されて随時メモリに記憶される操作データ201を読み出して操作データの取得を行う。
次に、ステップS103において、取得された操作データ201の中の、第1加速度データ201aおよび第2加速度データ201bに基づいて、第1コントローラ34および第2コントローラ36の姿勢をそれぞれ算出する。これらの姿勢は前述の手法によって3次元の回転行列として算出され、第1姿勢データ202aおよび第2姿勢データ202bとして記憶される。
次に、ステップS104では、第1姿勢データ202aと第2姿勢データ202bとの平均となる回転行列を算出し、平均姿勢データ202cとして記憶する。
次に、ステップS105において、水上バイクPOがスピン中であるか否かが判定される。判定にはオブジェクト状態データ203cが参照され、スピン中である場合にはステップS107へ、否定の場合には、ステップS106へと進む。つまり、前述の横スピンの演技には数フレーム分の期間のアニメーションが行われるが、その間は水上バイクPOは決まった動きをするので姿勢や速度の制御をしないことになる。
ステップS107では、スピン演技を続行するための処理が行われる。具体的には、スピンの動きを再生するために水上バイクPOの姿勢や位置を設定し、オブジェクト姿勢データ203aやオブジェクト速度データ203bを更新する。ここで、スピン動作の最終フレームとなった場合には、オブジェクト状態データ203cが、スピン中でないことを示すデータに書き換えられる。
ステップS105において否定の場合は走行のための処理が行われるので、まず、ステップS106において、平均姿勢データ202cから、水上バイクPOの姿勢を決定する。すなわち、平均姿勢データ202cの示す回転の分だけ基準状態から水上バイクを回転させ、回転の結果をオブジェクト姿勢データ203aとして記憶する。もしくは予め平均姿勢データ202cの値に関連付けられた姿勢を読み出してオブジェクト姿勢データ203aに設定する。
次に、ステップS108において、水上バイクPOの姿勢に対応させて水上バイクPOの移動方向を決定する。つまり、姿勢が進行方向に対して左右に傾いているときには、傾きの度合いに応じてさらに傾いた方向に曲がるように、オブジェクト速度データ203bを更新する。オブジェクト速度データ203bには、水上バイクPOの移動方向と移動速度(1フレーム分の移動量)が設定される。移動方向と移動速度をたとえば3次元ベクトルで表す場合には、ステップS108においては設定された方向を示す単位ベクトルが記憶され、後述の処理においてベクトルの長さ、つまり速度が決定される。
次に、ステップ109において、角速度データ201cを参照して、第1コントローラ34がプレイヤから見たヨー方向に所定の回転をしたかが判定される。具体的には、y軸回りおよび/またはx軸回りの角速度の値が所定の閾値以上であるかどうかが判定される。
ステップS109で肯定の場合には、横スピンの演技が指示されたので、ステップS110において、スピンを開始する処理が行われる。具体的には、オブジェクト状態データ203cをスピン中を示すデータに更新し、横スピンの1フレーム目の動きを示すように水上バイクPOの姿勢や位置を設定する。
ステップS109で否定の場合には、横スピンは行われないので、次に、ステップS111において、角速度データ201cを参照して、第1コントローラ34のx軸回りに閾値以上の角速度があったか否かが判定される。これは、プレイヤによって第1コントローラ34がひねられ、加速の指示が行われたかを判定するものである。
ステップS111で判定が肯定の場合には、ステップS112において、水上バイクPOの速度が所定量増加するように加速され、オブジェクト速度データのベクトルの長さが更新され、ステップS201に進む。ステップS111で判定が否定の場合には、ステップS112を経ずにステップS201へ進む。
ステップS201では、ボタンデータ201dに基づいて、アクセルボタンが押されているか否かが判定される。アクセルボタンは例えばBボタン46h等であって、当該ボタンが押されていれば肯定、押されていなければ否定となる。
ステップS201で肯定の場合、ステップS202において、水上バイクPOの速度を所定量増加させ、ステップS111へと進む。ステップS109で否定の場合は、そのままステップS111へと進む。ここで、ステップS112とステップS202における水上バイクPOの加速に関して、ステップS112における加速の方が増加する速度が大きくなるよう設定すれば、第1コントローラ34のひねりによるアクセルを特に加速したいときにのみ利用できるダッシュ指示として用いることができる。
ステップS203では、オブジェクト速度データ203cのベクトルの長さを所定割合で減少させることによって、水上バイクPOの速度を、現在の速度から所定の割合だけ減少させる処理を行う。この速度の減少は、現実における水や空気の抵抗を表すもので、速度が高いほど減少する速度も大きくなる。このことによって、アクセルボタンを押し続けた場合には、ある程度速度が高くなった時点で加速量と減速量が釣り合って、一定の速度を維持するようになる。また、アクセルボタンを押し続けている状態で、第1コントローラ34をひねることによってさらに加速した場合も、一時的に加速したのちに次第に一定の速度まで下がってくることになる。加速のための操作が行われなければ、水上バイクPOは自然に減速していって停止することになる。
上記のステップS111からステップS203までの処理によって、水上バイクPOの移動方向と移動速度(単位時間あたりの移動量)とが算出されるので、これを3次元のベクトルとしてオブジェクト速度データ203bに記憶する。
次に、ステップS204において、オブジェクト姿勢データ203aによって示される姿勢およびオブジェクト速度データ203bによって移動された位置に、ゲーム空間内において水上バイクPOを配置する。
次に、ステップS205において、水上バイクPOが常に画面に表示されるように、仮想カメラを水上バイクPOに追従させて移動させる。
この他、水上バイクPO以外のオブジェクトに関してもゲームのために適宜位置や姿勢の更新が行われ、ステップS206において表示処理が行われる。ステップS206では、仮想カメラ位置とポリゴンモデルの配置に基づいて2次元の画面を生成し、画面へ表示させる処理が行われるが、この処理はCPU60に替えてGPU62bが実行するようにするのが好ましい。
ステップS207においては、ゲームをミスしたりクリアされたりするなど所定の条件に基づいて、ゲームを終了するか否かを判定する。終了する場合はゲーム処理を終了する。終了しない場合はステップS102に戻る。したがって、本実施例のゲーム処理は、ゲーム画面を表示するための1フレーム期間ごとに実行される。
上述のゲーム処理によって、第1コントローラ34と第2コントローラ36を動かすことによってゲーム空間内の水上バイクPOを移動させるゲームを実行することができる。コントローラの姿勢によって水上バイクPOの姿勢と進行方向を制御し、かつジャイロセンサからの角速度に基づいて水上バイクPOの加速や横スピンを行うことができるので、実際に水上バイクを操作しているような直感的な操作ができる。また、それぞれのコントローラの平均となる姿勢に基づいて姿勢と進行方向を制御するので、急激な入力によって水上バイクPOが不自然な挙動をすることを抑制でき、姿勢による方向制御とひねりによる加速制御を両立させることができる。
本実施例は水上バイクのゲームであって、ゲーム空間内に波を発生させることができるので、水上バイクPOが乗り越える波の大きさによって水上バイクPOをジャンプさせるようにしてもよい。そして、水上バイクのピッチ方向の姿勢制御や、横スピンの演技等に関して、ジャンプ中の期間のみ受け付けるようにしてもよい。
本実施例は、水上バイクのゲームの例であるが、同じような操作の仕方で、通常のバイクの操作を行うゲームにも適用可能であることは言うまでもない。また、それ以外にも様々なオブジェクトを操作するゲームに適用可能である。以下、本願発明の他の実施例について説明する。なお、説明において、図25に示した第1の実施例のメモリマップのうち、制御データ202やオブジェクトデータ203はゲームによって異なるが、操作データ201は共通のものとなるので、以降の説明において操作データ201を適宜参照する。
図28は、本願発明の第2の実施例である。図28(a)は、プレイヤオブジェクトPOが剣を持って戦うアクションゲームの例である。本実施例のゲームにおいては、第1コントローラ34を動かすことで剣オブジェクトPORを、第2コントローラ36を動かすことで盾オブジェクトPOLを操作する。
まず、盾の制御に関して説明する。第2加速度データ201bに基づいて、たとえば、加速度が第2コントローラ36のz軸負方向に検出されるとき、すなわち、プレイヤが第2コントローラ36を立てて持っている場合にはプレイヤオブジェクトPOが盾を構え、それ以外の軸方向に検出されるとき、つまりプレイヤが第2コントローラ36を立てていないときには、盾を構えない。
次に、剣の制御に関して説明する。第1加速度データ201aを参照して、所定の大きさ以上の加速度が検出された場合に、プレイヤオブジェクトPOが剣を振る。また、加速度が検出された方向に応じて、第1コントローラ34が振られた方向を特定し、対応する方向へプレイヤオブジェクトPOが剣で敵に斬りつける動作を行う。たとえば、第1コントローラ34のy軸方向の加速度が検出されたら縦斬り、x軸方向の加速度が検出されたら横斬りを行う。また、検出された加速度の大きさによって、斬る強さを変えてもよい。
ここでさらに、プレイヤが第1コントローラ34を回転させた場合にもプレイヤオブジェクトPOに別の動作をさせることが可能である。たとえばプレイヤが第1コントローラ34をヨー方向に回転させた場合、もしくはプレイヤ自身が第1コントローラ34を持ったままその場で回転した場合等には、角速度データ201cにおいて、第1コントローラ34のy軸回りの角速度が検出される。この角速度の大きさが所定の閾値以上であった場合には、プレイヤキャラクタが回転斬りを行う。回転斬りは、プレイヤオブジェクトPOが横に回転しながら斬りつけることによって周辺にいる敵を一掃する強力な攻撃である。したがって、回転入力に応じてキャラクタが回転する動作が行われ、直感的な入力が実現できる。加速度の解析だけからでは、横方向の振りとヨー方向の回転との判別が困難であるが、本実施例においては、角速度データ201cに基づいて回転を判定するので、加速度による制御を行うことと回転による操作とを両方入力可能なゲームが実現できる。また、角速度データ201cによれば、回転斬りのような一連のアクションの指示だけでなく、第1コントローラ34の向いている方向(たとえばヨー方向に関して)がわかるので、角速度データ201cに基づいて、キャラクタの向きや斬りつける方向を決定できるようにすれば、より直感的なアクションゲームを行うことができる。つまり、2つのコントローラの加速度によってそれぞれ2つの対象を操作しながら、角速度によってさらにいずれかのコントローラの回転の入力を受け付ける操作である。
この実施例においてさらに、第1コントローラ34と第2コントローラ36を上に向けた場合に、剣と盾を収めてプレイヤオブジェクトPOが頭上にアイテムオブジェクトPOLR(たとえば爆弾)を掲げるようにしてもよい。コントローラを上に向けたことの判定としては、重力加速度がそれぞれのコントローラのz軸負方向に検出されたことを条件とすればよい。なお、盾や剣の操作との間での誤検出を防止するために、z軸負方向の重力加速度の検出という条件を所定期間満たすことに応じてアイテムを掲げるようにしてもよい。そして、アイテムを掲げた後に、2つのコントローラが振り下ろされた場合に、プレイヤオブジェクトPOがアイテムを投げる。たとえば爆弾を投げる等してプレイヤオブジェクトPOが地中の敵に攻撃をしたりする。振り下ろしの判定は加速度によって行うことができる。そして、アイテムを掲げた後に投げるまでの間、コントローラをヨー方向に動かすことによって、プレイヤオブジェクトPOがアイテムを投げる方向を制御することができる。この方向の制御は角速度によって行われる。具体的には、アイテムを掲げた状態で、角速度データ201cに、第1コントローラ34のz軸周りの角速度が検出された場合に、当該角速度に応じてプレイヤオブジェクトPOを回転させる。ヨー方向の回転に関しては、加速度から特定することは困難であるが、本実施例では角速度に基づいてヨー方向の回転を検出し、アイテムを投げる方向を制御できるので、実際にアイテムを投げるような直感的な操作で、しかも投げる方向の細かい制御が可能となる。つまり、この操作においては、2つのコントローラの加速度の両方を1種類の動作の制御に利用するものであって、いずれかのコントローラに設けられたジャイロセンサの角速度によって、2つのコントローラ全体の向きを特定し、向きに応じたゲーム処理を行うものである。したがって、ジャイロセンサは、第2コントローラ36に設けられてもよいし、両方に設けられてもよい。
剣を使ったアクションゲームの別の例としては、盾を用いないようにしてもよい。たとえば、盾に替えて、第2加速度データ201bを回避に用いてもよい。つまり、第2コントローラ36が振られた場合にはプレイヤオブジェクトに回避動作を行わせる。この回避は無敵時間を伴う緊急回避であってもよい。盾を用いないので、第1コントローラ34で操作する武器として両手持ちの物が表現されていてもよい。たとえば、両手持ちのハンマーで縦振り、横振り、回転攻撃を行って、第2コントローラ36の振りで緊急回避をするようなゲームも可能である。また、このようにすれば、例えば第2コントローラ36をプレイヤの胸ポケットに入れる等して、体の動きによって回避を行いながら剣を振るチャンバラゲームも実現できる。逆に、第1コントローラ34を胸ポケットに入れ、角速度による精密な回避動作を行わせ、第2コントローラ36の振りによって斬り動作を行わせてもよい。
図29は、本願の第3の実施例を示すものである。第3の実施例は、第1コントローラ34と第2コントローラ36とを動かすことによって、ゲーム空間内のナイフとフォークを操作し、肉を切って食べるゲームの例である。プレイヤは、第1コントローラ34と第2コントローラ36を持ち、左右に向きを変えることで肉を切る位置を決定し、コントローラを前後に動かすことでフォークオブジェクトPOLを肉に刺す動作や、ナイフオブジェクトPORで肉を切る動作が行われ、成功すると肉を食べることができる。
具体的には、ゲーム内でナイフPORとフォークPOLを構えたあと、角速度データ201cに基づいて、ヨー方向、ここではy軸周りの角速度を検出し、当該角速度に応じてナイフPOR、もしくはナイフPORとフォークPOLの両方をゲーム空間内で左右に動かす。その制御と共に、第2角速度データ201bを参照して、第2コントローラ36を前後に動かす動作があったか判定する。具体的には、z軸方向の加速度に変動があったかを判定する。加速度の変動が検出された場合には、その時点でのゲーム内のフォークPOLの位置に基づいてフォークPOLを肉に刺す動作が行われる。フォークを刺した後に、第1角速度データ201aを参照して、第1コントローラ36を前後に動かす動作があったか判定する。具体的には、z軸方向の加速度に変動があったかを判定する。加速度の変動が検出された場合には、その時点でのゲーム内のナイフPORの位置に基づいて肉を切る動作が行われる。
本実施例において、角速度による左右の位置の調整は、ナイフPORのみ行うようにしてもよいし、ナイフPORとフォークPOLが連動するようにしてもよい。また、第1コントローラ34と第2コントローラ36とを持つ手を反対にする前提で、フォークPOLを第1コントローラで操作し、フォークPOLの左右の位置を制御するようにしてもよい。また、ヨー方向の回転のほかにも、ピッチ、ロールの回転に基づいて、ナイフPORやフォークPOLにさまざまな姿勢をとらせることが可能である。さらに、ナイフとフォークでの食事のゲームだけでなく、包丁と食材を押さえる手を制御することで料理を行うゲームにも適用可能である。
また、料理ゲーム以外にも、同様の操作でたとえば散髪ゲーム等も実現できる。つまり、第2コントローラ36の動きで櫛を操作し、第1コントローラ34の動きで鋏を操作することができる。櫛の制御は加速度から姿勢を算出して、櫛を立てる、寝かせるとうの操作を行うことができ、鋏の操作には、角速度を用いて位置を決めることができる。髪を切る指示は、たとえばAボタン46dとBボタン46hを同時に押すことに応じて切るようにすれば、実際に鋏を使う動作に近く、直感的な操作が実現可能である。
図30は、第4の実施例を説明するための図である。第4の実施例は、音楽ゲームである。図30の実施例においては、ドラムの演奏を行うゲームにおいて、第1コントローラ34で右ドラムスティックオブジェクトPOR、第2コントローラで左ドラムスティックオブジェクトPOLを操作する。すなわち、各コントローラに加速度が加えられたタイミングで、ゲーム内のドラムスティックでドラムを叩く動作が行われる。具体的には、第1加速度データ201aおよび第2加速度データ201bを参照し、3次元の加速度ベクトルの大きさを算出し、大きさが所定の閾値以上となった場合には、コントローラが振られたと判定する。そして、第1加速度データ201aの大きさが閾値以上の場合には、右ドラムスティックオブジェクトPOR、第2加速度データ201bの大きさが閾値以上の場合には、左ドラムスティックオブジェクトPOLによって、ドラムを叩く動作が行われる。ドラムを叩く操作は、1振りにつき1回叩かれることになる。
ドラムを叩くという操作は加速度データに基づいて行われるが、どのドラムを叩くかの制御は、角速度データに基づいて行われる。すなわち、角速度データ201cを参照して、プレイヤのヨー方向(ここではたとえばコントローラのy軸回り)の回転を検出し、当該回転に応じてゲーム内の右ドラムスティックオブジェクトPORと左ドラムスティックオブジェクトPOLの位置を変更し、別のドラムの上にスティックが掲げられる。前記のドラムを叩く入力が行われた場合には、その時点でスティックを掲げている位置の近くに置いてあるドラムが叩かれることになる。つまり、プレイヤは、実際にドラムを叩くかのような操作によってゲーム内のドラムを叩くことができる。同時に、実際に叩くドラムを選択するために向きを変えているかのような動作によって、ゲーム内で叩くドラムの選択を行うことができる。
この実施例は、それぞれのコントローラの加速度によってそれぞれ2つのオブジェクトの動作を制御すると共に、2つのオブジェクト全体の向きもしくは位置を角速度によって制御するゲームである。ここで、角速度によるドラム選択は、例えば右スティックPORだけで行うようにして、左スティックPOLで叩く対象は固定されているようにしてもよい。また、第2コントローラ36にもジャイロを搭載するようにして、それぞれのコントローラでそれぞれ独立にドラムの選択とドラムを叩く操作を行うようにしてもよい。
また、角速度と2種類の加速度に基づいた演奏は、ドラム以外の音楽ゲームにも適用可能である。たとえば、図示しないバイオリン演奏ゲーム等に適用することもできる。具体的には、第1コントローラ34の加速度でバイオリン、第2コントローラ36の加速度で弓を操作するようにして弾く入力を行い、それと共に第1コントローラ36の角速度によってバイオリンの姿勢を変える演出を行うようにすることが可能である。また、指揮者を演じるゲームにも適用可能である。つまり、2つの加速度によって指揮棒や指揮者の手の振りの動作を制御して、角速度によって指揮者の向きの制御、つまりどの奏者に向かって指揮をするかを制御することができる。
図31は、第5の実施例であるスポーツゲームの例を示す図である。図31(a)は水泳、図31(b)は柔道、図31(c)はボクシングゲームである。
図31(a)の水泳ゲームでは、第1加速度データ201aに基づいてプレイヤオブジェクトの右腕POR、第2加速度データ201bに基づいて左腕POLの動作を制御する。具体的には、所定の大きさ以上の加速度が検出されたときにプレイヤオブジェクトPOが腕を回し、水中で前進する。そして、角速度データ201cに基づいて、泳ぐ進行方向を制御する。たとえば、プレイやのヨー方向やロール方向(ゲームのカメラアングル等に応じて適切な方を選択すればよい)の回転に応じて、プレイヤオブジェクトPOの泳ぐ方向が曲がる。さらにピッチ方向の回転に応じて、水中に潜る方向、浮き上がる方向(さらに息継ぎアクションをともなってもよい)への移動方向の制御をしてもよい。したがって、図31(a)の実施例では、角速度のよってオブジェクトの進行方向を、加速度によって進行速度を制御していることになる。
図31(b)の柔道ゲームでは、相手キャラクタが表示され、プレイヤオブジェクトはその手だけが表示される。そして、第1加速度データ201aに基づいて右手オブジェクトPORを、第2加速度データ201bに基づいて左手オブジェクトPOLの動作が制御される。具体的には、傾きによって位置を制御したり、押す(そして掴む)動作を行ったりできる。そして、角速度データ201cに基づいて、右手オブジェクトPORにひねりを加えることができる。つまり、押しながらひねる等の動作が可能であるので、相手を投げることができる。この操作方法は、押しやひねりによって相手を投げるゲームのためのものであるので、柔道に限らず、たとえば相撲ゲームにも適用可能である。この実施例では、加速度によって2つのオブジェクトの制御を行う際に、角速度によって一方のオブジェクトの動作にひねりを加えることができる。
このようなゲームの別の例として、図31(c)のボクシングゲームを行うことも可能である。この実施例では、加速度に基づいて、プレイヤオブジェクトPOが、第1コントローラ34が振られたときに右手オブジェクトPOR、第2コントローラ36が振られたときに左手オブジェクト36POLによるパンチを繰り出すことができる。そして、パンチを繰り出していないときには、第1実施例と同様に、2つのコントローラの姿勢の平均の姿勢によってプレイヤオブジェクトPOの姿勢を制御することができ、相手のパンチを回避したり、防御をしたりすることができる。パンチを繰り出す際には、角速度データ201cを参照して、振りながらコントローラに回転が加えられたか判定する。回転が加えられていれば、パンチを回転に応じた種類のパンチにすることができる。つまり、ピッチ回転に応じて手首をひねりながらアッパーを出したり、ヨー回転に応じて肘を回転させながらフックを出したりする動作をゲーム内に反映することができる。ジャイロが第2コントローラ36にも備えられていれば、左手POLのパンチにおいてもひねりを加えたパンチができる。
また、図示しない別の実施例として、野球のキャッチボール等を再現するゲームにも適用可能である。具体的には、第2コントローラ36の姿勢を第2加速度データ201bから特定してグローブの位置を制御し、第1コントローラ34への振りによって球を投げるようにできる。そして、第1コントローラ34の振りによって球を投げる際に、角速度データ201cを参照して回転の検出を行い、投球にひねりを加えて変化球を投げさせることができる。
また、本願発明は、図示しない乗馬ゲームに適用することも可能である。つまり、騎手オブジェクトがプレイヤオブジェクトであって、第2加速度データ201bによって第2コントローラ36の振りを検出し、鞭を振るう動作を行わせて馬の速度を制御し、第1加速度データ201aによって手綱を振ったり、角速度データによって手綱を引っ張る等して馬の進行方向を制御することができる。
本願発明は、第1加速度データ、第2加速度データ、角速度データに基づいてゲーム処理を行うものである。加速度の利用方法に関しては、2つの加速度によって1つの対象を制御するものと、2つの加速度で2つの対象をそれぞれ制御するものがある。そして、さらに角速度による制御を行うようにしたことによって、コントローラの向きを特定して制御対象全体の向きや位置等を制御することができるゲームが実現可能である。また、制御対象に特別な動作を行わせるための条件として、角速度を用いて加速度では検出しにくい動きを利用できるゲームも実現可能である。また、加速度による制御の対象の動作にさらに回転の影響を与えるゲームも実現可能である。このように、第1加速度データ、第2加速度データ、角速度データに基づいてゲーム処理を行うことによって、上記の例に限られずゲームの目的に応じて様々な利用方法を効果的に適用することができる。
また、本実施例においては、ジャイロユニット100が第1コントローラ34のみに装着されたが、第2コントローラ36にもジャイロが備えられるようにしてもよい。ジャイロセンサを2つ用いるようにすれば、さらに複雑な操作が可能となる。また、ジャイロセンサ104は、第1コントローラ34や第2コントローラ36に内蔵される構成であってもよい。
図1はこの発明の一実施例の構成を示すブロック図である。 図2は図1実施例に適用される第1コントローラ(リモコン)の外観を示す図解図であり、図2(A)は第1コントローラを上面後方から見た斜視図であり、図2(B)は第1コントローラを下面前方から見た斜視図である。 図3は図1実施例に適用される第2コントローラ(ヌンチャク)の本体の外観を示す図解図であり、図3(A)は第2コントローラ本体を上面後方から見た斜視図であり、図3(B)は第1コントローラ本体を下面前方から見た斜視図である。 図4は第2コントローラのコネクタの外観を示す図解図である。 図5は第1コントローラに第2コントローラのコネクタを接続した状態で、第1コントローラに装着されたストラップのひもをコネクタのフックに掛け止めた様子を示す図解図である。 図6は図1実施例に適用されるジャイロセンサユニットの外観を示す図解図であり、図6(A)はジャイロセンサユニットを上面前方から見た斜視図であり、図6(B)はジャイロセンサユニットを下面後方から見た斜視図である。 図7はジャイロセンサユニットの構成を示す図解図である。 図8は第1コントローラにジャイロセンサユニットを接続した状態を示す図解図である。 図9は第1コントローラにジャイロセンサユニット介して第2コントローラを接続した状態を示す図解図である。 図10は図1実施例の電気的な構成を示すブロック図である。 図11は図1実施例に適用されるコントローラ全体の電気的な構成を示すブロック図である。 図12は図1に示すジャイロユニットが接続されたコントローラを用いてゲームプレイするときの状態を概説するための図解図である。 図13は図1に示すマーカおよびコントローラの視野角を説明するための図解図である。 図14は対象画像を含む撮像画像の一例を示す図解図である。 図15は図11のコントローラにおいて、第1コントローラおよび第2コントローラの間に介在するジャイロセンサユニットの電気的な構成を示すブロック図である。 図16はジャイロセンサユニットが取り扱うデータのフォーマットを示す図解図であり、図16(A)はジャイロ用データのフォーマットを示す図解図であり、図16(B)は第2コントローラ用データのフォーマットを示す図解図である。 図17はジャイロセンサが検出できるヨー角、ピッチ角、ロール角を示す図解図である。 図18はコントローラを用いて実際にゲームをプレイするときにゲームプレイヤが第1コントローラおよび第2コントローラを持っている状態の一例を示す図解図である。 図19はジャイロセンサユニットのマイコンによる制御をモード毎に記載したテーブルを示す図解図である。 図20はジャイロセンサユニットに適用されるモード切り替えを示す図解図であり、図20(A)はアプリケーションがジャイロ対応型である場合のモード切り替えを示す図解図であり、図20(B)はアプリケーションがジャイロ非対応型である場合のモード切り替えを示す図解図である。 図21は第1の実施例の水上バイクゲームをプレイヤがプレイする様子を表す図である。 図22は実施例の水上バイクゲームにおける、ゲーム空間内の水上スキーオブジェクトの各動作を説明する図である。 図23は実施例のゲームにおける、加速度に基づいたオブジェクトの姿勢制御手法を説明する図である。 図24は実施例のゲームにおける、角速度に基づいた操作を説明する図である。 図25は実施例のゲームで用いられるデータのメモリマップを示す図である。 図26は実施例のゲームの処理を示すフローチャートである。 図27は実施例のゲームの処理を示すフローチャートである。 図28は、第2の実施例を説明する図である。 図29は、第3の実施例を説明する図である。 図30は、第4の実施例を説明する図である。 図31は、第5の実施例を説明する図である。
符号の説明
10 …ゲームシステム
12 …ゲーム装置
34 …第1コントローラ(リモコン)
36 …第2コントローラ(ヌンチャク)
60 …CPU
62 …システムLSI
70 …無線通信モジュール
84,86 …加速度センサ
100 …ジャイロセンサユニット
104 …ジャイロセンサ

Claims (10)

  1. ゲーム空間内のプレイヤオブジェクトが第1の制御対象および第2の制御対象を含むゲーム装置のコンピュータで実行されるプログラムであって、前記コンピュータを、
    第1の加速度センサと角速度センサとを少なくとも備える第1の入力装置と、第2の加速度センサを少なくとも備える第2の入力装置とから操作データを取得する操作データ取得手段と、
    少なくとも、前記操作データにおける、前記第1の加速度センサの出力に応じた第1加速度データ、前記第2の加速度センサの出力に応じた第2加速度データ、および前記角速度センサの出力に応じた角速度データに基づいて、ゲーム処理を行うゲーム処理手段として機能させ、
    前記ゲーム処理手段は、前記第1加速度データに基づいて前記第1の制御対象の制御を行う第1対象制御手段と、前記第2加速度データに基づいて前記第2の制御対象の制御を行う第2対象制御手段とを含み、
    前記第1対象制御手段は前記第1の制御対象をゲーム空間内で動かす動作をさせ、さらに、前記角速度データに基づいて、当該第1の制御対象の動作に回転を加える、
    ゲームプログラム。
  2. ゲーム空間内にプレイヤオブジェクトを表示するゲーム装置のコンピュータで実行されるプログラムであって、前記コンピュータを、
    第1の加速度センサと角速度センサとを少なくとも備える第1の入力装置と、第2の加速度センサを少なくとも備える第2の入力装置とから操作データを取得する操作データ取得手段と、
    少なくとも、前記操作データにおける、前記第1の加速度センサの出力に応じた第1加速度データ、前記第2の加速度センサの出力に応じた第2加速度データ、および前記角速度センサの出力に応じた角速度データに基づいて、ゲーム処理を行うゲーム処理手段として機能させ、
    前記ゲーム処理手段は、前記第1加速度データおよび第2加速度データ両方に基づいて、前記プレイヤオブジェクトの制御を行う第1対象制御手段を含み、
    前記ゲーム処理手段は、前記角速度データに基づいて前記第1の入力装置の所定軸回りの回転を検出し、当該回転に基づいて前記プレイヤオブジェクトに特定のアクションを行わせる、ゲームプログラム。
  3. 前記ゲーム処理手段は、前記角速度データに基づいて、前記第1の制御対象および第2の制御対象の向きまたは位置を制御する、全体制御手段をさらに含む、請求項1記載のゲームプログラム。
  4. 前記第1対象制御手段はさらに、前記角速度データに基づいて、前記プレイヤオブジェクトの向きまたは位置を制御する、請求項2記載のゲームプログラム。
  5. ゲーム空間内のプレイヤオブジェクトが第1の制御対象および第2の制御対象を含むゲーム装置であって、
    第1の加速度センサと角速度センサとを少なくとも備える第1の入力装置と、第2の加速度センサを少なくとも備える第2の入力装置とから操作データを取得する操作データ取得手段、および
    少なくとも、前記操作データにおける、前記第1の加速度センサの出力に応じた第1加速度データ、前記第2の加速度センサの出力に応じた第2加速度データ、および前記角速度センサの出力に応じた角速度データに基づいて、ゲーム処理を行うゲーム処理手段を備え、
    前記ゲーム処理手段は、前記第1加速度データに基づいて前記第1の制御対象の制御を行う第1対象制御手段と、前記第2加速度データに基づいて前記第2の制御対象の制御を行う第2対象制御手段とを含み、
    前記第1対象制御手段は前記第1の制御対象をゲーム空間内で動かす動作をさせ、さらに、前記角速度データに基づいて、当該第1の制御対象の動作に回転を加える、
    ゲーム装置。
  6. ゲーム空間内にプレイヤオブジェクトを表示するゲーム装置であって、
    第1の加速度センサと角速度センサとを少なくとも備える第1の入力装置と、第2の加速度センサを少なくとも備える第2の入力装置とから操作データを取得する操作データ取得手段、および
    少なくとも、前記操作データにおける、前記第1の加速度センサの出力に応じた第1加速度データ、前記第2の加速度センサの出力に応じた第2加速度データ、および前記角速度センサの出力に応じた角速度データに基づいて、ゲーム処理を行うゲーム処理手段を備え、
    前記ゲーム処理手段は、前記第1加速度データおよび第2加速度データ両方に基づいて、前記プレイヤオブジェクトの制御を行う第1対象制御手段を含み、
    前記ゲーム処理手段は、前記角速度データに基づいて前記第1の入力装置の所定軸回りの回転を検出し、当該回転に基づいて前記プレイヤオブジェクトに特定のアクションを行わせる、ゲーム装置。
  7. ゲーム空間内のプレイヤオブジェクトが第1の制御対象および第2の制御対象を含むゲームシステムであって、
    第1の加速度センサと角速度センサとを少なくとも備える第1の入力装置と、第2の加速度センサを少なくとも備える第2の入力装置とから操作データを取得する操作データ取得手段、および
    少なくとも、前記操作データにおける、前記第1の加速度センサの出力に応じた第1加速度データ、前記第2の加速度センサの出力に応じた第2加速度データ、および前記角速度センサの出力に応じた角速度データに基づいて、ゲーム処理を行うゲーム処理手段を備え、
    前記ゲーム処理手段は、前記第1加速度データに基づいて前記第1の制御対象の制御を行う第1対象制御手段と、前記第2加速度データに基づいて前記第2の制御対象の制御を行う第2対象制御手段とを含み、
    前記第1対象制御手段は前記第1の制御対象をゲーム空間内で動かす動作をさせ、さらに、前記角速度データに基づいて、当該第1の制御対象の動作に回転を加える、
    ゲームシステム。
  8. ゲーム空間内にプレイヤオブジェクトを表示するゲームシステムであって、
    第1の加速度センサと角速度センサとを少なくとも備える第1の入力装置と、第2の加速度センサを少なくとも備える第2の入力装置とから操作データを取得する操作データ取得手段、および
    少なくとも、前記操作データにおける、前記第1の加速度センサの出力に応じた第1加速度データ、前記第2の加速度センサの出力に応じた第2加速度データ、および前記角速度センサの出力に応じた角速度データに基づいて、ゲーム処理を行うゲーム処理手段を備え、
    前記ゲーム処理手段は、前記第1加速度データおよび第2加速度データ両方に基づいて、前記プレイヤオブジェクトの制御を行う第1対象制御手段を含み、
    前記ゲーム処理手段は、前記角速度データに基づいて前記第1の入力装置の所定軸回りの回転を検出し、当該回転に基づいて前記プレイヤオブジェクトに特定のアクションを行わせる、ゲームシステム。
  9. ゲーム空間内のプレイヤオブジェクトが第1の制御対象および第2の制御対象を含むゲーム装置のゲーム制御方法であって、
    第1の加速度センサと角速度センサとを少なくとも備える第1の入力装置と、第2の加速度センサを少なくとも備える第2の入力装置とから操作データを取得する操作データ取得ステップ、および
    少なくとも、前記操作データにおける、前記第1の加速度センサの出力に応じた第1加速度データ、前記第2の加速度センサの出力に応じた第2加速度データ、および前記角速度センサの出力に応じた角速度データに基づいて、ゲーム処理を行うゲーム処理ステップを含み、
    前記ゲーム処理ステップは、前記第1加速度データに基づいて前記第1の制御対象の制御を行う第1対象制御ステップと、前記第2加速度データに基づいて前記第2の制御対象の制御を行う第2対象制御ステップとを含み、
    前記第1対象制御ステップでは前記第1の制御対象をゲーム空間内で動かす動作をさせ、さらに、前記角速度データに基づいて、当該第1の制御対象の動作に回転を加える、ゲーム制御方法。
  10. ゲーム空間内にプレイヤオブジェクトを表示するゲーム装置におけるゲーム制御方法であって、
    第1の加速度センサと角速度センサとを少なくとも備える第1の入力装置と、第2の加速度センサを少なくとも備える第2の入力装置とから操作データを取得する操作データ取得ステップ、および
    少なくとも、前記操作データにおける、前記第1の加速度センサの出力に応じた第1加速度データ、前記第2の加速度センサの出力に応じた第2加速度データ、および前記角速度センサの出力に応じた角速度データに基づいて、ゲーム処理を行うゲーム処理ステップを含み、
    前記ゲーム処理ステップは、前記第1加速度データおよび第2加速度データ両方に基づいて、前記プレイヤオブジェクトの制御を行う第1対象制御ステップを含み、
    前記ゲーム処理ステップでは、前記角速度データに基づいて前記第1の入力装置の所定軸回りの回転を検出し、当該回転に基づいて前記プレイヤオブジェクトに特定のアクションを行わせる、ゲーム制御方法。
JP2008181717A 2008-07-11 2008-07-11 ゲームプログラムおよびゲーム装置 Active JP5730463B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008181717A JP5730463B2 (ja) 2008-07-11 2008-07-11 ゲームプログラムおよびゲーム装置
US12/498,465 US8882596B2 (en) 2008-07-11 2009-07-07 Game program and game apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008181717A JP5730463B2 (ja) 2008-07-11 2008-07-11 ゲームプログラムおよびゲーム装置

Publications (2)

Publication Number Publication Date
JP2010017405A JP2010017405A (ja) 2010-01-28
JP5730463B2 true JP5730463B2 (ja) 2015-06-10

Family

ID=41505640

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008181717A Active JP5730463B2 (ja) 2008-07-11 2008-07-11 ゲームプログラムおよびゲーム装置

Country Status (2)

Country Link
US (1) US8882596B2 (ja)
JP (1) JP5730463B2 (ja)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8384565B2 (en) * 2008-07-11 2013-02-26 Nintendo Co., Ltd. Expanding operating device and operating system
JP5433448B2 (ja) * 2010-02-01 2014-03-05 株式会社コナミデジタルエンタテインメント ゲーム装置及びゲーム用プログラム
US8913009B2 (en) 2010-02-03 2014-12-16 Nintendo Co., Ltd. Spatially-correlated multi-display human-machine interface
EP2392389A4 (en) 2010-02-03 2014-10-15 Nintendo Co Ltd GAME SYSTEM, OPERATING METHOD AND GAME PROCESSING METHOD
US8814686B2 (en) 2010-02-03 2014-08-26 Nintendo Co., Ltd. Display device, game system, and game method
JP6243586B2 (ja) 2010-08-06 2017-12-06 任天堂株式会社 ゲームシステム、ゲーム装置、ゲームプログラム、および、ゲーム処理方法
US10150033B2 (en) 2010-08-20 2018-12-11 Nintendo Co., Ltd. Position calculation system, position calculation device, storage medium storing position calculation program, and position calculation method
JP5840386B2 (ja) 2010-08-30 2016-01-06 任天堂株式会社 ゲームシステム、ゲーム装置、ゲームプログラム、および、ゲーム処理方法
JP5840385B2 (ja) 2010-08-30 2016-01-06 任天堂株式会社 ゲームシステム、ゲーム装置、ゲームプログラム、および、ゲーム処理方法
KR101492310B1 (ko) 2010-11-01 2015-02-11 닌텐도가부시키가이샤 조작 장치 및 정보 처리 장치
US20130005417A1 (en) * 2011-06-30 2013-01-03 Peter Schmidt Mobile device action gaming
CN103123587A (zh) * 2012-05-03 2013-05-29 张伟明 信息处理终端及其处理方法
US20130296049A1 (en) * 2012-05-04 2013-11-07 Thomas Jump System and Method for Computer Control
JP6029854B2 (ja) * 2012-05-22 2016-11-24 ミネベア株式会社 振動子及び振動発生器
US9294539B2 (en) * 2013-03-14 2016-03-22 Microsoft Technology Licensing, Llc Cooperative federation of digital devices via proxemics and device micro-mobility
US10486049B2 (en) * 2013-03-15 2019-11-26 Amer Sports Digital Services Oy Device and method for monitoring swimming performance
US9101838B2 (en) * 2013-07-26 2015-08-11 David J. Dascher Dual pivot game controller
KR101582595B1 (ko) * 2014-03-25 2016-01-21 선문대학교 산학협력단 편측무시 환자 치료 장치
EP3207962A4 (en) 2014-10-16 2018-05-30 Nintendo Co., Ltd. Training implement, training system, and input device
CN104548596B (zh) * 2015-02-02 2017-05-24 广州周游网络科技有限公司 一种射击游戏的瞄准方法及装置
US9898091B2 (en) 2015-06-03 2018-02-20 Oculus Vr, Llc Virtual reality system with head-mounted display, camera and hand-held controllers
US9833700B2 (en) * 2015-06-11 2017-12-05 Oculus Vr, Llc Connectable hand-held controllers for virtual-reality systems
USD772986S1 (en) 2015-06-11 2016-11-29 Oculus Vr, Llc Wireless game controller
US9952445B2 (en) 2015-10-22 2018-04-24 Stmicroelectronics, Inc. Optical image stabilization synchronization of gyroscope and actuator drive circuit
US9839840B2 (en) * 2015-11-05 2017-12-12 Oculus Vr, Llc Interconnectable handheld controllers
US10007339B2 (en) 2015-11-05 2018-06-26 Oculus Vr, Llc Controllers with asymmetric tracking patterns
US9990045B2 (en) 2015-11-12 2018-06-05 Oculus Vr, Llc Method and apparatus for detecting hand gestures with a handheld controller
US10130875B2 (en) 2015-11-12 2018-11-20 Oculus Vr, Llc Handheld controller with finger grip detection
US9804693B2 (en) * 2015-12-18 2017-10-31 Oculus Vr, Llc Handheld controller with activation sensors
US9964776B2 (en) 2015-12-21 2018-05-08 Stmicroelectronics, Inc. Optical image stabilization actuator driver power distribution control
US9964777B2 (en) 2015-12-21 2018-05-08 Stmicroelectronics, Inc. Optical image stabilization actuator driver power distribution control
US10343059B2 (en) 2015-12-30 2019-07-09 Facebook Technologies, Llc Handheld controller with thumbstick guard
US9977494B2 (en) 2015-12-30 2018-05-22 Oculus Vr, Llc Tracking constellation assembly for use in a virtual reality system
US10441880B2 (en) 2015-12-30 2019-10-15 Facebook Technologies, Llc Handheld controller with spring-biased third finger button assembly
US10386922B2 (en) 2015-12-30 2019-08-20 Facebook Technologies, Llc Handheld controller with trigger button and sensor retainer assembly
US11857869B2 (en) 2015-12-31 2024-01-02 Meta Platforms Technologies, Llc Handheld controller with hand detection sensors
JP6643191B2 (ja) * 2016-06-07 2020-02-12 任天堂株式会社 ゲーム装置、ゲームプログラム、ゲームシステム、およびゲーム処理方法
JP6388751B2 (ja) * 2016-06-10 2018-09-12 三菱電機株式会社 操作装置
DE202017104928U1 (de) * 2016-08-23 2017-11-24 Google Inc. Manipulation virtueller Objekte anhand von Controllern mit sechs Freiheitsgraden in erweiterten bzw. virtuellen Realitätsumgebungen
USD835104S1 (en) 2016-09-27 2018-12-04 Oculus Vr, Llc Wireless game controller
US20180096506A1 (en) * 2016-10-04 2018-04-05 Facebook, Inc. Controls and Interfaces for User Interactions in Virtual Spaces
JP6594920B2 (ja) * 2017-03-01 2019-10-23 任天堂株式会社 ゲームシステム、ゲーム装置、ゲームプログラム、およびゲーム処理方法
JP6693911B2 (ja) * 2017-06-16 2020-05-13 任天堂株式会社 ゲーム装置、ゲームプログラム、ゲームシステム、およびゲーム処理方法
JP6544869B2 (ja) * 2017-07-27 2019-07-17 任天堂株式会社 ゲームシステム、アクセサリ、ゲームプログラム、ゲーム装置、ゲーム処理方法、および厚紙部材
CN108553892B (zh) * 2018-04-28 2021-09-24 网易(杭州)网络有限公司 虚拟对象控制方法、装置、存储介质及电子设备
JP6666505B1 (ja) 2019-06-20 2020-03-13 任天堂株式会社 入力装置
JP6666504B1 (ja) * 2019-06-20 2020-03-13 任天堂株式会社 装置、システム、ゲームシステム、および、装置セット

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000308756A (ja) * 1999-04-27 2000-11-07 Taito Corp ゲーム装置の入力制御装置
US20090191967A1 (en) 2005-02-17 2009-07-30 Ssd Company Limited Game apparatus and controller
JP2006255400A (ja) * 2005-02-17 2006-09-28 Shinsedai Kk ゲーム装置及びコントローラ
JP5204381B2 (ja) * 2006-05-01 2013-06-05 任天堂株式会社 ゲームプログラム、ゲーム装置、ゲームシステム及びゲーム処理方法
US7636645B1 (en) * 2007-06-18 2009-12-22 Ailive Inc. Self-contained inertial navigation system for interactive control using movable controllers
JP5294442B2 (ja) 2006-09-13 2013-09-18 任天堂株式会社 ゲーム装置およびゲームプログラム

Also Published As

Publication number Publication date
JP2010017405A (ja) 2010-01-28
US8882596B2 (en) 2014-11-11
US20100009760A1 (en) 2010-01-14

Similar Documents

Publication Publication Date Title
JP5730463B2 (ja) ゲームプログラムおよびゲーム装置
JP5361044B2 (ja) ゲーム装置、およびゲームプログラム
US9283482B2 (en) Game apparatus for performing game processing according to an attitude of an input device and game program
US8306768B2 (en) Game apparatus and computer-readable recording medium recording game program for controlling attitude and position of an object in a virtual space
US9211475B2 (en) Game device and storage medium storing game program for performing a game process based on data from sensor
US9289680B2 (en) Game controller, storage medium storing game program, and game apparatus
US8308564B2 (en) Storage medium having game program stored thereon and game apparatus
US8182343B2 (en) Game apparatus and storage medium storing game program
JP5550433B2 (ja) 操作装置および情報処理システム
US8764564B2 (en) Game system, game processing method, recording medium storing game program, and game device
JP2010012041A (ja) 情報処理プログラムおよび情報処理装置
JP5529401B2 (ja) ゲームプログラムおよびゲーム装置
JP2013078634A (ja) ゲームシステムおよびゲームプログラム
JP5758085B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステム、及びゲーム処理方法
JP2008253561A (ja) プログラムおよびコンピュータ
US8147333B2 (en) Handheld control device for a processor-controlled system
US20130090168A1 (en) Game system, game processing method, recording medium storing game program, and game device
JP5937791B2 (ja) 画像処理プログラム、画像処理装置、画像処理方法および画像処理システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110627

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130702

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130829

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140408

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140609

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: 20150407

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150408

R150 Certificate of patent or registration of utility model

Ref document number: 5730463

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