JP5448073B2 - 情報処理装置、情報処理プログラム、情報処理システム、および、選択対象の選択方法 - Google Patents

情報処理装置、情報処理プログラム、情報処理システム、および、選択対象の選択方法 Download PDF

Info

Publication number
JP5448073B2
JP5448073B2 JP2010003860A JP2010003860A JP5448073B2 JP 5448073 B2 JP5448073 B2 JP 5448073B2 JP 2010003860 A JP2010003860 A JP 2010003860A JP 2010003860 A JP2010003860 A JP 2010003860A JP 5448073 B2 JP5448073 B2 JP 5448073B2
Authority
JP
Japan
Prior art keywords
inclination
screen
selection target
displayed
information processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010003860A
Other languages
English (en)
Other versions
JP2011145744A (ja
Inventor
惇 伊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2010003860A priority Critical patent/JP5448073B2/ja
Priority to US12/709,752 priority patent/US8917236B2/en
Publication of JP2011145744A publication Critical patent/JP2011145744A/ja
Application granted granted Critical
Publication of JP5448073B2 publication Critical patent/JP5448073B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • 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/0304Detection arrangements using opto-electronic means
    • 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
    • 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/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • 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/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/10Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals
    • A63F2300/105Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals using inertial sensors, e.g. accelerometers, gyroscopes
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/6045Methods for processing data by generating or executing the game program for mapping control signals received from the input arrangement into game commands

Description

本発明は、情報処理装置、情報処理プログラム、情報処理システム、および、選択対象の選択方法に関し、より特定的には、画面に表示される選択対象をユーザが選択することができる情報処理装置、情報処理プログラム、情報処理システム、および、選択方法に関する。
従来、例えば特許文献1に記載のように、ユーザが手に持ってそれ自体を動かす操作が可能な入力装置を用いて、画面に表示される複数の選択対象から1つを選択する操作が可能な情報処理システムがある。この情報処理システムでは、ゲーム装置は、入力装置が指し示す画面上の位置と、入力装置に設けられたボタンに対する操作(ボタンが押下されたか)とに基づいて、画面に表示される複数の選択対象から1つを選択している。
特開2007−213144号公報
上記特許文献1における情報処理システムでは、ユーザが選択可能な対象は1画面内に全て表示される。そのため、選択対象が多くなる場合には、1つ1つの選択対象は小さく表示されてしまうので、選択対象を選択することが難しくなってしまう。このように、プレイヤが入力装置(あるいはその他の物体)を動かして画面上の位置を指定する入力方法を採用するシステムにおいては、1画面内に多数の選択対象を表示すると、選択操作が難しくなってしまうという課題があった。
それ故、本発明の目的は、プレイヤが入力装置あるいはその他の物体を動かして画面上の位置を指定する入力方法を採用する情報処理装置において、選択対象から1つを選択する操作が容易である入力インターフェースを提供することである。
本発明は、上記の課題を解決するために、以下の(1)〜(14)の構成を採用した。
(1)
本発明は、ユーザが動かすことが可能な所定の物体の傾きに応じた操作データを取得可能な情報処理装置である。情報処理装置は、傾き算出部と、位置算出部と、表示制御部と、切替部と、選択部とを備えている。傾き算出部は、物体の傾きに対応する傾き情報を操作データに基づいて算出する。位置算出部は、物体の位置および傾きの少なくとも1つに応じて変化するように、表示装置の画面上の指示位置を操作データに基づいて算出する。表示制御部は、表示装置の画面に選択対象を表示させる。切替部は、画面に表示される選択対象を、傾き情報が表す傾き量に応じて切り替える。選択部は、選択対象から、指示位置に表示される対象を選択し、選択された対象に応じた情報処理を実行する。
上記「所定の物体」とは、ユーザが動かすことが可能な物体であればよく、下記(4)あるいは(8)に記載の入力装置、および、下記(7)に記載のマーカあるいはユーザの体の一部を含む概念である。
上記「所定の物体の傾きに応じた操作データ」とは、それを用いて所定の物体の傾きを算出することができるデータであればよく、所定の物体の傾きに応じて変化するデータと、所定の物体の傾きの変化に応じて変化するデータとを含む概念である。
上記「物体の傾きに応じた傾き情報」とは、物体の傾きに応じた傾きを表す情報であればよく、物体の傾きそのものを表す情報でもよいし、物体の傾きに応じて傾きが変化する他のオブジェクト(例えば、仮想空間内に配置されるオブジェクト)の傾きを表す情報でもよい。
上記「選択対象」とは、何らかの処理が関連付けられた画像であってもよいし、画面に表示される領域内における部分領域であってもよい。「何らかの処理が関連付けられた画像」とは、例えば、アイコンの画像、ゲームのアイテムやキャラクタの画像、コマンドを表す文字の画像、ソフトウェアキーボードにおけるキーの画像等を含む。また、「画面に表示される領域内における部分領域」とは、例えば、地図領域内の一部の領域または地点である。
上記「切り替える」とは、切り替え前の画面には表示されていなかった選択対象が、切り替え後の画面には少なくとも1つ表示されるように、画面表示を変更することを意味する。したがって、切り替え前後で重複して表示される選択対象があってもよい。また、上記「傾き量に応じて切り替える」とは、傾き量の連続的な変化に対して、選択対象を含む表示画像(表示範囲)が不連続的に変化することを意味する。ただし、切り替え前の画面から切り替え後の画面への変更は即時に行われる必要はなく、ある程度の時間をかけて変更が行われてもよい。例えば、切り替えの際に表示範囲が連続的に変化する(スクロールする)アニメーションが表示されてもよい。
上記「選択部」は、指示位置に表示される対象を選択するものであるが、指示位置が画面上の選択対象と一致した場合に常に選択するものに限らない。例えば、選択部は、所定の条件が満たされた場合(例えば、ユーザによって所定の操作が行われた場合)に、指示位置に表示される対象を選択するものであってもよい。
上記(1)の構成によれば、傾き量に応じて選択対象の切り替えが行われることによって、全ての選択対象を一度に画面に表示する場合に比べて、選択対象の数を減らすことができる。そのため、選択対象を選択する操作を容易にすることができる。また、ユーザは、選択対象を切り替える操作と選択対象を選択する操作とを、1つの物体を動かす操作によって行うことができるので、2種類の操作を1つの物体を用いて容易に行うことができる。
(2)
位置算出部は、物体の第1の軸回りの傾きおよび当該第1の軸に直交する第2の軸回りの傾き、または、当該第1の軸方向への移動および当該第2の軸方向への移動に応じて指示位置を算出してもよい。このとき、傾き算出部は、第1の軸および第2の軸に直交する第3の軸回りの傾きに応じて傾き情報を算出する。
上記(2)の構成によれば、指示位置を決定するための操作と、傾き情報を決定するための操作とは互いに独立し、一方の操作が他方の操作に影響を与えることがない。したがって、ユーザは、2種類の操作を容易に行うことができる。
(3)
切替部は、画面に第1のグループの選択対象が表示されている場合、傾き量が第1の閾値を超えたことを条件として、画面に表示される選択対象を当該第1のグループの選択対象から第2のグループの選択対象へと切り替えてもよい。また、切替部は、画面に当該第2のグループの選択対象が表示されている場合、傾き量が当該第1の閾値よりも小さい第2の閾値を下回ったことを条件として、画面に表示される選択対象を当該第2のグループの選択対象から当該第1のグループの選択対象へと切り替えてもよい。
上記「第1のグループの選択対象」とは、画面に一度に表示される1以上の選択対象であり、上記「第2のグループの選択対象」とは、第1のグループの選択対象とは異なる選択対象を含み、画面に一度に表示される1以上の選択対象である。
上記(3)の構成によれば、傾き量が第1の閾値を超えたことによって第1のグループから第2のグループへの切り替えが行われるが、その後に傾き量が第1の閾値を下回っても(第2の閾値を下回らない限り)第2のグループから第1のグループへと表示が戻ることがない。そのため、傾き量が第1の閾値の前後で変動したとしても、切り替えが頻繁に行うことがないので、切り替え操作の操作性を向上することができる。
(4)
物体は、自身の傾きまたは傾きの変化に応じた情報を検出可能な検出手段を備える入力装置であってもよい。このとき、傾き算出部は、検出手段の検出結果に基づくデータを操作データとして用いて傾き情報を算出する。位置算出部は、検出手段の検出結果に基づくデータを操作データとして用いて指示位置を算出する。
上記「検出手段」とは、後述する実施形態におけるジャイロセンサ、加速度センサ、およびカメラの他、入力装置の傾きまたは傾きの変化に応じて変化する検出結果を得ることができるものであれば、どのようなものであってもよい。また、後述する実施形態においては、入力装置は3つの検出手段を有しているが、入力装置は検出手段を少なくとも1つ備えていればよい。
上記「検出結果に基づくデータ」とは、検出結果そのものでもよいし、検出結果に何らかの加工が施されたデータでもよい。
上記(4)の構成によれば、入力装置に検出手段を設けることによって、情報処理装置は、入力装置からの操作データを用いて傾き情報および指示位置を算出し、選択対象を選択させる処理を実行することができる。
(5)
検出手段は、物体の角速度を検知するジャイロセンサであってもよい。このとき、傾き算出部は、ジャイロセンサが検出する角速度に基づいて傾き情報を算出する。位置算出部は、所定空間の所定位置から、傾き情報が表す傾きに対応するベクトルの方向へ延ばした線分と、当該所定空間における所定平面との交点の位置を算出し、当該位置に対応する画面上の位置を指示位置として算出する。
上記「所定空間」は仮想の3次元空間であり、上記「所定平面」は当該3次元空間に配置される平面である。上記「傾き情報が表す傾きに対応するベクトル」とは、傾き情報が表す傾きに応じて向きが変化するベクトルである。つまり、このベクトルは、傾き情報がベクトルによって表現される場合には傾き情報が表すベクトルそのものであってもよいし、当該傾き情報が角度や行列によって表現される場合には、当該角度や行列によって表される傾きと同じ傾きを表すベクトルであってもよい。
上記(5)の構成によれば、ジャイロセンサを用いて入力装置の傾きと指示位置とを容易に算出することができる。また、上記(5)の構成によれば、ジャイロセンサの検出結果を用いるので、入力装置がどのような向きを向いていても傾きおよび指示位置を算出することができる。そのため、入力装置の使用範囲が制限されることがなく、ユーザは入力装置を自由な方向に向けて操作を行うことができる。
(6)
検知手段は、所定の撮像対象を撮像可能な撮像手段であってもよい。このとき、傾き算出部は、撮像手段によって撮像される撮像画像における撮像対象の傾きに基づいて傾き情報を算出する。位置算出部は、撮像手段によって撮像される撮像画像内における撮像対象の位置に基づいて指示位置を算出する。
上記「所定の撮像対象」とは、後述する実施形態におけるマーカ部6の他、撮像手段によって撮像可能であればどのような物であってもよい。
上記(6)の構成によれば、撮像手段を用いて入力装置の傾きと指示位置とを容易に算出することができる。また、上記(6)の構成によれば、撮像画像を用いるので、傾きおよび指示位置を正確に算出することができる。
(7)
物体は、ユーザの身体の一部、または、ユーザが動かすことができるマーカであってもよい。このとき、情報処理装置は、物体を撮像する撮像手段から、撮像結果に基づくデータを操作データとして取得する。
上記(7)の構成によれば、撮像手段を用いて物体の傾きと指示位置とを容易に算出することができる。また、上記(7)の構成によれば、撮像画像を用いるので、傾きおよび指示位置を正確に算出することができる。
(8)
物体は、自身の傾きまたは傾きの変化に応じた情報を検出可能な検出手段を備える入力装置であってもよい。このとき、情報処理装置は、物体を撮像する撮像手段から、撮像結果に基づくデータを操作データとして取得するとともに、検出手段の検出結果に基づくデータを操作データとして入力装置から取得する。傾き算出部は、検出結果に基づくデータに基づいて傾き情報を算出する。位置算出部は、撮像結果に基づくデータに基づいて指示位置を算出する。
上記(8)の構成によれば、検出手段による検出結果を用いて物体の傾きを容易に算出することができる。また、撮像手段による撮像結果を用いて物体による指示位置を容易かつ正確に算出することができる。
(9)
表示制御部は、略同心円状に選択対象が配置された所定平面のうちの一部を画面に表示してもよい。このとき、切替部は、所定平面を回転させることで、画面に表示される選択対象を切り替える。
上記「所定平面を回転させる」とは、表示範囲を決める基準(仮想カメラの視点等)に対して所定平面を相対的に回転させるものであればよい。すなわち、仮想カメラを用いて表示画像を生成する場合には、切替部は、所定平面を回転させてもよいし、仮想カメラを移動させてもよい。
(10)
選択対象は、画面に表示される画像であって、それぞれの画像に対して処理が関連付けられていてもよい。このとき、選択部は、指示位置に表示される画像に関連付けられた処理を実行する。
上記(10)の構成によれば、アイコン等の画像が選択対象として表示される場合においても本発明を適用することができる。
(11)
選択対象は、ゲームに登場するアイテムまたはゲームキャラクタ、あるいは、ゲームのコマンドを表す画像であってもよい。このとき、選択部は、指示位置に表示される画像が表すアイテムまたはゲームキャラクタ、あるいは、ゲームのコマンドに応じたゲーム処理を実行する。
上記(11)の構成によれば、ゲームに登場するアイテムまたはゲームキャラクタが選択対象として表示されたり、ゲームのコマンドが選択対象として表示される場合においても本発明を適用することができる。
(12)
選択対象は、文字または文字列を表す画像であってもよい。このとき、選択部は、指示位置に表示される画像が表す文字を出力する処理を実行する。
上記(12)の構成によれば、例えばソフトウェアキーボードのように、文字(または文字列)を表す画像が選択対象として表示される場合においても本発明を適用することができる。
(13)
切替部は、画面に表示される画像が表す文字または文字列の文字の種類を切り替えるようにしてもよい。
上記「文字の種類を切り替える」とは、アルファベットの大文字と小文字との切り替え、ひらがなとカタカナとの切り替え、文字のフォントの切り替え等を含む概念である。
上記(13)の構成によれば、ユーザは、物体の傾きを操作することによって文字の種類を切り替え、物体の位置および/または向きを操作することによって文字を選択する操作を行うことができる。これによれば、文字の選択と、文字の種類の切り替えを容易に行うことが可能な文字入力システムを提供することができる。
(14)
選択対象は、画面に表示される領域内の部分領域であって、部分領域に対して処理が関連付けられていてもよい。このとき、選択部は、指示位置と対応する部分領域に関連付けられた処理を行う。
上記「画面に表示される領域」とは、地図(ゲームマップを含む)の領域を含む概念である。また、上記「部分領域」とは、地図内における地点や地域を含む概念である。
上記(14)の構成によれば、例えば地図の画像が表示され、地図内の地点や地域をユーザが選択する場合においても本発明を適用することができる。
また、本発明は、情報処理装置のコンピュータを上記各部と同等の手段として機能させる情報処理プログラムの形態で実施されてもよい。また、本発明は、上記各部を備える1以上の情報処理装置からなる情報処理システムの形態で実施されてもよい。このとき、1以上の情報処理装置は、有線または無線通信によって直接通信を行ってもよいし、ネットワークを介して通信を行ってもよい。さらに、本発明は、上記各部によって行われる選択方法の形態で実施されてもよい。
本発明によれば、傾き量に応じた選択対象の切り替えを行うことによって、一度に画面に表示する選択対象の数を減らすことができ、選択対象を選択する操作を容易にすることができる。
ゲームシステムの外観図 ゲーム装置の機能ブロック図 入力装置の外観構成を示す斜視図 コントローラの外観構成を示す斜視図 コントローラの内部構造を示す図 コントローラの内部構造を示す図 入力装置の構成を示すブロック図 ゲーム装置による処理によってテレビの画面に表示される画像の一例を示す図 入力装置の傾きと、表示される選択対象との関係を示す図 ゲーム装置のメインメモリに記憶される主なデータを示す図 ゲーム装置において実行される文字入力処理の流れを示すメインフローチャート 図11に示す表示対象決定処理(ステップS3)の流れを示すフローチャート 撮像画像におけるマーカ座標の位置の例を示す図 第2ページが表示される場合における入力装置の傾き角度θおよび閾値を示す図 第3ページが表示される場合における入力装置の傾き角度θおよび閾値を示す図 所定の仮想空間に入力装置と所定の平面とを仮想的に配置した図 図16に示す仮想空間をY’軸正方向側から負方向側へ見た図 選択対象を切り替える方法の一例を示す図 第1の変形例におけるゲームシステムの構成を示すブロック図 第2の変形例におけるゲームシステムの構成を示すブロック図
[ゲームシステムの全体構成]
図1を参照して、本発明の一実施形態に係る座標算出装置の一例であるゲーム装置を含むゲームシステム1について説明する。図1は、ゲームシステム1の外観図である。以下、据置型のゲーム装置を一例にして、本実施形態のゲーム装置および情報処理プログラムについて説明する。図1において、ゲームシステム1は、テレビジョン受像器(以下、単に「テレビ」と記載する)2、ゲーム装置3、光ディスク4、入力装置8、およびマーカ部6を含む。本システムは、入力装置8を用いたゲーム操作に基づいてゲーム装置3でゲーム処理を実行するものである。
ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着可能に挿入される。光ディスク4には、ゲーム装置3において実行されるための情報処理プログラム(典型的にはゲームプログラム)が記憶されている。ゲーム装置3の前面には光ディスク4の挿入口が設けられている。ゲーム装置3は、挿入口に挿入された光ディスク4に記憶されている情報処理プログラムを読み出して実行することによってゲーム処理を実行する。
ゲーム装置3には、表示装置の一例であるテレビ2が接続コードを介して接続される。テレビ2は、ゲーム装置3において実行されるゲーム処理の結果得られるゲーム画像を表示する。また、テレビ2の画面の周辺(図1では画面の上側)には、マーカ部6が設置される。マーカ部6は、その両端に2つのマーカ6Rおよび6Lを備えている。マーカ6R(マーカ6Lも同様)は、具体的には1以上の赤外LEDであり、テレビ2の前方に向かって赤外光を出力する。マーカ部6はゲーム装置3に接続されており、ゲーム装置3はマーカ部6が備える各赤外LEDの点灯を制御することが可能である。
入力装置8は、自機に対して行われた操作の内容を示す操作データをゲーム装置3に与えるものである。本実施形態では、入力装置8はコントローラ5とジャイロセンサユニット7とを含む。詳細は後述するが、入力装置8は、コントローラ5に対してジャイロセンサユニット7が着脱可能に接続されている構成である。コントローラ5とゲーム装置3とは無線通信によって接続される。本実施形態では、コントローラ5とゲーム装置3との間の無線通信には例えばBluetooth(ブルートゥース)(登録商標)の技術が用いられる。なお、他の実施形態においてはコントローラ5とゲーム装置3とは有線で接続されてもよい。
[ゲーム装置3の内部構成]
次に、図2を参照して、ゲーム装置3の内部構成について説明する。図2は、ゲーム装置3の構成を示すブロック図である。ゲーム装置3は、CPU10、システムLSI11、外部メインメモリ12、ROM/RTC13、ディスクドライブ14、およびAV−IC15等を有する。
CPU10は、光ディスク4に記憶された情報処理プログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。CPU10は、システムLSI11に接続される。システムLSI11には、CPU10の他、外部メインメモリ12、ROM/RTC13、ディスクドライブ14およびAV−IC15が接続される。システムLSI11は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。システムLSIの内部構成について後述する。揮発性の外部メインメモリ12は、光ディスク4から読み出された情報処理プログラムや、フラッシュメモリ17から読み出された情報処理プログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、CPU10のワーク領域やバッファ領域として用いられる。ROM/RTC13は、ゲーム装置3の起動用のプログラムが組み込まれるROM(いわゆるブートROM)と、時間をカウントするクロック回路(RTC:Real Time Clock)とを有する。ディスクドライブ14は、光ディスク4からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ11eまたは外部メインメモリ12に読み出したデータを書き込む。
また、システムLSI11には、入出力プロセッサ(I/Oプロセッサ)11a、GPU(Graphics Processor Unit)11b、DSP(Digital Signal Processor)11c、VRAM11d、および内部メインメモリ11eが設けられる。図示は省略するが、これらの構成要素11a〜11eは内部バスによって互いに接続される。
GPU11bは、描画手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)に従って画像を生成する。VRAM11dは、GPU11bがグラフィクスコマンドを実行するために必要なデータ(ポリゴンデータやテクスチャデータ等のデータ)を記憶する。画像が生成される際には、GPU11bは、VRAM11dに記憶されたデータを用いて画像データを作成する。
DSP11cは、オーディオプロセッサとして機能し、内部メインメモリ11eや外部メインメモリ12に記憶されるサウンドデータや音波形(音色)データを用いて、音声データを生成する。
上述のように生成された画像データおよび音声データは、AV−IC15によって読み出される。AV−IC15は、読み出した画像データをAVコネクタ16を介してテレビ2に出力するとともに、読み出した音声データを、テレビ2に内蔵されるスピーカ2aに出力する。これによって、画像がテレビ2に表示されるとともに音がスピーカ2aから出力される。
入出力プロセッサ11aは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ11aは、フラッシュメモリ17、無線通信モジュール18、無線コントローラモジュール19、拡張コネクタ20、およびメモリカード用コネクタ21に接続される。無線通信モジュール18にはアンテナ22が接続され、無線コントローラモジュール19にはアンテナ23が接続される。
入出力プロセッサ11aは、無線通信モジュール18およびアンテナ22を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ11aは、定期的にフラッシュメモリ17にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、無線通信モジュール18およびアンテナ22を介してネットワークに送信する。また、入出力プロセッサ11aは、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ22および無線通信モジュール18を介して受信し、受信したデータをフラッシュメモリ17に記憶する。CPU10は情報処理プログラムを実行することにより、フラッシュメモリ17に記憶されたデータを読み出して情報処理プログラムで利用する。フラッシュメモリ17には、ゲーム装置3と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置3を利用してプレイしたゲームのセーブデータ(ゲームの結果データまたは途中データ)が記憶されてもよい。
また、入出力プロセッサ11aは、コントローラ5から送信される操作データをアンテナ23および無線コントローラモジュール19を介して受信し、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域に記憶(一時記憶)する。
さらに、入出力プロセッサ11aには、拡張コネクタ20およびメモリカード用コネクタ21が接続される。拡張コネクタ20は、USBやSCSIのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール18に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ21は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ11aは、拡張コネクタ20やメモリカード用コネクタ21を介して外部記憶媒体にアクセスし、外部記憶媒体にデータを保存したり、外部記憶媒体からデータを読み出したりすることができる。
ゲーム装置3には、電源ボタン24、リセットボタン25、およびイジェクトボタン26が設けられる。電源ボタン24およびリセットボタン25は、システムLSI11に接続される。電源ボタン24がオンされると、ゲーム装置3の各構成要素に対して、図示しないACアダプタを経て電源が供給される。リセットボタン25が押されると、システムLSI11は、ゲーム装置3の起動プログラムを再起動する。イジェクトボタン26は、ディスクドライブ14に接続される。イジェクトボタン26が押されると、ディスクドライブ14から光ディスク4が排出される。
[入力装置8の構成]
次に、図3〜図6を参照して、入力装置8について説明する。図3は、入力装置8の外観構成を示す斜視図である。図4は、コントローラ5の外観構成を示す斜視図である。図3は、コントローラ5の上側後方から見た斜視図であり、図4は、コントローラ5を下側前方から見た斜視図である。
図3および図4において、コントローラ5は、例えばプラスチック成型によって形成されたハウジング31を有している。ハウジング31は、その前後方向(図3に示すZ軸方向)を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。プレイヤは、コントローラ5に設けられたボタンを押下すること、および、コントローラ5自体を動かしてその位置や姿勢(傾き)を変えることによってゲーム操作を行うことができる。
ハウジング31には、複数の操作ボタンが設けられる。図3に示すように、ハウジング31の上面には、十字ボタン32a、1番ボタン32b、2番ボタン32c、Aボタン32d、マイナスボタン32e、ホームボタン32f、プラスボタン32g、および電源ボタン32hが設けられる。本明細書では、これらのボタン32a〜32hが設けられるハウジング31の上面を「ボタン面」と呼ぶことがある。一方、図4に示すように、ハウジング31の下面には凹部が形成されており、当該凹部の後面側傾斜面にはBボタン32iが設けられる。これらの各操作ボタン32a〜32iには、ゲーム装置3が実行する情報処理プログラムに応じた機能が適宜割り当てられる。また、電源ボタン32hは遠隔からゲーム装置3本体の電源をオン/オフするためのものである。ホームボタン32fおよび電源ボタン32hは、その上面がハウジング31の上面に埋没している。これによって、プレイヤがホームボタン32fまたは電源ボタン32hを誤って押下することを防止することができる。
ハウジング31の後面にはコネクタ33が設けられている。コネクタ33は、コントローラ5に他の機器(例えば、ジャイロセンサユニット7や他のコントローラ)を接続するために利用される。また、ハウジング31の後面におけるコネクタ33の両側には、上記他の機器が容易に離脱することを防止するために係止穴33aが設けられている。
ハウジング31上面の後方には複数(図3では4つ)のLED34a〜34dが設けられる。ここで、コントローラ5には、他のメインコントローラと区別するためにコントローラ種別(番号)が付与される。各LED34a〜34dは、コントローラ5に現在設定されている上記コントローラ種別をプレイヤに通知したり、コントローラ5の電池残量をプレイヤに通知したりする等の目的で用いられる。具体的には、コントローラ5を用いてゲーム操作が行われる際、上記コントローラ種別に応じて複数のLED34a〜34dのいずれか1つが点灯する。
また、コントローラ5は撮像情報演算部35(図6)を有しており、図4に示すように、ハウジング31前面には撮像情報演算部35の光入射面35aが設けられる。光入射面35aは、マーカ6Rおよび6Lからの赤外光を少なくとも透過する材質で構成される。
ハウジング31上面における1番ボタン32bとホームボタン32fとの間には、コントローラ5に内蔵されるスピーカ49(図5)からの音を外部に放出するための音抜き孔31aが形成されている。
次に、図5および図6を参照して、コントローラ5の内部構造について説明する。図5および図6は、コントローラ5の内部構造を示す図である。なお、図5は、コントローラ5の上筐体(ハウジング31の一部)を外した状態を示す斜視図である。図6は、コントローラ5の下筐体(ハウジング31の一部)を外した状態を示す斜視図である。図6に示す斜視図は、図5に示す基板30を裏面から見た斜視図となっている。
図5において、ハウジング31の内部には基板30が固設されており、当該基板30の上主面上に各操作ボタン32a〜32h、各LED34a〜34d、加速度センサ37、アンテナ45、およびスピーカ49等が設けられる。これらは、基板30等に形成された配線(図示せず)によってマイクロコンピュータ(Micro Computer:マイコン)42(図6参照)に接続される。本実施形態では、加速度センサ37は、X軸方向に関してコントローラ5の中心からずれた位置に配置されている。これによって、コントローラ5をZ軸回りに回転させたときのコントローラ5の動きが算出しやすくなる。また、加速度センサ37は、長手方向(Z軸方向)に関してコントローラ5の中心よりも前方に配置されている。また、無線モジュール44(図6)およびアンテナ45によって、コントローラ5がワイヤレスコントローラとして機能する。
一方、図6において、基板30の下主面上の前端縁に撮像情報演算部35が設けられる。撮像情報演算部35は、コントローラ5の前方から順に赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を備えている。これらの部材38〜41はそれぞれ基板30の下主面に取り付けられる。
さらに、基板30の下主面上には、上記マイコン42およびバイブレータ48が設けられている。バイブレータ48は、例えば振動モータやソレノイドであり、基板30等に形成された配線によってマイコン42と接続される。マイコン42の指示によりバイブレータ48が作動することによってコントローラ5に振動が発生する。これによって、コントローラ5を把持しているプレイヤの手にその振動が伝達される、いわゆる振動対応ゲームを実現することができる。本実施形態では、バイブレータ48は、ハウジング31のやや前方寄りに配置される。つまり、バイブレータ48がコントローラ5の中心よりも端側に配置することによって、バイブレータ48の振動によりコントローラ5全体を大きく振動させることができる。また、コネクタ33は、基板30の下主面上の後端縁に取り付けられる。なお、図5および図6に示す他、コントローラ5は、マイコン42の基本クロックを生成する水晶振動子、スピーカ49に音声信号を出力するアンプ等を備えている。
また、ジャイロセンサユニット7は、3軸回りの角速度を検知するジャイロセンサ(図7に示すジャイロセンサ55および56)を有する。ジャイロセンサユニット7は、コントローラ5のコネクタ33に着脱可能に装着される。ジャイロセンサユニット7の前端(図3に示すZ軸正方向側の端部)には、コネクタ33に接続可能なプラグ(図7に示すプラグ53)が設けられる。さらに、プラグ53の両側にはフック(図示せず)が設けられる。ジャイロセンサユニット7がコントローラ5に対して装着される状態では、プラグ53がコネクタ33に接続されるとともに、上記フックがコントローラ5の係止穴33aに係止する。これによって、コントローラ5とジャイロセンサユニット7とがしっかりと固定される。また、ジャイロセンサユニット7は側面(図3に示すX軸方向の面)にボタン51を有している。ボタン51は、それを押下すれば上記フックの係止穴33aに対する係止状態を解除することができるように構成されている。したがって、ボタン51を押下しながらプラグ53をコネクタ33から抜くことによって、ジャイロセンサユニット7をコントローラ5から離脱することができる。
また、ジャイロセンサユニット7の後端には、上記コネクタ33と同形状のコネクタが設けられる。したがって、コントローラ5(のコネクタ33)に対して装着可能な他の機器は、ジャイロセンサユニット7のコネクタに対しても装着可能である。なお、図3においては、当該コネクタに対してカバー52が着脱可能に装着されている。
なお、図3〜図6に示したコントローラ5およびジャイロセンサユニット7の形状や、各操作ボタンの形状、加速度センサやバイブレータの数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であっても、本発明を実現することができる。また、本実施形態では、撮像手段による撮像方向はZ軸正方向であるが、撮像方向はいずれの方向であってもよい。すなわち、コントローラ5における撮像情報演算部35の位置(撮像情報演算部35の光入射面35a)は、ハウジング31の前面でなくてもよく、ハウジング31の外部から光を取り入れることができれば他の面に設けられてもかまわない。
図7は、入力装置8(コントローラ5およびジャイロセンサユニット7)の構成を示すブロック図である。コントローラ5は、操作部32(各操作ボタン32a〜32i)、コネクタ33、撮像情報演算部35、通信部36、および加速度センサ37を備えている。コントローラ5は、自機に対して行われた操作内容を示すデータを操作データとしてゲーム装置3へ送信するものである。
操作部32は、上述した各操作ボタン32a〜32iを含み、各操作ボタン32a〜32iに対する入力状態(各操作ボタン32a〜32iが押下されたか否か)を示す操作ボタンデータを通信部36のマイコン42へ出力する。
撮像情報演算部35は、撮像手段が撮像した画像データを解析してその中で輝度が高い領域を判別してその領域の重心位置やサイズなどを算出するためのシステムである。撮像情報演算部35は、例えば最大200フレーム/秒程度のサンプリング周期を有するので、比較的高速なコントローラ5の動きでも追跡して解析することができる。
撮像情報演算部35は、赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を含んでいる。赤外線フィルタ38は、コントローラ5の前方から入射する光から赤外線のみを通過させる。レンズ39は、赤外線フィルタ38を透過した赤外線を集光して撮像素子40へ入射させる。撮像素子40は、例えばCMOSセンサやあるいはCCDセンサのような固体撮像素子であり、レンズ39が集光した赤外線を受光して画像信号を出力する。ここで、テレビ2の表示画面近傍に配置されるマーカ部6のマーカ6Rおよび6Lは、テレビ2の前方に向かって赤外光を出力する赤外LEDで構成される。したがって、赤外線フィルタ38を設けることによって、撮像素子40は、赤外線フィルタ38を通過した赤外線だけを受光して画像データを生成するので、マーカ6Rおよび6Lの画像をより正確に撮像することができる。以下では、撮像素子40によって撮像された画像を撮像画像と呼ぶ。撮像素子40によって生成された画像データは、画像処理回路41で処理される。画像処理回路41は、撮像画像内における撮像対象(マーカ6Rおよび6L)の位置を算出する。画像処理回路41は、算出された位置を示す座標を通信部36のマイコン42へ出力する。この座標のデータは、マイコン42によって操作データとしてゲーム装置3に送信される。以下では、上記座標を「マーカ座標」と呼ぶ。マーカ座標はコントローラ5自体の向き(傾斜角度)や位置に対応して変化するので、ゲーム装置3はこのマーカ座標を用いてコントローラ5の向きや位置を算出することができる。
なお、他の実施形態においては、コントローラ5は画像処理回路41を備えていない構成であってもよく、撮像画像自体がコントローラ5からゲーム装置3へ送信されてもよい。このとき、ゲーム装置3は、画像処理回路41と同様の機能を有する回路あるいはプログラムを有しており、上記マーカ座標を算出するようにしてもよい。
加速度センサ37は、コントローラ5の加速度(重力加速度を含む)を検出する、すなわち、コントローラ5に加わる力(重力を含む)を検出する。加速度センサ37は、当該加速度センサ37の検出部に加わっている加速度のうち、センシング軸方向に沿った直線方向の加速度(直線加速度)の値を検出する。例えば、2軸以上の多軸加速度センサの場合には、加速度センサの検出部に加わっている加速度として、各軸に沿った成分の加速度をそれぞれ検出する。例えば、3軸または2軸の加速度センサは、アナログ・デバイセズ株式会社(Analog Devices, Inc.)またはSTマイクロエレクトロニクス社(STMicroelectronics N.V.)から入手可能である種類のものでもよい。なお、加速度センサ37は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。
本実施形態では、加速度センサ37は、コントローラ5を基準とした上下方向(図3に示すY軸方向)、左右方向(図3に示すX軸方向)および前後方向(図3に示すZ軸方向)の3軸方向に関してそれぞれ直線加速度を検出する。加速度センサ37は、各軸に沿った直線方向に関する加速度を検出するものであるため、加速度センサ37からの出力は3軸それぞれの直線加速度の値を表すものとなる。すなわち、検出された加速度は、入力装置8(コントローラ5)を基準に設定されるXYZ座標系(コントローラ座標系)における3次元のベクトル(ax,ay,az)として表される。以下では、加速度センサ37によって検出される3軸に関する各加速度値を各成分とするベクトルを加速度ベクトルと呼ぶ。
加速度センサ37が検出した加速度を示すデータ(加速度データ)は、通信部36へ出力される。なお、加速度センサ37が検出した加速度は、コントローラ5自体の向き(傾斜角度)や動きに対応して変化するので、ゲーム装置3は取得された加速度データを用いてコントローラ5の向きや動きを算出することができる。本実施形態では、ゲーム装置3は、取得された加速度データに基づいてコントローラ5の姿勢や傾斜角度等を算出する。
なお、加速度センサ37から出力される加速度の信号に基づいて、ゲーム装置3のプロセッサ(例えばCPU10)またはコントローラ5のプロセッサ(例えばマイコン42)等のコンピュータが処理を行うことによって、コントローラ5に関するさらなる情報を推測または算出(判定)することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、加速度センサ37を搭載するコントローラ5が静止状態であることを前提としてコンピュータ側の処理が実行される場合(すなわち、加速度センサによって検出される加速度が重力加速度のみであるとして処理が実行される場合)、コントローラ5が現実に静止状態であれば、検出された加速度に基づいてコントローラ5の姿勢が重力方向に対して傾いているか否かまたはどの程度傾いているかを知ることができる。具体的には、加速度センサ37の検出軸が鉛直下方向を向いている状態を基準としたとき、1G(重力加速度)がかかっているか否かによって、コントローラ5が基準に対して傾いているか否かを知ることができるし、その大きさによって基準に対してどの程度傾いているかも知ることができる。また、多軸の加速度センサ37の場合には、さらに各軸の加速度の信号に対して処理を施すことによって、重力方向に対してコントローラ5がどの程度傾いているかをより詳細に知ることができる。この場合において、プロセッサは、加速度センサ37からの出力に基づいてコントローラ5の傾斜角度を算出してもよいし、当該傾斜角度を算出せずに、コントローラ5の傾斜方向を算出するようにしてもよい。このように、加速度センサ37をプロセッサと組み合わせて用いることによって、コントローラ5の傾斜角度または姿勢を判定することができる。
一方、コントローラ5が動的な状態(コントローラ5が動かされている状態)であることを前提とする場合には、加速度センサ37は重力加速度に加えてコントローラ5の動きに応じた加速度を検出するので、検出された加速度から重力加速度の成分を所定の処理により除去することによってコントローラ5の動き方向を知ることができる。また、コントローラ5が動的な状態であることを前提とする場合であっても、検出された加速度から、加速度センサの動きに応じた加速度の成分を所定の処理により除去することによって、重力方向に対するコントローラ5の傾きを知ることが可能である。なお、他の実施例では、加速度センサ37は、内蔵の加速度検出手段で検出された加速度信号をマイコン42に出力する前に当該加速度信号に対して所定の処理を行うための、組込み式の処理装置または他の種類の専用の処理装置を備えていてもよい。組込み式または専用の処理装置は、例えば、加速度センサ37が静的な加速度(例えば、重力加速度)を検出するために用いられる場合、加速度信号を傾斜角(あるいは、他の好ましいパラメータ)に変換するものであってもよい。
通信部36は、マイコン42、メモリ43、無線モジュール44、およびアンテナ45を含んでいる。マイコン42は、処理を行う際にメモリ43を記憶領域として用いながら、マイコン42が取得したデータをゲーム装置3へ無線送信する無線モジュール44を制御する。また、マイコン42はコネクタ33に接続されている。ジャイロセンサユニット7から送信されてくるデータは、コネクタ33を介してマイコン42に入力される。以下、ジャイロセンサユニット7の構成について説明する。
ジャイロセンサユニット7は、プラグ53、マイコン54、2軸ジャイロセンサ55、および1軸ジャイロセンサ56を備えている。上述のように、ジャイロセンサユニット7は、3軸(本実施形態では、XYZ軸)周りの角速度を検出し、検出した角速度を示すデータ(角速度データ)をコントローラ5へ送信する。
2軸ジャイロセンサ55は、X軸周りの角速度およびZ軸周りの(単位時間あたりの)角速度を検出する。また、1軸ジャイロセンサ56は、Y軸周りの(単位時間あたりの)角速度を検出する。なお、本明細書では、コントローラ5の撮像方向(Z軸正方向)を基準として、XYZ軸周りの回転方向を、それぞれ、ピッチ方向、ヨー方向、ロール方向と呼ぶ。すなわち、2軸ジャイロセンサ55は、ピッチ方向(X軸周りの回転方向)およびロール方向(Z軸周りの回転方向)の角速度を検出し、1軸ジャイロセンサ56は、ヨー方向(Y軸周りの回転方向)の角速度を検出する。
なお、本実施形態では、3軸回りの角速度を検出するために、2軸ジャイロセンサ55と1軸ジャイロセンサ56とを用いる構成としたが、他の実施形態においては、3軸回りの角速度を検出することができればよく、用いるジャイロセンサの数および組み合わせはどのようなものであってもよい。
各ジャイロセンサ56および57で検出された角速度を示すデータは、マイコン54に出力される。したがって、マイコン54には、XYZ軸の3軸回りの角度速度を示すデータが入力されることになる。マイコン54は、上記3軸回りの角速度を示すデータを角速度データとしてプラグ53を介してコントローラ5へ送信する。なお、マイコン54からコントローラ5への送信は所定の周期毎に逐次行われるが、ゲームの処理は1/60秒を単位として(1フレーム時間として)行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。
コントローラ5の説明に戻り、操作部32、撮像情報演算部35、および加速度センサ37からマイコン42へ出力されたデータ、ならびに、ジャイロセンサユニット7からマイコン42へ送信されてきたデータは、一時的にメモリ43に格納される。これらのデータは、上記操作データとしてゲーム装置3へ送信される。すなわち、マイコン42は、ゲーム装置3の無線コントローラモジュール19への送信タイミングが到来すると、メモリ43に格納されている操作データを無線モジュール44へ出力する。無線モジュール44は、例えばBluetooth(ブルートゥース)(登録商標)の技術を用いて、所定周波数の搬送波を操作データで変調し、その微弱電波信号をアンテナ45から放射する。つまり、操作データは、無線モジュール44で微弱電波信号に変調されてコントローラ5から送信される。微弱電波信号はゲーム装置3側の無線コントローラモジュール19で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置3は操作データを取得することができる。そして、ゲーム装置3のCPU10は、取得した操作データと情報処理プログラムとに基づいて、ゲーム処理を行う。なお、通信部36から無線コントローラモジュール19への無線送信は所定の周期毎に逐次行われるが、ゲームの処理は1/60秒を単位として(1フレーム時間として)行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。コントローラ5の通信部36は、例えば1/200秒に1回の割合で各操作データをゲーム装置3の無線コントローラモジュール19へ出力する。
以上のように、ゲーム装置3は、ユーザが操作する入力装置8の傾きに応じた操作データとして、マーカ座標データ、加速度データ、および角速度データを取得可能である。なお、他の実施形態においては、ゲーム装置3が取得する操作データは、後述する入力装置の傾きおよび指示位置を当該操作データに基づいて算出することができるものであればよく、マーカ座標データ、加速度データ、および角速度データの少なくとも1つを取得するものであってもよい。上記入力装置8を用いることによって、プレイヤは、各操作ボタンを押下する従来の一般的なゲーム操作に加えて、入力装置8を任意の傾斜角度に傾ける操作を行うことができる。さらに、上記入力装置8によれば、プレイヤは、入力装置8によって画面上の任意の位置を指示する操作、および、入力装置8自体を動かす操作を行うこともできる。
[ゲーム装置3による処理の概要]
次に、図8および図9を参照して、ゲーム装置3において実行される処理の概要を説明する。ゲーム装置3は、画面に表示される複数の選択対象のうちから1つを選択する操作を、入力装置8を用いてユーザに行わせる処理を実行する。本実施形態においては、ユーザに文字入力を行わせる場合を例にとって説明する。すなわち、ゲーム装置3は、文字を表す画像を画面に複数表示し、複数の画像から1つをユーザに選択させることで、選択された画像が表す文字の入力を受け付ける。
図8は、ゲーム装置3による処理によってテレビ2の画面に表示される画像の一例を示す図である。図8においては、“J”〜“R”を表す文字画像と、カーソル60とが画面に表示される。画面に表示される文字画像は、ユーザに選択させるべき選択対象である。なお、ここでは選択対象が文字画像である場合を例として説明するが、選択対象はどのようなものであってもよく、アイコンであってもよいし、地図上の地点であってもよい。
カーソル60は、図8に示すように、画面上において入力装置8が指し示す位置(以下、指示位置と呼ぶ。)に表示される。「入力装置8が指し示す位置(指示位置)」とは、理想的には、入力装置8(コントローラ5)のZ軸を正方向に延ばした直線と画面との交点の位置である。ただし実際には、ゲーム装置3は、指示位置として上記交点の位置を厳密に算出する必要はなく、当該交点の位置付近の位置を算出すればよい。本実施形態における指示位置の算出方法の詳細については後述する。また、他の実施形態においては、指示位置は、上記交点付近の位置でなくてもよく、単に、入力装置8の位置および傾き(姿勢)の少なくとも1つに応じて変化するように算出されるものでもよい。例えば、他の実施形態においては、ゲーム装置3は、入力装置8の移動方向を加速度センサによって検出し、当該移動方向に応じて指示位置を移動させるようにしてもよい。以上のように、ゲーム装置3は、入力装置8の位置および向きの少なくとも1つに応じて変化するように、指示位置を操作データに基づいて算出する。
本実施形態において、ユーザは、入力装置8の向き(および/または位置)を操作して上記指示位置を移動させ、カーソル60を移動させる。そして、ユーザは、入力を行いたい文字を表す文字画像をカーソル60が指し示す状態で、コントローラ5の所定のボタン(例えばAボタン32d)を押下することによって、当該文字の入力を行う。ゲーム装置3は、所定のボタンが押下されたことに応じて、カーソル60が指し示す文字画像が表す文字の入力を受け付ける。このように、ゲーム装置3は、画面に複数の文字画像を表示し、入力装置8を用いて複数の文字画像から1つをユーザに選択させる。
また、本実施形態においては、ゲーム装置3は、入力装置8の傾きを操作データに基づいて算出する。そして、画面に表示される選択対象(文字画像)を、入力装置8の傾き量に応じて切り替える。図9は、入力装置8の傾きと、表示される選択対象との関係を示す図である。図9に示すように、入力装置8は、ボタン面(ボタン32a〜32hが設けられるハウジング31の上面)が鉛直上向きとなる姿勢を基準姿勢として、基準姿勢からZ軸回りに傾いた傾き量に応じて選択対象を切り替える。具体的には、入力装置8が上記基準姿勢である場合、“J”〜“R”を表す複数の文字画像62が選択対象として表示される(図9に示す中央の欄)。また、入力装置8が上記基準姿勢から左回りに傾いている場合、“A”〜“I”を表す複数の文字画像61が選択対象として表示される(図9に示す左側の欄)。また、入力装置8が上記基準姿勢から右回りに傾いている場合、“S”〜“Z”を表す複数の文字画像63が選択対象として表示される(図9に示す右側の欄)。なお、上記「右回り」および「左回り」とは、Z軸負方向から正方向に見たときの回転方向である。
以上より、本実施形態においては、ユーザは、入力装置8のZ軸で画面上の位置を指し示す操作と、入力装置8をZ軸回りに傾ける操作とを組み合わせることで、“A”〜“Z”の文字を選択して入力することができる。ここで、本実施形態においては、26種類の文字画像を選択可能であるが、画面に同時に表示される文字画像は9個または8個である。したがって、一度に26個全ての文字画像を表示する従来の方法に比べると、画面に同時に表示される文字画像の数を少なくすることができる。一度に表示される文字画像が多すぎると文字画像の選択操作が困難になるが、本実施形態によれば、画面に表示される文字画像を少なくすることによって、ユーザは当該選択操作を容易に行うことができる。また、本実施形態においては、ユーザは、文字画像を選択する操作(指示位置を移動する操作)と、文字画像を切り替える操作(入力装置8の傾きを変更する操作)との両方を、入力装置8を用いて行うことができる。したがって、2種類の操作を同時に行うことができ、2種類の操作による入力操作を容易に行うことができる。また、2種類の操作による入力操作を片手で行うことができる。
[ゲーム装置3による処理の詳細]
次に、ゲーム装置3において実行される処理の詳細について説明する。まず、ゲーム装置3における処理において用いられる主なデータについて図10を用いて説明する。図10は、ゲーム装置3のメインメモリ(外部メインメモリ12または内部メインメモリ11e)に記憶される主なデータを示す図である。図10に示すように、ゲーム装置3のメインメモリには、情報処理プログラム70、操作データ71、および処理用データ76が記憶される。なお、メインメモリには、図10に示すデータの他、画面に表示される各種オブジェクトの画像データや、オブジェクトの各種パラメータを示すデータ等、処理に必要なデータが記憶される。
情報処理プログラム70は、ゲーム装置3に電源が投入された後の適宜のタイミングで光ディスク4からその一部または全部が読み込まれてメインメモリに記憶される。情報処理プログラム70には、選択対象(具体的には文字画像)を表示し、表示された選択対象のうちからユーザが選択した対象に応じた処理(具体的には、文字画像が表す文字を出力する処理)を行うプログラムが含まれる。
操作データ71は、コントローラ5からゲーム装置3へ送信されてくる操作データである。上述したように、コントローラ5からゲーム装置3へ1/200秒に1回の割合で操作データが送信されるので、メインメモリに記憶される操作データ71はこの割合で更新される。本実施形態においては、メインメモリには、最新の(最後に取得された)操作データのみが記憶されればよい。図10に示すように、操作データ71には、加速度データ72、マーカ座標データ73、操作ボタンデータ74、および角速度データ75が含まれる。
加速度データ72は、加速度センサ37によって検出された加速度(加速度ベクトル)を示すデータである。ここでは、加速度データ72は、図3に示すXYZの3軸の方向に関する加速度を各成分とする3次元の加速度ベクトルを示す。また、本実施形態においては、コントローラ5が静止している状態で加速度センサ37が検出する加速度ベクトルの大きさを“1”とする。つまり、加速度センサ37によって検出される重力加速度の大きさは“1”である。
マーカ座標データ73は、撮像情報演算部35の画像処理回路41によって算出される座標、すなわち上記マーカ座標を示すデータである。マーカ座標は、撮像画像に対応する平面上の位置を表すための2次元座標系(図17に示すx’y’座標系)で表現される。なお、撮像素子40によって2つのマーカ6Rおよび6Lが撮像される場合には、2つのマーカ座標が算出される。一方、撮像素子40の撮像可能な範囲内にマーカ6Rおよび6Lのいずれか一方が位置しない場合には、撮像素子40によって1つのマーカのみが撮像され、1つのマーカ座標のみが算出される。また、撮像素子40の撮像可能な範囲内にマーカ6Rおよび6Lの両方が位置しない場合には、撮像素子40によってマーカが撮像されず、マーカ座標は算出されない。したがって、マーカ座標データ73は、2つのマーカ座標を示す場合もあるし、1つのマーカ座標を示す場合もあるし、マーカ座標がないことを示す場合もある。
操作ボタンデータ74は、各操作ボタン32a〜32iに対する入力状態を示すデータである。すなわち、操作ボタンデータ74は、各操作ボタン32a〜32iがそれぞれ押下されているかどうかを示す。
角速度データ75は、ジャイロセンサユニット7のジャイロセンサ55および56によって検出された角速度を示すデータである。ここでは、角速度データ75は、図3に示すXYZの3軸回りのそれぞれの角速度を示す。
処理用データ76は、後述する文字入力処理(図11)において用いられるデータである。処理用データ76は、指示位置データ77、傾きデータ78、ページデータ79、および、閾値データ80を含む。
指示位置データ77は、画面上における上記指示位置を示すデータである。本実施形態においては、指示位置は、画面上の位置を表すための2次元座標系で表現される。また、本実施形態においては、指示位置は、上記操作データ71から算出される入力装置8の傾きに基づいて算出される。より具体的には、指示位置は、入力装置8の傾きのうち、X軸回りの回転およびY軸回りの回転に関する傾きに基づいて算出される。指示位置は、選択対象(複数の文字画像)から1つを選択する処理に用いられる。
傾きデータ78は、入力装置8の傾きを示すデータである。傾きデータ78が示す傾きは、選択対象を切り替える処理に用いられる。また、傾きデータ78は、入力装置8の傾き(姿勢)のうち、Z軸回りの回転に関する傾きを示す。つまり、選択対象を切り替える処理に用いられる傾きデータ78は、上記指示位置の算出に用いられない軸回り(Z軸回り)の回転に関する傾きを示す。本実施形態においては、入力装置8の傾きは、上述した基準姿勢(ボタン面が鉛直上向きとなる姿勢)となる場合を0°とし、Z軸負方向から正方向に見たときの回転方向が右回りとなる向きの傾きを正の値で表した角度θ(−180°<θ≦180°)で表される。
ページデータ79は、画面に表示され得る全ての選択対象のうち、実際に表示される選択対象のグループを示す。本実施形態では、画面には、“A”〜“I”を表す複数の文字画像61、“J”〜“R”を表す複数の文字画像62、および、“S”〜“Z”を表す複数の文字画像63のいずれかが表示される。ここでは、複数の文字画像61を第1ページと呼び、複数の文字画像62を第2ページと呼び、複数の文字画像63を第3ページと呼ぶ。ページデータは、上記第1〜第3ページのいずれかを示す。なお、本実施形態においては、切替によって表示可能なページ数を3ページとするが、ページ数はいくつであってもよい。ただし、ページ数があまりに多くなると、ユーザが所望のページを表示する操作が難しくなる点に注意すべきである。
閾値データ80は、画面に表示される選択対象を切り替える閾値(上限値および/または下限値)を示すデータである。傾きデータ78によって示される傾きが当該閾値を超えたり下回ったりした場合、選択対象の切り替えが行われる。また、本実施形態においては、上記各ページ毎に閾値が設定される。具体的には、閾値データ80は、下記の各閾値を示す。
第1ページ:上限値=θ1°
第2ページ:下限値=θ2°、上限値=θ3°
第3ページ:下限値=θ4°
第1ページの閾値θ1°は、第1ページが表示されている場合、入力装置8の傾き角度θが上限値θ1°を超えると第2ページに切り替わることを意味する。第2ページの閾値θ2°およびθ3°は、第2ページが表示されている場合、入力装置8の傾き角度θが下限値θ2°を下回ると第1ページに切り替わり、上限値θ3°を超えると第3ページに切り替わることを意味する。第3ページの閾値θ4°は、第3ページが表示されている場合、入力装置8の傾き角度θが下限値θ4°を超えると第2ページに切り替わることを意味する。なお、上記において、閾値θ1およびθ2は負の値であり、閾値θ3およびθ4は正の値である。また、詳細は後述するが、θ1≧θ2、および、θ3≧θ4となるように各閾値が設定される。
次に、ゲーム装置3において行われる処理の詳細な流れを、図11および図12を用いて説明する。図11は、ゲーム装置3において実行される文字入力処理の流れを示すメインフローチャートである。ゲーム装置3の電源が投入されると、ゲーム装置3のCPU10は、図示しないブートROMに記憶されている起動プログラムを実行し、これによってメインメモリ等の各ユニットが初期化される。そして、光ディスク4に記憶された情報処理プログラムがメインメモリに読み込まれ、CPU10によって当該情報処理プログラムの実行が開始される。図11に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。
まず、ステップS1において、CPU10は、初期化処理を実行する。この初期化処理においては、文字入力処理に用いられる各種パラメータの値が初期化される。例えば、本実施形態では、ページデータ79としては、第2ページを示すデータがメインメモリに記憶される。また、初期化処理においては、選択対象である上記文字画像が配置される仮想空間が構築される。以上のステップS1の後、ステップS2〜S7の処理ループが、ゲームが実行される間、繰り返し実行される。なお、当該処理ループは、1フレーム時間(例えば1/60秒)に1回の割合で実行される。
ステップS2において、CPU10は操作データを取得する。すなわち、コントローラ5から送信されてくる操作データが無線コントローラモジュール19を介して受信される。そして、受信された操作データに含まれる加速度データ、マーカ座標データ、操作ボタンデータ、および、角速度データがそれぞれメインメモリに記憶される。ステップS2の次にステップS3の処理が実行される。
ステップS3において、CPU10は表示対象決定処理を実行する。表示対象決定処理は、画面に表示され得る選択対象のうち、実際に表示する選択対象(表示対象)を決定する処理である。以下、図12を参照して、表示対象決定処理の詳細について説明する。
図12は、図11に示す表示対象決定処理(ステップS3)の流れを示すフローチャートである。表示対象決定処理においては、まずステップS11において、CPU10は、入力装置8のZ軸回りの傾き角度θを算出する。具体的には、CPU10は、操作データ71をメインメモリから読み出し、操作データ71に基づいて傾き角度θを算出する。算出された傾き角度θを示すデータが、傾きデータ78としてメインメモリに記憶される。上記の傾き角度θを算出する方法は、操作データに基づいて算出する方法であればどのような方法であってもよいが、例えば、以下に説明する第1および第2の算出方法が考えられる。
第1の算出方法は、操作データに含まれるマーカ座標を用いる方法である。図13は、撮像画像におけるマーカ座標の位置の例を示す図である。図13に示すように、撮像画像上における位置はx’y’座標系によって表現される。図13においては、位置P1およびP2を表す2つのマーカ座標が撮像情報演算部35によって算出されたものとする。つまり、ゲーム装置3は、図13に示す位置P1およびP2を表すマーカ座標を示すデータを操作データとしてコントローラ5から取得したものとする。このとき、CPU10は、まず、2つのマーカ座標を結ぶベクトルv1を算出する。なお、2つのマーカ座標のうちでいずれをベクトルの始点にしていずれをベクトルの終点にするかは、予め定められたルールに従って決定される。例えば、2つのマーカ座標のうち、x’成分の値が小さい方のマーカ座標を始点とするようにしてもよいし、前回のステップS11の処理において始点とされたマーカ座標に近い方のマーカ座標を始点とするようにしてもよい。
上記ベクトルv1とx’軸とのなす角度は、上述した基準姿勢(ボタン面が鉛直上向きとなる姿勢)となる場合に0°となり、入力装置8のZ軸回りの回転に応じて変化する。つまり、上記ベクトルv1とx’軸とのなす角度が入力装置8の傾き角度θに対応する。したがって、CPU10は、ベクトルv1とx’軸とのなす角度を入力装置の傾き角度θとして算出する。以上の第1の算出方法によれば、撮像素子によって撮像した画像を用いるので、入力装置8の傾き角度θを正確に算出することができる。
第2の算出方法は、操作データに含まれる角速度を用いる方法である。CPU10は、初期時点での入力装置の傾きを取得しておけば、初期時点での傾きに対して、逐次検出される角速度を累積加算していくことで入力装置8の傾き角度θを算出することができる。具体的には、入力装置8の傾き角度θは、前回の傾き(前回の処理ループにおいて算出された傾き)を、今回の角速度(今回の処理ループにおいて取得された角速度)で単位時間分だけ変化させた傾きの角度として算出される。
上記初期時点での傾きは、例えば、入力装置8が予め定められた所定の傾きとなる状態でユーザに所定の操作(例えば、Aボタン32dを押下する操作)を行わせることで取得されてもよい。このとき、CPU10は、当該所定の操作が行われた時点(初期時点)での傾きを、上記所定の傾きとすればよい。また例えば、初期時点での傾きは、上述した第1の算出方法によって算出されてもよい。
また、Z軸回りの傾き角度θを得るために、CPU10は、3軸回りの傾きを算出してもよいし、Z軸回りの傾きのみを算出してもよい。すなわち、CPU10は、3軸回り(3次元)の角速度に基づいて入力装置8の3軸回りの傾きを算出し、3軸回りの傾きからZ軸回りの傾きを抽出することによって上記傾き角度θを得てもよい。また、CPU10は、単にZ軸回りの角速度に基づいてZ軸回りの傾き角度θを算出してもよい。
ここで、上記第1の方法では、撮像素子40がマーカ部6を撮像可能な状態で(つまり、入力装置8のZ軸正方向がマーカ部6の方を向く状態で)入力装置8を使用する必要があるので、入力装置8の使用範囲が制限されてしまう。これに対して、第2の方法によれば、マーカ座標を用いずに傾き角度θを算出することができるので、入力装置8の使用範囲が制限されることがなく、ユーザは入力装置8を自由な方向に向けて使用することができる。
なお、入力装置8の傾き角度θを算出する方法は上記に限らず、どのような方法であってもよい。例えば、他の実施形態においては、CPU10は、操作データに含まれる加速度を用いて傾き角度θを算出してもよい。なお、加速度センサ37は入力装置8に加えられる重力加速度を加速度として検知可能であるので、当該加速度を用いて重力方向に対する入力装置8の傾き角度θを算出することが可能である。また、他の実施形態においては、第1の方法と第2の方法とを組み合わせて用いてもよい。具体的には、第2の方法によって算出された入力装置8の傾き角度に対して、第1の方法によって算出された傾き角度を用いて補正を加える(例えば、第2の方法で算出された傾き角度を、所定の割合で第1の方法で算出された傾き角度へと近づける等)ようにしてもよい。さらに、他の実施形態においては、CPU10は、加速度、角速度、およびマーカ座標の全てを用いて傾き角度θを算出してもよい。
以上より、入力装置8の傾き角度を算出するために用いられる操作データは、マーカ座標データであってもよいし、角速度データであってもよいし、加速度データであってもよいし、これらのデータの組み合わせであってもよい。操作データは、入力装置8の傾き角度を算出することができるものであれば、どのようなものであってもよい。すなわち、操作データは、上記マーカ座標データおよび加速度データのような、入力装置8の傾きに応じてその内容が変化するデータ、あるいは、上記角速度データのような、入力装置8の傾きの変化に応じてその内容が変化するデータであればよい。
図12の説明に戻り、上記ステップS11の次にステップS12の処理が実行される。ステップS12において、CPU10は、入力装置8の傾き角度θが、現在の上限値よりも大きいか否かを判定する。「現在の上限値」とは、現在表示されているページ(ページデータ79が示すページ)に対応する上限値を指す。具体的には、まず、CPU10は、ページデータ79と閾値データ80とをメインメモリから読み出し、上記現在の上限値を特定する。例えば、ページデータ79が第1ページを示す場合、現在の上限値は“θ1°”と特定され、ページデータ79が第2ページを示す場合、現在の上限値は“θ3°”と特定される。なお、ページデータ79が第3ページを示す場合、上限値は設定されていないので、この場合にはステップS12の判定結果は否定となる。次に、CPU10は、傾きデータ78をメインメモリから読み出し、傾きデータ78が示す傾き角度θが、特定された現在の上限値よりも大きいか否かを判定する。ステップS12の判定結果が肯定である場合、ステップS13の処理が実行される。一方、ステップS12の判定結果が否定である場合、後述するステップS15の処理が実行される。
ステップS13において、CPU10は、現在表示されているページの次のページが存在するか否かを判定する。ステップS13の判定結果が肯定である場合、ステップS14の処理が実行される。一方、ステップS13の判定結果が否定である場合、後述するステップS15の処理が実行される。上記ステップS13の判定処理は、次のページが存在しない場合にページの切替処理(ステップS14)が実行されることを防止するための処理である。なお、本実施形態においては、次のページが存在しない第3ページに対しては上限値が設定されないので、ステップS13の処理は省略されてもよい。ただし、次のページが存在しないページに対して上限値が設定される場合には、ステップS13の処理が実行されることが好ましい。
ステップS14において、CPU10は、次のページへと選択対象を切り替える。具体的には、CPU10は、ページデータ79をメインメモリから読み出し、ページデータ79が示すページ数に1を加算したページ数を示すデータを新たなページデータ79としてメインメモリに記憶する。上記ステップS14によって、表示対象が決定されたことになる。ステップS14の終了後、CPU10は表示対象決定処理を終了する。
ステップS15において、CPU10は、入力装置8の傾き角度θが、現在の下限値よりも小さいか否かを判定する。「現在の下限値」とは、現在表示されているページ(ページデータ79が示すページ)に対応する下限値を指す。具体的には、まず、CPU10は、ページデータ79と閾値データ80とをメインメモリから読み出し、上記現在の下限値を特定する。例えば、ページデータ79が第2ページを示す場合、現在の下限値は“θ2°”と特定され、ページデータ79が第3ページを示す場合、現在の下限値は“θ4°”と特定される。なお、ページデータ79が第1ページを示す場合、下限値は設定されていないので、この場合にはステップS15の判定結果は否定となる。次に、CPU10は、傾きデータ78をメインメモリから読み出し、傾きデータ78が示す傾き角度θが、特定された現在の下限値よりも小さいか否かを判定する。ステップS15の判定結果が肯定である場合、ステップS16の処理が実行される。一方、ステップS15の判定結果が否定である場合、CPU10は表示対象決定処理を終了する。
ステップS16において、CPU10は、現在表示されているページの前のページが存在するか否かを判定する。ステップS16の判定結果が肯定である場合、ステップS17の処理が実行される。一方、ステップS16の判定結果が否定である場合、CPU10は表示対象決定処理を終了する。上記ステップS16の判定処理は、前のページが存在しない場合にページの切替処理(ステップS17)が実行されることを防止するための処理である。なお、本実施形態においては、前のページが存在しない第1ページに対しては下限値が設定されないので、上記ステップS13と同様、ステップS16の処理は省略されてもよい。ただし、次のページが存在しないページに対して下限値が設定される場合には、ステップS16の処理が実行されることが好ましい。
ステップS17において、CPU10は、前のページへと選択対象を切り替える。具体的には、CPU10は、ページデータ79をメインメモリから読み出し、ページデータ79が示すページ数に1を減算したページ数を示すデータを新たなページデータ79としてメインメモリに記憶する。上記ステップS17によって、表示対象が決定されたことになる。ステップS17の終了後、CPU10は表示対象決定処理を終了する。
上記の表示対象決定処理によれば、傾き量に応じて選択対象が切り替えられる。すなわち、入力装置8を傾けることによって傾き角度θが上限値を超えた場合(ステップS12でYes)、それまで表示されていたページからその次のページへと切り替えられる(ステップS14)。一方、入力装置8を傾けることによって傾き角度θが下限値を超えた場合(ステップS15でYes)、それまで表示されていたページからその前のページへと切り替えられる(ステップS17)。また、入力装置8の傾き角度θが下限値以上でかつ上限値以下の場合、それまで表示されていたページが引き続き表示対象となる(ステップS12でNo、かつ、ステップS15でNo)。
なお、上記実施形態では、第1ページの上限値θ1は第2ページの下限値θ2よりも大きく設定され、第2ページの上限値θ3は第3ページの下限値θ4よりも大きく設定される。これによって、ページが頻繁に切り替わってしまうことを防止することができ、切り替え操作の操作性が向上される。以下、図14および図15を参照して詳細を説明する。
図14は、第2ページが表示される場合における入力装置8の傾き角度θおよび閾値を示す図である。図14に示すように第2ページが表示される場合、下限値はθ2°に設定され、上限値はθ3°に設定される。したがって、傾き角度θがθ2≦θ≦θ3の範囲(図14に示す斜線範囲)から外に出た場合に、ページが切り替えられる。一方、図15は、第3ページが表示される場合における入力装置8の傾き角度θおよび閾値を示す図である。図15に示すように第3ページが表示される場合、下限値はθ4°に設定される。したがって、傾き角度θがθ4≦θの範囲(図15に示す斜線範囲)から外に出た場合に、ページが切り替えられる。
ここで、上述のように下限値θ4は上限値θ3よりも小さく設定される(例えば、θ4=10°、θ3=30°)。したがって、画面に第2ページが表示されている場合、CPU10は、傾き角度θが上限値θ3を超えたことを条件として、画面に表示される選択対象を第2ページから第3ページへと切り替える。また、画面に第3ページが表示されている場合、CPU10は、傾き角度θが上限値θ3より小さい下限値θ4を下回ったことを条件として、画面に表示される選択対象を第3ページから第2ページへと切り替える。これによれば、傾き角度θの値が上限値θ3を超えたことによって第2ページから第3ページへと切り替えられると、傾き角度θが若干減少してθ3を下回っても(下限値θ4を下回らない限り)第3ページから第2ページへと戻ることはない。つまり、傾き角度θが上限値θ3となる前後で入力装置8の傾きが変動したとしても、第2ページと第3ページとの間でページが頻繁に切り替わってしまうことがないので、切り替え操作の操作性を向上することができる。
なお、上記図14および図15では第2ページと第3ページとの間の切り替えを例として説明したが、第1ページと第2ページとの間の切り替えについても、第1ページの上限値θ1が第2ページの下限値θ2よりも大きく設定されることによって、上記と同様の効果を奏することができる。
図11の説明に戻り、ステップS3の次のステップS4において、CPU10は、操作データに基づいて上記指示位置を算出する。具体的には、CPU10は、操作データ71をメインメモリから読み出し、操作データ71に基づいて指示位置を算出する。算出された指示位置を示すデータは、指示位置データ77としてメインメモリに記憶される。指示位置を算出する方法は、操作データに基づいて算出する方法であればどのような方法であってもよいが、例えば、マーカ座標を用いて算出する方法と、入力装置8の傾きに基づいて算出する方法とが考えられる。以下、指示位置の算出方法の一例を説明する。
まず、図13を参照して、マーカ座標を用いて指示位置を算出する方法について説明する。まず、CPU10は、操作データ71に含まれるマーカ座標データ73から2つのマーカ座標の中点(図13に示す点P3)を算出する。次に、CPU10は、上記2つのマーカ座標を結ぶベクトルv1がx’軸に平行になるように、撮像画像の中心を軸として当該マーカ座標の中点を回転する補正を行う。この補正によって、入力装置8のZ軸回りに関して基準姿勢から傾いている場合においても正確に指示位置を算出することができる。次に、CPU10は、上記補正後の中点の位置を示す座標を、テレビ2の画面上の位置を表す座標に変換する。なお、入力装置8の指示位置と、撮像画像内での上記中点の位置とでは逆方向に移動することになるので、上記の変換においては上下左右が反転するような変換が行われる。上記の変換によって得られる画面上の位置が上記指示位置となる。
以上のように、マーカ座標を用いて指示位置を算出する方法によれば、入力装置8の傾き角度θを算出するための上記第1の算出方法と同様、指示位置を正確に算出することができる。
次に、図16および図17を参照して、入力装置8の傾きに基づいて指示位置を算出する方法について説明する。図16は、所定の仮想空間に入力装置8と所定の平面とを仮想的に配置した図である。本実施形態では、図16に示すように、CPU10は、3次元の仮想空間を定義し、入力装置8と所定の平面Qとが仮想的に配置されていると考えて指示位置の算出を行う。平面Qは、テレビ2の画面に対応するものである。CPU10は、指示位置として、仮想空間において入力装置8のZ軸(図16に示すZ軸ベクトルVZ)の方向が指し示す平面Q上の位置を算出する。すなわち、仮想空間において入力装置8の傾きを表すZ軸ベクトルVZを延ばした線分と、当該仮想空間における所定平面Qとの交点Rの位置を指示位置として算出する。なお、「Z軸ベクトルVZを延ばした線分」とは、Z軸ベクトルVZに平行でかつZ軸上を通る線分を意味する。
なお、図16に示すように、本実施形態では、上記仮想空間の位置をX’Y’Z’座標系によって表現する。また、平面Q上の位置をx”y”座標系で表現する。このとき、空間座標系のX’Y’平面に平行となるように平面Qを設定し、空間座標系のX’軸と平面Qのx”軸が平行となり、空間座標系のY’軸と平面Qのy”軸が平行となるようにx”y”座標系を設定する(図16参照)。
また、本実施形態では、プレイヤは入力装置8をテレビ2の画面のほぼ正面の位置で使用する状況を想定し、上記仮想空間において入力装置8の位置は変化しないものとする。すなわち、CPU10は、上記仮想空間において入力装置8の姿勢(傾き)のみを変化させ、入力装置8の位置を変化させずに処理を行う。これによって、入力装置8の傾きから平面Q上の位置(交点Rの位置)を一義的に決定することができる。
以下、平面Q上の位置(交点Rの位置)を算出する方法について詳細に説明する。図17は、図16に示す仮想空間をY’軸正方向側から負方向側へ見た図である。図17においては、入力装置8の位置を表す点Sから、当該点Sを平面Qに投影させた点(投影点)Tまでの長さを“L”とする。また、投影点Tから上記交点Rまでの、x”成分に関する長さを“Wx”とする。本実施形態では、上記長さLの値は、所定のタイミング(例えば、ゲーム処理が開始されるタイミング等)でプレイヤによって設定される。
まず、CPU10は、入力装置8の傾きからZ軸ベクトルVZを算出する。なお、入力装置8の傾きは、傾き角度θを算出するための上記第2の算出方法と同様の方法で算出することができる。したがって、入力装置8の傾き角度θを算出するために上記第2の算出方法を採用する場合には、CPU10は、上記ステップS11で算出した入力装置8の3次元の傾きをメインメモリに記憶しておき、当該傾きを用いてZ軸ベクトルVZを算出すればよい。
ここで、図17から明らかなように、上記長さWxと上記長さLとの比は、Z軸ベクトルVZのX’成分(Zx)とZ軸ベクトルVZのZ’成分(Zz)との比に等しくなるという関係がある。したがって、この関係に基づいて、既知のベクトルVZのX’成分Zx、Z’成分Zz、および既知の長さLから、長さWxを算出することができる。すなわち、CPU10は、上記Z軸ベクトルVZを用いて、次の式(1)によって長さWxを算出する。
Wx=L×Zx/Zz …(1)
また、x”成分の長さWxと同様に、投影点Tから交点Rまでのy”成分の長さWyは、次の式(2)によって算出することができる。
Wy=L×Zy/Zz …(2)
上記長さWxおよびWyが得られれば、平面Q上における交点Rの位置を算出することができる。本実施形態では、上記投影点Tの位置をx”y”座標系の原点とする。このとき、交点Rの座標は(Wx,Wy)となる。
交点Rの位置を算出した後、CPU10は、交点Rの位置に対応する画面上の位置を指示位置として算出する。すなわち、x”y”座標系の座標値を、画面上の位置を表す座標系の座標値へと変換する。この変換においては、入力装置8が画面の中心を指し示す傾きとなる場合に指示位置が画面の中心となるように指示位置を算出することが好ましい。例えば、CPU10は、上記投影点Tの位置と画面の中央の位置とを対応させるように上記変換を行ってもよい。また例えば、CPU10は、入力装置8が画面の中心を指し示す傾きとなったか否かをマーカ座標を用いて判定し、当該傾きとなった場合において算出される平面Q上の交点Rの位置を画面の中央の位置と対応させるように変換を行ってもよい。
以上のように、入力装置8と所定の平面Qとを配置する仮想空間を設定し、仮想空間において入力装置8の所定軸(Z軸)の方向が指し示す平面Q上の位置を算出することによって、入力装置8の傾きから指示位置を得ることができる。入力装置8の傾きを用いて指示位置を算出する方法によれば、入力装置8の傾き角度θを算出するための上記第2の方法と同様、ユーザは入力装置8を自由な方向に向けて使用することができる。
なお、上記実施形態においては、長さLをプレイヤが設定することができるようにした。ここで、上式(1)および(2)から明らかなように、長さLの大きさを調整することによって、算出される2次元座標(Wx,Wy)の値を変化させることができる。つまり、長さLの大きさを調整することによって、Z軸ベクトルVZの向きの変化(すなわち、入力装置8の傾きの変化)に対する2次元座標(Wx,Wy)の変化量を調整することができる。具体的には、長さLの値が大きくなると上記変化量は大きくなる。その結果、入力装置8の傾きを少し変化させるだけで、カーソルが大きく移動することになる。一方、長さLの値が小さくなると上記変化量は小さくなる。その結果、入力装置8の傾きを大きく変化させても、カーソルは少ししか移動しないことになる。以上より、上記実施形態においては、長さLをプレイヤに設定させることによって、入力装置8の操作感をプレイヤ自身が調整することができるようになる。例えば、プレイヤは、カーソルを細かく操作することを必要とする場合には長さLを相対的に小さく設定すればよく、カーソルを大きく移動させる操作を必要とする場合には長さLを相対的に大きく設定すればよい。なお、他の実施形態においては、上記長さLは、予め定められた定数であってもよい。
また、他の実施形態においては、ゲーム装置3が所定の方法で上記長さLを算出するようにしてもよい。例えば、CPU10は、入力装置8からテレビ2の画面までの実際の距離を算出し、算出された距離を長さLとして設定してもよい。上記実際の距離は、例えば、撮像素子40によって撮像された撮像画像内における2つのマーカ6Rおよび6Lの間の長さ、または、マーカ6Rまたは6Lの大きさを用いて算出することができる。さらに、仮想空間における平面Qの位置および大きさと、実空間におけるテレビ2の画面の位置および大きさとを対応させるように平面Qを設定すれば(例えば、プレイヤにテレビの画面の大きさを設定させるようにしてもよい)、2次元座標(Wx,Wy)に対応するテレビ2の画面上の位置にカーソルが表示されることとなる。これによれば、入力装置8が指し示す(画面上の)正確な位置にカーソルを表示させることができる。
図11の説明に戻り、ステップS4の次のステップS5において、CPU10は、選択対象等をテレビ2の画面に表示させる。テレビ2の画面には、現在の表示対象であるページに含まれる選択対象(文字画像)が表示されるとともに、ステップS4で算出された指示位置にカーソルが表示される。具体的には、CPU10は、指示位置データ77およびページデータ79をメインメモリから読み出し、ページデータ79によって特定されるページの選択対象を画面に表示させるとともに、指示位置データ77によって特定される指示位置にカーソルを表示させる。ステップS5の次にステップS6の処理が実行される。
ページデータ79によって特定されるページが前回の処理ループから変更されている場合、上記ステップS5によって、表示される選択対象(文字画像)が切り替えられることとなる。なお、選択対象を切り替えるための具体的な表示処理はどのようなものであってもよい。本実施形態においては、表示処理は、仮想カメラを用いて行われるものとする。すなわち、CPU10は、仮想空間に配置される各ページのうちで、ページデータ79によって特定されるページが表示範囲となるように仮想カメラの位置および向きを設定し、当該仮想カメラから各ページを見た画像を生成して画面に表示させる。なお、他の実施形態においては、CPU10は、仮想カメラでなく表示対象であるページを移動させるようにしてもよい。また、他の実施形態においては、表示処理は仮想カメラを用いない方法によって行われてもよい。例えば、CPU10は、各ページが配置される2次元平面上に表示範囲を設定し、当該表示範囲を切り替えることによってページを切り替えてもよい。
また、選択対象(ページ)を切り替える際の表示態様はどのようなものであってもよい。例えば、CPU10は、ページを切り替える際、変更前のページから画像がスクロールして変更後のページへと切り替わるように表示してもよい。図18は、選択対象を切り替える方法の一例を示す図である。図18においては、“A”〜“I”を表す複数の文字画像61と、“J”〜“R”を表す複数の文字画像62と、“S”〜“Z”を表す複数の文字画像63とが仮想空間において略同心円状に配置される。ページを切り替える際、CPU10は、変更前のページの位置から変更後のページの位置へと表示範囲が次第に変化するように、仮想カメラを回転させながら移動させる(図18に示す矢印参照)。なお、CPU10は、仮想カメラではなく各文字画像61〜63を回転させてもよい。このように、本実施形態においては、図18に示すように、選択対象が回転しながらスクロールするような表示態様で選択対象の切り替えを行う。なお、他の実施形態においては、CPU10は、表示範囲が上下または左右に単に平行移動するように画像をスクロールさせてもよい。画像のスクロール方向はどのような方向であってもよいが、画像が左右方向に移動する(左右方向に平行移動する場合と、図18に示すように回転しながら左右方向に移動する場合とを含む)ことが好ましい。これらの場合には、入力装置8を傾ける方向と画像の移動方向とが一致するので、自然な操作感覚をユーザに与えることができるからである。
なお、本発明では、CPU10は入力装置8の傾き量に応じて選択対象を「切り替える」ので、上記のように画像をスクロールさせる場合であっても、切り替わりの途中でスクロールが停止することはない。また、上記実施形態では、CPU10は、ページを切り替える際に画像が連続的に変化する(スクロールする)ようなアニメーションを表示することとしたが、他の実施形態では、このようなアニメーションを表示せずに、画像が不連続に変化する(単に切り替わる)ように表示を行ってもよい。
ステップS6において、CPU10は、指示位置を用いた所定の処理を実行する。本実施形態においては、上記所定の処理は、カーソルによって指し示されている文字画像が表す文字を出力(表示)する処理である。すなわち、CPU10は、カーソルによって文字画像が指し示されている状態で所定の操作(例えば入力装置8のAボタン32dが押下される操作)が行われた場合、当該文字画像が表す文字を出力する。なお、上記所定の処理は、指示位置に表示される対象を選択し、選択された対象に応じた内容の情報処理であればどのような処理であってもよい。例えば、ゲームのアイテムを表すアイコンが選択対象として表示される場合であれば、CPU10は、指示位置に表示されるアイコンが表すアイテムをゲーム中において使用する処理を上記所定の処理として実行してもよい。また例えば、ゲームに登場するキャラクタを表す画像が選択対象として表示される場合であれば、CPU10は、指示位置に表示されるキャラクタをユーザの操作対象として決定する処理を上記所定の処理として実行してもよい。ステップS6の次にステップS7の処理が実行される。
ステップS7において、CPU10は、文字入力処理を終了するか否かを判定する。ステップS7の判定は、例えば、プレイヤが文字入力処理を終了する指示を行ったか否か等によって行われる。ステップS7の判定結果が否定である場合、ステップS2の処理が再度実行される。以降、ステップS7で処理を終了すると判定されるまで、ステップS2〜S7の処理ループが繰り返し実行される。一方、ステップS7の判定結果が肯定である場合、CPU10は、図11に示す文字入力処理を終了する。以上で、文字入力処理の説明を終了する。
以上のように、上記実施形態によれば、画面に表示される選択対象が入力装置8の傾き角度θに応じて切り替えられるとともに、入力装置8の指示位置によって選択対象から1つが選択される。これによれば、ユーザは、選択対象を選択する操作と、選択対象を切り替える操作とを行うことによって、一度に表示される選択対象を少なくすることができるとともに、2種類の操作を1つの入力装置8を用いて行うことができる。したがって、本発明によれば、ユーザは、選択対象から1つを選択する操作を容易に行うことができる。
また、一度に全ての選択対象を表示する従来の方法では、1つ1つの選択対象が小さくなるためにカーソル(指示位置)の操作に厳密性が要求される。そのため、入力装置8の向き(指示位置)と選択対象とをユーザが体で覚えてカーソルの位置を確認せずに入力操作を行うことは、実際には不可能であった。これに対して、本実施形態によれば、画面に表示される1つ1つの選択対象を従来の方法に比べて大きくすることができるので、カーソルの操作に厳密性が要求されない。そのため、ある程度操作に慣れたユーザであれば、指示位置と傾き角度との組み合わせに対する選択対象を体で覚えて、入力操作を行うことも可能である。したがって、本実施形態によれば、従来に比べて迅速な入力操作が可能となる。
また、上記実施形態においては、選択対象を選択するために用いられる指示位置は、入力装置8のX軸回りおよびY軸回りの傾き(入力装置8のZ軸がマーカ部6の方向を向く状態で使用することを前提とすれば、「X軸方向およびY軸方向への移動」とも言える。)に応じて算出される。一方、選択対象を切り替えるために用いられる傾き角度θは、入力装置8のZ軸回りの傾きである。このように、上記実施形態においては、指示位置の算出は、傾き角度θの算出に用いられるZ軸と垂直な軸に関する傾きまたは位置に応じて算出される。これによれば、選択対象を選択する操作と選択対象を切り替える操作とは互いに無関係であり、一方の操作が他方の操作に影響を与えることがないので、ユーザにとっては2種類の操作が容易である。
[変形例]
上記実施形態は本発明を実施する一例であり、他の実施形態においては例えば以下に説明する構成で本発明を実施することも可能である。
(ゲームシステムに関する変形例)
以下、図19および図20を参照して、他の実施形態におけるゲームシステムの例について説明する。図19は、第1の変形例におけるゲームシステムの構成を示すブロック図である。図19においては、ゲームシステムは、カメラ91、ゲーム装置3、およびテレビ2を有する。ゲーム装置3は、上記実施形態と同様の構成であってもよいが、傾き角度を算出する処理等は上記実施形態とは異なっている。テレビ2は上記実施形態と同様の構成である。以下、上記実施形態との相違点を中心に、図19に示すゲームシステムについて説明する。
マーカ92は、カメラ91の撮像対象となる物体である。ユーザが把持して使用するコントローラをゲームシステムが有する場合には、当該コントローラをマーカ92としてもよい。また、ユーザの身体の一部(例えば手)をマーカ92の代わりとしてもよい。カメラ91は、任意の位置(例えば、テレビ2の周辺の位置)に配置され、マーカ92を撮像する。カメラ91による撮像結果に基づく操作データは、有線または無線でゲーム装置3へ送信される。「撮像結果に基づく操作データ」とは、撮像された画像のデータでもよいし、画像のデータから得られる情報(例えば、撮像画像内におけるマーカ92の位置や向きや形状の情報等)を示すデータでもよい。
ゲーム装置3は、操作データに基づいてマーカ92の傾き角度を算出する。マーカ92の傾き角度は、例えば、撮像画像におけるマーカ92の形状を特定し、その形状からマーカ92の向きを算出することで得ることができる。また、ゲーム装置3は、操作データに基づいてマーカ92による指示位置を算出する。指示位置は、例えば、撮像画像内におけるマーカ92の位置から算出することができる。このように、マーカ92の撮像結果に基づいてマーカ92の傾き角度および指示位置を算出することができる。なお、傾き角度および指示位置を用いる処理より後の処理は上記実施形態と同様である。
図19に示したように、他の実施形態においては、ユーザが操作に用いる物体は、入力装置8に限らず、ユーザの身体の一部、または、ユーザが動かすことができるマーカであってもよい。このとき、ゲーム装置3は、物体を撮像する撮像手段から、撮像結果に基づくデータを操作データとして取得する。これによっても上記実施形態と同様、ユーザが操作に用いる物体の傾き角度および指示位置を操作データに基づいて算出することが可能であり、当該傾き角度および指示位置を入力として用いて選択対象を選択する操作をユーザに行わせることができる。
図20は、第2の変形例におけるゲームシステムの構成を示すブロック図である。図20においては、ゲームシステムは、カメラ91、コントローラ95、ゲーム装置3、およびテレビ2を有する。ゲーム装置3は、上記実施形態と同様の構成であってもよいが、傾き角度を算出する処理等は上記実施形態とは異なっている。テレビ2は上記実施形態と同様の構成である。以下、上記実施形態との相違点を中心に、図20に示すゲームシステムについて説明する。
カメラ91は上記第1の変形例と同じものである。第2の変形例においては、カメラ91による撮像結果に基づく操作データを「第1の操作データ」と呼ぶ。コントローラ95は、自身の傾きに関する情報を検出可能な検出手段を備える。図20では、検出手段はジャイロセンサ96である。ジャイロセンサ96は、1軸のみの回転に関する角速度を検出するものであってもよいし、2軸あるいは3軸の回転に関する角速度を検出するものであってもよい。また、コントローラ95が備える検出手段は、上記実施形態における加速度センサ37であってもよいし、(ゲームシステムがマーカ部を備える場合には)マーカ部を撮像する撮像手段であってもよい。コントローラ95は、ジャイロセンサ96の検出結果に基づくデータを第2操作データとしてゲーム装置3へ有線または無線で送信する。
第2の変形例において、ゲーム装置3は、上記第2操作データに基づいてコントローラ95の傾き角度を算出する。第2操作データに基づく傾き角度の算出方法、すなわち、ジャイロセンサ96の検出結果に基づく傾き角度の算出方法は、上記実施形態と同様である。一方、ゲーム装置3は、上記第1操作データに基づいてコントローラ95による指示位置を算出する。指示位置の算出方法は上記第1の変形例と同様である。傾き角度および指示位置を用いる処理より後の処理は上記実施形態と同様である。
図20に示したように、他の実施形態においては、ユーザが操作に用いる物体として、ジャイロセンサ96を備えるコントローラ95が用いられてもよい。そして、ゲーム装置3は、コントローラ95からの第2操作データに基づいてコントローラ95の傾き角度を算出し、(コントローラ95とは別体の)カメラ91からの第1操作データに基づいて指示位置を算出するようにしてもよい。これによっても上記実施形態および第1の変形例と同様、ユーザが操作に用いる物体の傾き角度および指示位置を操作データに基づいて算出することが可能であり、当該傾き角度および指示位置を入力として用いて選択対象を選択する操作をユーザに行わせることができる。
また、他の実施形態においては、ゲーム装置3は、コントローラからの操作データに基づいてコントローラによる指示位置を算出し、コントローラとは別体のカメラからの操作データに基づいてコントローラの傾き角度を算出するようにしてもよい。以上のように、本発明は、ユーザが操作する物体の傾き角度と、当該物体による指示位置とを算出可能な任意の情報処理システムに対して適用可能である。
(画面に表示される選択対象に関する変形例)
上記実施形態においては、文字(アルファベット)を表す画像を選択対象として画面に表示する場合を例として説明したが、選択対象はこれに限らない。例えば、他の実施形態においては、選択対象は、何らかの処理が関連付けられるアイコンであってもよい。すなわち、本発明は、複数のアイコンを表示し、アイコンが選択がされた場合には当該アイコンに関連付けられた処理を実行する技術に適用することが可能である。また、本発明は、ゲーム処理に適用することも可能である。すなわち、ゲーム装置3は、ゲームに登場するアイテムまたはゲームキャラクタを表す画像、あるいは、ゲームのコマンドを表す画像を選択対象として画面に表示してもよい。このとき、ゲーム装置は、選択された画像が表すアイテムまたはゲームキャラクタに応じたゲーム処理を実行したり、選択された画像が表すコマンドに応じたゲーム処理を実行したりする。以上のように、選択対象は、何らかの処理が関連付けられた画像であってもよい。
また、本発明は、地図(ゲームマップでもよい)を表示する処理においても適用することが可能である。具体的には、ゲーム装置3は、画面に表示する地図を入力装置8の傾き角度θに応じて切り替える。なお、地図領域内の部分領域(地点でもよい)には、何らかの処理(例えば、その部分領域を登録する処理や、その部分領域周辺を拡大して表示する処理等)が関連付けられているものとする。部分領域が選択された場合には、ゲーム装置3は、選択された部分領域(指示位置と対応する部分領域)に関連付けられた処理を実行する。これによれば、画面に地図を表示し、地図上の地点に対して処理を行う場合においても、本発明を適用することができる。
また、上記実施形態においては、選択対象の切り替えに応じて文字を切り替えるようにしたが、選択対象の切り替えに応じて文字の種類を切り替えるようにしてもよい。すなわち、上記実施形態においては、26個のアルファベットを3つのグループに分け、選択対象の切り替えに応じて表示されるグループを変化させるようにした。これに対して、他の実施形態においては、選択対象の切り替えに応じて、大文字と小文字、ひらがなとカタカナ、または、文字のフォントを切り替えるようにしてもよい。
以上のように、本発明は、選択対象から1つを選択する操作が容易な入力インターフェースを提供すること等を目的として、例えばゲーム処理や文字入力処理等を実行する情報処理装置として利用することが可能である。
1 ゲームシステム
2 テレビ
3 ゲーム装置
4 光ディスク
5 コントローラ
6 マーカ部
7 ジャイロセンサユニット
8 入力装置
10 CPU
11c GPU
11e 内部メインメモリ
12 外部メインメモリ
61〜63 文字画像
60 カーソル
72 加速度データ
73 マーカ座標データ
75 角速度データ
77 指示位置データ
78 傾きデータ
79 ページデータ
80 閾値データ
91 カメラ
92 マーカ
95 コントローラ
96 ジャイロセンサ

Claims (28)

  1. ユーザが動かすことが可能な所定の物体の傾きに応じた操作データを取得可能な情報処理装置であって、
    前記物体の傾きに対応する傾き情報を前記操作データに基づいて算出する傾き算出部と、
    前記物体の位置および傾きの少なくとも1つに応じて変化するように、表示装置の画面上の指示位置を前記操作データに基づいて算出する位置算出部と、
    前記表示装置の画面に選択対象を表示させる表示制御部と、
    前記画面に表示される選択対象を、前記傾き情報が表す傾き量に応じて切り替える切替部と、
    前記選択対象から、前記指示位置に表示される対象を選択し、選択された対象に応じた情報処理を実行する選択部とを備え
    前記切替部は、前記画面に第1のグループの選択対象が表示されている場合、前記傾き量が第1の閾値を超えたことを条件として、前記画面に表示される選択対象を当該第1のグループの選択対象から第2のグループの選択対象へと切り替え、前記画面に当該第2のグループの選択対象が表示されている場合、前記傾き量が当該第1の閾値よりも小さい第2の閾値を下回ったことを条件として、前記画面に表示される選択対象を当該第2のグループの選択対象から当該第1のグループの選択対象へと切り替える、情報処理装置。
  2. 前記位置算出部は、前記物体の第1の軸回りの傾きおよび当該第1の軸に直交する第2の軸回りの傾き、または、当該第1の軸方向への移動および当該第2の軸方向への移動に応じて前記指示位置を算出し、
    前記傾き算出部は、前記第1の軸および第2の軸に直交する第3の軸回りの傾きに応じて前記傾き情報を算出する、請求項1に記載の情報処理装置。
  3. 前記物体は、自身の傾きまたは傾きの変化に応じた情報を検出可能な検出手段を備える入力装置であって、
    前記傾き算出部は、前記検出手段の検出結果に基づくデータを前記操作データとして用いて前記傾き情報を算出し、
    前記位置算出部は、前記検出手段の検出結果に基づくデータを前記操作データとして用いて前記指示位置を算出する、請求項1または請求項2に記載の情報処理装置。
  4. 前記検出手段は、前記物体の角速度を検知するジャイロセンサであり、
    前記傾き算出部は、前記ジャイロセンサが検出する角速度に基づいて前記傾き情報を算出し、
    前記位置算出部は、所定空間の所定位置から、前記傾き情報が表す傾きに対応するベクトルの方向へ延ばした線分と、当該所定空間における所定平面との交点の位置を算出し、当該位置に対応する画面上の位置を前記指示位置として算出する、請求項に記載の情報処理装置。
  5. 前記検出手段は、所定の撮像対象を撮像可能な撮像手段であり、
    前記傾き算出部は、前記撮像手段によって撮像される撮像画像における前記撮像対象の傾きに基づいて前記傾き情報を算出し、
    前記位置算出部は、前記撮像手段によって撮像される撮像画像内における前記撮像対象の位置に基づいて前記指示位置を算出する、請求項に記載の情報処理装置。
  6. 前記物体は、ユーザの身体の一部、または、ユーザが動かすことができるマーカであって、
    前記情報処理装置は、前記物体を撮像する撮像手段から撮像結果に基づくデータを前記操作データとして取得する、請求項1または請求項2に記載の情報処理装置。
  7. 前記物体は、自身の傾きまたは傾きの変化に応じた情報を検出可能な検出手段を備える入力装置であって、
    前記情報処理装置は、前記物体を撮像する撮像手段から撮像結果に基づくデータを前記操作データとして取得するとともに、前記検出手段の検出結果に基づくデータを前記操作データとして前記入力装置から取得し、
    前記傾き算出部は、前記検出結果に基づくデータに基づいて前記傾き情報を算出し、
    前記位置算出部は、前記撮像結果に基づくデータに基づいて前記指示位置を算出する、請求項1または請求項2に記載の情報処理装置。
  8. 前記表示制御部は、略同心円状に前記選択対象が配置された所定平面のうちの一部を前記画面に表示し、
    前記切替部は、前記所定平面を回転させることで、前記画面に表示される選択対象を切り替える、請求項1から請求項のいずれか1項に記載の情報処理装置。
  9. 前記選択対象は、前記画面に表示される画像であって、それぞれの画像に対して処理が関連付けられており、
    前記選択部は、前記指示位置に表示される画像に関連付けられた処理を実行する、請求項1から請求項のいずれか1項に記載の情報処理装置。
  10. 前記選択対象は、ゲームに登場するアイテムまたはゲームキャラクタ、あるいは、ゲームのコマンドを表す画像であり、
    前記選択部は、前記指示位置に表示される画像が表すアイテムまたはゲームキャラクタ、あるいは、ゲームのコマンドに応じたゲーム処理を実行する、請求項に記載の情報処理装置。
  11. 前記選択対象は、文字または文字列を表す画像であって、
    前記選択部は、前記指示位置に表示される画像が表す文字を出力する処理を実行する、請求項に記載の情報処理装置。
  12. 前記切替部は、画面に表示される画像が表す文字または文字列の文字の種類を切り替える、請求項11に記載の情報処理装置。
  13. 前記選択対象は、画面に表示される領域内の部分領域であって、部分領域に対して処理が関連付けられており、
    前記選択部は、前記指示位置と対応する部分領域に関連付けられた処理を行う、請求項1から請求項のいずれか1項に記載の情報処理装置。
  14. ユーザが動かすことが可能な所定の物体の傾きに応じた操作データを取得可能な情報処理装置のコンピュータにおいて実行される情報処理プログラムであって、
    前記物体の傾きに対応する傾き情報を前記操作データに基づいて算出する傾き算出手段と、
    前記物体の位置および傾きの少なくとも1つに応じて変化するように、表示装置の画面上の指示位置を前記操作データに基づいて算出する位置算出手段と、
    前記表示装置の画面に選択対象を表示させる表示制御手段と、
    前記画面に表示される選択対象を、前記傾き情報が表す傾き量に応じて切り替える切替手段と、
    前記選択対象から、前記指示位置に表示される対象を選択し、選択された対象に応じた情報処理を実行する選択手段として前記コンピュータを機能させ
    前記切替手段は、前記画面に第1のグループの選択対象が表示されている場合、前記傾き量が第1の閾値を超えたことを条件として、前記画面に表示される選択対象を当該第1のグループの選択対象から第2のグループの選択対象へと切り替え、前記画面に当該第2のグループの選択対象が表示されている場合、前記傾き量が当該第1の閾値よりも小さい第2の閾値を下回ったことを条件として、前記画面に表示される選択対象を当該第2のグループの選択対象から当該第1のグループの選択対象へと切り替える、情報処理プログラム。
  15. 前記位置算出手段は、前記物体の第1の軸回りの傾きおよび当該第1の軸に直交する第2の軸回りの傾き、または、当該第1の軸方向への移動および当該第2の軸方向への移動に応じて前記指示位置を算出し、
    前記傾き算出手段は、前記第1の軸および第2の軸に直交する第3の軸回りの傾きに応じて前記傾き情報を算出する、請求項14に記載の情報処理プログラム。
  16. 前記物体は、自身の傾きまたは傾きの変化に応じた情報を検出可能な検出手段を備える入力装置であって、
    前記傾き算出手段は、前記検出手段の検出結果に基づくデータを前記操作データとして用いて前記傾き情報を算出し、
    前記位置算出手段は、前記検出手段の検出結果に基づくデータを前記操作データとして用いて前記指示位置を算出する、請求項14または請求項15に記載の情報処理プログラム。
  17. 前記検出手段は、前記物体の角速度を検知するジャイロセンサであり、
    前記傾き算出手段は、前記ジャイロセンサが検出する角速度に基づいて前記傾き情報を算出し、
    前記位置算出手段は、所定空間の所定位置から、前記傾き情報が表す傾きに対応するベクトルの方向へ延ばした線分と、当該所定空間における所定平面との交点の位置を算出し、当該位置に対応する画面上の位置を前記指示位置として算出する、請求項16に記載の情報処理プログラム。
  18. 前記検出手段は、所定の撮像対象を撮像可能な撮像手段であり、
    前記傾き算出手段は、前記撮像手段によって撮像される撮像画像における前記撮像対象の傾きに基づいて前記傾き情報を算出し、
    前記位置算出手段は、前記撮像手段によって撮像される撮像画像内における前記撮像対象の位置に基づいて前記指示位置を算出する、請求項16に記載の情報処理プログラム。
  19. 前記物体は、ユーザの身体の一部、または、ユーザが動かすことができるマーカであって、
    前記情報処理装置は、前記物体を撮像する撮像手段から、撮像結果に基づくデータを前記操作データとして取得する、請求項14または請求項15に記載の情報処理プログラム。
  20. 前記物体は、自身の傾きまたは傾きの変化に応じた情報を検出可能な検出手段を備える入力装置であって、
    前記情報処理装置は、前記物体を撮像する撮像手段から、撮像結果に基づくデータを前記操作データとして取得するとともに、前記検出手段の検出結果に基づくデータを前記操作データとして前記入力装置から取得し、
    前記傾き算出手段は、前記検出結果に基づくデータに基づいて前記傾き情報を算出し、
    前記位置算出手段は、前記撮像結果に基づくデータに基づいて前記指示位置を算出する、請求項14または請求項15に記載の情報処理プログラム。
  21. 前記表示制御手段は、略同心円状に前記選択対象が配置された所定平面のうちの一部を前記画面に表示し、
    前記切替手段は、前記所定平面を回転させることで、前記画面に表示される選択対象を切り替える、請求項14から請求項20のいずれか1項に記載の情報処理プログラム。
  22. 前記選択対象は、前記画面に表示される画像であって、それぞれの画像に対して処理が関連付けられており、
    前記選択手段は、前記指示位置に表示される画像に関連付けられた処理を実行する、請求項14から請求項21のいずれか1項に記載の情報処理プログラム。
  23. 前記選択対象は、ゲームに登場するアイテムまたはゲームキャラクタ、あるいは、ゲームのコマンドを表す画像であり、
    前記選択手段は、前記指示位置に表示される画像が表すアイテムまたはゲームキャラクタ、あるいは、ゲームのコマンドに応じたゲーム処理を実行する、請求項22に記載の情報処理プログラム。
  24. 前記選択対象は、文字または文字列を表す画像であって、
    前記選択手段は、前記指示位置に表示される画像が表す文字を出力する処理を実行する、請求項22に記載の情報処理プログラム。
  25. 前記切替手段は、画面に表示される画像が表す文字または文字列の文字の種類を切り替える、請求項24に記載の情報処理プログラム。
  26. 前記選択対象は、画面に表示される領域内の部分領域であって、部分領域に対して処理が関連付けられており、
    前記選択手段は、前記指示位置と対応する部分領域に関連付けられた処理を行う、請求項14から請求項21のいずれか1項に記載の情報処理プログラム。
  27. ユーザが動かすことが可能な所定の物体の傾きに応じた操作データを取得可能な情報処理システムであって、
    前記物体の傾きに対応する傾き情報を前記操作データに基づいて算出する傾き算出部と、
    前記物体の位置および傾きの少なくとも1つに応じて変化するように、表示装置の画面上の指示位置を前記操作データに基づいて算出する位置算出部と、
    前記表示装置の画面に選択対象を表示させる表示制御部と、
    前記画面に表示される選択対象を、前記傾き情報が表す傾き量に応じて切り替える切替部と、
    前記選択対象から、前記指示位置に表示される対象を選択し、選択された対象に応じた情報処理を実行する選択部とを備え
    前記切替部は、前記画面に第1のグループの選択対象が表示されている場合、前記傾き量が第1の閾値を超えたことを条件として、前記画面に表示される選択対象を当該第1のグループの選択対象から第2のグループの選択対象へと切り替え、前記画面に当該第2のグループの選択対象が表示されている場合、前記傾き量が当該第1の閾値よりも小さい第2の閾値を下回ったことを条件として、前記画面に表示される選択対象を当該第2のグループの選択対象から当該第1のグループの選択対象へと切り替える、情報処理システム。
  28. ユーザが動かすことが可能な所定の物体の傾きに応じた操作データを取得し、表示装置の画面に表示される選択対象を操作データに基づいて選択する選択方法であって、
    前記物体の傾きに対応する傾き情報を前記操作データに基づいて算出する傾き算出ステップと、
    前記物体の位置および傾きの少なくとも1つに応じて変化するように、表示装置の画面上の指示位置を前記操作データに基づいて算出する位置算出ステップと、
    前記画面に表示される選択対象を、前記傾き情報が表す傾き量に応じて切り替える切替ステップと、
    前記選択対象から、前記指示位置に表示される対象を選択し、選択された対象に応じた情報処理を実行する選択ステップとを備え
    前記切替ステップにおいては、前記画面に第1のグループの選択対象が表示されている場合、前記傾き量が第1の閾値を超えたことを条件として、前記画面に表示される選択対象が当該第1のグループの選択対象から第2のグループの選択対象へと切り替えられ、前記画面に当該第2のグループの選択対象が表示されている場合、前記傾き量が当該第1の閾値よりも小さい第2の閾値を下回ったことを条件として、前記画面に表示される選択対象が当該第2のグループの選択対象から当該第1のグループの選択対象へと切り替えられる、選択方法。
JP2010003860A 2010-01-12 2010-01-12 情報処理装置、情報処理プログラム、情報処理システム、および、選択対象の選択方法 Active JP5448073B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010003860A JP5448073B2 (ja) 2010-01-12 2010-01-12 情報処理装置、情報処理プログラム、情報処理システム、および、選択対象の選択方法
US12/709,752 US8917236B2 (en) 2010-01-12 2010-02-22 Storage medium having information processing program stored therein, information processing apparatus, and information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010003860A JP5448073B2 (ja) 2010-01-12 2010-01-12 情報処理装置、情報処理プログラム、情報処理システム、および、選択対象の選択方法

Publications (2)

Publication Number Publication Date
JP2011145744A JP2011145744A (ja) 2011-07-28
JP5448073B2 true JP5448073B2 (ja) 2014-03-19

Family

ID=44258158

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010003860A Active JP5448073B2 (ja) 2010-01-12 2010-01-12 情報処理装置、情報処理プログラム、情報処理システム、および、選択対象の選択方法

Country Status (2)

Country Link
US (1) US8917236B2 (ja)
JP (1) JP5448073B2 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USD680125S1 (en) * 2010-11-16 2013-04-16 Apple Inc. Display screen or portion thereof with graphical user interface
CN102778946A (zh) * 2011-05-13 2012-11-14 英华达(南京)科技有限公司 重力感测输入系统及其方法
JP2013025567A (ja) 2011-07-21 2013-02-04 Sony Corp 情報処理装置、情報処理方法、及びプログラム
KR101340703B1 (ko) 2011-11-25 2013-12-12 삼성전자주식회사 휴대단말기의 키패드 배치장치 및 방법
KR20130081189A (ko) * 2012-01-06 2013-07-16 삼성전자주식회사 디스플레이장치, 입력장치 및 이들의 제어방법
JP2013182195A (ja) * 2012-03-02 2013-09-12 Casio Comput Co Ltd 演奏装置及びプログラム
KR101979666B1 (ko) * 2012-05-15 2019-05-17 삼성전자 주식회사 표시부에 출력되는 입력 영역 운용 방법 및 이를 지원하는 단말기
JP6011154B2 (ja) * 2012-08-24 2016-10-19 富士通株式会社 画像処理装置、画像処理方法
JP2014110029A (ja) * 2012-12-04 2014-06-12 Samsung R&D Institute Japan Co Ltd ポインティングシステム、ポインティング方法、表示装置および電子装置
US10444845B2 (en) 2012-12-21 2019-10-15 Qualcomm Incorporated Display of separate computer vision based pose and inertial sensor based pose
ES2492165B1 (es) * 2013-02-08 2015-04-07 Universidad De Zaragoza Sistema y método para la identificación y control de objetos en un espacio delimitado y uso en la creación de videojuegos híbridos
JP6204686B2 (ja) * 2013-04-12 2017-09-27 任天堂株式会社 情報処理プログラム、情報処理システム、情報処理装置、および、情報処理の実行方法
JP6200756B2 (ja) * 2013-10-02 2017-09-20 三星電子株式会社Samsung Electronics Co.,Ltd. ポインティング装置、ポインティング方法、及び、ポインティング装置用プログラム
JP6370165B2 (ja) * 2013-10-25 2018-08-08 三星電子株式会社Samsung Electronics Co.,Ltd. ポインティング装置、ポインティング方法、プログラム及び画像表示装置
JP6464554B2 (ja) * 2013-11-29 2019-02-06 凸版印刷株式会社 携帯端末の動きを認識するためのシステム、装置および方法
US9261981B2 (en) * 2014-05-09 2016-02-16 Htc Corporation Portable electronic device and rotation detection method thereof
CN105094634B (zh) * 2014-05-15 2018-02-09 宏达国际电子股份有限公司 可携式电子装置及其旋转检测方法
KR102310994B1 (ko) * 2014-11-25 2021-10-08 삼성전자주식회사 3차원 상호작용 컴퓨팅 장치 및 방법
JP2016122345A (ja) * 2014-12-25 2016-07-07 株式会社リコー 画像投影装置、及び対話型入出力システム。
USD940737S1 (en) 2020-06-21 2022-01-11 Apple Inc. Display screen or portion thereof with graphical user interface

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000122635A (ja) * 1998-10-09 2000-04-28 Victor Co Of Japan Ltd 画面制御装置
JP2002062964A (ja) * 2000-06-06 2002-02-28 Kenichi Horie パソコン配列で入力できるテンキーボード型文字入力装置
JP2004272845A (ja) * 2003-03-12 2004-09-30 Canon Inc 複数言語対応装置
JP2006060774A (ja) * 2004-07-20 2006-03-02 Olympus Corp 携帯情報機器
JP2006209563A (ja) * 2005-01-31 2006-08-10 Victor Co Of Japan Ltd インターフェース装置
JP4907129B2 (ja) * 2005-09-01 2012-03-28 任天堂株式会社 情報処理システムおよびプログラム
US8708822B2 (en) 2005-09-01 2014-04-29 Nintendo Co., Ltd. Information processing system and program
JP4895352B2 (ja) 2006-02-07 2012-03-14 任天堂株式会社 対象選択プログラム、対象選択装置、対象選択システム、および対象選択方法
US8781151B2 (en) * 2006-09-28 2014-07-15 Sony Computer Entertainment Inc. Object detection using video input combined with tilt angle information
US8194034B2 (en) * 2006-12-20 2012-06-05 Verizon Patent And Licensing Inc. Systems and methods for controlling a display
US9335912B2 (en) * 2007-09-07 2016-05-10 Apple Inc. GUI applications for use with 3D remote controller
JP2009251702A (ja) * 2008-04-02 2009-10-29 Hiroyuki Hosoda 情報処理装置、情報処理方法及び情報処理プログラム
KR101494350B1 (ko) * 2008-06-04 2015-02-17 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 컴퓨터의 원격 제어를 위한 시스템 및 방법
JP4618346B2 (ja) * 2008-08-07 2011-01-26 ソニー株式会社 情報処理装置および情報処理方法
US20100039381A1 (en) * 2008-08-12 2010-02-18 Apple Inc. Rotatable input device

Also Published As

Publication number Publication date
JP2011145744A (ja) 2011-07-28
US20110169737A1 (en) 2011-07-14
US8917236B2 (en) 2014-12-23

Similar Documents

Publication Publication Date Title
JP5448073B2 (ja) 情報処理装置、情報処理プログラム、情報処理システム、および、選択対象の選択方法
JP5700758B2 (ja) ゲーム装置、ゲームプログラム、ゲームシステム、およびゲーム処理方法
JP5060798B2 (ja) 情報処理プログラムおよび情報処理装置
JP4918376B2 (ja) 情報処理プログラムおよび情報処理装置
JP5038465B2 (ja) 情報処理プログラム、情報処理装置、情報処理方法および情報処理システム
JP5689014B2 (ja) 入力システム、情報処理装置、情報処理プログラム、および3次元位置算出方法
JP2009172010A (ja) 情報処理プログラムおよび情報処理装置
JP2009226081A (ja) 情報処理プログラムおよび情報処理装置
JP4265814B1 (ja) 姿勢算出装置、姿勢算出プログラム、ゲーム装置、およびゲームプログラム
JP5988549B2 (ja) 位置算出システム、位置算出装置、位置算出プログラム、および位置算出方法
US20110074769A1 (en) Computer-readable storage medium having overhead map resource generation program stored therein, computer-readable storage medium having overhead map display program stored therein, overhead map resource generation apparatus, and overhead map display apparatus
JP5008071B2 (ja) 情報処理装置および情報処理プログラム
JP5797046B2 (ja) ポインティングシステム、情報処理システム、座標系等の設定方法、情報処理装置、および情報処理プログラム
JP5620719B2 (ja) 情報処理プログラム、情報処理装置、情報処理システム、および、マップ表示方法
JP5872137B2 (ja) 姿勢算出装置、姿勢算出プログラム、姿勢算出システム、および、姿勢算出方法
JP2011030709A (ja) ゲームプログラムおよびゲーム装置
JP5525177B2 (ja) 情報処理プログラム、および、情報処理装置
JP5576721B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム方法
JP2010207329A (ja) 座標算出装置および座標算出プログラム
JP5350612B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム処理方法
JP5541851B2 (ja) 姿勢算出装置、姿勢算出プログラム、ゲーム装置、およびゲームプログラム
JP2007295990A (ja) 移動方向算出装置および移動方向算出プログラム
JP6262563B2 (ja) 情報処理プログラム、情報処理装置、情報処理システム、および、情報処理方法
JP6280390B2 (ja) 情報処理プログラム、情報処理装置、情報処理システム、および、情報処理方法
JP6042394B2 (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: 20121114

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130807

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130808

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131007

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131219

R150 Certificate of patent or registration of utility model

Ref document number: 5448073

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