JP2009172010A - 情報処理プログラムおよび情報処理装置 - Google Patents

情報処理プログラムおよび情報処理装置 Download PDF

Info

Publication number
JP2009172010A
JP2009172010A JP2008010842A JP2008010842A JP2009172010A JP 2009172010 A JP2009172010 A JP 2009172010A JP 2008010842 A JP2008010842 A JP 2008010842A JP 2008010842 A JP2008010842 A JP 2008010842A JP 2009172010 A JP2009172010 A JP 2009172010A
Authority
JP
Japan
Prior art keywords
angle
boundary
acceleration
boundary angle
inclination
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.)
Granted
Application number
JP2008010842A
Other languages
English (en)
Other versions
JP5224832B2 (ja
Inventor
Keizo Ota
敬三 太田
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=39531301&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP2009172010(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2008010842A priority Critical patent/JP5224832B2/ja
Priority to EP08005592.4A priority patent/EP2081105B2/en
Priority to US12/078,111 priority patent/US7698096B2/en
Publication of JP2009172010A publication Critical patent/JP2009172010A/ja
Application granted granted Critical
Publication of JP5224832B2 publication Critical patent/JP5224832B2/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/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/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
    • 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
    • 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/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • 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/213Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
    • 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/25Output arrangements for video game devices
    • A63F13/28Output arrangements for video game devices responding to control signals received from the game device for affecting ambient conditions, e.g. for vibrating players' seats, activating scent dispensers or affecting temperature or light
    • A63F13/285Generating tactile feedback signals via the game input device, e.g. force feedback
    • 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
    • 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/1037Features 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 being specially adapted for converting control signals received from the game device into a haptic signal, e.g. using force feedback
    • 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/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/1087Features 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 comprising photodetecting means, e.g. a camera
    • 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

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)
  • Length Measuring Devices By Optical Means (AREA)
  • Length Measuring Devices With Unspecified Measuring Means (AREA)

Abstract

【課題】任意の傾斜に傾けることが可能な入力装置を用いた操作の操作性を向上する。
【解決手段】ゲーム装置は、出力値が所定範囲の境界値をとる場合における入力装置の傾斜角度に相当する境界角度を示す境界角度データを記憶する。ゲーム装置は、入力装置の傾斜角度に応じて値が変化するデータを入力装置から取得して入力装置の傾斜角度を算出する。次に、傾斜算出ステップで算出された傾斜角度が境界角度データにより示される境界角度を超える場合、当該算出された傾斜角度が新たな境界角度となるように境界角度データを更新する。出力値は、境界角度データにより示される境界角度に対する算出された傾斜角度の割合に基づいて算出される。
【選択図】図13

Description

本発明は、情報処理プログラムおよび情報処理装置に関し、より特定的には、任意の傾斜角度に傾けることが可能な入力装置の傾斜に基づいて出力値を算出するための情報処理プログラムおよび情報処理装置に関する。
特許文献1には、コントローラを傾けることによってゲーム操作を行うことができるゲーム装置が開示されている。特許文献1に記載されているコントローラ(コントロールキー装置)は、3軸加速度センサを内蔵しており、加速度センサを用いてコントローラの傾斜角度を算出する。また、特許文献1では、このコントローラを利用したドライブゲームにおいて、コントローラの傾斜角度を、ゲーム中に登場する車のハンドルの切り角に対応させることが記載されている。
特開平6−190144号公報
コントローラを傾けることによってゲーム操作を行うことができる上記のようなゲーム装置では、プレイヤは、コントローラを任意の傾斜角度に傾けることが可能である。これに対して、コントローラの傾斜角度に応じた出力値には、その値が取り得る範囲が決められる場合がある。例えば、出力値が上記ハンドルの切り角である場合には、ハンドルの切り角の範囲が決められている場合がある。このように、入力値であるコントローラの傾斜角度の値には制限がないのに対して、出力値には制限が設定される場合がある。
上記のように出力値の取り得る範囲に制限が設定される場合には、出力値が当該範囲の境界値(出力値の取り得る範囲の上限値および/または下限値)となる時のコントローラの傾斜角度(境界角度と呼ぶ)を固定的に設定することが考えられる。つまり、この境界角度を超えてコントローラを傾けても出力値が変化しないように出力値を算出するのである。しかしながら、傾斜角度を固定的に設定する場合には、境界角度を超えて出力値が変化しない範囲でプレイヤがコントローラを傾けてしまうと、コントローラを動かしているのに出力値が変化しない状況となる。このとき、プレイヤは、コントローラの操作が出力に反映されていないように感じ、操作性が悪いと感じるおそれがある。
それ故、本発明の目的は、任意の傾斜に傾けることが可能な入力装置を用いた操作の操作性を向上することが可能な情報処理プログラムおよび情報処理装置を提供することである。
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、本欄における括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
第1の発明は、任意の角度に傾けることが可能な入力装置(コントローラ5)の傾斜角度に応じた出力値を所定範囲内で算出する情報処理装置(ゲーム装置3)のコンピュータ(CPU10)において実行される情報処理プログラム(ゲームプログラム60)である。情報処理装置の記憶手段(メインメモリ)には、出力値が所定範囲の境界の値をとる場合における入力装置の傾斜角度に相当する境界角度を示す境界角度データ(66,67)が記憶される。情報処理プログラムは、傾斜算出ステップ(S2,S4)と、第1更新ステップ(S5)と、出力算出ステップ(S6)とをコンピュータに実行させる。傾斜算出ステップにおいて、コンピュータは、入力装置の傾斜角度に応じて値が変化する入力データ(加速度データ62)を入力装置から取得して入力装置の傾斜角度を算出する。第1更新ステップにおいて、コンピュータは、傾斜算出ステップで算出された傾斜角度が境界角度データにより示される境界角度を超える場合、当該算出された傾斜角度が新たな境界角度となるように境界角度データを更新する。出力算出ステップにおいて、コンピュータは、境界角度データにより示される境界角度に対する算出された傾斜角度の割合に基づいて出力値を算出する。
第2の発明において、記憶手段には、境界角度の基準角度がさらに記憶されていてもよい。このとき、情報処理プログラムは、傾斜算出ステップで算出された傾斜角度が境界角度データにより示される境界角度よりも小さい場合、当該境界角度が基準角度となるように境界角度データを更新する第2更新ステップ(S6)をコンピュータにさらに実行させる。
第3の発明において、傾斜算出ステップは繰り返し実行されてもよい。このとき、第2更新ステップは、境界角度データにより示される境界角度が基準角度を下回らない範囲で当該境界角度を減少する処理を、当該境界角度が当該基準角度と等しくなるまで、傾斜算出ステップが実行される度に繰り返し実行する減少ステップ(S43〜S47)を含む。
第4の発明において、減少ステップにおける減少処理は、境界角度データにより示される境界角度が傾斜算出ステップで算出された傾斜角度を下回らない範囲で当該境界角度を減少させるように実行されてもよい。
第5の発明において、入力装置は、当該入力装置に生じる加速度を検出する加速度センサ(37)を備えていてもよい。このとき、傾斜算出ステップは、取得ステップ(S2)と、算出実行ステップ(S4)とを含む。取得ステップにおいて、コンピュータは、加速度センサによって検出される加速度を取得する。算出実行ステップにおいて、コンピュータは、取得された加速度を用いて入力装置の傾斜角度を算出する。
第6の発明において、傾斜算出ステップは、取得された加速度を修正する修正ステップ(S3)をさらに含んでいてもよい。このとき、取得ステップ、修正ステップ、および算出実行ステップは、繰り返し実行される。修正ステップにおいて、コンピュータは、取得ステップにおいて今回取得された加速度を、前回に修正した加速度へと近づけるように加速度を修正する。算出実行ステップにおいて、コンピュータは、修正ステップによる修正後の加速度を用いて入力装置の傾斜角度を算出する。
第7の発明においては、修正ステップにおいて、コンピュータは、今回取得された加速度の大きさが重力加速度の大きさに近いほど、今回取得された加速度の大きさに近くなるように加速度を修正してもよい。
第8の発明において、加速度センサは、入力装置を基準として設定される所定の3次元座標系(XYZ座標系)の各軸方向の加速度を検出してもよい。このとき、取得ステップにおいて、コンピュータは、3次元座標系における3次元ベクトルで表される加速度を加速度センサから取得する。算出実行ステップにおいて、コンピュータは、3次元ベクトルを、3次元座標系の原点を通る平面(平面P)上の2次元ベクトルに変換し、変換した2次元ベクトルによって入力装置の傾斜角度を表す。
第9の発明においては、算出実行ステップにおいて、コンピュータは、3次元ベクトルを、3次元座標系の1軸を含む平面上の2次元ベクトルに変換してもよい。
また、本発明は、上記第1〜第9の発明における各ステップを実行する情報処理装置と同等の機能を有する情報処理装置の形態で提供されてもよい。また、上記第1〜第9の発明における各ステップを実行する、出力値算出方法として提供されてもよい。
第1の発明によれば、入力装置の傾斜角度が境界角度を超える場合、傾斜角度が新たな境界角度となるように境界角度データが更新される。そして、出力値は、更新された境界角度データにより示される境界角度に対する傾斜角度の割合に基づいて算出される。これによれば、入力装置の操作が出力値に常に反映されるので、入力装置の傾斜角度が変化しても出力値が変化しない問題を回避することができる。すなわち、入力装置に対する操作を行っても出力値が変化しない問題を回避することができるので、入力装置を用いた操作の操作性を向上することができる。
第2の発明によれば、第1更新ステップによって境界角度が変更されても、その後に傾斜角度が小さくなれば、境界角度は基準角度に戻される。そのため、何らかの理由でユーザが入力装置を必要以上に(基準角度を超えて)傾けてしまった場合でも、その後は必要以上に大きく入力装置を傾ける必要がないので、操作性を向上することができる。
第3の発明によれば、減少ステップによって境界角度が基準角度に次第に戻される。ここで、傾斜角度が変化せずに境界角度のみが変化することによって出力値が変化する場合には、ユーザが入力装置を操作していないにもかかわらず出力値が変化することになり、ユーザが違和感を感じるおそれがある。これに対して、第3の発明によれば、境界角度を次第に変化させることによって、境界角度のみが変化することによる出力値の変化を小さくすることができ、ユーザに違和感を与えないようにすることができる。
第4の発明によれば、境界角度が傾斜角度を下回ることがないので、出力値が所定の範囲を超えた値となることを防止することができる。
第5の発明によれば、加速度センサを用いることによって、入力装置の傾斜角度を容易に算出することができる。
第6の発明によれば、修正ステップによる修正によって得られる修正加速度は、加速度センサから取得される加速度に追従して変化することとなる。これによれば、取得される加速度が微妙に変化する場合においても修正加速度を一定とすることができるので、手ぶれによって出力値が変化することを防止することができる。
第7の発明によれば、今回取得された加速度の大きさが重力加速度の大きさに近い場合には、当該加速度の大きさに近くなるように修正加速度が算出される。これによれば、取得される加速度が信頼できる(傾斜角度を正確に表している)場合には、修正加速度は、取得される加速度に近い値となる。したがって、かかる修正加速度を用いることによって傾斜角度をより正確に算出することができる。
第8および第9の発明によれば、3次元のベクトルで表される加速度を2次元のベクトルに変換することによって、出力値の算出処理を簡易に行うことができる。
(ゲームシステムの全体構成)
図1を参照して、本発明の一実施形態に係る情報処理装置の一例であるゲーム装置を含むゲームシステム1について説明する。図1は、ゲームシステム1の外観図である。以下、据置型のゲーム装置を一例にして、本実施形態のゲーム装置およびゲームプログラムについて説明する。図1において、ゲームシステム1は、テレビジョン受像器(以下、単に「テレビ」と記載する)2、ゲーム装置3、光ディスク4、コントローラ5、およびマーカ部6を含む。本システムは、コントローラ5を用いたゲーム操作に基づいてゲーム装置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の点灯を制御することが可能である。
コントローラ5は、自機に対して行われた操作の内容を示す操作データをゲーム装置3に与える入力装置である。コントローラ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が排出される。
(コントローラ5の構成)
次に、図3〜図6を参照して、コントローラ5について説明する。図3および図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に他の機器(例えば、他のコントローラ)を接続するために利用される。
ハウジング31上面の後方には複数(図3では4つ)のLED34a〜34dが設けられる。ここで、コントローラ5には、他のメインコントローラと区別するためにコントローラ種別(番号)が付与される。各LED34a〜34dは、コントローラ5に現在設定されている上記コントローラ種別をプレイヤに通知したり、コントローラ5の電池残量をプレイヤに通知したりする等の目的で用いられる。具体的には、コントローラ5を用いてゲーム操作が行われる際、上記コントローラ種別に応じて複数のLED34a〜34dのいずれか1つが点灯する。
また、コントローラ5は撮像情報演算部35(図5B)を有しており、図4に示すように、ハウジング31前面には撮像情報演算部35の光入射面35aが設けられる。光入射面35aは、マーカ6Rおよび6Lからの赤外光を少なくとも透過する材質で構成される。
ハウジング31上面における1番ボタン32bとホームボタン32fとの間には、コントローラ5に内蔵されるスピーカ49(図5A)からの音を外部に放出するための音抜き孔31aが形成されている。
次に、図5Aおよび図5Bを参照して、コントローラ5の内部構造について説明する。図5Aおよび図5Bは、コントローラ5の内部構造を示す図である。なお、図5Aは、コントローラ5の上筐体(ハウジング31の一部)を外した状態を示す斜視図である。図5Bは、コントローラ5の下筐体(ハウジング31の一部)を外した状態を示す斜視図である。図5Bに示す斜視図は、図5Aに示す基板30を裏面から見た斜視図となっている。
図5Aにおいて、ハウジング31の内部には基板30が固設されており、当該基板30の上主面上に各操作ボタン32a〜32h、各LED34a〜34d、加速度センサ37、アンテナ45、およびスピーカ49等が設けられる。これらは、基板30等に形成された配線(図示せず)によってマイクロコンピュータ(Micro Computer:マイコン)42(図5B参照)に接続される。本実施形態では、加速度センサ37は、X軸方向に関してコントローラ5の中心からずれた位置に配置されている。これによって、コントローラ5をZ軸回りに回転させたときのコントローラ5の動きが算出しやすくなる。また、加速度センサ37は、長手方向(Z軸方向)に関してコントローラ5の中心よりも前方に配置されている。また、無線モジュール44(図6)およびアンテナ45によって、コントローラ5がワイヤレスコントローラとして機能する。
一方、図5Bにおいて、基板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の下主面上の後端縁に取り付けられる。なお、図5Aおよび図5Bに示す他、コントローラ5は、マイコン42の基本クロックを生成する水晶振動子、スピーカ49に音声信号を出力するアンプ等を備えている。
なお、図3〜図5A、図5Bに示したコントローラ5の形状や、各操作ボタンの形状、加速度センサやバイブレータの数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であっても、本発明を実現することができる。また、本実施形態では、撮像手段による撮像方向はZ軸正方向であるが、撮像方向はいずれの方向であってもよい。すなわち、コントローラ5における撮像情報演算部35の位置(撮像情報演算部35の光入射面35a)は、ハウジング31の前面でなくてもよく、ハウジング31の外部から光を取り入れることができれば他の面に設けられてもかまわない。
図6は、コントローラ5の構成を示すブロック図である。コントローラ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の向きや位置を算出することができる。
加速度センサ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軸それぞれの直線加速度の値を表すものとなる。すなわち、検出された加速度は、コントローラ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が静的な加速度(例えば、重力加速度)を検出するために用いられる場合、加速度信号を傾斜角(あるいは、他の好ましいパラメータ)に変換するものであってもよい。
なお、本実施形態では、コントローラの動きに応じて変化する値を出力するセンサとして、例えば静電容量式の加速度センサを用いることとしたが、他の方式の加速度センサやジャイロセンサを用いるようにしてもよい。ただし、加速度センサは各軸に沿った直線方向の加速度をそれぞれ検出するものであるのに対して、ジャイロセンサは回転に伴う角速度を検出するものである。つまり、加速度センサに代えてジャイロセンサを採用する場合には、検出される信号の性質が異なるため、両者を簡単に置き換えることはできない。そこで、加速度センサの代わりにジャイロセンサを用いて姿勢(傾斜角度)を算出する場合には、例えば次のような変更を行う。具体的には、ゲーム装置3は、検出開始の状態において姿勢の値を初期化する。そして、当該ジャイロセンサから出力される角速度のデータを積分する。さらに、積分結果を用いて、初期化された姿勢の値からの姿勢の変化量を算出する。この場合、算出される姿勢は、角度で表されることになる。
なお、既に説明したように、加速度センサによって傾斜角度(姿勢)を算出する場合には、加速度ベクトルを用いて傾斜角度を算出する。したがって、算出される傾斜角度はベクトルで表すことが可能であり、初期化を行わずとも絶対的な方向を算出することが可能である点で、加速度センサを用いる場合とジャイロセンサを用いる場合とは異なる。また、傾斜角度として算出される値の性質についても上記のように角度であるかベクトルであるかの違いがあるので、加速度センサからジャイロセンサへの置き換えを行う際には当該傾斜角度のデータに対しても所定の変換を行う必要がある。
通信部36は、マイコン42、メモリ43、無線モジュール44、およびアンテナ45を含んでいる。マイコン42は、処理を行う際にメモリ43を記憶領域として用いながら、マイコン42が取得したデータをゲーム装置3へ無線送信する無線モジュール44を制御する。
操作部32、撮像情報演算部35、および加速度センサ37からマイコン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自体を動かす操作を行うこともできる。
(ゲーム装置3における処理の概要)
次に、図8〜図11を参照して、ゲーム装置3において実行される処理の概要を説明する。本実施形態では、プレイヤはコントローラ5を傾ける操作を行い、ゲーム装置3は、コントローラ5の傾斜角度に応じた出力値を算出し、算出された出力値を用いたゲーム処理を実行する。以下では、コントローラ5の傾斜角度を算出し、傾斜角度に基づいて出力値を算出する処理を中心に、ゲーム装置3が実行する処理について説明する。
まず、コントローラ5の傾斜角度を算出する処理について説明する。図8は、本実施形態におけるコントローラ5の操作方法を説明するための図である。ゲーム装置3は、加速度センサ37によって検出される加速度ベクトルに基づいてコントローラ5の傾斜角度を算出する。ここで、コントローラ5の傾斜角度とは、コントローラ5が所定の姿勢にある状態(本実施形態では後述する基準状態)からの傾きの大きさを言う。傾斜角度の算出方法の詳細については後述するが、本実施形態においては、ゲーム装置3は、コントローラ5の傾斜角度として、Z軸に垂直な平面と重力方向とのなす角度を算出する。したがって、プレイヤは、例えば図8の矢印に示す方向にコントローラ5を動かすことによって、コントローラ5のZ軸と重力方向とのなす角を変化させるようにコントローラ5を操作すればよい。典型的には、プレイヤは、コントローラ5の前端部(Z軸正側の端部)と後端部(Z軸負側の端部)とを把持して、図8の矢印に示す方向にコントローラ5を回転させるようにして操作を行う。なお、本実施形態では、プレイヤがコントローラ5の前端部を左手で持ち、後端部を右手で持って操作を行うことを想定する。また、コントローラ5を把持した状態でボタン面上の操作ボタンを押下することができるように、親指がボタン面に接するような持ち方でプレイヤがコントローラ5を把持して操作を行うことを想定する。
なお、本実施形態においては、ゲーム装置3は、コントローラ5の傾斜角度として、Z軸に垂直な平面と重力方向とのなす角度を算出することとした。ここで、他の実施形態においては、ゲーム装置3によって算出されるコントローラ5の傾斜角度は、どのような角度であってもよい。例えば、ゲーム装置3は、重力方向とX軸とのなす角度、または、重力方向とY軸とのなす角度をコントローラ5の傾斜角度として用いてもよい。
図9は、ゲーム装置3によって算出される傾斜角度を2次元ベクトルで表した図である。図9に示されるように、本実施形態においては、ゲーム装置3によって算出される傾斜角度は、xy座標系における2次元ベクトルNrmによって表される。以下では、傾斜角度を表すベクトルを「傾斜角度ベクトル」と呼ぶ。傾斜角度ベクトルNrmは、xy座標系の原点を始点とする2次元ベクトルであり、長さが1の単位ベクトルである。傾斜角度は、y軸正方向と傾斜角度ベクトルNrmとのなす角度(単に傾斜角度ベクトルの角度と呼ぶことがある)として表される。なお、本実施形態においては、Z軸に垂直な平面と重力方向とのなす角度が0°の場合を基準状態とすると、傾斜角度ベクトルNrmは、当該基準状態の場合に傾斜角度ベクトルNrmがy軸正方向を向き、基準状態からある一方向(Z軸を中心とした方向は除く)にコントローラ5を回転させた場合に傾斜角度ベクトルNrmがx軸正側を向き、基準状態から当該一方向とは逆方向にコントローラ5を回転させた場合に傾斜角度ベクトルNrmがx軸負側を向くように算出される。このように、コントローラ5が基準状態からどちら側の方向にどの程度傾斜しているかを、傾斜角度ベクトルNrmによって表すことができる。なお、本実施形態においては、傾斜角度ベクトルNrmのx成分が正となる状態を「(コントローラ5が)右側に傾斜している状態」とし、傾斜角度ベクトルNrmのx成分が負となる状態を「(コントローラ5が)左側に傾斜している状態」とする。ゲーム装置3は、上記のような傾斜角度ベクトルNrmを上記加速度ベクトルに基づいて算出する。傾斜角度ベクトルNrmの詳細な算出方法については後述する。
次に、傾斜角度に基づいて出力値を算出する処理について説明する。ゲーム装置3は、上記傾斜角度を算出した後、算出された傾斜角度に基づいて出力値を算出する。ここで、本実施形態においては、その取り得る範囲に制限を付して出力値を算出するために、境界角度という概念が用いられる。境界角度とは、出力値が当該範囲の境界値をとる場合における傾斜角度である。傾斜角度と同様、境界角度もxy座標系における2次元ベクトルで表される。ゲーム装置3は、境界角度を表すベクトルとして、第1境界角度ベクトルMaxLおよび第2境界角度ベクトルMaxRを記憶している(図9参照)。本実施形態では、基準状態からある一方向にコントローラ5を回転させた場合の傾斜角度と、当該ある一方向の逆方向にコントローラ5を回転させた場合の傾斜角度とを区別しているので、ゲーム装置3は、境界角度を表すベクトルとして、第1境界角度ベクトルMaxLおよび第2境界角度ベクトルMaxRという2つのベクトルを用意する。
本実施形態では、出力値は、上記基準状態からの傾斜の大きさに比例してその値が大きくなるように算出される。このような出力値は、例えばカーレースゲームにおいて、ハンドルの切り角を示す値として用いることができる。詳細は後述するが、出力値は、境界角度に対する傾斜角度の割合として算出される。したがって、出力値の取り得る範囲に制限が付されることになり、傾斜角度が境界角度となる場合に出力値はその範囲の境界値をとることになる。
上記境界角度については、基準角度が設定される。ここでは、第1境界角度の基準角度を第1基準角度とし、第2境界角度の基準角度を第2基準角度とする。本実施形態においては、図9に示されるように、各基準角度の大きさを30°とする。つまり、第1境界角度ベクトルMaxLの基準ベクトルは、(−0.5,0.866)となり、第2境界角度ベクトルMaxRの基準ベクトルは、(0.5,0.866)となる。
ただし、境界角度は、上記基準角度に固定的に設定されるのではなく、加速度ベクトルから算出される傾斜角度に応じて可変に設定される。図10は、境界角度ベクトルが変化する様子を示す図である。図10に示されるように、境界角度ベクトル(ここでは第1境界角度ベクトルMaxL)は、傾斜角度ベクトルNrmの角度が境界角度ベクトルの基準ベクトル(図10に示す点線)の角度を超える場合には、傾斜角度ベクトルNrmと等しい値に更新される。ゲーム装置3は、更新後の境界角度ベクトルを用いて出力値を算出する。
以上のように、本実施形態によれば、境界角度を傾斜角度に応じて可変に設定することによって、コントローラ5の操作性を向上することができる。本実施形態においては、プレイヤはコントローラ5を任意の傾斜角度に傾けることができるので、傾斜角度が境界角度の基準角度を超えてしまう場合もある。このような場合、本実施形態によれば、境界角度は傾斜角度と等しい値に更新され、更新後の境界角度に対する傾斜角度の割合に基づいて出力値が算出される。このように出力値を算出することによって、仮に傾斜角度が境界角度の基準角度を超えても常に傾斜角度の値を用いて出力値が算出され、傾斜角度の値が無視されることがない。そのため、プレイヤがどのような傾斜角度にコントローラ5を傾けたとしてもコントローラ5の操作が出力値に常に反映されるので、コントローラ5を操作しても出力値が変化しない問題を回避することができ、操作性を向上することができる。
例えば、カーレースゲームにおけるハンドルの切り角に出力値を対応させる実施態様を考える。この場合、プレイヤは、普段はコントローラ5を適度に傾けて(基準角度程度まで傾けて)操作を行うものの、例えば急カーブを曲がる場合にハンドルを急に切る操作を行う際、コントローラ5を必要以上に(基準角度を超えて)傾けてしまうと想定される。このとき、もし仮に境界角度を基準角度に固定的に設定してしまうと、コントローラ5を基準角度を超えて大きく傾けてから基準角度以下に戻すまでの間は、傾斜角度が出力値に反映されなくなってしまう。そのため、この間はコントローラ5に対する操作がゲームに反映されなくなるので、操作性が悪くなる。これに対して、本実施形態によれば、境界角度を変化させることによって、上記の間であってもコントローラ5に対する操作に応じて出力値が変化し、当該操作がゲームに反映されることとなり、良好な操作感をプレイヤに与えることができる。
また、コントローラ5をどの程度まで傾けて操作を行う場合に操作しやすいと感じるか、すなわち、操作しやすいと感じる適切な境界角度の大きさは、プレイヤによって異なる。したがって、境界角度を固定的に設定する方法では、全てのプレイヤにとって適切な境界角度を設定することはできず、全てのプレイヤにとって良好な操作性を実現することはできない。これに対して、本実施形態によれば、コントローラ5の実際の傾斜角度に応じて境界角度が可変に設定されることによって、各プレイヤにとって適切な境界角度を設定することができ、全てのコントローラ5にとって良好な操作性を実現することができる。
さらに、本実施形態においては、ゲーム装置3は、傾斜角度が基準角度を超えた場合に境界角度を増加する処理(後述する第1更新処理(ステップS5))に加え、変更後に境界角度を基準角度に戻す(減少する)処理(後述する第2更新処理(ステップS6))を行う。図11は、境界角度ベクトルが元の基準角度に戻る様子を示す図である。境界角度が傾斜角度に応じて増加された(図10)の後、傾斜角度が境界角度よりも小さくなった場合には、境界角度は基準角度まで減少される。つまり、この場合、ゲーム装置3は、図11に示されるように、境界角度ベクトル(ここでは第1境界角度ベクトルMaxL)を基準ベクトルに戻す。なお、詳細は後述するが、境界角度ベクトルは一定速度で(すなわち、所定時間あたりに所定角度の割合で)基準ベクトルまで戻される。このとき、境界角度ベクトルの角度が傾斜角度の角度よりも小さくならないように境界角度が戻される。
以上のように、境界角度を戻す処理を行うことによって、コントローラ5の操作性をより向上することができる。ここで、もし仮に境界角度を戻す処理を行わなかった場合には、傾斜角度が境界角度を超える度に境界角度が大きくなってしまう。境界角度が大きくなるということは、出力値を境界値とするためにプレイヤは大きくコントローラ5を傾けなければならないことを意味する。したがって、もし仮に境界角度を戻す処理を行わなかった場合には、プレイヤはゲーム操作を行うにつれてコントローラ5を大きく傾けて操作を行わなければならなくなり、操作性が悪くなってしまう。例えば、何らかの理由でプレイヤがコントローラ5を必要以上に(基準角度を超えて)傾けてしまうと、その後はずっと、プレイヤは、コントローラ5を大きく傾けて操作しなければならなくなる。コントローラ5を大きく傾けなければ、境界値に等しい出力値を得ることができなくなるからである。なお、プレイヤがコントローラ5を必要以上に傾ける状況としては、例えば、急にコントローラ5を傾ける必要が生じた状況(具体的には、カーレースゲームにおけるハンドルの切り角に出力値を対応させる場合において、急カーブを曲がるためにハンドルを急に切る操作を行う状況)や、プレイヤがゲームに熱中したために操作が激しくなった状況等が考えられる。
これに対して、本実施形態においては、ゲーム装置3は、境界角度を大きくしても、その後に傾斜角度が小さくなれば、境界角度を基準角度に戻す。そのため、何らかの理由でプレイヤがコントローラ5を必要以上に(基準角度を超えて)傾けてしまった場合でも、その後は必要以上に大きくコントローラ5を傾ける必要がないので、操作性を向上することができる。
(ゲーム装置3における処理の詳細)
次に、ゲーム装置3において実行される処理の詳細について説明する。まず、ゲーム装置3における処理において用いられる主なデータについて図12を用いて説明する。図12は、ゲーム装置3のメインメモリ(外部メインメモリ12または内部メインメモリ11e)に記憶される主なデータを示す図である。図12に示すように、ゲーム装置3のメインメモリには、ゲームプログラム60、操作データ61、およびゲーム処理用データ63が記憶される。なお、メインメモリには、図12に示すデータの他、ゲームに登場する各種オブジェクトの画像データや、オブジェクトの各種パラメータを示すデータ等、ゲーム処理に必要なデータが記憶される。
ゲームプログラム60は、ゲーム装置3に電源が投入された後の適宜のタイミングで光ディスク4からその一部または全部が読み込まれてメインメモリに記憶される。ゲームプログラム60には、コントローラ5の傾斜角度を算出し、傾斜角度に基づいて出力値を算出するためのプログラムが含まれている。
操作データ61は、コントローラ5からゲーム装置3へ送信されてくる操作データである。上述したように、コントローラ5からゲーム装置3へ1/200秒に1回の割合で操作データが送信されるので、メインメモリに記憶される操作データはこの割合で更新される。本実施形態においては、メインメモリには、最新の(最後に取得された)操作データのみが記憶されればよい。
操作データ61には、加速度データ62が含まれる。加速度データ62は、加速度センサ37によって検出された加速度(加速度ベクトル)を示すデータである。ここでは、加速度データ62は、図3に示すXYZの3軸の方向に関する加速度を各成分とする3次元の加速度ベクトルVec=(VX,VY,VZ)を示すデータである。また、操作データ61には、加速度データ62の他、各操作ボタン32a〜32iに対する入力状態を示す操作ボタンデータ、および、前述したマーカ座標を示すマーカ座標データが含まれている。
ゲーム処理用データ63は、後述するゲーム処理(図13)において用いられるデータである。ゲーム処理用データ63は、修正加速度データ64、傾斜角度データ65、第1境界角度データ66、第2境界角度データ67、第1基準角度データ68、第2基準角度データ69、および出力値データ70を含む。なお、図12に示すデータの他、ゲーム処理用データ63は、ゲーム処理において用いられる各種データ(後述する加速度ベクトルの大きさW、合成比率K、投影ベクトルPro、ならびに、円弧の長さB1およびB2等)を含む。
修正加速度データ64は、加速度データ62により示される加速度ベクトルに所定の修正処理を行った加速度ベクトル(修正加速度ベクトルと呼ぶ)Acc=(AX,AY,AZ)を示すデータである。詳細は後述するが、所定の修正処理は、加速度データ62により示される加速度から重力加速度の成分を抽出し、コントローラ5の傾斜角度を正確に表す修正加速度を得るための処理である。
傾斜角度データ65は、コントローラ5の傾斜角度を示す。具体的には、傾斜角度データ65は、上述した傾斜角度ベクトルNrm=(Nx,Ny)を示す。傾斜角度データ65は、修正加速度データ64に基づいて算出される。
各境界角度データ66および67は、上記境界角度を示すデータである。具体的には、第1境界角度データ66は、第1境界角度ベクトルMaxL=(MaxLx,MaxLy)を示し、第2境界角度データ67は、第2境界角度ベクトルMaxR=(MaxRx,MaxRy)を示す。
各基準角度データ68および69は、上記基準角度を示すデータである。具体的には、第1基準角度データ68は第1基準ベクトル(=(−0.5,0.866))を示し、第2基準角度データ69は第2基準ベクトル(=(0.5,0.866))を示す。各基準ベクトルは、ゲームプログラム60において予め定められており、各基準角度データ68および69は、ゲーム処理の開始時にメインメモリに記憶される。
なお、本実施形態においては、傾斜角度、境界角度、および基準角度を、それぞれベクトルで表すこととしたが、他の実施形態においては、傾斜角度、境界角度、および基準角度は、例えば“30°”のように、単に角度を表す数値で表されてもよい。
出力値データ70は、上記傾斜角度および境界角度に基づいて算出される出力値を示す。上述したように、出力値は、境界角度に対する傾斜角度の割合として算出される。また、本実施形態においては、コントローラ5がいずれの回転方向に傾いているかを区別する。したがって、出力値Steerは、−1≦Steer≦1の範囲を取り得る。なお、他の実施形態においては、出力値は、傾斜角度および境界角度に基づいて算出され、その取り得る範囲が制限されるように算出されればどのような算出方法で算出されてもよい。例えば、出力値は−1から1までの範囲である必要はなく、例えば上記割合を所定数倍した値であってもよい。
次に、ゲーム装置3において行われる処理の詳細を、図13〜図20を用いて説明する。図13は、ゲーム装置3において実行される処理の流れを示すメインフローチャートである。ゲーム装置3の電源が投入されると、ゲーム装置3のCPU10は、図示しないブートROMに記憶されている起動プログラムを実行し、これによってメインメモリ等の各ユニットが初期化される。そして、光ディスク4に記憶されたゲームプログラムがメインメモリに読み込まれ、CPU10によって当該ゲームプログラムの実行が開始される。図13に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。
まず、ステップS1において、CPU10は、ゲームに関する初期化処理を実行する。この初期化処理において、修正加速度データ64、傾斜角度データ65、第1境界角度データ66、第2境界角度データ67、および出力値データ70の値が初期化される。具体的には、修正加速度ベクトルAcc=(1,0,0)に設定され、傾斜角度ベクトルNrm=(0,1)に設定され、第1境界角度ベクトルMaxL=(−0.5,0.886)に設定され、第2境界角度ベクトルMaxR=(0.5,0.886)に設定され、出力値Steer=0に設定される。また、初期化処理において、各基準角度データ68および69がメインメモリに記憶される。なお、初期処理においては、上記データが初期化される他、ゲーム空間が構築されたり、プレイヤオブジェクトや他のオブジェクトがゲーム空間の初期位置に配置されたりする。以上のステップS1の後、ステップS2〜S9の処理ループが、ゲームが実行される間繰り返し実行される。なお、1回の当該処理ループは、1フレーム時間(例えば1/60秒)に1回の割合で実行される。
ステップS2において、CPU10は操作データを取得する。すなわち、コントローラ5から送信されてくる操作データが無線コントローラモジュール19を介して受信される。受信された操作データに含まれる加速度データがメインメモリに記憶されるので、CPU10はメインメモリから加速度データ62を読み出す。ステップS2〜S9の処理ループにおいて上記ステップS2が繰り返し実行されることによって、コントローラ5の動きに応じて変化する値(加速度ベクトルVec)が繰り返し取得されることとなる。ステップS2の次にステップS3の処理が実行される。
ステップS3において加速度修正処理が実行される。加速度修正処理は、ステップS2で取得される加速度ベクトルVecを修正し、コントローラ5の傾斜をより正確に算出するための処理である。以下、図14を参照して、加速度修正処理の詳細を説明する。
図14は、図13に示す加速度修正処理(ステップS3)の流れを示すフローチャートである。加速度修正処理においては、まずステップS11において、CPU10は、ステップS2で取得された加速度ベクトルVecの大きさWを算出する。すなわち、CPU10は、メインメモリに記憶されている加速度データ62を読み出し、加速度データ62により示される加速度ベクトルVecの大きさを算出し、メインメモリに記憶する。ステップS11の次にステップS12の処理が実行される。
ステップS12において、CPU10は、メインメモリに記憶されている加速度ベクトルの大きさWが、0<W<2を満たすか否かを判定する。ここで、本実施形態においては、コントローラ5が静止している状態で加速度センサ37が検出する加速度ベクトルVecの大きさを“1”とする。また、コントローラ5が動かされている状態においては、重力加速度以外に、コントローラ5が動かされることによって生じる慣性による加速度が加速度センサ37によって検出される。そのため、コントローラ5が動かされている場合には、加速度ベクトルVecの大きさが“1”から離れた値となることがあり、激しく動かされている場合には、加速度ベクトルVecの大きさが“1”から大きく離れた値となることがある。つまり、ステップS12の処理は、コントローラ5が激しく動かされているか否かを判定するための処理である。なお、本実施形態においては、コントローラ5が激しく動かされていないと判定する範囲を、“0<W<2”としているが、この範囲は他の値であってもよい。ステップS12における判定結果が肯定である場合、ステップS13の処理が実行される。一方、ステップS12における判定結果が否定である場合、ステップS13〜S17の処理がスキップされ、CPU10は加速度修正処理を終了する。
以上のように、本実施形態においては、コントローラ5が激しく動かされている場合(ステップS12の判定結果が否定である場合)、修正加速度を更新する処理(後述するステップS17)が実行されない。これは、コントローラ5が激しく動かされている場合には、加速度センサ37によって検出される加速度ベクトルVecに重力加速度以外の成分(コントローラ5が動かされることによって生じる慣性による加速度の成分)が多く含まれているため、当該加速度ベクトルVecの値は信頼できず、コントローラ5の傾斜角度を精度良く検出することができないと考えられるからである。この場合、後述するステップS4の処理では、過去に算出された、信頼できる値の加速度ベクトルが用いられることになる。これによって、CPU10は、修正加速度として不正確な値が算出されることを防止することができ、コントローラ5の傾斜をより正確に算出することができる。
ステップS13〜S16において、CPU10は、加速度ベクトルの大きさWに基づいて合成比率Kを算出する。ここで、本実施形態においては、修正加速度ベクトルAccは、前回に算出された修正加速度ベクトルAcc’と加速度ベクトルVecとを合成することによって算出される。合成比率Kは、前回に算出された修正加速度ベクトルAcc’と加速度ベクトルVecとを合成する比率を示す変数である。以下、合成比率Kの算出方法の詳細を説明する。
ステップS13において、CPU10は、メインメモリに記憶されている加速度ベクトルの大きさWが、W>1を満たすか否かを判定する。ステップS13における判定結果が肯定である場合、ステップS14の処理が実行される。ステップS14において、CPU10は、“2”から加速度ベクトルの大きさWを減算することによって合成比率Kを算出する。一方、ステップS13における判定結果が否定である場合、ステップS15の処理が実行される。ステップS15において、CPU10は、加速度ベクトルの大きさWを合成比率Kとする。以上のステップS13〜S15によって、合成比率Kは、加速度ベクトルの大きさWが重力加速度の大きさ(すなわち“1”)からどれだけ近いかを示す値として算出される。ステップS14またはS15の次にステップS16の処理が実行される。
ステップS16において、CPU10は、ステップS14またはS15で算出された合成比率Kを、その値が“1”に近いほど重みが付されるように修正する。修正後の合成比率Kは、次の式(1)に従って算出される。
K=K’×K’×C1 …(1)
上式(1)において、変数K’は修正前の合成比率であり、定数C1は0<C1≦1の範囲(例えばC1=0.2)で予め定められる。ステップS16の処理によって、修正後の合成比率Kは、修正前の合成比率K’が1に近いほど大きくなるように修正される。ステップS16の次にステップS17の処理が実行される。
ステップS17において、CPU10は、合成比率Kに基づいて修正加速度ベクトルAccを算出する。修正加速度ベクトルAccは、ステップS2で取得された加速度ベクトルVec、前回に算出された修正加速度ベクトルAcc’、およびステップS16で算出された合成比率Kを用いて、以下の式(2)に従って算出される。
Acc=(Vec−Acc’)×K+Acc’ …(2)
なお、加速度ベクトルVecは、メインメモリに記憶されている加速度データ62を読み出すことによって得られ、前回に算出された修正加速度ベクトルAcc’は、メインメモリに記憶されている修正加速度データ64を読み出すことによって得られる。上式(2)より、新たな修正加速度ベクトルAccは、前回に算出された修正加速度ベクトルAcc’の終点と、XYZ座標系の原点を始点とし、ステップS2で取得された加速度ベクトルVecの終点とを結ぶ線分をK:(1−K)に内分する点を終点とするベクトルとなる。上式(2)は、前回の修正加速度を、ステップS2で取得された加速度ベクトルVecへと近づけるように修正するものである。したがって、上式(2)によれば、修正加速度ベクトルAccは、ステップS2で取得された加速度ベクトルVecに追従して変化するベクトルとなる。換言すれば、修正加速度ベクトルAccの変化を示す信号は、所定時間間隔で取得される加速度ベクトルVecの変化を示す信号を平滑化した信号となる。なお、本実施形態においては、合成比率Kの値は、取得された加速度ベクトルVecの大きさWが“1”に近いほど大きくなるので、コントローラ5が静止している場合ほど、取得された加速度ベクトルVecが修正加速度ベクトルAccに反映されることになる。上式(2)によれば、加速度ベクトルVecが微妙に変化する場合においても修正加速度ベクトルAccを一定とすることができるので、手ぶれによって出力値が変化することを防止することができる。ステップS17において、メインメモリに記憶される修正加速度データ64は、上式(2)によって新たに算出された修正加速度ベクトルAccを示すデータに更新される。ステップS17の次にステップS18の処理が実行される。
ステップS18において、CPU10は、ステップS17で算出された修正加速度ベクトルAccの大きさが“1”となるように、修正加速度ベクトルAccを正規化する。メモリに記憶される修正加速度データ64は、ステップS18によって修正された修正加速度ベクトルAccを示すデータに更新される。ステップS18の後、CPU10は加速度修正処理を終了する。
図13の説明に戻り、ステップS3の次のステップS4において、CPU10は傾斜角度算出処理を実行する。傾斜角度算出処理は、ステップS3で算出された修正加速度ベクトルAccを用いて、コントローラ5の傾斜角度Nrmを算出する処理である。以下、図15を参照して、傾斜角度算出処理の詳細を説明する。
図15は、図13に示す傾斜角度算出処理(ステップS4)の流れを示すフローチャートである。傾斜角度算出処理においては、まずステップS21において、CPU10は、ステップS3で算出された修正加速度ベクトルAccに基づいて投影ベクトルを算出する。以下、図16を参照して、投影ベクトルの算出方法について説明する。
図16は、投影ベクトルの算出方法を説明するための図である。図16において、XYZ座標系における平面Pは、Z軸を含み、X軸およびY軸に対して45°の角度をなす平面であり、具体的には、X+Y=0の平面である。図16に示されるように、投影ベクトルProは、この平面Pに修正加速度ベクトルAccを投影したベクトルである。具体的には、投影ベクトルPro=(Px,Py)は、修正加速度ベクトルAcc=(AX,AY,AZ)を用いて次の式(3)に従って算出される。
Px=−AZ
Py=0.707×AX−0.707×AY …(3)
上式(3)より、投影ベクトルProは、傾斜角度ベクトルNrmを表すためのxy座標系によって表されることがわかる。また、xy座標系は、平面P上のZ軸負方向をx軸正方向とし、X軸またはY軸を平面Pに投影した軸をy軸とする座標系となる。ステップS21においては、以上のようにして投影ベクトルProが算出される。ステップS21の次にステップS22の処理が実行される。
ステップS22において、CPU10は、ステップS21で算出された投影ベクトルProの大きさLを算出する。続くステップS23において、CPU10は、投影ベクトルProの大きさLが“0”であるか否かを判定する。ステップS23における判定結果が肯定である場合、ステップS24の処理が実行される。一方、ステップS23における判定結果が否定である場合、ステップS24の処理がスキップされ、CPU10は傾斜角度算出処理を終了する。
ステップS24において、CPU10は、ステップS21で算出された投影ベクトルProを正規化する(大きさを“1”にする)ことによって傾斜角度ベクトルNrmを算出する。メモリに記憶される傾斜角度データ65は、ステップS24で新たに算出された傾斜角度ベクトルNrmを示すデータに更新される。ステップS24の後、CPU10は傾斜角度算出処理を終了する。
以上のステップS21〜S24の処理によって、コントローラ5の傾斜角度を示す傾斜角度ベクトルNrmが算出される。ここで、上述したように、本実施形態においては、プレイヤは、コントローラ5の前端部を左手で持ち、後端部を右手で持ち、さらに、親指がコントローラ5のボタン面に接するようにコントローラ5を把持して操作を行うことを想定している。このように想定する場合、コントローラ5は、上記平面Pが鉛直方向と平行になる姿勢、あるいは、その姿勢に近い姿勢で把持されることとなる。本実施形態では、上記平面Pが鉛直方向と平行になる姿勢で把持されることを想定して、上記ステップS21において投影ベクトルProを算出し、投影ベクトルProから傾斜角度ベクトルNrmを算出している。これによって、コントローラ5の傾斜角度を2次元ベクトルで表すことができるので、以降の処理を簡易化することができる。
なお、ステップS23における判定結果が否定である場合、ステップS24の処理は実行されないので、この場合、メインメモリには、前回のS2〜S9の処理ループで算出された傾斜角度データ65がそのまま記憶されている。したがって、今回の処理ループにおけるステップS5以降の処理では、前回の処理ループで算出された傾斜角度ベクトルを用いて処理が実行される。これは、上記のようにコントローラ5が把持されることを想定する場合に、ステップS23における判定結果が否定となれば、修正加速度ベクトルAccの値が正確でないと考えられるためである。
図13の説明に戻り、ステップS4の次のステップS5において、CPU10は第1更新処理を実行する。第1更新処理は、ステップS4で算出された傾斜角度が現在の境界角度を超える場合、当該傾斜角度が新たな境界角度となるように境界角度データを更新する処理である。以下、図17を参照して、第1更新処理の詳細を説明する。
図17は、図13に示す第1更新処理(ステップS5)の流れを示すフローチャートである。第1更新処理においては、まずステップS31において、CPU10は、コントローラ5が左側に傾斜している状態であるか否かを判定する。この判定は、メインメモリに記憶されている傾斜角度データ65により示される傾斜角度ベクトルNrmのx成分を参照することによって行うことができる。すなわち、傾斜角度ベクトルNrmのx成分が正である場合、コントローラ5は右側に傾斜しており、傾斜角度ベクトルNrmのx成分が負である場合、コントローラ5は左側に傾斜している。ステップS31における判定結果が肯定である場合、ステップS32の処理が実行される。一方、ステップS31における判定結果が否定である場合、後述するステップS34の処理が実行される。
ステップS32において、CPU10は、傾斜角度が第1境界角度を超えるか否かを判定する。この判定は、メインメモリに記憶されている傾斜角度データ65により示される傾斜角度ベクトルNrmのy成分と、メインメモリに記憶されている第1境界角度データ66により示される第1境界角度ベクトルMaxLのy成分とを比較することによって行うことができる。すなわち、傾斜角度ベクトルNrmのy成分が第1境界角度ベクトルMaxLのy成分よりも小さい場合、傾斜角度は第1境界角度を超え、傾斜角度ベクトルNrmのy成分が第1境界角度ベクトルMaxLのy成分以上である場合、傾斜角度は第1境界角度を超えないと判断することができる。ステップS32における判定結果が肯定である場合、ステップS33の処理が実行される。一方、ステップS32における判定結果が否定である場合、CPU10は第1更新処理を終了する。
ステップS33において、CPU10は、傾斜角度と等しくなるように第1境界角度を更新する。具体的には、第1境界角度データ66の内容を、傾斜角度データ65により示される傾斜角度ベクトルNrmと等しい値に更新する。なお、上記ステップS32における判定結果が否定である場合には、ステップS33の処理が実行されないので、第1境界角度の更新は行われない。ステップS33の後、CPU10は第1更新処理を終了する。
以上のように、ステップS32およびS33においては、第1境界角度について、傾斜角度が境界角度を超える場合には境界角度を更新する処理が行われる。ステップS34およびS35においては、ステップS32およびS33の処理と同様の処理が第2境界角度について行われる。
ステップS34において、CPU10は、傾斜角度が第2境界角度を超えるか否かを判定する。この判定は、メインメモリに記憶されている傾斜角度データ65により示される傾斜角度ベクトルNrmのy成分と、メインメモリに記憶されている第2境界角度データ67により示される第2境界角度ベクトルMaxRのy成分とを比較することによって行うことができる。すなわち、傾斜角度ベクトルNrmのy成分が第2境界角度ベクトルMaxRのy成分よりも小さい場合、傾斜角度は第2境界角度を超え、傾斜角度ベクトルNrmのy成分が第2境界角度ベクトルMaxRのy成分以上である場合、傾斜角度は第2境界角度を超えないと判断することができる。ステップS34における判定結果が肯定である場合、ステップS35の処理が実行される。一方、ステップS34における判定結果が否定である場合、CPU10は第1更新処理を終了する。
ステップS35において、CPU10は、傾斜角度と等しくなるように第2境界角度を更新する。具体的には、第2境界角度データ67の内容を、傾斜角度データ65により示される傾斜角度ベクトルNrmと等しい値に更新する。なお、上記ステップS34における判定結果が否定である場合には、ステップS35の処理が実行されないので、第2境界角度の更新は行われない。ステップS35の後、CPU10は第1更新処理を終了する。
図13の説明に戻り、ステップS5の次のステップS6において、CPU10は第2更新処理を実行する。第2更新処理は、傾斜角度が境界角度よりも小さい場合に、境界角度を基準角度に戻すように境界角度データを更新するための処理である。以下、図18および図19を参照して、第2更新処理の詳細を説明する。
図18および図19は、図13に示す第2更新処理(ステップS6)の流れを示すフローチャートである。第2更新処理においては、図18に示すステップS41〜S48において第1境界角度について更新処理が行われ、図19に示すステップS51〜S58において第2境界角度について更新処理が行われる。
ステップS41において、CPU10は、第1境界角度が第1基準角度を超えるか否かを判定する。この判定は、メインメモリに記憶されている第1境界角度データ66により示される第1境界角度ベクトルMaxLのy成分と、メインメモリに記憶されている第1基準角度データ68により示される第1基準ベクトルのy成分とを比較することによって行うことができる。すなわち、第1境界角度ベクトルMaxLのy成分が第1基準ベクトルのy成分よりも小さい場合、第1境界角度は第1基準角度を超え、第1境界角度ベクトルMaxLのy成分が第1基準ベクトルのy成分以上である場合、第1境界角度は第1基準角度を超えないと判断することができる。ステップS41における判定結果が肯定である場合、ステップS42の処理が実行される。一方、ステップS41における判定結果が否定である場合、ステップS51の処理が実行される。この場合、第1境界角度の更新は行われない。
ステップS42において、CPU10は、コントローラ5が右側に傾斜している状態であるか否かを判定する。ステップS42の判定処理は、左側であるか右側であるかを除いてステップS31の判定処理と同じである。したがって、ステップS42の判定処理は、ステップS31と同様、メインメモリに記憶されている傾斜角度データ65により示される傾斜角度ベクトルNrmのx成分を参照することによって行うことができる。ステップS42における判定結果が否定である場合、ステップS43の処理が実行される。一方、ステップS42における判定結果が肯定である場合、後述するステップS48の処理が実行される。
ステップS43において、CPU10は、第1境界角度を予め定められた所定角度だけ第1基準角度に近づける(すなわち、第1境界角度から所定角度を減算する)。具体的には、CPU10は、まず、更新前の第1境界角度ベクトルMaxL’を第1基準角度に近づける方向に回転させる。回転後のベクトル(Mx,My)は、更新前の第1境界角度ベクトルMaxL’=(MaxLx’,MaxLy’)を用いて、次の式(4)に従って行われる。
Mx=MaxLx’+MaxLy’×C2
My=MaxLy’−MaxLx’×C2 …(4)
上式(4)において、定数C2はC2>0の範囲(例えばC2=0.0014)で予め定められる。また、更新前の第1境界角度ベクトルMaxL’は、メインメモリに記憶されている第1境界角度データ66を読み出すことによって得られる。上式(4)は、第1境界角度ベクトルMaxL’に垂直なベクトル(MaxLy×C2,−MaxLx×C2)を第1境界角度ベクトルMaxL’に加算することによって、第1境界角度ベクトルMaxL’を回転させるものである。上式(4)によって算出された回転後のベクトルを算出した後、CPU10は、当該回転後のベクトルを正規化することによって、更新後の第1境界角度ベクトルMaxLを得る。メインメモリに記憶される第1境界角度データ66は、このようにして得られた第1境界角度ベクトルMaxLを示すデータに更新される。以上のステップS43の次にステップS44の処理が実行される。
ステップS44において、CPU10は、第1境界角度が第1基準角度を下回るか否かを判定する。ステップS44の判定処理は、第1境界角度が第1基準角度を下回るか、それとも超えるかである点を除いて上記ステップS41の判定処理と同じである。したがって、ステップS44の判定処理は、ステップS41と同様、第1境界角度データ66により示される第1境界角度ベクトルMaxLのy成分と、第1基準角度データ68により示される第1基準ベクトルのy成分とを比較することによって行うことができる。ステップS44における判定結果が肯定である場合、ステップS45の処理が実行される。一方、ステップS44における判定結果が否定である場合、ステップS46の処理が実行される。
ステップS45において、CPU10は、第1基準角度と等しくなるように第1境界角度を更新する。具体的には、第1境界角度データ66の内容を、第1基準角度データ68により示される第1基準角度ベクトルと等しい値(−0.5,0.886)に更新する。ステップS45の後、後述するステップS51の処理が実行される。
上記ステップS43〜S45で示したように、第1境界角度が第1基準角度を超える場合、CPU10は、第1境界角度を予め定められた所定角度だけ減少する(ステップS43)。ここで、本実施形態においては、出力値は境界角度および傾斜角度に基づいて算出されるので、境界角度が変化すると、傾斜角度が変化していなくても出力値が変化してしまう。つまり、ステップS43で第1境界角度が変化すると、プレイヤがコントローラ5を操作していなくても出力値が変化してしまうおそれがある。しかしながら、ステップS43における第1境界角度の変化量を大きくしすぎないように定数C2を設定することによって、出力値の変化をプレイヤに意識させないようにすることができる。
また、ステップS43において第1境界角度を減少しすぎた場合(すなわち、第1境界角度が第1基準角度を下回る場合。ステップS44でYes)には、CPU10は、第1基準角度と等しくなるように第1境界角度を設定する(ステップS45)。したがって、上記ステップS43〜S45を繰り返し実行することによって、第1基準角度を下回らない範囲で第1境界角度を減少することができ、その結果、第1境界角度を第1基準角度に戻すことができる。
一方、ステップS46において、CPU10は、第1境界角度が傾斜角度を下回るか否かを判定する。ステップS46の判定処理は、第1境界角度データ66により示される第1境界角度ベクトルMaxLのy成分と、傾斜角度データ65により示される傾斜角度ベクトルNrmのy成分とを比較することによって行うことができる。ステップS46における判定結果が肯定である場合、ステップS47の処理が実行される。一方、ステップS46における判定結果が否定である場合、ステップS47の処理がスキップされて、後述するステップS51の処理が実行される。
ステップS47において、CPU10は、傾斜角度と等しくなるように第1境界角度を更新する。ステップS47の処理は、上述したステップS33の処理と同じである。ステップS47の後、後述するステップS51の処理が実行される。
上記ステップS46およびS47によれば、CPU10は、第1境界角度を予め定められた所定角度だけ減少した結果、第1境界角度を減少しすぎた場合(すなわち、第1境界角度が傾斜角度を下回る場合。ステップS46でYes)には、傾斜角度と等しくなるように第1境界角度を設定する。したがって、上記ステップS46およびS47によれば、ステップS43〜S45の処理によって第1境界角度を第1基準角度に戻す際に、傾斜角度を下回らない範囲で第1境界角度を減少することができる。
一方、ステップS48において、CPU10は、第1基準角度と等しくなるように第1境界角度を更新する。ステップS48の処理は、上述したステップS45の処理と同じである。ステップS48の後、後述するステップS51の処理が実行される。
このように、本実施形態においては、コントローラ5が左側に傾斜している場合(ステップS42でNo)には、第1境界角度は次第に第1基準角度に戻される(ステップS43〜S47)のに対して、コントローラ5が右側に傾斜している場合(ステップS42でYes)には、第1境界角度は一気に第1基準角度に戻される(ステップS48)。これは、コントローラ5が右側に傾斜している場合には、第1境界角度は出力値に影響しないので、第1境界角度を大きく変化させても問題はなく、むしろ、第1境界角度を早く第1基準角度に戻す方が処理が簡易になり、好ましいからである。
ステップS51〜S58においては、第2境界角度について更新処理が行われる。ステップS51〜S58の処理は、第1境界角度について更新処理を行うステップS41〜S48の処理と考え方は同じである。
ステップS51において、CPU10は、第2境界角度が第2基準角度を超えるか否かを判定する。この判定は、メインメモリに記憶されている第2境界角度データ67により示される第2境界角度ベクトルMaxRのy成分と、メインメモリに記憶されている第2基準角度データ69により示される第2基準ベクトルのy成分とを比較することによって行うことができる。ステップS51における判定結果が肯定である場合、ステップS52の処理が実行される。一方、ステップS51における判定結果が否定である場合、CPU10は、第2更新処理を終了する。この場合、第2境界角度の更新は行われない。
ステップS52において、CPU10は、コントローラ5が左側に傾斜している状態であるか否かを判定する。ステップS52の判定処理は、上記ステップS31の判定処理と同じである。ステップS52における判定結果が否定である場合、ステップS53の処理が実行される。一方、ステップS52における判定結果が肯定である場合、後述するステップS58の処理が実行される。
ステップS53において、CPU10は、第2境界角度を予め定められた所定角度だけ第2基準角度に近づける(すなわち、第2境界角度から所定角度を減算する)。ステップS53の処理において第2境界角度ベクトルMaxR’を所定角度だけ回転させる方法は、ステップS43において説明した方法と同じである。ステップS53の次にステップS54の処理が実行される。
ステップS54において、CPU10は、第2境界角度が第2基準角度を下回るか否かを判定する。ステップS54の判定処理は、第2境界角度が第2基準角度を下回るか、それとも超えるかである点を除いて上記ステップS51の判定処理と同じである。したがって、ステップS54の判定処理は、ステップS51と同様、第2境界角度データ67により示される第2境界角度ベクトルMaxRのy成分と、第2基準角度データ69により示される第2基準ベクトルのy成分とを比較することによって行うことができる。ステップS54における判定結果が肯定である場合、ステップS55の処理が実行される。一方、ステップS54における判定結果が否定である場合、ステップS56の処理が実行される。
ステップS55において、CPU10は、第2基準角度と等しくなるように第2境界角度を更新する。具体的には、第2境界角度データ67の内容を、第2基準角度データ69により示される第2基準角度ベクトルと等しい値(0.5,0.886)に更新する。ステップS55の後、CPU10は第2更新処理を終了する。
なお、上記ステップS53〜S55を繰り返し実行することによって、上記ステップS43〜S45と同様、基準角度を下回らない範囲で境界角度を減少することができ、その結果、境界角度を基準角度に戻すことができる。
一方、ステップS56において、CPU10は、第2境界角度が傾斜角度を下回るか否かを判定する。ステップS56の判定処理は、第2境界角度データ67により示される第2境界角度ベクトルMaxRのy成分と、傾斜角度データ65により示される傾斜角度ベクトルNrmのy成分とを比較することによって行うことができる。ステップS56における判定結果が肯定である場合、ステップS57の処理が実行される。一方、ステップS56における判定結果が否定である場合、ステップS57の処理がスキップされて、CPU10は第2更新処理を終了する。
ステップS57において、CPU10は、傾斜角度と等しくなるように第2境界角度を更新する。ステップS57の処理は、上述したステップS35の処理と同じである。ステップS57の後、CPU10は第2更新処理を終了する。
上記ステップS56およびS57によれば、上記ステップS46およびS47と同様、ステップS53〜S55の処理によって境界角度を基準角度に戻す際に、傾斜角度を下回らない範囲で境界角度を減少することができる。
一方、ステップS58において、CPU10は、第2基準角度と等しくなるように第2境界角度を更新する。ステップS58の処理は、上述したステップS55の処理と同じである。ステップS58によれば、上記ステップS48と同様、境界角度を早く基準角度に戻すことができ、処理が簡易になる。ステップS58の後、CPU10は第2更新処理を終了する。
図13の説明に戻り、ステップS6の次のステップS7において、CPU10は出力算出処理を実行する。出力算出処理は、境界角度に対する傾斜角度の割合に基づいて出力値を算出する処理である。以下、図20を参照して、出力算出処理の詳細を説明する。
図20は、図13に示す出力算出処理(ステップS7)の流れを示すフローチャートである。出力算出処理においては、まずステップS61において、CPU10は、傾斜角度による円弧の長さAを算出する。ここで、「傾斜角度による円弧の長さ」とは、傾斜角度ベクトルNrmとy軸正方向を向くベクトル(0,1)とのなす角を中心角(ここでは、中心角は180°以下とする)とする半径1の円弧の長さを指す。傾斜角度による円弧の長さAは、傾斜角度データ65により示される傾斜角度ベクトルNrmを用いて算出することができる。ステップS61の次にステップS62の処理が実行される。
ステップS62において、CPU10は、コントローラ5が左側に傾斜している状態であるか否かを判定する。ステップS62の処理は、上述したステップS31の処理と同じである。ステップS62における判定結果が肯定である場合、ステップS63の処理が実行される。一方、ステップS62における判定結果が否定である場合、後述するステップS65の処理が実行される。
ステップS63において、CPU10は、第1境界角度による円弧の長さB1を算出する。ここで、「第1境界角度による円弧の長さ」とは、第1境界角度ベクトルMaxLとy軸正方向を向くベクトル(0,1)とのなす角を中心角(ここでは、中心角は180°以下とする)とする半径1の円弧の長さを指す。第1境界角度による円弧の長さB1は、第1境界角度データ66により示される第1境界角度MaxLを用いて算出することができる。ステップS63の次にステップS64の処理が実行される。
ステップS64において、CPU10は、出力値Steerとして、第1境界角度による円弧の長さB1に対する、傾斜角度による円弧の長さAの割合を算出する。具体的には、出力値Steerは、以下の式(5)に従って算出される。
Steer=−A/B1 …(5)
なお、上式(5)においては、コントローラ5が左側に傾斜していることを表すために上記割合に“−”の符号を付している。つまり、本実施形態では、コントローラ5が左右どちらに傾斜しているかを表すために、上記割合に“+”または“−”の符号を付している。メインメモリに記憶される出力値データ70は、上式(5)によって新たに算出された出力値Steerを示すデータに更新される。ステップS64の後、CPU10は出力算出処理を終了する。
一方、ステップS65において、CPU10は、第2境界角度による円弧の長さB2を算出する。ここで、「第2境界角度による円弧の長さ」とは、第2境界角度ベクトルMaxRとy軸正方向を向くベクトル(0,1)とのなす角を中心角(ここでは、中心角は180°以下とする)とする半径1の円弧の長さを指す。第2境界角度による円弧の長さB2は、第2境界角度データ67により示される第2境界角度MaxRを用いて算出することができる。ステップS65の次にステップS66の処理が実行される。
ステップS66において、CPU10は、出力値Steerとして、第2境界角度による円弧の長さB2に対する、傾斜角度による円弧の長さAの割合を算出する。具体的には、出力値Steerは、以下の式(6)に従って算出される。
Steer=A/B2 …(6)
なお、上式(6)においては、コントローラ5が右側に傾斜していることを表すために上記割合に“+”の符号を付している。メインメモリに記憶される出力値データ70は、上式(6)によって新たに算出された出力値Steerを示すデータに更新される。ステップS66の後、CPU10は出力算出処理を終了する。
なお、プログラム処理においては一般的に、三角関数を用いた計算では処理負荷が大きくなる。本実施形態においては、加速度センサ37からの入力値がベクトルで表されるので、計算を簡易にする(三角関数を用いずに計算を行う)目的で、傾斜角度も2次元ベクトルで表すこととしている。また、上記割合を算出する際においても同様の目的で、角度を用いずに円弧の長さ(弧度法)を用いている。ここで、他の実施形態においては、上記割合を算出する方法はどのような方法であってもよく、例えば、傾斜角度の大きさθ1[°]および境界角度の大きさθ2[°]を算出し、境界角度の大きさθ2に対する傾斜角度の大きさθ1の割合を算出してもよい。また、上述したように、出力値は、傾斜角度および境界角度に基づいて算出され、その取り得る範囲が制限されるように算出されればどのような算出方法で算出されてもよい。
図3の説明に戻り、ステップS7の次のステップS8において、CPU10は、ステップS7で算出された出力値Steerを用いたゲーム処理を行う。例えば、カーレースゲームを行う場合であれば、ステップS7で算出された出力値Steerをハンドルの切り角に対応させ、プレイヤの操作対象の車をハンドルの切り角に応じて移動させる。また、ステップS8においては、CPU10は、ゲーム処理の結果を表す画像を生成し、生成された画像をテレビ2に表示させる。なお、出力値Steerを用いたゲーム処理はどのようなものであってもよい。例えば、カーレースゲームを行う場合であれば、上記ハンドルの切り角の他、車のタイヤ向き、または、車の進行方向等に出力値を対応させるようにしてもよい。また、他の実施形態においては、カーレースゲーム以外のゲーム処理において出力値を用いるようにしてもよい。ステップS8の次にステップS9の処理が実行される。
ステップS9において、CPU10は、ゲームを終了するか否かを判定する。ステップS9の判定は、例えば、ゲームがクリアされたか否か、ゲームオーバーとなったか否か、プレイヤがゲームを中止する指示を行ったか否か等によって行われる。ステップS9の判定結果が否定である場合、ステップS2の処理が再度実行される。以降、ステップS9でゲームを終了すると判定されるまで、ステップS2〜S9の処理ループが繰り返し実行される。一方、ステップS9の判定結果が肯定である場合、CPU10は、図13に示すゲーム処理を終了する。以上で、ゲーム処理の説明を終了する。
以上のように、本実施形態によれば、CPU10は、コントローラ5の傾斜角度を算出し(ステップS4)、算出された傾斜角度が境界角度を超える場合、算出された傾斜角度が新たな境界角度となるように境界角度を更新する(ステップS5)。そして、更新された境界角度に対する傾斜角度の割合に基づいて出力値を算出する(ステップS6)。これによれば、コントローラ5の操作が出力値に常に反映されるので、コントローラ5の傾斜角度が変化しても出力値が変化しない問題を回避することができ、操作性を向上することができる。
なお、上記実施形態においては、本発明に係る情報処理装置の一例として、ゲーム処理を実行するためのゲーム装置を例として説明したが、本発明は、ゲーム処理に限らず、入力装置を傾斜させる操作に応じて何らかの情報処理を行う情報処理装置に適用することが可能である。
(入力装置に関する変形例)
上記実施形態においては、入力装置であるコントローラ5が、据置型のゲーム装置3とは別体として構成される場合について説明した。ここで、他の実施形態においては、入力装置と情報処理装置(ゲーム装置)とは別体である必要はなく、一体的に構成されるものであってもよい。本発明は、例えば、加速度センサを備える携帯機器(携帯ゲーム装置または携帯電話等)として実施することも可能である。
(傾斜角度を算出する手段に関する変形例)
上記実施形態においては、加速度センサ37を用いて入力装置(コントローラ5)の傾きを検出し、検出結果に基づいて入力装置の傾斜角度を算出した。ここで、傾斜角度を算出する手段はどのようなものであってもよい。例えば、他の実施形態においては、加速度センサ37に代えて、前述したジャイロセンサを用いて入力装置の傾きを検出してもよいし、カメラ(例えば撮像素子40)を用いて入力装置の傾きを検出してもよい。カメラを用いる場合には、情報処理装置は、カメラで撮像された画像の中から所定の画像(上記実施形態においては、マーカ6Rおよび6Lの画像)を所定時間に1回の割合で検出する。検出される所定の画像の変化に基づいてカメラ(入力装置)の回転角度を算出することによって、入力装置の傾斜角度を算出することができる。以上のように、カメラを用いて入力装置の傾斜角度を算出することができるので、本発明は、カメラを備える携帯機器として実施することも可能である。また、入力装置は、上記実施形態におけるコントローラ5のように全方向に関して任意の角度に傾けることが可能なものでなくてもよく、所定の一方向に関して任意の角度に傾けることが可能な入力装置であってもよい。例えば、入力装置は、ジョグダイアルやマウスのホイールのように所定の一方向に関して回転可能なものであってもよい。
以上のように、本発明は、任意の傾斜に傾けることが可能な入力装置を用いた操作の操作性を向上すること等を目的として、例えばゲームプログラム等の情報処理プログラムや、ゲーム装置等の情報処理装置に利用することが可能である。
ゲームシステム1の外観図 ゲーム装置3の機能ブロック図 コントローラ5の外観構成を示す斜視図 コントローラ5の外観構成を示す斜視図 コントローラ5の内部構造を示す図 コントローラ5の内部構造を示す図 コントローラ5の構成を示すブロック図 コントローラ5の操作方法を説明するための図 ゲーム装置3によって算出される傾斜角度を2次元ベクトルで表した図 境界角度ベクトルが変化する様子を示す図 境界角度ベクトルが元の基準角度に戻る様子を示す図 ゲーム装置3のメインメモリに記憶される主なデータを示す図 ゲーム装置3において実行される処理の流れを示すメインフローチャート 図13に示す加速度修正処理(ステップS3)の流れを示すフローチャート 図13に示す傾斜角度算出処理(ステップS4)の流れを示すフローチャート 投影ベクトルの算出方法を説明するための図 図13に示す第1更新処理(ステップS5)の流れを示すフローチャート 図13に示す第2更新処理(ステップS6)の流れを示すフローチャート 図13に示す第2更新処理(ステップS6)の流れを示すフローチャート 図13に示す出力算出処理(ステップS7)の流れを示すフローチャート
符号の説明
1 ゲームシステム
2 テレビ
3 ゲーム装置
4 光ディスク
5 コントローラ
10 CPU
11c GPU
11e 内部メインメモリ
12 外部メインメモリ

Claims (14)

  1. 任意の角度に傾けることが可能な入力装置の傾斜角度に応じた出力値を所定範囲内で算出する情報処理装置のコンピュータにおいて実行される情報処理プログラムであって、
    前記情報処理装置の記憶手段には、前記出力値が前記所定範囲の境界の値をとる場合における前記入力装置の傾斜角度に相当する境界角度を示す境界角度データが記憶され、
    前記入力装置の傾斜角度に応じて値が変化する入力データを前記入力装置から取得して前記入力装置の傾斜角度を算出する傾斜算出ステップと、
    前記傾斜算出ステップで算出された傾斜角度が前記境界角度データにより示される境界角度を超える場合、当該算出された傾斜角度が新たな境界角度となるように前記境界角度データを更新する第1更新ステップと、
    前記境界角度データにより示される境界角度に対する前記算出された傾斜角度の割合に基づいて前記出力値を算出する出力算出ステップとを前記コンピュータに実行させる情報処理プログラム。
  2. 前記記憶手段には、前記境界角度の基準角度がさらに記憶されており、
    前記情報処理プログラムは、前記傾斜算出ステップで算出された傾斜角度が前記境界角度データにより示される境界角度よりも小さい場合、当該境界角度が前記基準角度となるように境界角度データを更新する第2更新ステップを前記コンピュータにさらに実行させる、請求項1に記載の情報処理プログラム。
  3. 前記傾斜算出ステップは繰り返し実行され、
    前記第2更新ステップは、前記境界角度データにより示される境界角度が前記基準角度を下回らない範囲で当該境界角度を減少する処理を、当該境界角度が当該基準角度と等しくなるまで、前記傾斜算出ステップが実行される度に繰り返し実行する減少ステップを含む、請求項2に記載の情報処理プログラム。
  4. 前記減少ステップにおける減少処理は、前記境界角度データにより示される境界角度が前記傾斜算出ステップで算出された傾斜角度を下回らない範囲で当該境界角度を減少させるように実行される、請求項3に記載の情報処理プログラム。
  5. 前記入力装置は、当該入力装置に生じる加速度を検出する加速度センサを備えており、
    前記傾斜算出ステップは、
    前記加速度センサによって検出される加速度を取得する取得ステップと、
    前記取得された加速度を用いて前記入力装置の傾斜角度を算出する算出実行ステップとを含む、請求項1に記載の情報処理プログラム。
  6. 前記傾斜算出ステップは、前記取得された加速度を修正する修正ステップをさらに含み、
    前記取得ステップ、前記修正ステップ、および前記算出実行ステップは、繰り返し実行され、
    前記修正ステップにおいて、前記コンピュータは、前記取得ステップにおいて今回取得された加速度を、前回に修正した加速度へと近づけるように加速度を修正し、
    前記算出実行ステップにおいて、前記コンピュータは、前記修正ステップによる修正後の加速度を用いて前記入力装置の傾斜角度を算出する、請求項5に記載の情報処理プログラム。
  7. 前記修正ステップにおいて、前記コンピュータは、今回取得された加速度の大きさが重力加速度の大きさに近いほど、今回取得された加速度の大きさに近くなるように加速度を修正する、請求項6に記載の情報処理プログラム。
  8. 前記加速度センサは、前記入力装置を基準として設定される所定の3次元座標系の各軸方向の加速度を検出し、
    前記取得ステップにおいて、前記コンピュータは、前記3次元座標系における3次元ベクトルで表される加速度を前記加速度センサから取得し、
    前記算出実行ステップにおいて、前記コンピュータは、前記3次元ベクトルを、前記3次元座標系の原点を通る平面上の2次元ベクトルに変換し、変換した2次元ベクトルによって前記入力装置の傾斜角度を表す、請求項5に記載の情報処理プログラム。
  9. 前記算出実行ステップにおいて、前記コンピュータは、前記3次元ベクトルを、前記3次元座標系の1軸を含む平面上の2次元ベクトルに変換する、請求項8に記載の情報処理プログラム。
  10. 任意の角度に傾けることが可能な入力装置の傾斜角度に応じた出力値を所定範囲内で算出する情報処理装置であって、
    前記出力値が前記所定範囲の境界の値をとる場合における前記入力装置の傾斜角度に相当する境界角度を示す境界角度データを記憶する記憶手段と、
    前記入力装置の傾斜角度に応じて値が変化する入力データを前記入力装置から取得して前記入力装置の傾斜角度を算出する傾斜算出手段と、
    前記傾斜算出手段によって算出された傾斜角度が前記境界角度データにより示される境界角度を超える場合、当該算出された傾斜角度が新たな境界角度となるように前記境界角度データを更新する第1更新手段と、
    前記境界角度データにより示される境界角度に対する前記算出された傾斜角度の割合に基づいて前記出力値を算出する出力算出手段とを備える、情報処理装置。
  11. 前記記憶手段は、前記境界角度の基準角度をさらに記憶し、
    前記傾斜算出手段によって算出された傾斜角度が前記境界角度データにより示される境界角度よりも小さい場合、当該境界角度が前記基準角度となるように境界角度データを更新する第2更新手段をさらに備える、請求項1に記載の情報処理装置。
  12. 前記傾斜算出手段は、前記傾斜角度を繰り返し算出し、
    前記第2更新手段は、前記境界角度データにより示される境界角度が前記基準角度を下回らない範囲で当該境界角度を減少する処理を、当該境界角度が当該基準角度と等しくなるまで、前記傾斜角度の算出が実行される度に繰り返し実行する減少手段を含む、請求項11に記載の情報処理装置。
  13. 前記減少手段による減少処理は、前記境界角度データにより示される境界角度が前記傾斜算出手段によって算出された傾斜角度を下回らない範囲で当該境界角度を減少させるように実行される、請求項12に記載の情報処理装置。
  14. 任意の角度に傾けることが可能な入力装置の傾斜角度に応じた出力値を所定範囲内で算出する方法であって、
    前記情報処理装置の記憶手段には、前記出力値が前記所定範囲の境界の値をとる場合における前記入力装置の傾斜角度に相当する境界角度を示す境界角度データが記憶され、
    前記入力装置の傾斜角度に応じて値が変化する入力データを前記入力装置から取得して前記入力装置の傾斜角度を算出する傾斜算出ステップと、
    前記傾斜算出ステップで算出された傾斜角度が前記境界角度データにより示される境界角度を超える場合、当該算出された傾斜角度が新たな境界角度となるように前記境界角度データを更新する第1更新ステップと、
    前記境界角度データにより示される境界角度に対する前記算出された傾斜角度の割合に基づいて前記出力値を算出する出力算出ステップとを含む、傾斜角度に応じた出力値の算出方法。
JP2008010842A 2008-01-21 2008-01-21 情報処理プログラムおよび情報処理装置 Active JP5224832B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008010842A JP5224832B2 (ja) 2008-01-21 2008-01-21 情報処理プログラムおよび情報処理装置
EP08005592.4A EP2081105B2 (en) 2008-01-21 2008-03-26 Storage medium storing information processing program and information processing apparatus for measuring the tilt angle of an input apparatus
US12/078,111 US7698096B2 (en) 2008-01-21 2008-03-27 Information processing apparatus, storage medium, and methodology for calculating an output value based on a tilt angle of an input device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008010842A JP5224832B2 (ja) 2008-01-21 2008-01-21 情報処理プログラムおよび情報処理装置

Publications (2)

Publication Number Publication Date
JP2009172010A true JP2009172010A (ja) 2009-08-06
JP5224832B2 JP5224832B2 (ja) 2013-07-03

Family

ID=39531301

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008010842A Active JP5224832B2 (ja) 2008-01-21 2008-01-21 情報処理プログラムおよび情報処理装置

Country Status (3)

Country Link
US (1) US7698096B2 (ja)
EP (1) EP2081105B2 (ja)
JP (1) JP5224832B2 (ja)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012252468A (ja) * 2011-06-01 2012-12-20 Nintendo Co Ltd 情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法
JP2012252469A (ja) * 2011-06-01 2012-12-20 Nintendo Co Ltd 情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法
JP2013176528A (ja) * 2011-06-03 2013-09-09 Nintendo Co Ltd 自動センタリング機能付きのジャイロ制御されるゲーム視点のための装置および方法
US9205327B2 (en) 2011-03-08 2015-12-08 Nintento Co., Ltd. Storage medium having information processing program stored thereon, information processing apparatus, information processing system, and information processing method
JP2015230699A (ja) * 2014-06-06 2015-12-21 任天堂株式会社 情報処理システム及び情報処理プログラム
WO2016079828A1 (ja) * 2014-11-19 2016-05-26 ニャフーン・ゲームス・ピーティーイー・エルティーディー 打撃操作のためのユーザーインターフェースシステムと操作信号解析方法及びプログラム
US9375640B2 (en) 2011-03-08 2016-06-28 Nintendo Co., Ltd. Information processing system, computer-readable storage medium, and information processing method
US9539511B2 (en) 2011-03-08 2017-01-10 Nintendo Co., Ltd. Computer-readable storage medium, information processing system, and information processing method for operating objects in a virtual world based on orientation data related to an orientation of a device
US9561443B2 (en) 2011-03-08 2017-02-07 Nintendo Co., Ltd. Computer-readable storage medium, information processing system, and information processing method
US9643085B2 (en) 2011-03-08 2017-05-09 Nintendo Co., Ltd. Computer-readable storage medium, information processing system, and information processing method for controlling a virtual object using attitude data
US9925464B2 (en) 2011-03-08 2018-03-27 Nintendo Co., Ltd. Computer-readable storage medium, information processing system, and information processing method for displaying an image on a display device using attitude data of a display device
JP2019016362A (ja) * 2018-08-08 2019-01-31 任天堂株式会社 情報処理システム及び情報処理プログラム

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4748657B2 (ja) * 2005-06-24 2011-08-17 任天堂株式会社 入力データ処理プログラムおよび入力データ処理装置
JP4916390B2 (ja) * 2007-06-20 2012-04-11 任天堂株式会社 情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法
US20100292007A1 (en) * 2007-06-26 2010-11-18 Nintendo Of America Inc. Systems and methods for control device including a movement detector
JP5429918B2 (ja) * 2008-02-15 2014-02-26 任天堂株式会社 情報処理プログラムおよび情報処理装置
US8050886B2 (en) * 2008-08-15 2011-11-01 Apple Inc. Motion plane correction for MEMs-based input devices
JP5537083B2 (ja) * 2009-07-31 2014-07-02 任天堂株式会社 情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法
US8348760B2 (en) * 2010-02-05 2013-01-08 Sony Computer Entertainment Inc. Systems and methods for determining controller functionality based on position, orientation or motion
US8428394B2 (en) * 2010-05-25 2013-04-23 Marcus KRIETER System and method for resolving spatial orientation using intelligent optical selectivity
TWI437230B (zh) * 2010-07-29 2014-05-11 Chi Mei Comm Systems Inc 可攜式電子裝置解鎖系統及方法
DE102012201498A1 (de) * 2012-02-02 2013-08-08 Robert Bosch Gmbh Bedienvorrichtung und Verfahren zum Betrieb einer Bedienvorrichtung
EP2990085B1 (en) 2014-08-29 2022-08-10 Nintendo Co., Ltd. Method and apparatus for estimating the value of an input in presence of a perturbing factor
US9977565B2 (en) 2015-02-09 2018-05-22 Leapfrog Enterprises, Inc. Interactive educational system with light emitting controller
CN107532907A (zh) * 2015-03-13 2018-01-02 桑男 姿势检测设备
JP6877995B2 (ja) 2016-12-27 2021-05-26 任天堂株式会社 振動制御システム、振動制御装置、振動制御プログラムおよび振動制御方法
JP6912889B2 (ja) * 2017-01-12 2021-08-04 任天堂株式会社 ゲームシステムおよびゲームコントローラ
JP6594920B2 (ja) 2017-03-01 2019-10-23 任天堂株式会社 ゲームシステム、ゲーム装置、ゲームプログラム、およびゲーム処理方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006075218A (ja) * 2004-09-07 2006-03-23 Nintendo Co Ltd ゲームプログラム
JP2007061489A (ja) * 2005-09-01 2007-03-15 Nintendo Co Ltd 情報処理システムおよびプログラム

Family Cites Families (104)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3454920A (en) 1967-03-10 1969-07-08 Measurement Systems Inc Isometric control device
DE2613435A1 (de) 1976-03-30 1977-10-20 Itt Ind Gmbh Deutsche Fernsehempfaenger mit einer zusatzeinrichtung zur darstellung von spielsymbolen auf dem bildschirm
US4240638A (en) 1978-01-06 1980-12-23 Marvin Glass & Associates Microprocessor controlled game apparatus
JPS6077231A (ja) 1983-10-03 1985-05-01 Fujitsu Ltd カ−ソル移動制御装置
US4739128A (en) 1986-11-10 1988-04-19 American Telephone And Telegraph Company, At&T Bell Laboratories Thumb-controlled, hand-held joystick
US4816810A (en) 1987-08-28 1989-03-28 Moore Robert F Remote acceptance switch for computer mouse
US4994795A (en) 1988-12-08 1991-02-19 Mackenzie Kirk F Position indicating device for a digital computer
US4994532A (en) 1989-06-16 1991-02-19 General Electric Company Polycarbonate-silicone block copolymer compositions
GB2244546A (en) 1990-05-10 1991-12-04 Primax Electronics Ltd Computer input device
US5332322A (en) 1991-06-06 1994-07-26 Gambaro Thomas L Ergonomic thumb-actuable keyboard for a hand-grippable device
US5178477A (en) 1991-06-06 1993-01-12 Gambaro Thomas L Ergonomic keyboard input device
JPH0556191A (ja) 1991-08-27 1993-03-05 Matsushita Electric Ind Co Ltd 市外局番検索時間の短縮検索方法
US6906700B1 (en) 1992-03-05 2005-06-14 Anascape 3D controller with vibration
US5551701A (en) 1992-08-19 1996-09-03 Thrustmaster, Inc. Reconfigurable video game controller with graphical reconfiguration display
US5296871A (en) 1992-07-27 1994-03-22 Paley W Bradford Three-dimensional mouse with tactile feedback
JP3218716B2 (ja) 1992-07-31 2001-10-15 ソニー株式会社 入力装置、及び入力システム
JP3907213B2 (ja) 1992-09-11 2007-04-18 伸壹 坪田 ゲーム制御装置
JPH06154422A (ja) 1992-11-24 1994-06-03 Namco Ltd ゲーム装置の操作ボタン
JP3086827B2 (ja) 1992-12-28 2000-09-11 株式会社セガ・エンタープライゼス コントロールキー装置
JPH0722312A (ja) 1993-06-22 1995-01-24 Nec Corp 歪半導体膜の製造方法
JPH0764754A (ja) * 1993-08-24 1995-03-10 Hitachi Ltd 小型情報処理装置
US5563628A (en) 1993-10-12 1996-10-08 Stroop; Jeffrey A. Hand held computer cursor controller and command input device
US5574479A (en) 1994-01-07 1996-11-12 Selectech, Ltd. Optical system for determining the roll orientation of a remote unit relative to a base unit
US5512892A (en) 1994-02-25 1996-04-30 International Business Machines Corporation Hand held control device
GB2289756B (en) 1994-05-26 1998-11-11 Alps Electric Co Ltd Space coordinates detecting device and input apparatus using same
US5528265A (en) 1994-07-18 1996-06-18 Harrison; Simon J. Orientation-operated cursor control device
JP3603285B2 (ja) 1994-07-21 2004-12-22 株式会社セガ 画像処理装置
US5531443A (en) 1994-09-13 1996-07-02 Cruz; Jose L. Keypad controller for use with a video game
CN2211084Y (zh) 1994-11-15 1995-10-25 郑秋豪 可分离的电视游戏机键盘
KR100429078B1 (ko) 1995-05-10 2004-04-29 닌텐도가부시키가이샤 아날로그 조이스틱을 구비한 조작장치
US5724106A (en) 1995-07-17 1998-03-03 Gateway 2000, Inc. Hand held remote control device with trigger button
US5670988A (en) 1995-09-05 1997-09-23 Interlink Electronics, Inc. Trigger operated electronic device
US6007428A (en) 1995-10-09 1999-12-28 Nintendo Co., Ltd. Operation controlling device and video processing system used therewith
US5702305A (en) 1996-02-15 1997-12-30 Motorola Electronic game system
WO1997032641A1 (en) 1996-03-05 1997-09-12 Sega Enterprises, Ltd. Controller and extension unit for controller
US6184862B1 (en) 1996-07-08 2001-02-06 Thomas Leiper Apparatus for audio dictation and navigation of electronic images and documents
US6128002A (en) 1996-07-08 2000-10-03 Leiper; Thomas System for manipulation and display of medical images
JPH1033831A (ja) 1996-07-19 1998-02-10 Data East Kk ビデオガンゲーム装置
US6013633A (en) * 1997-08-07 2000-01-11 University Of Cincinnati Compounds for control of appetite, blood pressure, cardiovascular response, libido, and circadian rhythm
JPH1099542A (ja) 1996-09-27 1998-04-21 Mitsumi Electric Co Ltd コンピュータゲーム機用コントロールパッドの背面キー取付構造
US6010406A (en) 1996-11-20 2000-01-04 Alps Electric Co., Ltd. Operation device for game machine
US6146278A (en) 1997-01-10 2000-11-14 Konami Co., Ltd. Shooting video game machine
US5875257A (en) 1997-03-07 1999-02-23 Massachusetts Institute Of Technology Apparatus for controlling continuous behavior through hand and arm gestures
US5973757A (en) 1997-03-31 1999-10-26 Aubuchon; Mark S. Contoured and balanced remote tv control device
US5986644A (en) 1997-07-30 1999-11-16 Selectech, Ltd. Remote control system
US5982356A (en) 1997-10-15 1999-11-09 Akiyama; Robert Ergonomic computer cursor control apparatus and mount
US6280327B1 (en) 1998-06-05 2001-08-28 Arista Interactive Llc Wireless game control units
CA2248745C (en) 1998-02-13 2005-08-23 Arista Interactive Llc Wireless game control units
US6297751B1 (en) 1998-07-10 2001-10-02 Lucent Technologies Inc. Low-voltage joystick port interface
US7102616B1 (en) * 1999-03-05 2006-09-05 Microsoft Corporation Remote control device with pointing capacity
US6545661B1 (en) 1999-06-21 2003-04-08 Midway Amusement Games, Llc Video game system having a control unit with an accelerometer for controlling a video game
US6596776B2 (en) * 1999-06-21 2003-07-22 Hauser, Inc. High molecular weight primary aliphatic alcohols obtained from natural products and uses thereof
US20020010021A1 (en) 1999-08-03 2002-01-24 Mccauley Jack Jean Method and device for optical gun interaction with a computer game system
US20010010514A1 (en) 1999-09-07 2001-08-02 Yukinobu Ishino Position detector and attitude detector
JP2001149653A (ja) 1999-11-25 2001-06-05 Namco Ltd ゲーム装置、経路選択方法および情報記憶媒体
US7445550B2 (en) 2000-02-22 2008-11-04 Creative Kingdoms, Llc Magical wand and interactive play experience
US20010030667A1 (en) 2000-04-10 2001-10-18 Kelts Brett R. Interactive display interface for information objects
US6394904B1 (en) 2000-05-12 2002-05-28 Twentieth Century Fox Film Simulation system
US6724366B2 (en) 2001-04-03 2004-04-20 Peter James Crawford Thumb actuated x-y input device
JP3611807B2 (ja) 2001-07-19 2005-01-19 コナミ株式会社 ビデオゲーム装置、ビデオゲームにおける擬似カメラ視点移動制御方法及びプログラム
KR100425301B1 (ko) 2001-08-17 2004-03-30 삼성전자주식회사 모듈화된 리모트 컨트롤러
US6816151B2 (en) 2001-11-09 2004-11-09 Terry L. Dellinger Hand-held trackball computer pointing device
US6982697B2 (en) 2002-02-07 2006-01-03 Microsoft Corporation System and process for selecting objects in a ubiquitous computing environment
US20060282873A1 (en) * 2002-07-27 2006-12-14 Sony Computer Entertainment Inc. Hand-held controller having detectable elements for tracking purposes
FR2847689B1 (fr) 2002-11-27 2005-01-21 Commissariat Energie Atomique Procede et dispositif de capture du mouvement d'un solide, utilisant au moins une camera et un capteur angulaire
US20040152515A1 (en) 2003-02-05 2004-08-05 Logitech Europe S.A. Cordless game controller system
JP2005040493A (ja) 2003-07-25 2005-02-17 Hori Co Ltd ビデオゲーム機用のコントローラ
JP4276494B2 (ja) 2003-08-15 2009-06-10 アルプス電気株式会社 入力装置
JP3601793B1 (ja) 2003-11-05 2004-12-15 任天堂株式会社 移動時間算出プログラム及び情報記録媒体
KR100594971B1 (ko) * 2004-01-09 2006-06-30 삼성전자주식회사 지자기 센서를 이용한 입력장치 및 이를 이용한 입력신호생성방법
ES2664472T3 (es) 2004-04-30 2018-04-19 Idhl Holdings, Inc. Dispositivos de señalización de espacio libre con compensación de inclinación y facilidad de uso mejorada
US7292151B2 (en) 2004-07-29 2007-11-06 Kevin Ferguson Human movement measurement system
JP4658544B2 (ja) 2004-09-03 2011-03-23 任天堂株式会社 ゲームプログラム、ゲーム装置、および入力装置
US7796116B2 (en) 2005-01-12 2010-09-14 Thinkoptics, Inc. Electronic equipment for handheld vision based absolute pointing system
EP1851606A1 (en) 2005-02-24 2007-11-07 Nokia Corporation Motion-input device for a computing terminal and method of its operation
JP2006239945A (ja) 2005-03-01 2006-09-14 Seiko Epson Corp 画像印刷装置、画像印刷方法及びそのプログラム
US7942745B2 (en) 2005-08-22 2011-05-17 Nintendo Co., Ltd. Game operating device
JP4805633B2 (ja) 2005-08-22 2011-11-02 任天堂株式会社 ゲーム用操作装置
US7927216B2 (en) 2005-09-15 2011-04-19 Nintendo Co., Ltd. Video game system with wireless modular handheld controller
JP4262726B2 (ja) 2005-08-24 2009-05-13 任天堂株式会社 ゲームコントローラおよびゲームシステム
US8870655B2 (en) 2005-08-24 2014-10-28 Nintendo Co., Ltd. Wireless game controllers
US8308563B2 (en) 2005-08-30 2012-11-13 Nintendo Co., Ltd. Game system and storage medium having game program stored thereon
US8157651B2 (en) 2005-09-12 2012-04-17 Nintendo Co., Ltd. Information processing program
JP4773170B2 (ja) 2005-09-14 2011-09-14 任天堂株式会社 ゲームプログラムおよびゲームシステム
JP4892995B2 (ja) 2006-01-31 2012-03-07 日産自動車株式会社 パワーステアリング装置
JP4895352B2 (ja) 2006-02-07 2012-03-14 任天堂株式会社 対象選択プログラム、対象選択装置、対象選択システム、および対象選択方法
JP4837405B2 (ja) 2006-03-09 2011-12-14 任天堂株式会社 座標算出装置および座標算出プログラム
JP4530419B2 (ja) 2006-03-09 2010-08-25 任天堂株式会社 座標算出装置および座標算出プログラム
JP4260814B2 (ja) 2006-03-09 2009-04-30 任天堂株式会社 ゲーム装置およびゲームプログラム
JP5424373B2 (ja) 2006-03-09 2014-02-26 任天堂株式会社 画像処理装置、画像処理プログラム、画像処理システム、および画像処理方法
JP4330593B2 (ja) 2006-03-13 2009-09-16 任天堂株式会社 ゲーム装置およびゲームプログラム
JP4547346B2 (ja) 2006-03-22 2010-09-22 任天堂株式会社 傾き算出装置および傾き算出プログラムならびにゲーム装置およびゲームプログラム
JP4798705B2 (ja) 2006-03-23 2011-10-19 任天堂株式会社 位置算出装置、位置算出プログラム、ゲーム装置、およびゲームプログラム
JP5037842B2 (ja) * 2006-03-28 2012-10-03 任天堂株式会社 情報処理装置およびプログラム
JP4684147B2 (ja) 2006-03-28 2011-05-18 任天堂株式会社 傾き算出装置、傾き算出プログラム、ゲーム装置およびゲームプログラム
JP4795087B2 (ja) 2006-04-14 2011-10-19 任天堂株式会社 ゲーム装置およびゲームプログラム
JP4989105B2 (ja) 2006-05-09 2012-08-01 任天堂株式会社 ゲームコントローラ
JP5483660B2 (ja) 2006-06-01 2014-05-07 株式会社半導体エネルギー研究所 半導体装置
JP5051822B2 (ja) 2006-08-02 2012-10-17 任天堂株式会社 汎用遠隔制御機能を備えたゲーム装置
JP4689585B2 (ja) * 2006-11-29 2011-05-25 任天堂株式会社 情報処理装置および情報処理プログラム
JP5127242B2 (ja) 2007-01-19 2013-01-23 任天堂株式会社 加速度データ処理プログラムおよびゲームプログラム
JP2008192192A (ja) 2007-01-31 2008-08-21 Toshiba Corp 光ディスク装置及びレーザ出力制御方法
JP4916390B2 (ja) 2007-06-20 2012-04-11 任天堂株式会社 情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法
JP5116424B2 (ja) 2007-10-09 2013-01-09 任天堂株式会社 ゲームプログラムおよびゲーム装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006075218A (ja) * 2004-09-07 2006-03-23 Nintendo Co Ltd ゲームプログラム
JP2007061489A (ja) * 2005-09-01 2007-03-15 Nintendo Co Ltd 情報処理システムおよびプログラム

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9526981B2 (en) 2011-03-08 2016-12-27 Nintendo Co., Ltd. Storage medium having stored thereon information processing program, information processing apparatus, information processing system, and information processing method
US9539511B2 (en) 2011-03-08 2017-01-10 Nintendo Co., Ltd. Computer-readable storage medium, information processing system, and information processing method for operating objects in a virtual world based on orientation data related to an orientation of a device
US9492743B2 (en) 2011-03-08 2016-11-15 Nintendo Co., Ltd. Storage medium having stored thereon information processing program, information processing apparatus, information processing system, and information processing method
US9492742B2 (en) 2011-03-08 2016-11-15 Nintendo Co., Ltd. Storage medium having stored thereon information processing program, information processing apparatus, information processing system, and information processing method
US9375640B2 (en) 2011-03-08 2016-06-28 Nintendo Co., Ltd. Information processing system, computer-readable storage medium, and information processing method
US9345962B2 (en) 2011-03-08 2016-05-24 Nintendo Co., Ltd. Storage medium having stored thereon information processing program, information processing apparatus, information processing system, and information processing method
US9925464B2 (en) 2011-03-08 2018-03-27 Nintendo Co., Ltd. Computer-readable storage medium, information processing system, and information processing method for displaying an image on a display device using attitude data of a display device
US9370712B2 (en) 2011-03-08 2016-06-21 Nintendo Co., Ltd. Information processing system, information processing apparatus, storage medium having information processing program stored therein, and image display method for controlling virtual objects based on at least body state data and/or touch position data
US9643085B2 (en) 2011-03-08 2017-05-09 Nintendo Co., Ltd. Computer-readable storage medium, information processing system, and information processing method for controlling a virtual object using attitude data
US9561443B2 (en) 2011-03-08 2017-02-07 Nintendo Co., Ltd. Computer-readable storage medium, information processing system, and information processing method
US9205327B2 (en) 2011-03-08 2015-12-08 Nintento Co., Ltd. Storage medium having information processing program stored thereon, information processing apparatus, information processing system, and information processing method
US9522323B2 (en) 2011-03-08 2016-12-20 Nintendo Co., Ltd. Storage medium having stored thereon information processing program, information processing apparatus, information processing system, and information processing method
JP2012252468A (ja) * 2011-06-01 2012-12-20 Nintendo Co Ltd 情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法
JP2012252469A (ja) * 2011-06-01 2012-12-20 Nintendo Co Ltd 情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法
JP2013176528A (ja) * 2011-06-03 2013-09-09 Nintendo Co Ltd 自動センタリング機能付きのジャイロ制御されるゲーム視点のための装置および方法
JP2015230699A (ja) * 2014-06-06 2015-12-21 任天堂株式会社 情報処理システム及び情報処理プログラム
WO2016079828A1 (ja) * 2014-11-19 2016-05-26 ニャフーン・ゲームス・ピーティーイー・エルティーディー 打撃操作のためのユーザーインターフェースシステムと操作信号解析方法及びプログラム
JP2019016362A (ja) * 2018-08-08 2019-01-31 任天堂株式会社 情報処理システム及び情報処理プログラム

Also Published As

Publication number Publication date
EP2081105B2 (en) 2018-02-21
US7698096B2 (en) 2010-04-13
EP2081105A3 (en) 2013-05-15
EP2081105A2 (en) 2009-07-22
JP5224832B2 (ja) 2013-07-03
EP2081105B1 (en) 2014-10-15
US20090187371A1 (en) 2009-07-23

Similar Documents

Publication Publication Date Title
JP5224832B2 (ja) 情報処理プログラムおよび情報処理装置
JP5060798B2 (ja) 情報処理プログラムおよび情報処理装置
JP4918376B2 (ja) 情報処理プログラムおよび情報処理装置
JP5035972B2 (ja) 情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法
JP5038465B2 (ja) 情報処理プログラム、情報処理装置、情報処理方法および情報処理システム
JP5153122B2 (ja) ゲームプログラムおよびゲーム装置
JP2011239985A (ja) ゲーム装置、ゲームプログラム、ゲームシステム、およびゲーム処理方法
JP5358168B2 (ja) ゲーム装置およびゲームプログラム
JP5537083B2 (ja) 情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法
JP5797046B2 (ja) ポインティングシステム、情報処理システム、座標系等の設定方法、情報処理装置、および情報処理プログラム
JP5872137B2 (ja) 姿勢算出装置、姿勢算出プログラム、姿勢算出システム、および、姿勢算出方法
JP2008276636A (ja) 情報処理装置および情報処理プログラム
JP2010020554A (ja) 情報処理プログラムおよび情報処理装置
JP5525177B2 (ja) 情報処理プログラム、および、情報処理装置
JP5576721B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム方法
US20100286940A1 (en) Storage medium storing information processing program, and information processing apparatus
JP4220531B2 (ja) 重力方向算出装置および重力方向算出プログラム
JP6262563B2 (ja) 情報処理プログラム、情報処理装置、情報処理システム、および、情報処理方法
JP6280390B2 (ja) 情報処理プログラム、情報処理装置、情報処理システム、および、情報処理方法
JP2015038752A (ja) 座標算出装置および座標算出プログラム
JP5393218B2 (ja) ゲーム装置およびゲームプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101214

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110902

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130220

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130312

R150 Certificate of patent or registration of utility model

Ref document number: 5224832

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160322

Year of fee payment: 3

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250