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

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

Info

Publication number
JP2011028671A
JP2011028671A JP2009176294A JP2009176294A JP2011028671A JP 2011028671 A JP2011028671 A JP 2011028671A JP 2009176294 A JP2009176294 A JP 2009176294A JP 2009176294 A JP2009176294 A JP 2009176294A JP 2011028671 A JP2011028671 A JP 2011028671A
Authority
JP
Japan
Prior art keywords
detailed
coordinates
detection
input
unit area
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
JP2009176294A
Other languages
English (en)
Other versions
JP5437726B2 (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
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2009176294A priority Critical patent/JP5437726B2/ja
Priority to EP09173509.2A priority patent/EP2282253B1/en
Priority to US12/614,720 priority patent/US9833706B2/en
Publication of JP2011028671A publication Critical patent/JP2011028671A/ja
Application granted granted Critical
Publication of JP5437726B2 publication Critical patent/JP5437726B2/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
    • A63F13/426Processing 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 on-screen location information, e.g. screen coordinates of an area at which the player is aiming with a light gun
    • 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/214Input arrangements for video game devices characterised by their sensors, purposes or types for locating contacts on a surface, e.g. floor mats or touch pads
    • A63F13/2145Input arrangements for video game devices characterised by their sensors, purposes or types for locating contacts on a surface, e.g. floor mats or touch pads the surface being also a display device, e.g. touch screens
    • 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
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • 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/214Input arrangements for video game devices characterised by their sensors, purposes or types for locating contacts on a surface, e.g. floor mats or touch pads
    • 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/55Controlling game characters or game objects based on the game progress
    • A63F13/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
    • 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/1068Features 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 to detect the point of contact of the player on a surface, e.g. floor mat, touch pad
    • 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)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Position Input By Displaying (AREA)

Abstract

【課題】ポインティングデバイスを用いて入力を行う場合において、指示面に対して入力された位置をより詳細に認識する。
【解決手段】タッチパネルは、指示面上に格子状に配置される複数の単位領域のうちで入力が行われた単位領域の位置を検出する。ゲーム装置は、ポインティングデバイスが検出した単位領域の位置を示す検出座標を繰り返し取得する。また、ゲーム装置は、検出座標を取得することに応じて、検出座標よりも詳細な位置を表現可能な詳細座標を繰り返し算出する。ここで、詳細座標は、今回に取得された検出座標が示す単位領域内の所定の基準位置を、前回に取得された検出座標が示す単位領域の方向へ移動させた位置を示す。
【選択図】図4

Description

本発明は、情報処理プログラムおよび情報処理装置に関し、より特定的には、ポインティングデバイスを用いて入力を行う情報処理プログラムおよび情報処理装置に関する。
特許文献1には、ポインティングデバイスとしてタッチパネルを用いたゲーム装置が開示されている。特許文献1に記載されているような通常のタッチパネルは、タッチパネルの入力面に対してタッチペンや指等を接触させた場合に接触位置を検出し、当該接触位置を示す座標を出力する。ゲーム装置は、タッチパネルから出力された座標を入力位置として用いてゲーム処理を実行する。
特開2006−271782号公報
従来、ゲーム装置は、タッチパネルが認識可能な精度でしか入力位置を認識することができなかった。そのため、ユーザがタッチパネル上に軌跡を描く場合には、タッチパネルが出力した座標値よりも詳細に軌跡を認識することができなかった。このように、ポインティングデバイスにおいて入力位置を検出する従来の方法では、情報処理装置は、ポインティングデバイスの検出精度以上に詳細に入力位置を認識することができなかった。
それ故、本発明の目的は、ポインティングデバイスを用いて入力を行う場合において、指示面に対して入力された位置をより詳細に認識することが可能な情報処理装置を提供することである。
本発明は、上記の課題を解決するために、以下の(1)〜(12)の構成を採用した。
(1)
本発明は、指示面に対する入力を検出するポインティングデバイスから検出結果を取得可能な情報処理装置のコンピュータで実行される情報処理プログラムである。ポインティングデバイスは、指示面上に格子状に配置される複数の単位領域のうちで入力が行われた単位領域の位置を検出する。情報処理プログラムは、取得手段、および、詳細座標算出手段としてコンピュータを機能させる。取得手段は、ポインティングデバイスが検出した単位領域の位置を示す検出座標を繰り返し取得する。詳細座標算出手段は、取得手段が検出座標を取得することに応じて、検出座標よりも詳細な精度で指示面上の位置を表現可能な詳細座標を繰り返し算出する。また、詳細座標算出手段は、今回に取得された検出座標が示す単位領域内の所定の基準位置を、前回に取得された検出座標が示す単位領域の方向へ移動させた位置を示す詳細座標を算出する。
上記において、「ポインティングデバイス」とは、後述する実施形態に記載のタッチパネルの他、マウスやタッチパッド等の入力装置や、後述する[他の実施形態]に記載のような遠隔から画面上の位置を指示する入力システム等を含む概念である。
上記「情報処理装置」とは、後述する実施形態に記載のゲーム装置の他、任意のコンピュータプログラムを実行することによって情報処理を行うコンピュータを含む概念である。また、上記「情報処理装置」は、携帯型か否かを問わない。
上記「情報処理プログラム」とは、後述する実施形態に記載のゲームプログラムの他、パーソナルコンピュータや携帯端末において実行されるアプリケーションプログラムを含む概念である。
上記「取得手段」は、検出座標を繰り返し取得する手段であればよく、検出座標の情報(データ)をポインティングデバイスから直接取得してもよいし、所定のインターフェース回路を介してポインティングデバイスから間接的に取得してもよい。また、「取得手段」は、後述する実施形態におけるステップS3の処理のように、所定時間に1回の割合で検出座標を取得する手段の他、検出座標を取得するタイミングが不定期であるものであってもよい。
上記「検出座標」は、入力が行われた単位領域の位置を示す座標であり、ポインティングデバイスが検出する座標である。上記「検出座標」は、後述する実施形態では、指示面上の位置を0以上の整数の座標値によって表現するものであるが、離散的な数値で指示面上の位置を表す座標値であればどのようなものであってもよく、検出精度は任意である。
上記「詳細座標」は、検出座標よりも詳細な精度で指示面上の位置を表現するものであり、検出座標で表現できない桁を、具体的な数値として表現するものである。後述する実施形態では、「詳細座標」は、指示面上の位置を小数第1位までの数の座標値によって表現するものであるが、検出座標よりも詳細な精度で指示面上の位置を表現するものであればよい。
上記「詳細座標算出手段」は、取得手段が検出座標を取得することに応じて詳細座標を算出するものであるが、後述する実施形態のように、取得手段が検出座標を取得する度に詳細座標を算出してもよいし、取得手段が検出座標を複数回取得することに応じて1回詳細座標を算出してもよい。また、「詳細座標算出手段」における詳細座標の算出方法は、後述する実施形態におけるステップS15の処理における算出方法の他、後述する図6および図7に示す算出方法や、本欄の(2)〜(7)の構成による算出方法であってもよい。
上記「所定の基準位置」とは、後述する実施形態においては、単位領域の中心位置であるが、単位領域内の予め定められた位置であればよく、後述する「中心に相当する位置」であってもよい。
また、上記「前回に取得された検出座標が示す単位領域の方向へ移動させた位置」とは、移動する方向を特定する意図であり、移動後の位置が「前回に取得された検出座標が示す単位領域」の内部であるか外部であるか境界であるかを問わない。また、「今回に取得された検出座標が示す単位領域」の内部であるか外部であるか境界であるかも問わない。
また、上記「前回に取得された検出座標が示す単位領域の方向」とは、当該単位領域に近づく方向であればよく、当該単位領域の基準位置に向かう方向でも良いし、当該単位領域の内部または境界上の所定位置に向かう方向でもよい。
上記(1)の構成によれば、検出座標よりも詳細な位置を表現可能な詳細座標によって入力位置を認識することができ、指示面に対して入力された位置をより詳細に認識することが可能となる。また、詳細座標は、今回に取得された検出座標が示す単位領域内の基準位置から、前回に取得された検出座標が示す単位領域の方向へ移動させた位置を表すものとして算出される。このように詳細座標が算出される場合、各詳細座標の位置が基準位置から前回の単位領域の方へ近づいた位置となる結果、各検出座標の間隔に比べて各詳細座標の間隔が短くなる(等しいままの箇所もある)。そのため、上記のように算出された詳細座標を結ぶ軌跡は、検出座標をそのまま結ぶ軌跡に比べて滑らかになる。したがって、詳細座標により示される入力位置は、検出座標により示される入力位置に比べて、ユーザが実際に入力した位置に近いと考えられ、ユーザ入力をより正確に表していると言える。すなわち、本発明によれば、指示面に対する連続的な入力に対応する各入力座標をより詳細にかつ正確に算出することが可能となる。
(2)
また、詳細座標算出手段は、今回に取得された検出座標が示す単位領域内の中心に相当する位置を、前回に取得された検出座標が示す単位領域(A2)の方向へ移動させた位置を示す詳細座標を算出してもよい。
なお、上記「単位領域内の中心に相当する位置」とは、中心の正確な位置の他、詳細座標の表現可能な数値によっては、詳細座標が中心位置を正確に表現することができない場合があるので、以下の位置であってもよい。
・詳細座標が表現可能な位置のうちで、中心に最も近い位置。
・詳細座標が表現可能な位置であって、かつ、中心を表す座標値よりも小さい座標値で表される位置のうちで、中心に最も近い位置。
・詳細座標が表現可能な位置であって、かつ、中心を表す座標値よりも大きい座標値で表される位置のうちで、中心に最も近い位置。
上記(2)の構成によれば、詳細座標を算出(移動)する基準となる位置を検出領域の略中心の位置とするので、上下左右のいずれの方向に移動させる場合でも均等に詳細座標を移動させることができる。したがって、どの方向に入力を行う場合でもほぼ同じ条件で詳細座標が算出されることとなり、より正確に入力位置を算出することができる。
(3)
詳細座標算出手段は、前回に算出された詳細座標の位置と、今回に取得された検出座標が示す単位領域の中心に相当する位置とを結ぶ線分上で、かつ、当該線分の両端以外の位置を示す詳細座標を算出してもよい。
上記において「線分の両端以外の位置」とは、上記線分上の位置であって、上記「前回に算出された詳細座標の位置」と上記「今回に取得された検出座標が示す単位領域の中心に相当する位置」とを除く位置を指す。したがって、「線分の両端以外の位置」には、後述する(5)〜(7)で示す位置が含まれる。
上記(3)の構成によれば、前回に算出された詳細座標の位置と、今回に取得された検出座標が示す単位領域の中心に相当する位置とを用いることによって、詳細座標を容易に算出することができる。
(4)
詳細座標算出手段は、前回に取得された検出座標が示す単位領域の中心に相当する位置と、今回に取得された検出座標が示す単位領域の中心に相当する位置とを結ぶ線分上で、かつ、当該線分の両端以外の位置を示す詳細座標を算出してもよい。
上記(4)の構成によれば、前回に取得された検出座標が示す単位領域の中心に相当する位置と、今回に取得された検出座標が示す単位領域の中心に相当する位置とを用いることによって、詳細座標を容易に算出することができる。
(5)
詳細座標算出手段は、上記(3)または(4)で述べた線分上であって、今回に取得された検出座標が示す単位領域内の位置を示す詳細座標を算出してもよい。
上記(5)の構成によれば、検出座標により示される単位領域と、算出される詳細座標とが一致するので、詳細座標は、現在入力が行われている位置を正確に表すことになる。したがって、ユーザの入力位置を正確に算出することができる。また、上記(5)の構成によれば、検出座標が取得されることに応じて算出される詳細座標が、検出座標が示す単位領域内の位置を示すので、検出座標が取得されることに応じて詳細位置をリアルタイムで算出することができると言える。すなわち、指示面に対して連続して行われる入力に対応する入力位置を、リアルタイムで算出することができる。
(6)
詳細座標算出手段は、上記(3)または(4)で述べた線分上であって、今回に取得された検出座標が示す単位領域に内接する位置を示す詳細座標を算出してもよい。
上記「単位領域に内接する位置」とは、(格子状に配置される単位領域の縦横の方向と、詳細座標の座標系の座標軸の方向とが一致する場合で、かつ、上記詳細座標が離散的な数値である場合、)単位領域内の位置であって、かつ、座標の少なくともいずれかの成分の値が、詳細座標によって表現可能な座標値のうちで、最大または最小となる位置である。
上記(6)の構成によれば、詳細座標は、今回に取得された検出座標が示す単位領域に内接する位置、すなわち、当該単位領域内の位置のうちで、前回に取得された検出座標が示す単位領域に最も近い位置となる。ここで、詳細座標の正確性の観点から言えば、上記(5)で説明したように、今回の詳細座標は今回に取得された検出座標が示す単位領域内の位置となることが好ましい。一方、各詳細座標により示される軌跡の観点から言えば、前回に取得された検出座標が示す単位領域に近い位置であるほど、詳細位置を結ぶ軌跡がより滑らかになり、好ましい。したがって、上記(6)の構成によれば、今回の詳細座標を今回の単位領域内に拘束しつつ、できる限り前回の詳細座標に近づけるので、上記2つの観点のいずれにおいても好ましい詳細座標を算出することができる。
(7)
詳細座標算出手段は、線分上であって、今回に取得された検出座標が示す単位領域の周と線分との交点から所定距離以内の位置を示す詳細座標を算出してもよい。
上記「線分上であって、今回に取得された検出座標が示す単位領域の周と線分との交点から所定距離以内の位置」とは、上記線分のうちで、当該交点を中心として当該中心から上記所定距離の位置を端点とする線分上の位置を指す。例えば図7を例にとって説明すると、「線分上であって、今回に取得された検出座標が示す単位領域の周と線分との交点から所定距離以内の位置」とは、点33と点34とを結ぶ線分上のいずれかの位置である。なお、「線分上であって、今回に取得された検出座標が示す単位領域の周と線分との交点から所定距離以内の位置」には、単位領域に内接する位置および外接する位置が少なくとも含まれる。
上記(7)の構成によれば、詳細座標は、今回に取得された検出座標が示す単位領域の周付近の位置を表すこととなる。ここで、詳細座標の位置が、前回に算出された詳細座標の位置(上記(3))に近い場合、あるいは、前回に取得された検出座標が示す単位領域の中心に相当する位置(上記(4))に近い場合には、詳細座標の位置が、今回に取得された検出座標が示す単位領域から離れてしまい、詳細座標の位置が正確でなくなるという問題が生じ得る。一方、詳細座標の位置が、今回に取得された検出座標が示す単位領域の中心位置に近い場合には、詳細座標により示される軌跡が滑らかでなくなり、本発明の効果が小さくなってしまうという問題が生じ得る。これに対して、上記(7)の構成によれば、上記2つの問題が生じない適切な位置を詳細座標として算出することができる。
(8)
取得手段は、指示面上に入力がなかった場合には、入力がないことを示す情報をポインティングデバイスの検出結果として取得してもよい。このとき、詳細座標算出手段は、取得手段が検出座標を前回に取得せずに今回に取得した場合、当該検出座標が示す単位領域内の予め定められた所定位置を示す詳細座標を算出する。
上記「所定位置」は、後述する実施形態では単位領域の中心位置であるが、単位領域内のうちの予め定められた位置であればよく、例えば単位領域の中心に相当する位置であってもよい。
上記(8)の構成によれば、連続して取得される複数の検出座標のうちで最初に取得される検出座標に基づいて詳細座標を算出する場合であっても、適切な位置を表す詳細座標を算出することができる。
(9)
詳細座標算出手段は、取得手段が今回に取得した検出座標が前回に取得した検出座標と同じ場合、前回に算出された詳細座標と同じ位置を示す詳細座標を算出してもよい。
上記(9)の構成によれば、例えばユーザが指示面にタッチしながらタッチ位置を移動させない場合のように、同じ検出座標が連続して取得される場合であっても、適切な位置を表す詳細座標を算出することができる。
(10)
詳細座標算出手段は、各検出座標が表現可能な各数値が各単位領域の境界の位置を表すように詳細座標を算出するようにしてもよい。
上記「各検出座標が表現可能な各数値が各単位領域の境界の位置を表す」とは、例えば後述する実施形態のように各検出座標が整数値を表現可能な場合であれば、各単位領域の境界の位置が整数値となることを意味する。なお、「各検出座標が表現可能な各数値」は、整数値に限らず、例えば100の位以上の桁の数値であってもよく、この場合、各単位領域の境界の位置は100の倍数の数値で表されることになる。
上記(10)の構成によれば、各単位領域の境界の位置は、各検出座標が表現可能な各数値で表されることになる。そのため、1つの単位領域内の各位置に関しては、検出座標が表現可能な桁の数値が全て同じになり、詳細座標でのみ表現可能な桁の数値がそれぞれ異なることになる。このとき、詳細座標が表す数値に対して、詳細座標でのみ表現可能な桁を切り捨てることで、元の検出座標を得ることができる。つまり、上記(10)の構成によれば、詳細座標から元の検出座標を容易に得ることができる。したがって、詳細座標を入力として用いる処理に対しても、検出座標を入力として用いる処理に対しても容易に対応することができ、情報処理プログラムの汎用性を向上することができる。
(11)
ポインティングデバイスはタッチパネルであってもよい。
上記(11)の構成によれば、入力装置としてタッチパネルを用いる情報処理システムに本発明を適用することができる。
(12)
情報処理プログラムは、詳細座標を入力として用いて所定の処理を実行する処理実行手段としてコンピュータをさらに機能させてもよい。
上記「処理実行手段」は、1以上の詳細座標を入力として用いる情報処理であれば、どのような処理を実行するものであってもよく、後述する実施形態のようなゲーム処理に限らず、後述する[他の実施形態]に記載の文字認識処理や軌跡表示処理を実行するものであってもよい。
上記(12)の構成によれば、ポインティングデバイスが検出する座標よりも詳細に位置を表す詳細座標を入力として用いて各種の情報処理を行うことができる。すなわち、より正確な入力位置を用いて各種の情報処理を行うことができる。
また、本発明は、上記情報処理装置と同等の機能を有する情報処理装置の形態で提供されてもよい。なお、この情報処理装置においては、上記情報処理プログラムを実行するCPUによって上記各手段が実現されてもよいし、情報処理装置が備える専用回路によって上記各手段の一部または全部が実現されてもよい。
以上のように、本発明によれば、今回に取得された検出座標が示す単位領域内の中心に相当する位置から、前回に取得された検出座標が示す単位領域の方向へ移動させた位置を表す詳細座標を算出することによって、指示面に対する連続的な入力における各入力座標をより詳細に認識することが可能となる。
本実施形態に係るゲームプログラムを実行するゲーム装置の外観図 ゲーム装置の内部構成の一例を示すブロック図 タッチパネル13の入力面に設定される座標系を示す図 本実施形態における詳細座標の算出方法を示す図 図3に示す入力が行われた場合における各詳細位置を結んだ軌跡を示す図 他の実施形態における詳細座標の算出方法を示す図 他の実施形態における詳細座標の算出方法を示す図 ゲーム装置1のメインメモリ32に記憶されるデータを示す図 ゲーム装置1において実行されるゲーム処理の流れを示すメインフローチャート 図9に示す詳細座標算出処理(ステップS4)の流れを示すフローチャート
[ゲーム装置のハードウェア構成]
図面を参照して、本発明の一実施形態に係るゲームプログラムおよびゲーム装置について説明する。本発明は、タッチパネル等のポインティングデバイスを用いる任意の情報処理装置において本ゲームプログラムが実行されることによって実現されるが、本実施形態では、情報処理装置の一例として図1に示すゲーム装置1を用いる場合について説明する。
図1は、本実施形態に係るゲームプログラムを実行するゲーム装置1の外観図である。ここでは、ゲーム装置1の一例として、携帯ゲーム装置を示す。なお、ゲーム装置1は、カメラを内蔵しており、当該カメラによって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりする撮像装置としても機能する。
図1において、ゲーム装置1は折り畳み型の携帯ゲーム装置であり、開いた状態(開状態)のゲーム装置1を示している。ゲーム装置1は、開いた状態においてもユーザが両手または片手で把持することができるようなサイズで構成される。
ゲーム装置1は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、開閉可能(折り畳み可能)に連結されている。図1の例では、下側ハウジング11および上側ハウジング21は、それぞれ横長の長方形の板状に形成され、互いの長辺部分で回転可能に連結されている。通常、ユーザは、開状態でゲーム装置1を使用する。また、ユーザは、ゲーム装置1を使用しない場合には閉状態としてゲーム装置1を保管する。また、図1に示した例では、ゲーム装置1は、上記閉状態および開状態のみでなく、下側ハウジング11と上側ハウジング21とのなす角度が閉状態と開状態との間の任意の角度において、連結部分に発生する摩擦力などによってその開閉角度を維持することができる。つまり、上側ハウジング21を下側ハウジング11に対して任意の角度で静止させることができる。
下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12が設けられる。下側LCD12は横長形状であり、長辺方向が下側ハウジング11の長辺方向に一致するように配置される。なお、本実施形態では、ゲーム装置1に内蔵されている表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置等、他の任意の表示装置を利用してもよい。また、ゲーム装置1は、任意の解像度の表示装置を利用することができる。なお、下側LCD12には、内側カメラ23または外側カメラ25で撮像されている画像がリアルタイムに表示される。
下側ハウジング11には、入力装置として、各操作ボタン14A〜14Kおよびタッチパネル13が設けられる。図1に示されるように、各操作ボタン14A〜14Kのうち、方向入力ボタン14A、操作ボタン14B、操作ボタン14C、操作ボタン14D、操作ボタン14E、電源ボタン14F、スタートボタン14G、およびセレクトボタン14Hは、下側ハウジング11の内側主面上に設けられる。内側主面とは、上側ハウジング21と下側ハウジング11とを折り畳んだときに内側となる面である。図1に示す例では、方向入力ボタン14Aおよび電源ボタン14Fは、下側ハウジング11の内側主面の中央付近に設けられる下側LCD12に対して、左右一方側(図1では左側)の当該主面上に設けられる。また、操作ボタン14B〜14E、スタートボタン14G、およびセレクトボタン14Hは、下側LCD12に対して左右他方側(図1では右側)となる下側ハウジング11の内側主面上に設けられる。方向入力ボタン14A、操作ボタン14B〜14E、スタートボタン14G、およびセレクトボタン14Hは、ゲーム装置1に対する各種操作を行うために用いられる。方向入力ボタン14Aは、例えば選択操作等に用いられる。各操作ボタン14B〜14Eは、例えば決定操作やキャンセル操作等に用いられる。電源ボタン14Fは、ゲーム装置1の電源をオン/オフするために用いられる。
なお、図1においては、操作ボタン14I〜14Kの図示を省略している。例えば、Lボタン14Iは、下側ハウジング11の上側面の左端部に設けられ、Rボタン14Jは、下側ハウジング11の上側面の右端部に設けられる。Lボタン14IおよびRボタン14Jは、撮影機能を有するゲーム装置1に対して、例えば撮影指示操作(シャッター操作)を行うために用いられる。さらに、音量ボタン14Kは、下側ハウジング11の左側面に設けられる。音量ボタン14Kは、ゲーム装置1が備えるスピーカの音量を調整するために用いられる。
また、ゲーム装置1は、各操作ボタン14A〜14Kとは別の入力装置としてさらに、画面上における任意の位置を指定可能な入力装置であるポインティングデバイスの一例として、タッチパネル13を備えている。タッチパネル13は、下側LCD12の画面上を覆うように装着されている。なお、本実施形態では、タッチパネル13は、例えば抵抗膜方式のタッチパネルが用いられる。ただし、タッチパネル13は、抵抗膜方式に限らず、任意の方式のタッチパネルを用いることができる。また、本実施形態では、タッチパネル13として、例えば下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル13の解像度と下側LCD12の解像度とが一致している必要はない。また、下側ハウジング11の右側面には、挿入口(図1では破線で示している)が設けられている。挿入口は、タッチパネル13に対する操作を行うために用いられるタッチペン27を収納することができる。なお、タッチパネル13に対する入力(タッチ入力)は、通常タッチペン27を用いて行われるが、タッチペン27に限らずユーザの指でタッチパネル13を操作することも可能である。
また、下側ハウジング11の右側面には、メモリカード28を収納するための挿入口(図1では二点鎖線で示している)が設けられている。この挿入口の内側には、ゲーム装置1とメモリカード28とを電気的に接続するためのコネクタ(図示せず)が設けられる。メモリカード28は、例えばSD(Secure Digital)メモリカードであり、コネクタに着脱自在に装着される。メモリカード28は、例えば、ゲーム装置1によって撮像された画像を記憶(保存)したり、他の装置で生成された画像をゲーム装置1に読み込んだりするために用いられる。
さらに、下側ハウジング11の上側面には、メモリカード29を収納するための挿入口(図1では、一点鎖線で示している)が設けられている。この挿入口の内側にも、ゲーム装置1とメモリカード29とを電気的に接続するためのコネクタ(図示せず)が設けられる。メモリカード29は、ゲームプログラム等を記録した記録媒体であり、下側ハウジング11に設けられた挿入口に着脱自在に装着される。
下側ハウジング11と上側ハウジング21との連結部の左側部分には、3つのLED15A〜15Cが取り付けられる。ここで、ゲーム装置1は、他の機器との間で無線通信を行うことが可能であり、第1LED15Aは、ゲーム装置1の電源がオンである場合に点灯する。第2LED15Bは、ゲーム装置1の充電中に点灯する。第3LED15Cは、無線通信が確立している場合に点灯する。したがって、3つのLED15A〜15Cによって、ゲーム装置1の電源のオン/オフ状況、充電状況、および、通信確立状況をユーザに通知することができる。
一方、上側ハウジング21には、上側LCD22が設けられる。上側LCD22は横長形状であり、長辺方向が上側ハウジング21の長辺方向に一致するように配置される。なお、下側LCD12と同様、上側LCD22に代えて、他の任意の方式および任意の解像度の表示装置を利用してもよい。なお、上側LCD22上を覆うように、タッチパネルを設けてもかまわない。上側LCD22には、例えば、各操作ボタン14A〜14Kやタッチパネル13の役割をユーザに教えるための操作説明画面が表示される。
また、上側ハウジング21には、2つのカメラ(内側カメラ23および外側カメラ25)が設けられる。図1に示されるように、内側カメラ23は、上側ハウジング21の連結部付近の内側主面に取り付けられる。一方、外側カメラ25は、内側カメラ23が取り付けられる内側主面の反対側の面、すなわち、上側ハウジング21の外側主面(ゲーム装置1が閉状態となった場合に外側となる面であり、図1に示す上側ハウジング21の背面)に取り付けられる。なお、図1においては、外側カメラ25を破線で示している。これによって、内側カメラ23は、上側ハウジング21の内側主面が向く方向を撮像することが可能であり、外側カメラ25は、内側カメラ23の撮像方向の逆方向、すなわち、上側ハウジング21の外側主面が向く方向を撮像することが可能である。このように、本実施形態では、2つの内側カメラ23および外側カメラ25の撮像方向が互いに逆方向となるように設けられる。例えば、ユーザは、ゲーム装置1からユーザの方を見た景色を内側カメラ23で撮像することができるとともに、ゲーム装置1からユーザの反対側の方向を見た景色を外側カメラ25で撮像することができる。
なお、上記連結部付近の内側主面には、音声入力装置としてマイク(図2に示すマイク43)が収納されている。そして、上記連結部付近の内側主面には、マイク43がゲーム装置1外部の音を検知できるように、マイクロフォン用孔16が形成される。マイク43を収納する位置およびマイクロフォン用孔16の位置は必ずしも上記連結部である必要はなく、例えば下側ハウジング11にマイク43を収納し、マイク43を収納位置に対応させて下側ハウジング11にマイクロフォン用孔16を設けるようにしてもよい。
また、上側ハウジング21の外側主面には、第4LED26(図1では、破線で示す)が取り付けられる。第4LED26は、内側カメラ23または外側カメラ25によって撮影が行われた(シャッターボタンが押下された)時点で点灯する。また、内側カメラ23または外側カメラ25によって動画が撮影される間点灯する。第4LED26によって、ゲーム装置1による撮影が行われた(行われている)ことを撮影対象者や周囲に通知することができる。
また、上側ハウジング21の内側主面の中央付近に設けられる上側LCD22に対して、左右両側の当該主面に音抜き孔24がそれぞれ形成される。音抜き孔24の奥の上側ハウジング21内にはスピーカが収納されている。音抜き孔24は、スピーカからの音をゲーム装置1の外部に放出するための孔である。
以上に説明したように、上側ハウジング21には、画像を撮像するための構成である内側カメラ23および外側カメラ25と、主に操作説明画面を表示するための表示手段である上側LCD22とが設けられる。一方、下側ハウジング11には、ゲーム装置1に対する操作入力を行うための入力装置(タッチパネル13および各操作ボタン14A〜14K)と、撮像された画像を表示するための表示手段である下側LCD12とが設けられる。したがって、ゲーム装置1を使用する際には、ユーザは、下側LCD12に表示される撮像画像(カメラによって撮像された画像)を見ながら、下側ハウジング11を把持して入力装置に対する入力を行うことができる。
次に、図2を参照して、ゲーム装置1の内部構成を説明する。図2は、ゲーム装置1の内部構成の一例を示すブロック図である。
図2において、ゲーム装置1は、CPU31、メインメモリ32、メモリ制御回路33、保存用データメモリ34、プリセットデータ用メモリ35、メモリカードインターフェース(メモリカードI/F)36、メモリカードI/F37、無線通信モジュール38、ローカル通信モジュール39、リアルタイムクロック(RTC)40、電源回路41、インターフェース回路(I/F回路)42、第1GPU(Graphics Processing Unit)45、第2GPU46、第1VRAM(Video RAM)47、第2VRAM48、およびLCDコントローラ49等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて、下側ハウジング11(または上側ハウジング21でもよい)内に収納される。
CPU31は、所定のプログラム(ここでは、本実施形態に係るゲームプログラム)を実行するための情報処理手段である。本実施形態では、ゲームプログラムがゲーム装置1内のメモリ(例えば保存用データメモリ34)やメモリカード28および/または29に記憶されており、CPU31は、当該ゲームプログラムを実行することによって、後述するゲーム処理を実行する。なお、CPU31によって実行されるプログラムは、ゲーム装置1内のメモリに予め記憶されていてもよいし、メモリカード28および/または29から取得されてもよいし、他の機器との通信によって他の機器から取得されてもよい。
CPU31には、メインメモリ32、メモリ制御回路33、およびプリセットデータ用メモリ35が接続される。メモリ制御回路33には、保存用データメモリ34が接続される。メインメモリ32は、CPU31のワーク領域やバッファ領域として用いられる記憶手段である。すなわち、メインメモリ32は、上記ゲーム処理に用いられる各種データを記憶したり、外部(メモリカード28および29や他の機器等)から取得されるプログラムを記憶したりする。本実施形態では、メインメモリ32として、例えばPSRAM(Pseudo−SRAM)を用いる。保存用データメモリ34は、CPU31によって実行されるプログラムや内側カメラ23および外側カメラ25によって撮像された画像のデータ等を記憶するための記憶手段である。保存用データメモリ34は、不揮発性の記憶媒体によって構成されており、本実施形態では例えばNAND型フラッシュメモリで構成される。メモリ制御回路33は、CPU31の指示に従って、保存用データメモリ34に対するデータの読み出しおよび書き込みを制御する回路である。プリセットデータ用メモリ35は、ゲーム装置1において予め設定される各種パラメータ等のデータ(プリセットデータ)を記憶するための記憶手段である。プリセットデータ用メモリ35としては、SPI(Serial Peripheral Interface)バスによってCPU31と接続されるフラッシュメモリを用いることができる。
メモリカードI/F36および37は、それぞれCPU31に接続される。メモリカードI/F36は、コネクタに装着されたメモリカード28に対するデータの読み出しおよび書き込みを、CPU31の指示に応じて行う。また、メモリカードI/F37は、コネクタに装着されたメモリカード29に対するデータの読み出しおよび書き込みを、CPU31の指示に応じて行う。本実施形態では、内側カメラ23および外側カメラ25によって撮像された画像データや他の装置から受信された画像データがメモリカード28に書き込まれたり、メモリカード28に記憶された画像データがメモリカード28から読み出されて保存用データメモリ34に記憶されたり、読み出された画像データがメモリカード28から読み出されて他の装置へ送信されたりする。また、メモリカード29に記憶された各種プログラムが、CPU31によって読み出されて実行されたりする。
なお、本発明のゲームプログラムは、メモリカード29等の外部記憶媒体を通じてコンピュータシステムに供給されるだけでなく、有線または無線の通信回線を通じてコンピュータシステムに供給されてもよい。また、ゲームプログラムは、コンピュータシステム内部の不揮発性記憶装置に予め記録されていてもよい。なお、ゲームプログラムを記憶する情報記憶媒体としては、上記不揮発性記憶装置に限らず、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体でもよい。
無線通信モジュール38は、例えばIEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール39は、所定の通信方式により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール38およびローカル通信モジュール39は、CPU31に接続される。CPU31は、無線通信モジュール38を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール39を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
また、CPU31には、RTC40および電源回路41が接続される。RTC40は、時間をカウントしてCPU31に出力する。例えば、CPU31は、RTC40によって計時された時間に基づいて、現在時刻(日付)等を計算することもできる。電源回路41は、ゲーム装置1が有する電源(典型的には電池であり、下側ハウジング11に収納される)から供給される電力を制御し、ゲーム装置1の各部品に電力を供給する。
また、ゲーム装置1は、マイク43およびアンプ44を備えている。マイク43およびアンプ44は、それぞれI/F回路42に接続される。マイク43は、ゲーム装置1に向かって発声されたユーザの音声を検知して、当該音声を示す音声信号をI/F回路42に出力する。アンプ44は、I/F回路42から音声信号を増幅してスピーカ(図示せず)から出力させる。I/F回路42は、CPU31に接続される。
また、タッチパネル13は、I/F回路42に接続される。I/F回路42は、マイク43およびアンプ44(スピーカ)の制御を行う音声制御回路と、タッチパネル13の制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル13からの信号に基づいて所定の形式のタッチ位置データ(後述する検出座標データ)を生成してCPU31に出力する。タッチ位置データは、タッチパネル13の入力面に対して入力が行われた位置としてタッチパネル13が検出した位置の座標を示すデータである。なお、タッチパネル制御回路は、タッチパネル13からの信号の読み込み、および、検出座標データの生成を所定時間に1回の割合で繰り返し行う。
操作ボタン14は、上記各操作ボタン14A〜14Kから構成され、CPU31に接続される。操作ボタン14からCPU31へは、各操作ボタン14A〜14Kに対する入力状況(押下されたか否か)を示す操作データが出力される。CPU31は、操作ボタン14から操作データを取得することによって、操作ボタン14に対する入力に応じた処理を実行する。
内側カメラ23および外側カメラ25は、それぞれCPU31に接続される。内側カメラ23および外側カメラ25は、CPU31の指示に応じて画像を撮像し、撮像した画像データをCPU31に出力する。本実施形態では、CPU31は、内側カメラ23および外側カメラ25のいずれか一方に対して撮像指示を行い、撮像指示を受けたカメラが画像を撮像して画像データをCPU31に送る。
第1GPU45には第1VRAM47が接続され、第2GPU46には第2VRAM48が接続される。第1GPU45は、CPU31からの指示に応じて、メインメモリ32に記憶されている表示画像を生成するためのデータに基づいて第1の表示画像を生成し、第1VRAM47に描画する。第2GPU46は、第1GPU45と同様に、CPU31からの指示に応じて第2の表示画像を生成し、第2VRAM48に描画する。第1VRAM47および第2VRAM48は、LCDコントローラ49に接続されている。
LCDコントローラ49は、レジスタ491を含む。レジスタ491は、CPU31からの指示に応じて0または1の値を記憶する。LCDコントローラ49は、レジスタ491の値が0の場合は、第1VRAM47に描画された第1の表示画像を下側LCD12に出力し、第2VRAM48に描画された第2の表示画像を上側LCD22に出力する。また、レジスタ491の値が1の場合は、第1VRAM47に描画された第1の表示画像を上側LCD22に出力し、第2VRAM48に描画された第2の表示画像を下側LCD12に出力する。例えば、CPU31は、内側カメラ23および外側カメラ25のいずれかから取得した画像を下側LCD12に表示させ、所定の処理によって生成した操作説明画面を上側LCD22に表示させることも可能である。
[座標算出処理の概要]
次に、図3から図5を参照して、本実施形態に係るゲームプログラムによって実行されるゲーム処理(座標算出処理)の概要について説明する。本ゲーム処理では、ゲーム装置1は、タッチパネル13に対して入力が行われた位置(入力位置)を、タッチパネル13が検出する精度よりも詳細な値で算出する。例えば、タッチパネル13が入力位置を示すものとして出力する座標値が“(1,1)”や“(2,3)”のように整数で表される場合、ゲーム装置1は、“(1.3,1.5)”や“(2.5,3.7)”のように小数を含む座標値で表現される入力位置を算出する。このように、本実施形態は、タッチパネル13の検出精度よりも詳細な精度で入力位置を算出するものである。なお、本明細書では、「入力位置」とは、検出の仕方や算出の仕方を問わず、広くタッチパネル13に対して入力が行われた位置を表す意味で用いられる。
図3は、タッチパネル13の入力面に設定される座標系を示す図である。図3に示すように、入力面には、その左上の位置を原点としたxy座標系が設定される。タッチパネル13は、入力面上において入力があった位置を検出し、当該位置を示す座標(検出座標と呼ぶ)を出力する。
本実施形態では、検出座標は、タッチパネル13が検出した位置を小数点以下の数値で表現することはできず、整数値で表現する。このように検出座標は離散的な数値であるので、タッチパネル13は、入力面上において入力があった領域の位置を示す座標を出力するものと言える。すなわち、入力面は、格子状に配置される複数の単位領域に分けられ、タッチパネル13は、当該単位領域のいずれかに対して入力があった場合に、入力があった単位領域の位置を示す座標を検出座標として出力する。以下では、入力があった単位領域として検出される単位領域を「検出領域」と呼ぶ。つまり、検出座標は、検出領域の位置を示す座標(座標値)である。
なお、図3では、斜線で示される単位領域は、入力があった領域を表している。図3では、領域A1,A2,A3,A4,およびA5に対する入力が順に検出された結果、タッチパネル13は、(0,0)、(1,0)、(1,1)、(2,1)、および(3,2)で表される検出座標を順に出力している。
図3において、ゲーム装置1が上記検出座標をそのまま入力として用いる場合、位置の精度が粗いために、検出座標を結ぶ軌跡T1のように、入力軌跡(検出座標を結ぶ折れ線)は滑らかでなくなる。つまり、上記検出座標をそのまま入力として用いる場合には、ゲーム装置1は、入力位置をタッチパネル13の検出精度以上に細かく認識することができず、入力位置を詳細に認識することができない。そこで、本実施形態では、ゲーム装置1は、検出座標よりも詳細に入力位置を表現することが可能な詳細座標を算出し、詳細座標を入力位置として用いて処理を行う。これによって、入力位置をより詳細な精度で認識することができる。以下、詳細座標の算出方法を説明する。
図4は、本実施形態における詳細座標の算出方法を示す図である。なお、図4に示す黒丸の点は、単位領域内の中心位置を表し、図4に示す白丸の点は、詳細位置(詳細座標が示す位置)を表している。ユーザ(プレイヤ)がタッチパネル13に対して連続して入力を行った結果、タッチパネル13から検出座標を連続して取得した場合、ゲーム装置1は、次のようにして詳細座標を算出する。
詳細座標は、入力面上の位置を検出座標よりも詳細な精度で表現するものである。本実施形態では、検出座標が整数値で入力位置を示すのに対して、詳細座標は、小数点以下(具体的には小数第1位まで)の数値で入力位置を示す。
本実施形態では、詳細座標は、図4に示すように、格子状に配置される各単位領域の周(境界)の位置が整数で表されるような数値で表現される。具体的には、図4において、各単位領域は、“m≦x<m+1,n≦y<n+1(m,nは0以上の整数)”で表される。本実施形態において図4に示す方法で詳細座標を表す理由は、詳細座標から元の検出座標を容易に算出することができるようにするためである(詳細は後述する)。詳細座標の表し方は、図4に示す方法に限らず、検出座標よりも詳細な精度で表現する方法であればどのような方法であってもよい。例えば、他の実施形態においては、各単位領域は、“m−0.5≦x<m+0.5,n−0.5≦y<n+0.5”で表されてもよい。
以下、詳細座標の算出方法を説明する。最初の検出座標を取得した場合、ゲーム装置1は、当該検出座標が示す検出領域の中心位置を示す詳細座標を算出する。図4に示す例では、最初の検出座標(0,0)を取得した場合、ゲーム装置1は、検出領域A1の中心位置(点P1)を示す詳細座標(0.5,0.5)を算出する。
次に、連続して取得される検出座標のうち、2番目以降の検出座標を取得した場合、ゲーム装置1は、今回の検出領域の中心位置を、前回の検出領域の方向へ移動させた位置を示す詳細座標を算出する。なお、今回の検出領域とは、今回に取得された検出座標により示される検出領域を指し、前回の検出領域とは、前回に取得された検出座標により示される検出領域を指す。図4を例にとって説明すると、検出領域A2を示す検出座標を取得した場合、ゲーム装置1は、今回の検出領域A2の中心位置(点P2)を、前回の検出領域A1の方向へ移動させた位置(点P11)の座標を、詳細座標として算出する。このように、今回の検出領域の中心位置から前回の検出領域の方向へ移動させた位置を詳細位置とすることで、詳細位置を結ぶことで形成される入力軌跡を滑らかにすることができる。
なお、本実施形態では、ゲーム装置1は、前回に算出された詳細位置と今回の検出領域の中心位置とに基づいて詳細位置を算出する。すなわち、今回の詳細位置は、前回に算出された詳細位置と、今回の検出領域の中心位置とを結ぶ線分上で、かつ、当該線分の両端以外の位置となるように算出される。より具体的には、今回の詳細位置は、上記線分上であって、今回の検出領域に内接する位置となる。図4を例にとって説明すると、検出領域A2を示す検出座標が取得された場合、点P2と点P1とを結ぶ線分上で検出領域A2に内接する点P11の位置が今回の詳細位置となる。同様に、検出領域A3を示す検出座標が取得された場合、点P11と点P3とを結ぶ線分上で検出領域A3に内接する点P12の位置が今回の詳細位置となり、検出領域A4を示す検出座標が取得された場合、点P12と点P4とを結ぶ線分上で検出領域A4に内接する点P13の位置が今回の詳細位置となり、検出領域A5を示す検出座標が取得された場合、点P13と点P5とを結ぶ線分上で検出領域A5に内接する点P14の位置が今回の詳細位置となる。
図5は、図3に示す入力が行われた場合における各詳細位置を結んだ軌跡を示す図である。図5に示されるように、点P1〜点P14の各詳細位置を結ぶ軌跡T2は、各検出座標の位置を結ぶ軌跡T1(図3)に比べて滑らかになっていることが分かる。
以上のように、本実施形態によれば、ゲーム装置1は、タッチパネル13の検出精度以上の精度で詳細に入力位置を算出することができる。また、算出された入力位置(詳細座標の位置)を結ぶ軌跡は、各検出座標の位置を結ぶ軌跡よりも滑らかになる。滑らかな軌跡はユーザが実際に入力した軌跡に近いと考えられるので、ゲーム装置1は、入力位置をより正確に算出することができる。また、本実施形態によれば、検出座標が1回取得される度にその検出座標に対応する詳細位置(詳細座標)が算出されるので、ゲーム装置1は詳細位置をリアルタイムで算出することができ、入力位置をリアルタイムで算出することができる。
また、本実施形態では、ゲーム装置1は、前回に算出された詳細位置と今回の検出領域の中心位置とに基づいて今回の詳細位置を算出している。なお、他の実施形態においては、詳細位置は、前回の検出領域の中心位置と今回の検出領域の中心位置とに基づいて算出されてもよい。図6は、他の実施形態における詳細座標の算出方法を示す図である。図6においては、検出領域A2を示す検出座標が取得された場合に算出される詳細位置は、前回の検出領域A1の中心位置(点P1)と今回の検出領域A2の中心位置(点P2)との線分上の位置(点P21)(より具体的には検出領域A2に内接する位置)となる。同様に、検出領域A3を示す検出座標が取得された場合、点P2と点P3とを結ぶ線分上で検出領域A3に内接する点P22の位置が詳細位置となり、検出領域A4を示す検出座標が取得された場合、点P3と点P4とを結ぶ線分上で検出領域A4に内接する点P23の位置が詳細位置となり、検出領域A5を示す検出座標が取得された場合、点P4と点P5とを結ぶ線分上で検出領域A5に内接する点P24の位置が詳細位置となる。以上のように、他の実施形態においては、詳細位置は、前回の検出領域の中心位置と今回の検出領域の中心位置とを結ぶ線分上の位置として算出されてもよい。図6に示されるように、点P1〜点P24の各詳細位置を結ぶ軌跡T3は、各検出座標の位置を結ぶ軌跡T1(図3)に比べて滑らかになっており、図6に示す方法によっても上記実施形態と同様の効果を奏することがわかる。
また、ゲーム装置1は、上記線分上であって、今回の検出領域内の位置を詳細位置とすることが好ましい(図4および図6参照)。詳細位置が今回の検出領域内の位置であれば、ユーザが現在タッチしている領域と、入力として算出される詳細位置とが一致しているので、ユーザに違和感を与えずに、かつ、正確に詳細位置を算出することができるからである。さらに、詳細位置は、上記線分上であって、今回の検出領域に内接する位置が好ましい。詳細位置が前回の検出領域に近い位置であるほど、詳細位置を結ぶ軌跡がより滑らかになるからである。
また、他の実施形態においては、詳細位置は、今回の検出領域に内接する位置の他、前回の検出領域と今回の検出領域との境界付近の位置として算出されてもよい。すなわち、詳細位置は、上記線分上であって、今回の検出領域の周と上記線分との交点から所定距離以内の位置として算出されてもよい。図7は、他の実施形態における詳細座標の算出方法を示す図である。図7においては、領域A11は前回の検出領域であり、点P31は前回に算出された詳細位置を表す。また、領域A12は今回の検出領域であり、点P32は今回の検出領域A12の中心位置を表す。点Qは、点P31と点P32とを結ぶ線分と、今回の検出領域A12の周との交点である。ここで、詳細位置は、図7に示すように、上記交点Qから所定距離L以内の位置、すなわち、点P33と点P34とを結ぶ線分上の位置として算出されてもよい。図7に示すように、前回の検出領域と今回の検出領域との境界付近の位置を詳細位置とする場合であっても、詳細位置を結ぶ軌跡は、各検出座標の位置を結ぶ軌跡T1より滑らかになり、本実施形態と同様の効果を得ることができる。
また、図7に示す算出方法においては、今回の検出領域の周から所定距離以内の位置としたが、今回の検出領域の中心から所定距離以内の位置としてもよい。また、所定距離以内の位置は、具体例には、例えば所定距離の位置である。
なお、詳細位置が、前回に算出された詳細位置(点P31)に近い場合には、今回に算出される詳細位置が今回の検出領域から離れてしまう。この場合、ユーザが実際に入力を行っている領域と、算出される詳細位置との間のずれが大きくなるので、詳細位置を正確に算出することができなくなる。また、この場合、今回に算出される詳細位置が前回の検出領域内に含まれることになるので、別の見方をすれば、今回に算出される詳細位置は前回の検出領域に対応しているとみなすこともでき、詳細位置が検出領域に対して1回の処理分だけ遅れることになると言うこともできる。一方、詳細位置が、今回の検出領域の中心位置(点P32)に近い場合には、詳細位置を結ぶ軌跡は、各検出座標の位置を結ぶ軌跡T1に近くなり、ゲーム装置1は滑らかな軌跡を得ることができなくなる。以上のように、詳細位置は、前回に算出された詳細位置に近すぎても、今回の検出領域の中心位置に近すぎても、問題がある。そのため、詳細位置は、本実施形態あるいは図7に示すように、境界付近の位置として算出されることが好ましい。
[ゲーム処理の詳細]
以下、図8〜図10を参照して、本実施形態に係るゲームプログラムによって実行されるゲーム処理の詳細について説明する。まず、ゲーム処理において用いられる各種データについて説明する。図8は、ゲーム装置1のメインメモリ32に記憶されるデータを示す図である。図8において、メインメモリ32には、本実施形態に係るゲームプログラム51およびゲーム処理用データ52が記憶される。
ゲームプログラム51は、後述するゲーム処理(図9)をゲーム装置1のCPU31に実行させるためのプログラムである。ゲームプログラム51は、メモリカード29から適宜のタイミングで読み込まれることによってメインメモリ32に記憶されてもよいし、ゲーム装置1の外部との通信によって取得されることによってメインメモリ32に記憶されてもよい。
ゲーム処理用データ52は、後述するゲーム処理(図9)において用いられるデータである。ゲーム処理用データ52は、検出座標データ53、前回検出座標データ54、中心座標データ55、詳細座標データ56、および、前回詳細座標データ57を含む。なお、ゲーム処理用データ52は、76に示すデータの他、ゲームに登場する各種オブジェクトおよびアイコンの画像データや、各種オブジェクトに設定されるパラメータを示すデータ等、ゲーム処理に必要なデータを含む。
検出座標データ53は、上記検出座標を示すデータである。具体的には、検出座標データ53は、上記タッチ位置データとしてタッチパネル13から取得されるデータである。検出座標データ53は、ユーザがタッチパネル13に対して入力を行った場合には、上記検出領域の座標を示す。一方、ユーザがタッチパネル13に対して入力を行っていない場合には、検出座標データ53は、入力が行われなかったことを示す。
前回検出座標データ54は、前回にタッチパネル13から取得された検出座標データである。すなわち、タッチパネル13から検出座標データが取得された場合、それまでの検出座標データ53は、前回検出座標データ54としてメインメモリ32に記憶される。前回検出座標データ54は、詳細座標を算出する処理等において用いられる。
中心座標データ55は、上記検出領域の中心位置の座標(中心座標)を示すデータである。詳細は後述するが、本実施形態では、タッチパネル13から出力される検出座標は単位領域の中心位置を示していないため、CPU31は検出座標から中心座標を算出する。
詳細座標データ56は、上述の詳細座標を示すデータである。本実施形態では、検出座標は、x成分およびy成分の各成分が整数値で表現されるのに対して、詳細座標は、各成分が小数第1位までの数値で表現される。
前回詳細座標データ57は、前回に算出された詳細座標データである。すなわち、新たに詳細座標データが算出された場合、それまでの詳細座標データ56は、前回詳細座標データ57としてメインメモリ32に記憶される。前回詳細座標データ57は、検出領域が前回と今回とで同じ場合に、今回の詳細座標を算出するために用いられる。
次に、ゲーム装置1において行われるゲーム処理の詳細を、図9および図10を用いて説明する。図9は、ゲーム装置1において実行されるゲーム処理の流れを示すメインフローチャートである。電源ボタン14Fが押下されることによってゲーム装置1の電源が投入されると、ゲーム装置1のCPU31は、メインメモリ32等の初期化を行った後、図9に示すゲーム処理を行うためのゲームプログラム51の実行を開始する。本実施形態においては、ゲームプログラム51の実行によって、CPU31が請求項に記載の各手段として機能することとなる。つまり、ゲームプログラム51は、請求項に記載の各手段としてCPU31を機能させる。
まずステップS1において、CPU31は初期処理を行う。例えば、CPU31は、仮想のゲーム空間を構築し、ゲーム空間に登場する各オブジェクトを初期位置に配置する。さらに、CPU31は、ゲーム処理に用いられる各種パラメータや各種フラグについて初期値を設定する。なお、ゲーム処理用データ52に含まれる上述の各データ53〜57については、メインメモリ32には初期値は設定されず、データが記憶されない。上記ステップS1の次にステップS2の処理が実行される。以下、ステップS2〜S6の処理ループは、所定時間(例えば1/60秒)に1回の割合で実行される。
ステップS2において、CPU31は、タッチパネル13に対する入力があったか否かを判定する。具体的には、CPU31は、タッチパネル13からタッチ位置データを取得し、タッチ位置データが、検出座標を示すものであるか、タッチパネル13に対する入力がないことを示すものであるかを判定する。ステップS2の判定結果が肯定である場合、ステップS3の処理が実行される。一方、ステップS2の判定結果が否定である場合、ステップS3およびS4の処理がスキップされ、後述するステップS5の処理が実行される。なお、ステップS2の判定結果が否定である場合、CPU31はメインメモリ32に記憶されている前回検出座標データ54を削除しておく。
ステップS3において、CPU31は検出座標を取得する。具体的には、CPU31は、ステップS2でタッチパネル13から取得したタッチ位置データを検出座標データ53としてメインメモリ32に記憶する。また、ステップS3の前にメインメモリ32に記憶されていた検出座標データ53は、前回検出座標データ54としてメインメモリ32に記憶される。ステップS3の次にステップS4の処理が実行される。
ステップS4において、CPU31は、詳細座標算出処理を実行する。詳細座標算出処理は、検出座標から詳細座標を算出するための処理である。以下、図10を参照して、詳細座標算出処理の詳細について説明する。
図10は、図9に示す詳細座標算出処理(ステップS4)の流れを示すフローチャートである。詳細座標算出処理においては、まずステップS11において、CPU31は、ステップS3で取得された検出座標が表す検出領域の中心位置を示す中心座標を算出する。ここで、本実施形態では、詳細座標は、格子状に配置される各単位領域の周(境界)の位置が整数で表されるような数値で表現される。そのため、中心位置は、(m+0.5,n+0.5)として表されることになる。したがって、検出領域の中心位置は、検出座標を用いて次のように算出することができる。すなわち、CPU31は、メインメモリ32から検出座標データ53を読み出す。そして、CPU31は、検出座標データ53が示す検出座標(IX,IY)を用いて、以下の式(1)に従って中心座標(NX,NY)を算出する。
NX={IX+(IX+1)}/2
NY={IY+(IY+1)}/2 …(1)
上式(1)は、検出座標のx成分およびy成分にそれぞれ0.5を加算した結果を中心座標とすることを表している。上式(1)を用いて算出された中心座標を示すデータは、中心座標データ55としてメインメモリ32に記憶される。上記ステップS11の次にステップS12の処理が実行される。
上記ステップS11の処理によれば、(m,n)の検出座標で表される検出領域は、詳細座標の座標系において“m≦x<m+1,n≦y<n+1”の領域に対応することになる。このとき、任意の1つの単位領域内において、詳細座標によって表現可能な各位置は、それぞれ整数部分が共通となる。つまり、整数部分が同じである詳細座標は、同じ単位領域内に含まれる。したがって、詳細座標の小数部分を切り捨てることによって、元の検出座標を容易に算出することができる。このように、本実施形態においては、ゲーム装置1は、詳細座標から元の検出座標を容易に算出することができるようにするために、上式(1)を用いて中心座標を算出している。したがって、本実施形態によれば、ゲーム処理において詳細座標を入力として用いる場合と、検出座標を入力として用いる場合との両方に容易に対応することができる。なお、上記ステップS11の処理は本発明において必須の処理ではなく、例えば、CPU31はステップS11の処理を実行せず、(m,n)で示される検出座標が表す検出領域の中心位置を、検出座標をそのまま用いて(m,n)としてもよい。このとき、単位領域は、“m−0.5≦x<m+0.5,n−0.5≦y<n+0.5”で表されることとなる。なお、この場合、詳細座標から元の検出座標を算出する場合には、詳細座標の小数第1位を四捨五入すればよい。
また、詳細座標が表現可能な数値の精度によっては、詳細座標では単位領域の中心位置を表現できない場合がある。例えば、本実施形態において仮に詳細座標が“n+0.2x(n,xは整数)”の数値しか表現することができないとすれば、単位領域の中心位置(n+0.5)を表現することができない。この場合、上記ステップS11においては、CPU31は、単位領域の中心に相当する位置(例えば、“n+0.4”あるいは“n+0.6”)を算出するようにすればよい。
ステップS12において、CPU31は、タッチパネル13に対する入力が開始された時点であるか否かを判定する。ステップS12の判定は、メインメモリ32に前回検出座標データ54が記憶されているか否かによって行われる。ステップS12の処理は、ステップS2で取得された検出座標が表す今回の検出領域が、入力軌跡の始点であるか否かを判定するための処理である。ステップS12の判定結果が肯定である場合、ステップS13の処理が実行される。一方、ステップS12の判定結果が否定である場合、後述するステップS14の処理が実行される。
ステップS13において、CPU31は、今回の検出領域の中心座標を詳細座標とする。すなわち、ステップS11で算出された中心座標と同じ値が詳細座標とされる。具体的には、CPU31は、中心座標データ55の内容を詳細座標データ56としてメインメモリ32に記憶する。上記ステップS11の後は、後述するステップS16の処理が実行される。
上記ステップS13のように、本実施形態では、タッチ入力が開始された時点においては、検出領域の中心座標が詳細座標として算出される。つまり、タッチ入力の開始時点における詳細位置は、検出領域の中心位置となる(図4の点P1等参照)。
一方、ステップS14において、CPU31は、今回の検出領域が前回の検出領域と同じであるか否かを判定する。具体的には、CPU31は、検出座標データ53および前回検出座標データ54をメインメモリ32から読み出し、検出座標データ53が示す検出座標と前回検出座標データ54が示す検出座標とが等しいか否かを判定する。ステップS14の判定結果が肯定である場合、後述するステップS17の処理が実行される。一方、ステップS14の判定結果が否定である場合、ステップS15の処理が実行される。
ここで、ユーザがタッチパネル13に対して入力を行う際には、入力を正確に行う等の理由から、入力面にタッチしながらタッチ位置を移動させない場合も考えられる。後述するステップS15の計算処理は、今回の検出領域と前回の検出領域とが異なることを前提としており、ユーザが入力面にタッチしながらタッチ位置を移動させない場合のように、両者が同じになる場合には計算を実行することができない。ステップS14の処理は、上記の場合に処理が正しく実行されなくなることを防止するための処理である。
ステップS15において、CPU31は、前回の詳細座標と今回の中心座標とに基づいて詳細座標を算出する。詳細座標は、前回の詳細座標と今回の中心座標とを結ぶ線分上で、今回の検出領域に内接する位置を表すように算出される。以下、詳細座標の算出方法について詳細に説明する。
まず、前回の詳細座標(OX,OY)と今回の中心座標(NX,NY)とを結ぶ線分(直線)の式は、次の式(2)として表される。
y−OY={(OY−NY)/(OX−NX)}(x−OX) …(2)
算出すべき詳細座標は、上記直線上の位置で、今回の検出領域に内接する位置となる。ここで、詳細座標は離散的な数値であるので、「検出領域に内接する位置」とは、検出領域内の位置であって、詳細座標によって表現可能な位置のうちでx成分またはy成分の座標値が(詳細座標として表現可能な値のうちで)最大または最小となる位置である。具体的には、“m≦x<m+1,n≦y<n+1”で表される検出領域に内接する位置とは、以下の4通りの位置である。
(a)x成分が“m”である位置(検出領域の左側の周で内接)
(b)x成分が“m+0.9”である位置(検出領域の右側の周で内接)
(c)y成分が“n”である位置(検出領域の上側の周で内接)
(d)y成分が“n+0.9”である位置(検出領域の下側の周で内接)
したがって、詳細座標が今回の検出領域のいずれの側の周で内接するかを特定すれば、詳細座標のx成分またはy成分のいずれかを算出することができる。さらに、詳細座標のx成分またはy成分のいずれか一方がわかれば、他方の成分は、上式(2)を用いて算出することができる。なお、本実施形態では詳細座標は小数第1位までの数値で表現されるので、上記(b)および(d)においては、“m+0.9”、“n+0.9”としているが、例えば詳細座標が小数第2位までの数値で表現される場合、(b)および(d)においては、“m+0.99”、“n+0.99”とすればよい。
また、詳細座標が今回の検出領域のいずれの側の周で内接するかは、上式(2)で表される直線と今回の検出領域との位置関係から知ることができる。すなわち、今回の検出領域の周(4辺)のうち、上式(2)で表される直線と交わる周が、詳細座標が内接する周である。
以上より、詳細座標を算出する際、CPU31は、まず、詳細座標が今回の検出領域のいずれの側の周で内接するかを特定し、次に、内接する周の側に応じて上記(a)〜(d)に従って詳細座標のいずれか一方の成分を算出し、他方の成分の値を上式(2)を用いて算出する。具体的には、CPU31は、まず、中心座標データ55および前回詳細座標データ57を読み出し、上式(2)を算出する。そして、式(2)で表される直線が、今回の検出領域のいずれの側の周で交わるかを特定する。次に、CPU31は、検出座標データ53を読み出し、今回の検出座標(IX,IY)と、前回の詳細座標(OX,OY)と、中心座標(NX,NY)とを用いて、詳細座標(FX,FY)を算出する。具体的には、詳細座標は、上式(2)で表される直線が今回の検出領域のいずれの側の周で交わるかに応じて、以下の式(3)〜(6)のいずれかを用いて算出される。
・式(2)の直線と検出領域の左側の周とが交わる場合
FX=IX
FY={(OY−NY)/(OX−NX)}(IX−OX)+OY …(3)
・式(2)の直線と検出領域の右側の周とが交わる場合
FX=IX+0.9
FY={(OY−NY)/(OX−NX)}(IX+0.9−OX)+OY …(4)
・式(2)の直線と検出領域の上側の周とが交わる場合
FX={(OX−NX)/(OY−NY)}(IY−OY)+OX
FY=IY …(5)
・式(2)の直線と検出領域の下側の周とが交わる場合
FX={(OX−NX)/(OY−NY)}(IY+0.9−OY)+OX
FY=IY+0.9 …(6)
上式(3)〜(6)を用いて算出された詳細座標を示すデータは、詳細座標データ56としてメインメモリ32に記憶される。ステップS15の次にステップS16の処理が実行される。
ステップS16において、CPU31は、前回の詳細座標を更新する。すなわち、メインメモリ32に記憶されている詳細座標データ56の内容を、前回詳細座標データ57としてメインメモリ32に記憶する。ステップS16の終了後、CPU31は詳細座標算出処理を終了する。
一方、ステップS17において、CPU31は、前回の詳細座標と同じ座標を今回の詳細座標とする。具体的には、CPU31は、メインメモリ32に記憶されている前回詳細座標データ57の内容を、詳細座標データ56としてメインメモリ32に記憶する。これによって、今回算出すべき詳細座標として、前回の詳細座標と同じ値が算出されたこととなる。ステップS17の終了後、CPU31は詳細座標算出処理を終了する。
上記の詳細座標算出処理によれば、タッチパネル13から検出座標が取得された場合、前回の詳細座標と今回の検出領域の中心座標とを結ぶ線分上で、今回の検出領域に内接する位置が、詳細座標として算出される(ステップS15)。つまり、タッチパネル13の検出精度(検出座標)よりも詳細な精度でユーザの入力位置を算出することができる。また、上記の詳細座標算出処理によれば、入力軌跡の始点が入力される場合(ステップS12でYesとなる場合)には、検出領域の中心座標が詳細座標となる(ステップS13)。そのため、入力軌跡の始点に関しては、詳細座標が中心位置からいずれかの方向にずれるわけではないので、タッチペン27等が実際に接触する位置との誤差を少なくすることができる。
また、上記の詳細座標算出処理によれば、前回の検出領域と今回の検出領域とが同じである場合(ステップS14でYesとなる場合)には、前回の詳細座標と同じ座標が詳細座標となる(ステップS17)。ここで、上記ステップS15の処理は、前回の検出領域と今回の検出領域とが同じになると、詳細座標を算出することができない。しかし、上記詳細座標算出処理では、ステップS17の処理により、容易かつ確実に詳細座標を算出することができる。
ステップS5において、CPU31は、詳細座標を用いたゲーム処理を実行する。ゲーム処理は、詳細座標をユーザ入力として用いる処理であればどのような処理であってもよい。ゲーム処理は、例えば、ユーザがタッチパネル13上でタッチした位置に応じて、ゲーム空間内のオブジェクトを変形させる処理であってもよいし、ユーザがタッチパネル13上に描いた軌跡の形状を特定し、ゲーム空間に登場するプレイヤキャラクタに当該形状に応じた動作を行わせる処理であってもよい。本実施形態では、ゲーム装置1は、タッチパネル13の検出精度よりも詳細に入力位置を認識することができるので、ユーザが入力した軌跡をより高精度で算出することができ、軌跡の形状についてもより正確に認識することができる。ステップS5の次にステップS6の処理が実行される。
ステップS6において、CPU31は、ゲームを終了するか否かを判定する。ステップS6の判定は、例えば、ゲームがクリアされたか否か、ゲームオーバーとなったか否か、プレイヤがゲームを中止する指示を行ったか否か等によって行われる。ステップS6の判定結果が否定である場合、ステップS2の処理が再度実行される。以降、ステップS6でゲームを終了すると判定されるまで、ステップS2〜S6の処理ループが繰り返し実行される。一方、ステップS6の判定結果が肯定である場合、CPU31は、図9に示すゲーム処理を終了する。以上で、ゲーム処理の説明を終了する。
以上のように、本実施形態によれば、ゲーム装置1は、検出座標よりも詳細な位置を表現可能な詳細座標を算出することによって、タッチパネル13の検出精度よりも詳細に入力位置を認識することができる。さらに、本実施形態によれば、ゲーム装置1は、前回の詳細座標と今回の検出領域の中心座標とを結ぶ線分上であって、今回の検出領域に内接する位置を詳細位置として算出する。算出される複数の詳細位置によって、ゲーム装置1は、ユーザが実際に入力した位置により近いと考えられる位置を得ることができる。つまり、ゲーム装置1は、入力面に対して行われた入力の位置をより詳細にかつ正確に算出することができる。
[他の実施形態]
なお、上記実施形態は本発明を実施する一例であり、例えば、他の実施形態として次のような構成で本発明を実施することも可能である。
上記実施形態においては、指示面(入力面)に対して入力された位置を検出するポインティングデバイスの一例として、ゲーム装置1がタッチパネル13を備える場合を例として説明した。ここで、他の実施形態においては、ゲーム装置1は、マウスやタッチパッド等の入力装置をポインティングデバイスとして用いてもよい。また、本発明は、遠隔から画面上の位置を指示する入力システムにおいても適用可能である。この入力システムは、例えば、ユーザが手に持って使用するコントローラ(入力装置)が指し示す表示画面(指示面)上の位置を、コントローラが備えるカメラが撮像した画像に基づいて、および/または、コントローラが備える加速度センサが検出した加速度等に基づいて算出するものである。
また、上記実施形態においては、タッチパネル13は、検知結果として1つの座標を示す(1つの単位領域を示す)データを出力するものとして説明した。ここで、他の実施形態においては、タッチパネル13は、入力面における複数箇所に対して同時に入力が行われた場合には複数の座標を検知結果として出力する、マルチタッチ式のタッチパネルであってもよい。タッチパネル13がマルチタッチ式である場合、ゲーム装置1は、出力された複数の検出座標のうちで所定の条件を満たす1つを選出して、選出した検出座標を用いて上記実施形態と同様の処理を実行するようにしてもよい。あるいは、ゲーム装置1は、出力された複数の検出座標のそれぞれについて、上記実施形態と同様の処理を実行するようにしてもよい。
また、上記実施形態においては、本発明をゲーム用途に適用する場合を例として説明したが、本発明は、ゲーム用途以外でも利用可能である。例えば、他の実施形態においては、情報処理装置が、指示面上に描かれた文字を認識する処理や、指示面上に描かれた軌跡を画面上に表示する処理を実行する場合に本発明を適用することも可能である。
以上のように、本発明は、ポインティングデバイスを用いて入力を行う場合において、指示面に対して入力された位置をより詳細に認識すること等を目的として、例えばゲーム装置やゲームプログラム等の情報処理システムに利用することができる。
1 ゲーム装置
13 タッチパネル
27 タッチペン
32 メインメモリ
51 ゲームプログラム
53 検出座標データ
55 中心座標データ
56 詳細座標データ
57 前回詳細座標データ

Claims (13)

  1. 所定の指示面に対する入力を検出するポインティングデバイスから検出結果を取得可能な情報処理装置のコンピュータで実行される情報処理プログラムであって、
    前記ポインティングデバイスは、前記指示面上に格子状に配置される複数の単位領域のうちで入力が行われた単位領域の位置を検出し、
    前記ポインティングデバイスが検出した単位領域の位置を示す検出座標を繰り返し取得する取得手段と、
    前記取得手段が検出座標を取得することに応じて、検出座標よりも詳細な精度で前記指示面上の位置を表現可能な詳細座標を繰り返し算出する詳細座標算出手段として前記コンピュータを機能させ、
    前記詳細座標算出手段は、今回に取得された検出座標が示す単位領域内の所定の基準位置を、前回に取得された検出座標が示す単位領域の方向へ移動させた位置を示す詳細座標を算出する、情報処理プログラム。
  2. 前記詳細座標算出手段は、今回に取得された検出座標が示す単位領域内の中心に相当する位置を、前回に取得された検出座標が示す単位領域の方向へ移動させた位置を示す詳細座標を算出する、請求項1に記載の情報処理プログラム。
  3. 前記詳細座標算出手段は、前回に算出された詳細座標の位置と、今回に取得された検出座標が示す単位領域の中心に相当する位置とを結ぶ線分上で、かつ、当該線分の両端以外の位置を示す詳細座標を算出する、請求項2に記載の情報処理プログラム。
  4. 前記詳細座標算出手段は、前回に取得された検出座標が示す単位領域の中心に相当する位置と、今回に取得された検出座標が示す単位領域の中心に相当する位置とを結ぶ線分上で、かつ、当該線分の両端以外の位置を示す詳細座標を算出する、請求項2に記載の情報処理プログラム。
  5. 前記詳細座標算出手段は、前記線分上であって、今回に取得された検出座標が示す単位領域内の位置を示す詳細座標を算出する、請求項3または請求項4に記載の情報処理プログラム。
  6. 前記詳細座標算出手段は、前記線分上であって、今回に取得された検出座標が示す単位領域に内接する位置を示す詳細座標を算出する、請求項5に記載の情報処理プログラム。
  7. 前記詳細座標算出手段は、前記線分上であって、今回に取得された検出座標が示す単位領域の周と前記線分との交点から所定距離以内の位置を示す詳細座標を算出する、請求項3または請求項4に記載の情報処理プログラム。
  8. 前記取得手段は、前記指示面上に入力がなかった場合には、入力がないことを示す情報を前記ポインティングデバイスの検出結果として取得し、
    前記詳細座標算出手段は、前記取得手段が検出座標を前回に取得せずに今回に取得した場合、当該検出座標が示す単位領域内の予め定められた所定位置を示す詳細座標を算出する、請求項1から請求項7のいずれか1項に記載の情報処理プログラム。
  9. 前記詳細座標算出手段は、前記取得手段が今回に取得した検出座標が前回に取得した検出座標と同じ場合、前回に算出された詳細座標と同じ位置を示す詳細座標を算出する、請求項1から請求項8のいずれか1項に記載の情報処理プログラム。
  10. 前記詳細座標算出手段は、各検出座標が表現可能な各数値が各単位領域の境界の位置を表すように詳細座標を算出する、請求項1から請求項9のいずれか1項に記載の情報処理プログラム。
  11. 前記ポインティングデバイスはタッチパネルである、請求項1から請求項10のいずれか1項に記載の情報処理プログラム。
  12. 前記詳細座標を入力として用いて所定の処理を実行する処理実行手段として前記コンピュータをさらに機能させる、請求項1から請求項11のいずれか1項に記載の情報処理プログラム。
  13. 所定の指示面に対する入力を検出するポインティングデバイスから検出結果を取得可能な情報処理装置であって、
    前記ポインティングデバイスは、前記指示面上に格子状に配置される複数の単位領域のうちで入力が行われた単位領域の位置を検出し、
    前記ポインティングデバイスが検出した単位領域の位置を示す検出座標を繰り返し取得する取得手段と、
    前記取得手段が検出座標を取得することに応じて、検出座標よりも詳細な精度で前記指示面上の位置を表現可能な詳細座標を繰り返し算出する詳細座標算出手段とを備え、
    前記詳細座標算出手段は、今回に取得された検出座標が示す単位領域内の所定の基準位置を、前回に取得された検出座標が示す単位領域の方向へ移動させた位置を示す詳細座標を算出する、情報処理装置。
JP2009176294A 2009-07-29 2009-07-29 情報処理プログラム、情報処理装置、情報処理システム、および座標算出方法 Active JP5437726B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2009176294A JP5437726B2 (ja) 2009-07-29 2009-07-29 情報処理プログラム、情報処理装置、情報処理システム、および座標算出方法
EP09173509.2A EP2282253B1 (en) 2009-07-29 2009-10-20 Coordinate calculation method
US12/614,720 US9833706B2 (en) 2009-07-29 2009-11-09 Storage medium having information processing program stored therein, information processing device, and coordinate calculation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009176294A JP5437726B2 (ja) 2009-07-29 2009-07-29 情報処理プログラム、情報処理装置、情報処理システム、および座標算出方法

Publications (2)

Publication Number Publication Date
JP2011028671A true JP2011028671A (ja) 2011-02-10
JP5437726B2 JP5437726B2 (ja) 2014-03-12

Family

ID=41346711

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009176294A Active JP5437726B2 (ja) 2009-07-29 2009-07-29 情報処理プログラム、情報処理装置、情報処理システム、および座標算出方法

Country Status (3)

Country Link
US (1) US9833706B2 (ja)
EP (1) EP2282253B1 (ja)
JP (1) JP5437726B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013114482A (ja) * 2011-11-29 2013-06-10 Nintendo Co Ltd 情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法
JP2013134621A (ja) * 2011-12-26 2013-07-08 Nintendo Co Ltd 座標処理プログラム、座標処理装置、座標処理システムおよび座標処理方法
JP2017104575A (ja) * 2017-01-19 2017-06-15 株式会社タイトー ゲーム装置、ゲームプログラム
JP2019042547A (ja) * 2018-12-11 2019-03-22 株式会社タイトー ゲーム装置、ゲームプログラム

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1933883B (zh) * 2004-03-22 2010-05-05 任天堂株式会社 游戏装置以及游戏控制方法
US10010793B2 (en) * 2010-06-14 2018-07-03 Nintendo Co., Ltd. Techniques for improved user interface helping super guides
EP2587348B1 (en) * 2011-10-28 2020-12-02 Nintendo Co., Ltd. Information processing program, information processing system, and information processing method
JP7140465B2 (ja) 2016-06-10 2022-09-21 任天堂株式会社 ゲームプログラム、情報処理装置、情報処理システム、ゲーム処理方法
JP6185123B1 (ja) 2016-08-18 2017-08-23 グリー株式会社 プログラム、制御方法、及び情報処理装置

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02213921A (ja) * 1989-02-15 1990-08-27 Canon Inc 座標入力装置及び方法
JPH04303228A (ja) * 1991-03-29 1992-10-27 Toshiba Corp 情報処理装置
JPH08171450A (ja) * 1994-12-19 1996-07-02 Ricoh Co Ltd 手書き入力装置およびその制御方法
JPH08241170A (ja) * 1995-03-02 1996-09-17 Fuji Xerox Co Ltd 手書き入力装置
JPH09198219A (ja) * 1996-01-18 1997-07-31 Internatl Business Mach Corp <Ibm> 座標入力制御装置及び方法
JPH09230993A (ja) * 1996-02-20 1997-09-05 Sharp Corp ジョグダイアルの模擬入力装置
JPH09282080A (ja) * 1996-04-16 1997-10-31 Canon Inc 情報入力方法とその装置
JP2000105665A (ja) * 1998-09-28 2000-04-11 Hitachi Software Eng Co Ltd 座標群湾曲化補正装置および座標群湾曲化補正方法
JP2002196878A (ja) * 2000-12-27 2002-07-12 Celsys:Kk 記録媒体、画像処理装置および方法
JP2002259056A (ja) * 2001-02-21 2002-09-13 Internatl Business Mach Corp <Ibm> タッチパネル式記入媒体装置、その制御方法、及びプログラム
JP2006059028A (ja) * 2004-08-18 2006-03-02 Nintendo Co Ltd 画像処理プログラムおよび画像処理装置
JP2006065647A (ja) * 2004-08-27 2006-03-09 Nintendo Co Ltd 画像処理プログラムおよび画像処理装置
JP2006271782A (ja) * 2005-03-30 2006-10-12 Konami Digital Entertainment:Kk ゲームプログラム、ゲーム装置及びゲーム制御方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6278445B1 (en) * 1995-08-31 2001-08-21 Canon Kabushiki Kaisha Coordinate input device and method having first and second sampling devices which sample input data at staggered intervals
US6304677B1 (en) * 1998-04-07 2001-10-16 Adobe Systems Incorporated Smoothing and fitting point sequences
JP2002222425A (ja) * 2001-01-29 2002-08-09 Canon Inc 情報処理装置及び方法
CN101401059B (zh) * 2006-03-10 2012-08-15 吉田健治 信息处理装置的输入处理系统
WO2007126286A1 (en) * 2006-04-28 2007-11-08 Mtekvision Co., Ltd. Non-contact selection device
US20100073318A1 (en) 2008-09-24 2010-03-25 Matsushita Electric Industrial Co., Ltd. Multi-touch surface providing detection and tracking of multiple touch points
JP5182513B2 (ja) 2007-12-27 2013-04-17 株式会社リコー 画像処理装置及びその省電力制御方法
TWI389053B (zh) * 2008-07-31 2013-03-11 Pixart Imaging Inc 在微小點陣圖上定位時提高解析度的方法

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02213921A (ja) * 1989-02-15 1990-08-27 Canon Inc 座標入力装置及び方法
JPH04303228A (ja) * 1991-03-29 1992-10-27 Toshiba Corp 情報処理装置
JPH08171450A (ja) * 1994-12-19 1996-07-02 Ricoh Co Ltd 手書き入力装置およびその制御方法
JPH08241170A (ja) * 1995-03-02 1996-09-17 Fuji Xerox Co Ltd 手書き入力装置
JPH09198219A (ja) * 1996-01-18 1997-07-31 Internatl Business Mach Corp <Ibm> 座標入力制御装置及び方法
JPH09230993A (ja) * 1996-02-20 1997-09-05 Sharp Corp ジョグダイアルの模擬入力装置
JPH09282080A (ja) * 1996-04-16 1997-10-31 Canon Inc 情報入力方法とその装置
JP2000105665A (ja) * 1998-09-28 2000-04-11 Hitachi Software Eng Co Ltd 座標群湾曲化補正装置および座標群湾曲化補正方法
JP2002196878A (ja) * 2000-12-27 2002-07-12 Celsys:Kk 記録媒体、画像処理装置および方法
JP2002259056A (ja) * 2001-02-21 2002-09-13 Internatl Business Mach Corp <Ibm> タッチパネル式記入媒体装置、その制御方法、及びプログラム
JP2006059028A (ja) * 2004-08-18 2006-03-02 Nintendo Co Ltd 画像処理プログラムおよび画像処理装置
JP2006065647A (ja) * 2004-08-27 2006-03-09 Nintendo Co Ltd 画像処理プログラムおよび画像処理装置
JP2006271782A (ja) * 2005-03-30 2006-10-12 Konami Digital Entertainment:Kk ゲームプログラム、ゲーム装置及びゲーム制御方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013114482A (ja) * 2011-11-29 2013-06-10 Nintendo Co Ltd 情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法
JP2013134621A (ja) * 2011-12-26 2013-07-08 Nintendo Co Ltd 座標処理プログラム、座標処理装置、座標処理システムおよび座標処理方法
JP2017104575A (ja) * 2017-01-19 2017-06-15 株式会社タイトー ゲーム装置、ゲームプログラム
JP2019042547A (ja) * 2018-12-11 2019-03-22 株式会社タイトー ゲーム装置、ゲームプログラム

Also Published As

Publication number Publication date
EP2282253A2 (en) 2011-02-09
US20110025614A1 (en) 2011-02-03
JP5437726B2 (ja) 2014-03-12
EP2282253A3 (en) 2014-03-19
EP2282253B1 (en) 2021-12-22
US9833706B2 (en) 2017-12-05

Similar Documents

Publication Publication Date Title
JP5437726B2 (ja) 情報処理プログラム、情報処理装置、情報処理システム、および座標算出方法
JP6158406B2 (ja) 携帯デバイスによるインタラクティブアプリケーションのビデオキャプチャを可能とするためのシステム
JP4971483B2 (ja) 画像表示プログラム、画像表示装置、画像表示システム、および画像表示方法
JP5466435B2 (ja) 情報処理プログラムおよび情報処理装置
JP5415730B2 (ja) 画像処理プログラム、画像処理装置、画像処理方法、および画像処理システム
US8731332B2 (en) Storage medium having image recognition program stored therein, image recognition apparatus, image recognition system, and image recognition method
US9454834B2 (en) Storage medium storing image processing program for implementing controlled image display according to input coordinate, and information processing device
JP6452440B2 (ja) 画像表示システム、画像表示装置、画像表示方法、およびプログラム
JP2012069065A (ja) 情報処理プログラム、情報処理装置および方法
US8167721B2 (en) Program for object movement stored in a non-transitory computer readable storage medium and object movement game apparatus
JP2012014680A (ja) 情報処理プログラム、情報処理装置、情報処理システム、及び情報処理方法
TW201214199A (en) A system for portable tangible interaction
JP2011258152A (ja) 情報処理プログラム、情報処理装置、情報処理システム及び情報処理方法
JP2011177203A (ja) オブジェクト制御プログラムおよびオブジェクト制御装置
JP2010273885A (ja) ゲームプログラムおよびゲーム装置
JP5378742B2 (ja) 画像処理プログラムおよび画像処理装置
JP2011138355A (ja) 情報処理プログラム、情報処理装置および情報処理方法
JP2011107817A (ja) ゲーム装置およびゲームプログラム
JP2013058156A (ja) 入力装置、入力処理プログラム、入力処理方法、入力処理システム
JP5758152B2 (ja) ゲームプログラム、ゲーム装置およびゲーム制御方法
JP5496991B2 (ja) 画像表示プログラム、画像表示装置、画像表示システム、および画像表示方法
JP5328277B2 (ja) 画像処理プログラムおよび画像処理装置
JP4878396B2 (ja) 画像認識プログラム、画像認識装置、画像認識システム、および画像認識方法
JP5647443B2 (ja) 画像認識プログラム、画像認識装置、画像認識システム、および画像認識方法
JP2013149274A (ja) 画像処理プログラムおよび画像処理装置

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20111019

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20111104

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120517

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130424

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131212

R150 Certificate of patent or registration of utility model

Ref document number: 5437726

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250