(57)【特許請求の範囲】
【請求項１】
ユーザが動かすことが可能な所定の物体の傾きに応じた操作データを取得可能な情報処理装置であって、
前記物体の傾きに対応する傾き情報を前記操作データに基づいて算出する傾き算出部と、
前記物体の位置および傾きの少なくとも１つに応じて変化するように、表示装置の画面上の指示位置を前記操作データに基づいて算出する位置算出部と、
前記表示装置の画面に選択対象を表示させる表示制御部と、
前記画面に表示される選択対象を、前記傾き情報が表す傾き量に応じて切り替える切替部と、
前記選択対象から、前記指示位置に表示される対象を選択し、選択された対象に応じた情報処理を実行する選択部とを備え、
前記切替部は、前記画面に第１のグループの選択対象が表示されている場合、前記傾き量が第１の閾値を超えたことを条件として、前記画面に表示される選択対象を当該第１のグループの選択対象から第２のグループの選択対象へと切り替え、前記画面に当該第２のグループの選択対象が表示されている場合、前記傾き量が当該第１の閾値よりも小さい第２の閾値を下回ったことを条件として、前記画面に表示される選択対象を当該第２のグループの選択対象から当該第１のグループの選択対象へと切り替える、情報処理装置。
【請求項２】
前記位置算出部は、前記物体の第１の軸回りの傾きおよび当該第１の軸に直交する第２の軸回りの傾き、または、当該第１の軸方向への移動および当該第２の軸方向への移動に応じて前記指示位置を算出し、
前記傾き算出部は、前記第１の軸および第２の軸に直交する第３の軸回りの傾きに応じて前記傾き情報を算出する、請求項１に記載の情報処理装置。
【請求項３】
前記物体は、自身の傾きまたは傾きの変化に応じた情報を検出可能な検出手段を備える入力装置であって、
前記傾き算出部は、前記検出手段の検出結果に基づくデータを前記操作データとして用いて前記傾き情報を算出し、
前記位置算出部は、前記検出手段の検出結果に基づくデータを前記操作データとして用いて前記指示位置を算出する、請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記検出手段は、前記物体の角速度を検知するジャイロセンサであり、
前記傾き算出部は、前記ジャイロセンサが検出する角速度に基づいて前記傾き情報を算出し、
前記位置算出部は、所定空間の所定位置から、前記傾き情報が表す傾きに対応するベクトルの方向へ延ばした線分と、当該所定空間における所定平面との交点の位置を算出し、当該位置に対応する画面上の位置を前記指示位置として算出する、請求項３に記載の情報処理装置。
【請求項５】
前記検出手段は、所定の撮像対象を撮像可能な撮像手段であり、
前記傾き算出部は、前記撮像手段によって撮像される撮像画像における前記撮像対象の傾きに基づいて前記傾き情報を算出し、
前記位置算出部は、前記撮像手段によって撮像される撮像画像内における前記撮像対象の位置に基づいて前記指示位置を算出する、請求項３に記載の情報処理装置。
【請求項６】
前記物体は、ユーザの身体の一部、または、ユーザが動かすことができるマーカであって、
前記情報処理装置は、前記物体を撮像する撮像手段から撮像結果に基づくデータを前記操作データとして取得する、請求項１または請求項２に記載の情報処理装置。
【請求項７】
前記物体は、自身の傾きまたは傾きの変化に応じた情報を検出可能な検出手段を備える入力装置であって、
前記情報処理装置は、前記物体を撮像する撮像手段から撮像結果に基づくデータを前記操作データとして取得するとともに、前記検出手段の検出結果に基づくデータを前記操作データとして前記入力装置から取得し、
前記傾き算出部は、前記検出結果に基づくデータに基づいて前記傾き情報を算出し、
前記位置算出部は、前記撮像結果に基づくデータに基づいて前記指示位置を算出する、請求項１または請求項２に記載の情報処理装置。
【請求項８】
前記表示制御部は、略同心円状に前記選択対象が配置された所定平面のうちの一部を前記画面に表示し、
前記切替部は、前記所定平面を回転させることで、前記画面に表示される選択対象を切り替える、請求項１から請求項７のいずれか１項に記載の情報処理装置。
【請求項９】
前記選択対象は、前記画面に表示される画像であって、それぞれの画像に対して処理が関連付けられており、
前記選択部は、前記指示位置に表示される画像に関連付けられた処理を実行する、請求項１から請求項８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記選択対象は、ゲームに登場するアイテムまたはゲームキャラクタ、あるいは、ゲームのコマンドを表す画像であり、
前記選択部は、前記指示位置に表示される画像が表すアイテムまたはゲームキャラクタ、あるいは、ゲームのコマンドに応じたゲーム処理を実行する、請求項９に記載の情報処理装置。
【請求項１１】
前記選択対象は、文字または文字列を表す画像であって、
前記選択部は、前記指示位置に表示される画像が表す文字を出力する処理を実行する、請求項９に記載の情報処理装置。
【請求項１２】
前記切替部は、画面に表示される画像が表す文字または文字列の文字の種類を切り替える、請求項１１に記載の情報処理装置。
【請求項１３】
前記選択対象は、画面に表示される領域内の部分領域であって、部分領域に対して処理が関連付けられており、
前記選択部は、前記指示位置と対応する部分領域に関連付けられた処理を行う、請求項１から請求項８のいずれか１項に記載の情報処理装置。
【請求項１４】
ユーザが動かすことが可能な所定の物体の傾きに応じた操作データを取得可能な情報処理装置のコンピュータにおいて実行される情報処理プログラムであって、
前記物体の傾きに対応する傾き情報を前記操作データに基づいて算出する傾き算出手段と、
前記物体の位置および傾きの少なくとも１つに応じて変化するように、表示装置の画面上の指示位置を前記操作データに基づいて算出する位置算出手段と、
前記表示装置の画面に選択対象を表示させる表示制御手段と、
前記画面に表示される選択対象を、前記傾き情報が表す傾き量に応じて切り替える切替手段と、
前記選択対象から、前記指示位置に表示される対象を選択し、選択された対象に応じた情報処理を実行する選択手段として前記コンピュータを機能させ、
前記切替手段は、前記画面に第１のグループの選択対象が表示されている場合、前記傾き量が第１の閾値を超えたことを条件として、前記画面に表示される選択対象を当該第１のグループの選択対象から第２のグループの選択対象へと切り替え、前記画面に当該第２のグループの選択対象が表示されている場合、前記傾き量が当該第１の閾値よりも小さい第２の閾値を下回ったことを条件として、前記画面に表示される選択対象を当該第２のグループの選択対象から当該第１のグループの選択対象へと切り替える、情報処理プログラム。
【請求項１５】
前記位置算出手段は、前記物体の第１の軸回りの傾きおよび当該第１の軸に直交する第２の軸回りの傾き、または、当該第１の軸方向への移動および当該第２の軸方向への移動に応じて前記指示位置を算出し、
前記傾き算出手段は、前記第１の軸および第２の軸に直交する第３の軸回りの傾きに応じて前記傾き情報を算出する、請求項１４に記載の情報処理プログラム。
【請求項１６】
前記物体は、自身の傾きまたは傾きの変化に応じた情報を検出可能な検出手段を備える入力装置であって、
前記傾き算出手段は、前記検出手段の検出結果に基づくデータを前記操作データとして用いて前記傾き情報を算出し、
前記位置算出手段は、前記検出手段の検出結果に基づくデータを前記操作データとして用いて前記指示位置を算出する、請求項１４または請求項１５に記載の情報処理プログラム。
【請求項１７】
前記検出手段は、前記物体の角速度を検知するジャイロセンサであり、
前記傾き算出手段は、前記ジャイロセンサが検出する角速度に基づいて前記傾き情報を算出し、
前記位置算出手段は、所定空間の所定位置から、前記傾き情報が表す傾きに対応するベクトルの方向へ延ばした線分と、当該所定空間における所定平面との交点の位置を算出し、当該位置に対応する画面上の位置を前記指示位置として算出する、請求項１６に記載の情報処理プログラム。
【請求項１８】
前記検出手段は、所定の撮像対象を撮像可能な撮像手段であり、
前記傾き算出手段は、前記撮像手段によって撮像される撮像画像における前記撮像対象の傾きに基づいて前記傾き情報を算出し、
前記位置算出手段は、前記撮像手段によって撮像される撮像画像内における前記撮像対象の位置に基づいて前記指示位置を算出する、請求項１６に記載の情報処理プログラム。
【請求項１９】
前記物体は、ユーザの身体の一部、または、ユーザが動かすことができるマーカであって、
前記情報処理装置は、前記物体を撮像する撮像手段から、撮像結果に基づくデータを前記操作データとして取得する、請求項１４または請求項１５に記載の情報処理プログラム。
【請求項２０】
前記物体は、自身の傾きまたは傾きの変化に応じた情報を検出可能な検出手段を備える入力装置であって、
前記情報処理装置は、前記物体を撮像する撮像手段から、撮像結果に基づくデータを前記操作データとして取得するとともに、前記検出手段の検出結果に基づくデータを前記操作データとして前記入力装置から取得し、
前記傾き算出手段は、前記検出結果に基づくデータに基づいて前記傾き情報を算出し、
前記位置算出手段は、前記撮像結果に基づくデータに基づいて前記指示位置を算出する、請求項１４または請求項１５に記載の情報処理プログラム。
【請求項２１】
前記表示制御手段は、略同心円状に前記選択対象が配置された所定平面のうちの一部を前記画面に表示し、
前記切替手段は、前記所定平面を回転させることで、前記画面に表示される選択対象を切り替える、請求項１４から請求項２０のいずれか１項に記載の情報処理プログラム。
【請求項２２】
前記選択対象は、前記画面に表示される画像であって、それぞれの画像に対して処理が関連付けられており、
前記選択手段は、前記指示位置に表示される画像に関連付けられた処理を実行する、請求項１４から請求項２１のいずれか１項に記載の情報処理プログラム。
【請求項２３】
前記選択対象は、ゲームに登場するアイテムまたはゲームキャラクタ、あるいは、ゲームのコマンドを表す画像であり、
前記選択手段は、前記指示位置に表示される画像が表すアイテムまたはゲームキャラクタ、あるいは、ゲームのコマンドに応じたゲーム処理を実行する、請求項２２に記載の情報処理プログラム。
【請求項２４】
前記選択対象は、文字または文字列を表す画像であって、
前記選択手段は、前記指示位置に表示される画像が表す文字を出力する処理を実行する、請求項２２に記載の情報処理プログラム。
【請求項２５】
前記切替手段は、画面に表示される画像が表す文字または文字列の文字の種類を切り替える、請求項２４に記載の情報処理プログラム。
【請求項２６】
前記選択対象は、画面に表示される領域内の部分領域であって、部分領域に対して処理が関連付けられており、
前記選択手段は、前記指示位置と対応する部分領域に関連付けられた処理を行う、請求項１４から請求項２１のいずれか１項に記載の情報処理プログラム。
【請求項２７】
ユーザが動かすことが可能な所定の物体の傾きに応じた操作データを取得可能な情報処理システムであって、
前記物体の傾きに対応する傾き情報を前記操作データに基づいて算出する傾き算出部と、
前記物体の位置および傾きの少なくとも１つに応じて変化するように、表示装置の画面上の指示位置を前記操作データに基づいて算出する位置算出部と、
前記表示装置の画面に選択対象を表示させる表示制御部と、
前記画面に表示される選択対象を、前記傾き情報が表す傾き量に応じて切り替える切替部と、
前記選択対象から、前記指示位置に表示される対象を選択し、選択された対象に応じた情報処理を実行する選択部とを備え、
前記切替部は、前記画面に第１のグループの選択対象が表示されている場合、前記傾き量が第１の閾値を超えたことを条件として、前記画面に表示される選択対象を当該第１のグループの選択対象から第２のグループの選択対象へと切り替え、前記画面に当該第２のグループの選択対象が表示されている場合、前記傾き量が当該第１の閾値よりも小さい第２の閾値を下回ったことを条件として、前記画面に表示される選択対象を当該第２のグループの選択対象から当該第１のグループの選択対象へと切り替える、情報処理システム。
【請求項２８】
ユーザが動かすことが可能な所定の物体の傾きに応じた操作データを取得し、表示装置の画面に表示される選択対象を操作データに基づいて選択する選択方法であって、
前記物体の傾きに対応する傾き情報を前記操作データに基づいて算出する傾き算出ステップと、
前記物体の位置および傾きの少なくとも１つに応じて変化するように、表示装置の画面上の指示位置を前記操作データに基づいて算出する位置算出ステップと、
前記画面に表示される選択対象を、前記傾き情報が表す傾き量に応じて切り替える切替ステップと、
前記選択対象から、前記指示位置に表示される対象を選択し、選択された対象に応じた情報処理を実行する選択ステップとを備え、
前記切替ステップにおいては、前記画面に第１のグループの選択対象が表示されている場合、前記傾き量が第１の閾値を超えたことを条件として、前記画面に表示される選択対象が当該第１のグループの選択対象から第２のグループの選択対象へと切り替えられ、前記画面に当該第２のグループの選択対象が表示されている場合、前記傾き量が当該第１の閾値よりも小さい第２の閾値を下回ったことを条件として、前記画面に表示される選択対象が当該第２のグループの選択対象から当該第１のグループの選択対象へと切り替えられる、選択方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理プログラム、情報処理システム、および、選択対象の選択方法に関し、より特定的には、画面に表示される選択対象をユーザが選択することができる情報処理装置、情報処理プログラム、情報処理システム、および、選択方法に関する。
【背景技術】
【０００２】
従来、例えば特許文献１に記載のように、ユーザが手に持ってそれ自体を動かす操作が可能な入力装置を用いて、画面に表示される複数の選択対象から１つを選択する操作が可能な情報処理システムがある。この情報処理システムでは、ゲーム装置は、入力装置が指し示す画面上の位置と、入力装置に設けられたボタンに対する操作（ボタンが押下されたか）とに基づいて、画面に表示される複数の選択対象から１つを選択している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２１３１４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記特許文献１における情報処理システムでは、ユーザが選択可能な対象は１画面内に全て表示される。そのため、選択対象が多くなる場合には、１つ１つの選択対象は小さく表示されてしまうので、選択対象を選択することが難しくなってしまう。このように、プレイヤが入力装置（あるいはその他の物体）を動かして画面上の位置を指定する入力方法を採用するシステムにおいては、１画面内に多数の選択対象を表示すると、選択操作が難しくなってしまうという課題があった。
【０００５】
それ故、本発明の目的は、プレイヤが入力装置あるいはその他の物体を動かして画面上の位置を指定する入力方法を採用する情報処理装置において、選択対象から１つを選択する操作が容易である入力インターフェースを提供することである。
【課題を解決するための手段】
【０００６】
本発明は、上記の課題を解決するために、以下の（１）〜（１４）の構成を採用した。
【０００７】
（１）
本発明は、ユーザが動かすことが可能な所定の物体の傾きに応じた操作データを取得可能な情報処理装置である。情報処理装置は、傾き算出部と、位置算出部と、表示制御部と、切替部と、選択部とを備えている。傾き算出部は、物体の傾きに対応する傾き情報を操作データに基づいて算出する。位置算出部は、物体の位置および傾きの少なくとも１つに応じて変化するように、表示装置の画面上の指示位置を操作データに基づいて算出する。表示制御部は、表示装置の画面に選択対象を表示させる。切替部は、画面に表示される選択対象を、傾き情報が表す傾き量に応じて切り替える。選択部は、選択対象から、指示位置に表示される対象を選択し、選択された対象に応じた情報処理を実行する。
【０００８】
上記「所定の物体」とは、ユーザが動かすことが可能な物体であればよく、下記（４）あるいは（８）に記載の入力装置、および、下記（７）に記載のマーカあるいはユーザの体の一部を含む概念である。
上記「所定の物体の傾きに応じた操作データ」とは、それを用いて所定の物体の傾きを算出することができるデータであればよく、所定の物体の傾きに応じて変化するデータと、所定の物体の傾きの変化に応じて変化するデータとを含む概念である。
上記「物体の傾きに応じた傾き情報」とは、物体の傾きに応じた傾きを表す情報であればよく、物体の傾きそのものを表す情報でもよいし、物体の傾きに応じて傾きが変化する他のオブジェクト（例えば、仮想空間内に配置されるオブジェクト）の傾きを表す情報でもよい。
上記「選択対象」とは、何らかの処理が関連付けられた画像であってもよいし、画面に表示される領域内における部分領域であってもよい。「何らかの処理が関連付けられた画像」とは、例えば、アイコンの画像、ゲームのアイテムやキャラクタの画像、コマンドを表す文字の画像、ソフトウェアキーボードにおけるキーの画像等を含む。また、「画面に表示される領域内における部分領域」とは、例えば、地図領域内の一部の領域または地点である。
上記「切り替える」とは、切り替え前の画面には表示されていなかった選択対象が、切り替え後の画面には少なくとも１つ表示されるように、画面表示を変更することを意味する。したがって、切り替え前後で重複して表示される選択対象があってもよい。また、上記「傾き量に応じて切り替える」とは、傾き量の連続的な変化に対して、選択対象を含む表示画像（表示範囲）が不連続的に変化することを意味する。ただし、切り替え前の画面から切り替え後の画面への変更は即時に行われる必要はなく、ある程度の時間をかけて変更が行われてもよい。例えば、切り替えの際に表示範囲が連続的に変化する（スクロールする）アニメーションが表示されてもよい。
上記「選択部」は、指示位置に表示される対象を選択するものであるが、指示位置が画面上の選択対象と一致した場合に常に選択するものに限らない。例えば、選択部は、所定の条件が満たされた場合（例えば、ユーザによって所定の操作が行われた場合）に、指示位置に表示される対象を選択するものであってもよい。
【０００９】
上記（１）の構成によれば、傾き量に応じて選択対象の切り替えが行われることによって、全ての選択対象を一度に画面に表示する場合に比べて、選択対象の数を減らすことができる。そのため、選択対象を選択する操作を容易にすることができる。また、ユーザは、選択対象を切り替える操作と選択対象を選択する操作とを、１つの物体を動かす操作によって行うことができるので、２種類の操作を１つの物体を用いて容易に行うことができる。
【００１０】
（２）
位置算出部は、物体の第１の軸回りの傾きおよび当該第１の軸に直交する第２の軸回りの傾き、または、当該第１の軸方向への移動および当該第２の軸方向への移動に応じて指示位置を算出してもよい。このとき、傾き算出部は、第１の軸および第２の軸に直交する第３の軸回りの傾きに応じて傾き情報を算出する。
【００１１】
上記（２）の構成によれば、指示位置を決定するための操作と、傾き情報を決定するための操作とは互いに独立し、一方の操作が他方の操作に影響を与えることがない。したがって、ユーザは、２種類の操作を容易に行うことができる。
【００１２】
（３）
切替部は、画面に第１のグループの選択対象が表示されている場合、傾き量が第１の閾値を超えたことを条件として、画面に表示される選択対象を当該第１のグループの選択対象から第２のグループの選択対象へと切り替えてもよい。また、切替部は、画面に当該第２のグループの選択対象が表示されている場合、傾き量が当該第１の閾値よりも小さい第２の閾値を下回ったことを条件として、画面に表示される選択対象を当該第２のグループの選択対象から当該第１のグループの選択対象へと切り替えてもよい。
【００１３】
上記「第１のグループの選択対象」とは、画面に一度に表示される１以上の選択対象であり、上記「第２のグループの選択対象」とは、第１のグループの選択対象とは異なる選択対象を含み、画面に一度に表示される１以上の選択対象である。
【００１４】
上記（３）の構成によれば、傾き量が第１の閾値を超えたことによって第１のグループから第２のグループへの切り替えが行われるが、その後に傾き量が第１の閾値を下回っても（第２の閾値を下回らない限り）第２のグループから第１のグループへと表示が戻ることがない。そのため、傾き量が第１の閾値の前後で変動したとしても、切り替えが頻繁に行うことがないので、切り替え操作の操作性を向上することができる。
【００１５】
（４）
物体は、自身の傾きまたは傾きの変化に応じた情報を検出可能な検出手段を備える入力装置であってもよい。このとき、傾き算出部は、検出手段の検出結果に基づくデータを操作データとして用いて傾き情報を算出する。位置算出部は、検出手段の検出結果に基づくデータを操作データとして用いて指示位置を算出する。
【００１６】
上記「検出手段」とは、後述する実施形態におけるジャイロセンサ、加速度センサ、およびカメラの他、入力装置の傾きまたは傾きの変化に応じて変化する検出結果を得ることができるものであれば、どのようなものであってもよい。また、後述する実施形態においては、入力装置は３つの検出手段を有しているが、入力装置は検出手段を少なくとも１つ備えていればよい。
上記「検出結果に基づくデータ」とは、検出結果そのものでもよいし、検出結果に何らかの加工が施されたデータでもよい。
【００１７】
上記（４）の構成によれば、入力装置に検出手段を設けることによって、情報処理装置は、入力装置からの操作データを用いて傾き情報および指示位置を算出し、選択対象を選択させる処理を実行することができる。
【００１８】
（５）
検出手段は、物体の角速度を検知するジャイロセンサであってもよい。このとき、傾き算出部は、ジャイロセンサが検出する角速度に基づいて傾き情報を算出する。位置算出部は、所定空間の所定位置から、傾き情報が表す傾きに対応するベクトルの方向へ延ばした線分と、当該所定空間における所定平面との交点の位置を算出し、当該位置に対応する画面上の位置を指示位置として算出する。
【００１９】
上記「所定空間」は仮想の３次元空間であり、上記「所定平面」は当該３次元空間に配置される平面である。上記「傾き情報が表す傾きに対応するベクトル」とは、傾き情報が表す傾きに応じて向きが変化するベクトルである。つまり、このベクトルは、傾き情報がベクトルによって表現される場合には傾き情報が表すベクトルそのものであってもよいし、当該傾き情報が角度や行列によって表現される場合には、当該角度や行列によって表される傾きと同じ傾きを表すベクトルであってもよい。
【００２０】
上記（５）の構成によれば、ジャイロセンサを用いて入力装置の傾きと指示位置とを容易に算出することができる。また、上記（５）の構成によれば、ジャイロセンサの検出結果を用いるので、入力装置がどのような向きを向いていても傾きおよび指示位置を算出することができる。そのため、入力装置の使用範囲が制限されることがなく、ユーザは入力装置を自由な方向に向けて操作を行うことができる。
【００２１】
（６）
検知手段は、所定の撮像対象を撮像可能な撮像手段であってもよい。このとき、傾き算出部は、撮像手段によって撮像される撮像画像における撮像対象の傾きに基づいて傾き情報を算出する。位置算出部は、撮像手段によって撮像される撮像画像内における撮像対象の位置に基づいて指示位置を算出する。
【００２２】
上記「所定の撮像対象」とは、後述する実施形態におけるマーカ部６の他、撮像手段によって撮像可能であればどのような物であってもよい。
【００２３】
上記（６）の構成によれば、撮像手段を用いて入力装置の傾きと指示位置とを容易に算出することができる。また、上記（６）の構成によれば、撮像画像を用いるので、傾きおよび指示位置を正確に算出することができる。
【００２４】
（７）
物体は、ユーザの身体の一部、または、ユーザが動かすことができるマーカであってもよい。このとき、情報処理装置は、物体を撮像する撮像手段から、撮像結果に基づくデータを操作データとして取得する。
【００２５】
上記（７）の構成によれば、撮像手段を用いて物体の傾きと指示位置とを容易に算出することができる。また、上記（７）の構成によれば、撮像画像を用いるので、傾きおよび指示位置を正確に算出することができる。
【００２６】
（８）
物体は、自身の傾きまたは傾きの変化に応じた情報を検出可能な検出手段を備える入力装置であってもよい。このとき、情報処理装置は、物体を撮像する撮像手段から、撮像結果に基づくデータを操作データとして取得するとともに、検出手段の検出結果に基づくデータを操作データとして入力装置から取得する。傾き算出部は、検出結果に基づくデータに基づいて傾き情報を算出する。位置算出部は、撮像結果に基づくデータに基づいて指示位置を算出する。
【００２７】
上記（８）の構成によれば、検出手段による検出結果を用いて物体の傾きを容易に算出することができる。また、撮像手段による撮像結果を用いて物体による指示位置を容易かつ正確に算出することができる。
【００２８】
（９）
表示制御部は、略同心円状に選択対象が配置された所定平面のうちの一部を画面に表示してもよい。このとき、切替部は、所定平面を回転させることで、画面に表示される選択対象を切り替える。
【００２９】
上記「所定平面を回転させる」とは、表示範囲を決める基準（仮想カメラの視点等）に対して所定平面を相対的に回転させるものであればよい。すなわち、仮想カメラを用いて表示画像を生成する場合には、切替部は、所定平面を回転させてもよいし、仮想カメラを移動させてもよい。
【００３０】
（１０）
選択対象は、画面に表示される画像であって、それぞれの画像に対して処理が関連付けられていてもよい。このとき、選択部は、指示位置に表示される画像に関連付けられた処理を実行する。
【００３１】
上記（１０）の構成によれば、アイコン等の画像が選択対象として表示される場合においても本発明を適用することができる。
【００３２】
（１１）
選択対象は、ゲームに登場するアイテムまたはゲームキャラクタ、あるいは、ゲームのコマンドを表す画像であってもよい。このとき、選択部は、指示位置に表示される画像が表すアイテムまたはゲームキャラクタ、あるいは、ゲームのコマンドに応じたゲーム処理を実行する。
【００３３】
上記（１１）の構成によれば、ゲームに登場するアイテムまたはゲームキャラクタが選択対象として表示されたり、ゲームのコマンドが選択対象として表示される場合においても本発明を適用することができる。
【００３４】
（１２）
選択対象は、文字または文字列を表す画像であってもよい。このとき、選択部は、指示位置に表示される画像が表す文字を出力する処理を実行する。
【００３５】
上記（１２）の構成によれば、例えばソフトウェアキーボードのように、文字（または文字列）を表す画像が選択対象として表示される場合においても本発明を適用することができる。
【００３６】
（１３）
切替部は、画面に表示される画像が表す文字または文字列の文字の種類を切り替えるようにしてもよい。
【００３７】
上記「文字の種類を切り替える」とは、アルファベットの大文字と小文字との切り替え、ひらがなとカタカナとの切り替え、文字のフォントの切り替え等を含む概念である。
【００３８】
上記（１３）の構成によれば、ユーザは、物体の傾きを操作することによって文字の種類を切り替え、物体の位置および／または向きを操作することによって文字を選択する操作を行うことができる。これによれば、文字の選択と、文字の種類の切り替えを容易に行うことが可能な文字入力システムを提供することができる。
【００３９】
（１４）
選択対象は、画面に表示される領域内の部分領域であって、部分領域に対して処理が関連付けられていてもよい。このとき、選択部は、指示位置と対応する部分領域に関連付けられた処理を行う。
【００４０】
上記「画面に表示される領域」とは、地図（ゲームマップを含む）の領域を含む概念である。また、上記「部分領域」とは、地図内における地点や地域を含む概念である。
【００４１】
上記（１４）の構成によれば、例えば地図の画像が表示され、地図内の地点や地域をユーザが選択する場合においても本発明を適用することができる。
【００４２】
また、本発明は、情報処理装置のコンピュータを上記各部と同等の手段として機能させる情報処理プログラムの形態で実施されてもよい。また、本発明は、上記各部を備える１以上の情報処理装置からなる情報処理システムの形態で実施されてもよい。このとき、１以上の情報処理装置は、有線または無線通信によって直接通信を行ってもよいし、ネットワークを介して通信を行ってもよい。さらに、本発明は、上記各部によって行われる選択方法の形態で実施されてもよい。
【発明の効果】
【００４３】
本発明によれば、傾き量に応じた選択対象の切り替えを行うことによって、一度に画面に表示する選択対象の数を減らすことができ、選択対象を選択する操作を容易にすることができる。
【図面の簡単な説明】
【００４４】
【図１】ゲームシステムの外観図
【図２】ゲーム装置の機能ブロック図
【図３】入力装置の外観構成を示す斜視図
【図４】コントローラの外観構成を示す斜視図
【図５】コントローラの内部構造を示す図
【図６】コントローラの内部構造を示す図
【図７】入力装置の構成を示すブロック図
【図８】ゲーム装置による処理によってテレビの画面に表示される画像の一例を示す図
【図９】入力装置の傾きと、表示される選択対象との関係を示す図
【図１０】ゲーム装置のメインメモリに記憶される主なデータを示す図
【図１１】ゲーム装置において実行される文字入力処理の流れを示すメインフローチャート
【図１２】図１１に示す表示対象決定処理（ステップＳ３）の流れを示すフローチャート
【図１３】撮像画像におけるマーカ座標の位置の例を示す図
【図１４】第２ページが表示される場合における入力装置の傾き角度θおよび閾値を示す図
【図１５】第３ページが表示される場合における入力装置の傾き角度θおよび閾値を示す図
【図１６】所定の仮想空間に入力装置と所定の平面とを仮想的に配置した図
【図１７】図１６に示す仮想空間をＹ’軸正方向側から負方向側へ見た図
【図１８】選択対象を切り替える方法の一例を示す図
【図１９】第１の変形例におけるゲームシステムの構成を示すブロック図
【図２０】第２の変形例におけるゲームシステムの構成を示すブロック図
【発明を実施するための形態】
【００４５】
［ゲームシステムの全体構成］
図１を参照して、本発明の一実施形態に係る座標算出装置の一例であるゲーム装置を含むゲームシステム１について説明する。図１は、ゲームシステム１の外観図である。以下、据置型のゲーム装置を一例にして、本実施形態のゲーム装置および情報処理プログラムについて説明する。図１において、ゲームシステム１は、テレビジョン受像器（以下、単に「テレビ」と記載する）２、ゲーム装置３、光ディスク４、入力装置８、およびマーカ部６を含む。本システムは、入力装置８を用いたゲーム操作に基づいてゲーム装置３でゲーム処理を実行するものである。
【００４６】
ゲーム装置３には、当該ゲーム装置３に対して交換可能に用いられる情報記憶媒体の一例である光ディスク４が脱着可能に挿入される。光ディスク４には、ゲーム装置３において実行されるための情報処理プログラム（典型的にはゲームプログラム）が記憶されている。ゲーム装置３の前面には光ディスク４の挿入口が設けられている。ゲーム装置３は、挿入口に挿入された光ディスク４に記憶されている情報処理プログラムを読み出して実行することによってゲーム処理を実行する。
【００４７】
ゲーム装置３には、表示装置の一例であるテレビ２が接続コードを介して接続される。テレビ２は、ゲーム装置３において実行されるゲーム処理の結果得られるゲーム画像を表示する。また、テレビ２の画面の周辺（図１では画面の上側）には、マーカ部６が設置される。マーカ部６は、その両端に２つのマーカ６Ｒおよび６Ｌを備えている。マーカ６Ｒ（マーカ６Ｌも同様）は、具体的には１以上の赤外ＬＥＤであり、テレビ２の前方に向かって赤外光を出力する。マーカ部６はゲーム装置３に接続されており、ゲーム装置３はマーカ部６が備える各赤外ＬＥＤの点灯を制御することが可能である。
【００４８】
入力装置８は、自機に対して行われた操作の内容を示す操作データをゲーム装置３に与えるものである。本実施形態では、入力装置８はコントローラ５とジャイロセンサユニット７とを含む。詳細は後述するが、入力装置８は、コントローラ５に対してジャイロセンサユニット７が着脱可能に接続されている構成である。コントローラ５とゲーム装置３とは無線通信によって接続される。本実施形態では、コントローラ５とゲーム装置３との間の無線通信には例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース）（登録商標）の技術が用いられる。なお、他の実施形態においてはコントローラ５とゲーム装置３とは有線で接続されてもよい。
【００４９】
［ゲーム装置３の内部構成］
次に、図２を参照して、ゲーム装置３の内部構成について説明する。図２は、ゲーム装置３の構成を示すブロック図である。ゲーム装置３は、ＣＰＵ１０、システムＬＳＩ１１、外部メインメモリ１２、ＲＯＭ／ＲＴＣ１３、ディスクドライブ１４、およびＡＶ−ＩＣ１５等を有する。
【００５０】
ＣＰＵ１０は、光ディスク４に記憶された情報処理プログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。ＣＰＵ１０は、システムＬＳＩ１１に接続される。システムＬＳＩ１１には、ＣＰＵ１０の他、外部メインメモリ１２、ＲＯＭ／ＲＴＣ１３、ディスクドライブ１４およびＡＶ−ＩＣ１５が接続される。システムＬＳＩ１１は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。システムＬＳＩの内部構成について後述する。揮発性の外部メインメモリ１２は、光ディスク４から読み出された情報処理プログラムや、フラッシュメモリ１７から読み出された情報処理プログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、ＣＰＵ１０のワーク領域やバッファ領域として用いられる。ＲＯＭ／ＲＴＣ１３は、ゲーム装置３の起動用のプログラムが組み込まれるＲＯＭ（いわゆるブートＲＯＭ）と、時間をカウントするクロック回路（ＲＴＣ：Ｒｅａｌ  Ｔｉｍｅ  Ｃｌｏｃｋ）とを有する。ディスクドライブ１４は、光ディスク４からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ１１ｅまたは外部メインメモリ１２に読み出したデータを書き込む。
【００５１】
また、システムＬＳＩ１１には、入出力プロセッサ（Ｉ／Ｏプロセッサ）１１ａ、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）１１ｂ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）１１ｃ、ＶＲＡＭ１１ｄ、および内部メインメモリ１１ｅが設けられる。図示は省略するが、これらの構成要素１１ａ〜１１ｅは内部バスによって互いに接続される。
【００５２】
ＧＰＵ１１ｂは、描画手段の一部を形成し、ＣＰＵ１０からのグラフィクスコマンド（作画命令）に従って画像を生成する。ＶＲＡＭ１１ｄは、ＧＰＵ１１ｂがグラフィクスコマンドを実行するために必要なデータ（ポリゴンデータやテクスチャデータ等のデータ）を記憶する。画像が生成される際には、ＧＰＵ１１ｂは、ＶＲＡＭ１１ｄに記憶されたデータを用いて画像データを作成する。
【００５３】
ＤＳＰ１１ｃは、オーディオプロセッサとして機能し、内部メインメモリ１１ｅや外部メインメモリ１２に記憶されるサウンドデータや音波形（音色）データを用いて、音声データを生成する。
【００５４】
上述のように生成された画像データおよび音声データは、ＡＶ−ＩＣ１５によって読み出される。ＡＶ−ＩＣ１５は、読み出した画像データをＡＶコネクタ１６を介してテレビ２に出力するとともに、読み出した音声データを、テレビ２に内蔵されるスピーカ２ａに出力する。これによって、画像がテレビ２に表示されるとともに音がスピーカ２ａから出力される。
【００５５】
入出力プロセッサ１１ａは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ１１ａは、フラッシュメモリ１７、無線通信モジュール１８、無線コントローラモジュール１９、拡張コネクタ２０、およびメモリカード用コネクタ２１に接続される。無線通信モジュール１８にはアンテナ２２が接続され、無線コントローラモジュール１９にはアンテナ２３が接続される。
【００５６】
入出力プロセッサ１１ａは、無線通信モジュール１８およびアンテナ２２を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ１１ａは、定期的にフラッシュメモリ１７にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、無線通信モジュール１８およびアンテナ２２を介してネットワークに送信する。また、入出力プロセッサ１１ａは、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ２２および無線通信モジュール１８を介して受信し、受信したデータをフラッシュメモリ１７に記憶する。ＣＰＵ１０は情報処理プログラムを実行することにより、フラッシュメモリ１７に記憶されたデータを読み出して情報処理プログラムで利用する。フラッシュメモリ１７には、ゲーム装置３と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置３を利用してプレイしたゲームのセーブデータ（ゲームの結果データまたは途中データ）が記憶されてもよい。
【００５７】
また、入出力プロセッサ１１ａは、コントローラ５から送信される操作データをアンテナ２３および無線コントローラモジュール１９を介して受信し、内部メインメモリ１１ｅまたは外部メインメモリ１２のバッファ領域に記憶（一時記憶）する。
【００５８】
さらに、入出力プロセッサ１１ａには、拡張コネクタ２０およびメモリカード用コネクタ２１が接続される。拡張コネクタ２０は、ＵＳＢやＳＣＳＩのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール１８に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ２１は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ１１ａは、拡張コネクタ２０やメモリカード用コネクタ２１を介して外部記憶媒体にアクセスし、外部記憶媒体にデータを保存したり、外部記憶媒体からデータを読み出したりすることができる。
【００５９】
ゲーム装置３には、電源ボタン２４、リセットボタン２５、およびイジェクトボタン２６が設けられる。電源ボタン２４およびリセットボタン２５は、システムＬＳＩ１１に接続される。電源ボタン２４がオンされると、ゲーム装置３の各構成要素に対して、図示しないＡＣアダプタを経て電源が供給される。リセットボタン２５が押されると、システムＬＳＩ１１は、ゲーム装置３の起動プログラムを再起動する。イジェクトボタン２６は、ディスクドライブ１４に接続される。イジェクトボタン２６が押されると、ディスクドライブ１４から光ディスク４が排出される。
【００６０】
［入力装置８の構成］
次に、図３〜図６を参照して、入力装置８について説明する。図３は、入力装置８の外観構成を示す斜視図である。図４は、コントローラ５の外観構成を示す斜視図である。図３は、コントローラ５の上側後方から見た斜視図であり、図４は、コントローラ５を下側前方から見た斜視図である。
【００６１】
図３および図４において、コントローラ５は、例えばプラスチック成型によって形成されたハウジング３１を有している。ハウジング３１は、その前後方向（図３に示すＺ軸方向）を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。プレイヤは、コントローラ５に設けられたボタンを押下すること、および、コントローラ５自体を動かしてその位置や姿勢（傾き）を変えることによってゲーム操作を行うことができる。
【００６２】
ハウジング３１には、複数の操作ボタンが設けられる。図３に示すように、ハウジング３１の上面には、十字ボタン３２ａ、１番ボタン３２ｂ、２番ボタン３２ｃ、Ａボタン３２ｄ、マイナスボタン３２ｅ、ホームボタン３２ｆ、プラスボタン３２ｇ、および電源ボタン３２ｈが設けられる。本明細書では、これらのボタン３２ａ〜３２ｈが設けられるハウジング３１の上面を「ボタン面」と呼ぶことがある。一方、図４に示すように、ハウジング３１の下面には凹部が形成されており、当該凹部の後面側傾斜面にはＢボタン３２ｉが設けられる。これらの各操作ボタン３２ａ〜３２ｉには、ゲーム装置３が実行する情報処理プログラムに応じた機能が適宜割り当てられる。また、電源ボタン３２ｈは遠隔からゲーム装置３本体の電源をオン／オフするためのものである。ホームボタン３２ｆおよび電源ボタン３２ｈは、その上面がハウジング３１の上面に埋没している。これによって、プレイヤがホームボタン３２ｆまたは電源ボタン３２ｈを誤って押下することを防止することができる。
【００６３】
ハウジング３１の後面にはコネクタ３３が設けられている。コネクタ３３は、コントローラ５に他の機器（例えば、ジャイロセンサユニット７や他のコントローラ）を接続するために利用される。また、ハウジング３１の後面におけるコネクタ３３の両側には、上記他の機器が容易に離脱することを防止するために係止穴３３ａが設けられている。
【００６４】
ハウジング３１上面の後方には複数（図３では４つ）のＬＥＤ３４ａ〜３４ｄが設けられる。ここで、コントローラ５には、他のメインコントローラと区別するためにコントローラ種別（番号）が付与される。各ＬＥＤ３４ａ〜３４ｄは、コントローラ５に現在設定されている上記コントローラ種別をプレイヤに通知したり、コントローラ５の電池残量をプレイヤに通知したりする等の目的で用いられる。具体的には、コントローラ５を用いてゲーム操作が行われる際、上記コントローラ種別に応じて複数のＬＥＤ３４ａ〜３４ｄのいずれか１つが点灯する。
【００６５】
また、コントローラ５は撮像情報演算部３５（図６）を有しており、図４に示すように、ハウジング３１前面には撮像情報演算部３５の光入射面３５ａが設けられる。光入射面３５ａは、マーカ６Ｒおよび６Ｌからの赤外光を少なくとも透過する材質で構成される。
【００６６】
ハウジング３１上面における１番ボタン３２ｂとホームボタン３２ｆとの間には、コントローラ５に内蔵されるスピーカ４９（図５）からの音を外部に放出するための音抜き孔３１ａが形成されている。
【００６７】
次に、図５および図６を参照して、コントローラ５の内部構造について説明する。図５および図６は、コントローラ５の内部構造を示す図である。なお、図５は、コントローラ５の上筐体（ハウジング３１の一部）を外した状態を示す斜視図である。図６は、コントローラ５の下筐体（ハウジング３１の一部）を外した状態を示す斜視図である。図６に示す斜視図は、図５に示す基板３０を裏面から見た斜視図となっている。
【００６８】
図５において、ハウジング３１の内部には基板３０が固設されており、当該基板３０の上主面上に各操作ボタン３２ａ〜３２ｈ、各ＬＥＤ３４ａ〜３４ｄ、加速度センサ３７、アンテナ４５、およびスピーカ４９等が設けられる。これらは、基板３０等に形成された配線（図示せず）によってマイクロコンピュータ（Ｍｉｃｒｏ  Ｃｏｍｐｕｔｅｒ：マイコン）４２（図６参照）に接続される。本実施形態では、加速度センサ３７は、Ｘ軸方向に関してコントローラ５の中心からずれた位置に配置されている。これによって、コントローラ５をＺ軸回りに回転させたときのコントローラ５の動きが算出しやすくなる。また、加速度センサ３７は、長手方向（Ｚ軸方向）に関してコントローラ５の中心よりも前方に配置されている。また、無線モジュール４４（図６）およびアンテナ４５によって、コントローラ５がワイヤレスコントローラとして機能する。
【００６９】
一方、図６において、基板３０の下主面上の前端縁に撮像情報演算部３５が設けられる。撮像情報演算部３５は、コントローラ５の前方から順に赤外線フィルタ３８、レンズ３９、撮像素子４０、および画像処理回路４１を備えている。これらの部材３８〜４１はそれぞれ基板３０の下主面に取り付けられる。
【００７０】
さらに、基板３０の下主面上には、上記マイコン４２およびバイブレータ４８が設けられている。バイブレータ４８は、例えば振動モータやソレノイドであり、基板３０等に形成された配線によってマイコン４２と接続される。マイコン４２の指示によりバイブレータ４８が作動することによってコントローラ５に振動が発生する。これによって、コントローラ５を把持しているプレイヤの手にその振動が伝達される、いわゆる振動対応ゲームを実現することができる。本実施形態では、バイブレータ４８は、ハウジング３１のやや前方寄りに配置される。つまり、バイブレータ４８がコントローラ５の中心よりも端側に配置することによって、バイブレータ４８の振動によりコントローラ５全体を大きく振動させることができる。また、コネクタ３３は、基板３０の下主面上の後端縁に取り付けられる。なお、図５および図６に示す他、コントローラ５は、マイコン４２の基本クロックを生成する水晶振動子、スピーカ４９に音声信号を出力するアンプ等を備えている。
【００７１】
また、ジャイロセンサユニット７は、３軸回りの角速度を検知するジャイロセンサ（図７に示すジャイロセンサ５５および５６）を有する。ジャイロセンサユニット７は、コントローラ５のコネクタ３３に着脱可能に装着される。ジャイロセンサユニット７の前端（図３に示すＺ軸正方向側の端部）には、コネクタ３３に接続可能なプラグ（図７に示すプラグ５３）が設けられる。さらに、プラグ５３の両側にはフック（図示せず）が設けられる。ジャイロセンサユニット７がコントローラ５に対して装着される状態では、プラグ５３がコネクタ３３に接続されるとともに、上記フックがコントローラ５の係止穴３３ａに係止する。これによって、コントローラ５とジャイロセンサユニット７とがしっかりと固定される。また、ジャイロセンサユニット７は側面（図３に示すＸ軸方向の面）にボタン５１を有している。ボタン５１は、それを押下すれば上記フックの係止穴３３ａに対する係止状態を解除することができるように構成されている。したがって、ボタン５１を押下しながらプラグ５３をコネクタ３３から抜くことによって、ジャイロセンサユニット７をコントローラ５から離脱することができる。
【００７２】
また、ジャイロセンサユニット７の後端には、上記コネクタ３３と同形状のコネクタが設けられる。したがって、コントローラ５（のコネクタ３３）に対して装着可能な他の機器は、ジャイロセンサユニット７のコネクタに対しても装着可能である。なお、図３においては、当該コネクタに対してカバー５２が着脱可能に装着されている。
【００７３】
なお、図３〜図６に示したコントローラ５およびジャイロセンサユニット７の形状や、各操作ボタンの形状、加速度センサやバイブレータの数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であっても、本発明を実現することができる。また、本実施形態では、撮像手段による撮像方向はＺ軸正方向であるが、撮像方向はいずれの方向であってもよい。すなわち、コントローラ５における撮像情報演算部３５の位置（撮像情報演算部３５の光入射面３５ａ）は、ハウジング３１の前面でなくてもよく、ハウジング３１の外部から光を取り入れることができれば他の面に設けられてもかまわない。
【００７４】
図７は、入力装置８（コントローラ５およびジャイロセンサユニット７）の構成を示すブロック図である。コントローラ５は、操作部３２（各操作ボタン３２ａ〜３２ｉ）、コネクタ３３、撮像情報演算部３５、通信部３６、および加速度センサ３７を備えている。コントローラ５は、自機に対して行われた操作内容を示すデータを操作データとしてゲーム装置３へ送信するものである。
【００７５】
操作部３２は、上述した各操作ボタン３２ａ〜３２ｉを含み、各操作ボタン３２ａ〜３２ｉに対する入力状態（各操作ボタン３２ａ〜３２ｉが押下されたか否か）を示す操作ボタンデータを通信部３６のマイコン４２へ出力する。
【００７６】
撮像情報演算部３５は、撮像手段が撮像した画像データを解析してその中で輝度が高い領域を判別してその領域の重心位置やサイズなどを算出するためのシステムである。撮像情報演算部３５は、例えば最大２００フレーム／秒程度のサンプリング周期を有するので、比較的高速なコントローラ５の動きでも追跡して解析することができる。
【００７７】
撮像情報演算部３５は、赤外線フィルタ３８、レンズ３９、撮像素子４０、および画像処理回路４１を含んでいる。赤外線フィルタ３８は、コントローラ５の前方から入射する光から赤外線のみを通過させる。レンズ３９は、赤外線フィルタ３８を透過した赤外線を集光して撮像素子４０へ入射させる。撮像素子４０は、例えばＣＭＯＳセンサやあるいはＣＣＤセンサのような固体撮像素子であり、レンズ３９が集光した赤外線を受光して画像信号を出力する。ここで、テレビ２の表示画面近傍に配置されるマーカ部６のマーカ６Ｒおよび６Ｌは、テレビ２の前方に向かって赤外光を出力する赤外ＬＥＤで構成される。したがって、赤外線フィルタ３８を設けることによって、撮像素子４０は、赤外線フィルタ３８を通過した赤外線だけを受光して画像データを生成するので、マーカ６Ｒおよび６Ｌの画像をより正確に撮像することができる。以下では、撮像素子４０によって撮像された画像を撮像画像と呼ぶ。撮像素子４０によって生成された画像データは、画像処理回路４１で処理される。画像処理回路４１は、撮像画像内における撮像対象（マーカ６Ｒおよび６Ｌ）の位置を算出する。画像処理回路４１は、算出された位置を示す座標を通信部３６のマイコン４２へ出力する。この座標のデータは、マイコン４２によって操作データとしてゲーム装置３に送信される。以下では、上記座標を「マーカ座標」と呼ぶ。マーカ座標はコントローラ５自体の向き（傾斜角度）や位置に対応して変化するので、ゲーム装置３はこのマーカ座標を用いてコントローラ５の向きや位置を算出することができる。
【００７８】
なお、他の実施形態においては、コントローラ５は画像処理回路４１を備えていない構成であってもよく、撮像画像自体がコントローラ５からゲーム装置３へ送信されてもよい。このとき、ゲーム装置３は、画像処理回路４１と同様の機能を有する回路あるいはプログラムを有しており、上記マーカ座標を算出するようにしてもよい。
【００７９】
加速度センサ３７は、コントローラ５の加速度（重力加速度を含む）を検出する、すなわち、コントローラ５に加わる力（重力を含む）を検出する。加速度センサ３７は、当該加速度センサ３７の検出部に加わっている加速度のうち、センシング軸方向に沿った直線方向の加速度（直線加速度）の値を検出する。例えば、２軸以上の多軸加速度センサの場合には、加速度センサの検出部に加わっている加速度として、各軸に沿った成分の加速度をそれぞれ検出する。例えば、３軸または２軸の加速度センサは、アナログ・デバイセズ株式会社（Ａｎａｌｏｇ  Ｄｅｖｉｃｅｓ，  Ｉｎｃ．）またはＳＴマイクロエレクトロニクス社（ＳＴＭｉｃｒｏｅｌｅｃｔｒｏｎｉｃｓ  Ｎ．Ｖ．）から入手可能である種類のものでもよい。なお、加速度センサ３７は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。
【００８０】
本実施形態では、加速度センサ３７は、コントローラ５を基準とした上下方向（図３に示すＹ軸方向）、左右方向（図３に示すＸ軸方向）および前後方向（図３に示すＺ軸方向）の３軸方向に関してそれぞれ直線加速度を検出する。加速度センサ３７は、各軸に沿った直線方向に関する加速度を検出するものであるため、加速度センサ３７からの出力は３軸それぞれの直線加速度の値を表すものとなる。すなわち、検出された加速度は、入力装置８（コントローラ５）を基準に設定されるＸＹＺ座標系（コントローラ座標系）における３次元のベクトル（ａｘ，ａｙ，ａｚ）として表される。以下では、加速度センサ３７によって検出される３軸に関する各加速度値を各成分とするベクトルを加速度ベクトルと呼ぶ。
【００８１】
加速度センサ３７が検出した加速度を示すデータ（加速度データ）は、通信部３６へ出力される。なお、加速度センサ３７が検出した加速度は、コントローラ５自体の向き（傾斜角度）や動きに対応して変化するので、ゲーム装置３は取得された加速度データを用いてコントローラ５の向きや動きを算出することができる。本実施形態では、ゲーム装置３は、取得された加速度データに基づいてコントローラ５の姿勢や傾斜角度等を算出する。
【００８２】
なお、加速度センサ３７から出力される加速度の信号に基づいて、ゲーム装置３のプロセッサ（例えばＣＰＵ１０）またはコントローラ５のプロセッサ（例えばマイコン４２）等のコンピュータが処理を行うことによって、コントローラ５に関するさらなる情報を推測または算出（判定）することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、加速度センサ３７を搭載するコントローラ５が静止状態であることを前提としてコンピュータ側の処理が実行される場合（すなわち、加速度センサによって検出される加速度が重力加速度のみであるとして処理が実行される場合）、コントローラ５が現実に静止状態であれば、検出された加速度に基づいてコントローラ５の姿勢が重力方向に対して傾いているか否かまたはどの程度傾いているかを知ることができる。具体的には、加速度センサ３７の検出軸が鉛直下方向を向いている状態を基準としたとき、１Ｇ（重力加速度）がかかっているか否かによって、コントローラ５が基準に対して傾いているか否かを知ることができるし、その大きさによって基準に対してどの程度傾いているかも知ることができる。また、多軸の加速度センサ３７の場合には、さらに各軸の加速度の信号に対して処理を施すことによって、重力方向に対してコントローラ５がどの程度傾いているかをより詳細に知ることができる。この場合において、プロセッサは、加速度センサ３７からの出力に基づいてコントローラ５の傾斜角度を算出してもよいし、当該傾斜角度を算出せずに、コントローラ５の傾斜方向を算出するようにしてもよい。このように、加速度センサ３７をプロセッサと組み合わせて用いることによって、コントローラ５の傾斜角度または姿勢を判定することができる。
【００８３】
一方、コントローラ５が動的な状態（コントローラ５が動かされている状態）であることを前提とする場合には、加速度センサ３７は重力加速度に加えてコントローラ５の動きに応じた加速度を検出するので、検出された加速度から重力加速度の成分を所定の処理により除去することによってコントローラ５の動き方向を知ることができる。また、コントローラ５が動的な状態であることを前提とする場合であっても、検出された加速度から、加速度センサの動きに応じた加速度の成分を所定の処理により除去することによって、重力方向に対するコントローラ５の傾きを知ることが可能である。なお、他の実施例では、加速度センサ３７は、内蔵の加速度検出手段で検出された加速度信号をマイコン４２に出力する前に当該加速度信号に対して所定の処理を行うための、組込み式の処理装置または他の種類の専用の処理装置を備えていてもよい。組込み式または専用の処理装置は、例えば、加速度センサ３７が静的な加速度（例えば、重力加速度）を検出するために用いられる場合、加速度信号を傾斜角（あるいは、他の好ましいパラメータ）に変換するものであってもよい。
【００８４】
通信部３６は、マイコン４２、メモリ４３、無線モジュール４４、およびアンテナ４５を含んでいる。マイコン４２は、処理を行う際にメモリ４３を記憶領域として用いながら、マイコン４２が取得したデータをゲーム装置３へ無線送信する無線モジュール４４を制御する。また、マイコン４２はコネクタ３３に接続されている。ジャイロセンサユニット７から送信されてくるデータは、コネクタ３３を介してマイコン４２に入力される。以下、ジャイロセンサユニット７の構成について説明する。
【００８５】
ジャイロセンサユニット７は、プラグ５３、マイコン５４、２軸ジャイロセンサ５５、および１軸ジャイロセンサ５６を備えている。上述のように、ジャイロセンサユニット７は、３軸（本実施形態では、ＸＹＺ軸）周りの角速度を検出し、検出した角速度を示すデータ（角速度データ）をコントローラ５へ送信する。
【００８６】
２軸ジャイロセンサ５５は、Ｘ軸周りの角速度およびＺ軸周りの（単位時間あたりの）角速度を検出する。また、１軸ジャイロセンサ５６は、Ｙ軸周りの（単位時間あたりの）角速度を検出する。なお、本明細書では、コントローラ５の撮像方向（Ｚ軸正方向）を基準として、ＸＹＺ軸周りの回転方向を、それぞれ、ピッチ方向、ヨー方向、ロール方向と呼ぶ。すなわち、２軸ジャイロセンサ５５は、ピッチ方向（Ｘ軸周りの回転方向）およびロール方向（Ｚ軸周りの回転方向）の角速度を検出し、１軸ジャイロセンサ５６は、ヨー方向（Ｙ軸周りの回転方向）の角速度を検出する。
【００８７】
なお、本実施形態では、３軸回りの角速度を検出するために、２軸ジャイロセンサ５５と１軸ジャイロセンサ５６とを用いる構成としたが、他の実施形態においては、３軸回りの角速度を検出することができればよく、用いるジャイロセンサの数および組み合わせはどのようなものであってもよい。
【００８８】
各ジャイロセンサ５６および５７で検出された角速度を示すデータは、マイコン５４に出力される。したがって、マイコン５４には、ＸＹＺ軸の３軸回りの角度速度を示すデータが入力されることになる。マイコン５４は、上記３軸回りの角速度を示すデータを角速度データとしてプラグ５３を介してコントローラ５へ送信する。なお、マイコン５４からコントローラ５への送信は所定の周期毎に逐次行われるが、ゲームの処理は１／６０秒を単位として（１フレーム時間として）行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。
【００８９】
コントローラ５の説明に戻り、操作部３２、撮像情報演算部３５、および加速度センサ３７からマイコン４２へ出力されたデータ、ならびに、ジャイロセンサユニット７からマイコン４２へ送信されてきたデータは、一時的にメモリ４３に格納される。これらのデータは、上記操作データとしてゲーム装置３へ送信される。すなわち、マイコン４２は、ゲーム装置３の無線コントローラモジュール１９への送信タイミングが到来すると、メモリ４３に格納されている操作データを無線モジュール４４へ出力する。無線モジュール４４は、例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース）（登録商標）の技術を用いて、所定周波数の搬送波を操作データで変調し、その微弱電波信号をアンテナ４５から放射する。つまり、操作データは、無線モジュール４４で微弱電波信号に変調されてコントローラ５から送信される。微弱電波信号はゲーム装置３側の無線コントローラモジュール１９で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置３は操作データを取得することができる。そして、ゲーム装置３のＣＰＵ１０は、取得した操作データと情報処理プログラムとに基づいて、ゲーム処理を行う。なお、通信部３６から無線コントローラモジュール１９への無線送信は所定の周期毎に逐次行われるが、ゲームの処理は１／６０秒を単位として（１フレーム時間として）行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。コントローラ５の通信部３６は、例えば１／２００秒に１回の割合で各操作データをゲーム装置３の無線コントローラモジュール１９へ出力する。
【００９０】
以上のように、ゲーム装置３は、ユーザが操作する入力装置８の傾きに応じた操作データとして、マーカ座標データ、加速度データ、および角速度データを取得可能である。なお、他の実施形態においては、ゲーム装置３が取得する操作データは、後述する入力装置の傾きおよび指示位置を当該操作データに基づいて算出することができるものであればよく、マーカ座標データ、加速度データ、および角速度データの少なくとも１つを取得するものであってもよい。上記入力装置８を用いることによって、プレイヤは、各操作ボタンを押下する従来の一般的なゲーム操作に加えて、入力装置８を任意の傾斜角度に傾ける操作を行うことができる。さらに、上記入力装置８によれば、プレイヤは、入力装置８によって画面上の任意の位置を指示する操作、および、入力装置８自体を動かす操作を行うこともできる。
【００９１】
［ゲーム装置３による処理の概要］
次に、図８および図９を参照して、ゲーム装置３において実行される処理の概要を説明する。ゲーム装置３は、画面に表示される複数の選択対象のうちから１つを選択する操作を、入力装置８を用いてユーザに行わせる処理を実行する。本実施形態においては、ユーザに文字入力を行わせる場合を例にとって説明する。すなわち、ゲーム装置３は、文字を表す画像を画面に複数表示し、複数の画像から１つをユーザに選択させることで、選択された画像が表す文字の入力を受け付ける。
【００９２】
図８は、ゲーム装置３による処理によってテレビ２の画面に表示される画像の一例を示す図である。図８においては、“Ｊ”〜“Ｒ”を表す文字画像と、カーソル６０とが画面に表示される。画面に表示される文字画像は、ユーザに選択させるべき選択対象である。なお、ここでは選択対象が文字画像である場合を例として説明するが、選択対象はどのようなものであってもよく、アイコンであってもよいし、地図上の地点であってもよい。
【００９３】
カーソル６０は、図８に示すように、画面上において入力装置８が指し示す位置（以下、指示位置と呼ぶ。）に表示される。「入力装置８が指し示す位置（指示位置）」とは、理想的には、入力装置８（コントローラ５）のＺ軸を正方向に延ばした直線と画面との交点の位置である。ただし実際には、ゲーム装置３は、指示位置として上記交点の位置を厳密に算出する必要はなく、当該交点の位置付近の位置を算出すればよい。本実施形態における指示位置の算出方法の詳細については後述する。また、他の実施形態においては、指示位置は、上記交点付近の位置でなくてもよく、単に、入力装置８の位置および傾き（姿勢）の少なくとも１つに応じて変化するように算出されるものでもよい。例えば、他の実施形態においては、ゲーム装置３は、入力装置８の移動方向を加速度センサによって検出し、当該移動方向に応じて指示位置を移動させるようにしてもよい。以上のように、ゲーム装置３は、入力装置８の位置および向きの少なくとも１つに応じて変化するように、指示位置を操作データに基づいて算出する。
【００９４】
本実施形態において、ユーザは、入力装置８の向き（および／または位置）を操作して上記指示位置を移動させ、カーソル６０を移動させる。そして、ユーザは、入力を行いたい文字を表す文字画像をカーソル６０が指し示す状態で、コントローラ５の所定のボタン（例えばＡボタン３２ｄ）を押下することによって、当該文字の入力を行う。ゲーム装置３は、所定のボタンが押下されたことに応じて、カーソル６０が指し示す文字画像が表す文字の入力を受け付ける。このように、ゲーム装置３は、画面に複数の文字画像を表示し、入力装置８を用いて複数の文字画像から１つをユーザに選択させる。
【００９５】
また、本実施形態においては、ゲーム装置３は、入力装置８の傾きを操作データに基づいて算出する。そして、画面に表示される選択対象（文字画像）を、入力装置８の傾き量に応じて切り替える。図９は、入力装置８の傾きと、表示される選択対象との関係を示す図である。図９に示すように、入力装置８は、ボタン面（ボタン３２ａ〜３２ｈが設けられるハウジング３１の上面）が鉛直上向きとなる姿勢を基準姿勢として、基準姿勢からＺ軸回りに傾いた傾き量に応じて選択対象を切り替える。具体的には、入力装置８が上記基準姿勢である場合、“Ｊ”〜“Ｒ”を表す複数の文字画像６２が選択対象として表示される（図９に示す中央の欄）。また、入力装置８が上記基準姿勢から左回りに傾いている場合、“Ａ”〜“Ｉ”を表す複数の文字画像６１が選択対象として表示される（図９に示す左側の欄）。また、入力装置８が上記基準姿勢から右回りに傾いている場合、“Ｓ”〜“Ｚ”を表す複数の文字画像６３が選択対象として表示される（図９に示す右側の欄）。なお、上記「右回り」および「左回り」とは、Ｚ軸負方向から正方向に見たときの回転方向である。
【００９６】
以上より、本実施形態においては、ユーザは、入力装置８のＺ軸で画面上の位置を指し示す操作と、入力装置８をＺ軸回りに傾ける操作とを組み合わせることで、“Ａ”〜“Ｚ”の文字を選択して入力することができる。ここで、本実施形態においては、２６種類の文字画像を選択可能であるが、画面に同時に表示される文字画像は９個または８個である。したがって、一度に２６個全ての文字画像を表示する従来の方法に比べると、画面に同時に表示される文字画像の数を少なくすることができる。一度に表示される文字画像が多すぎると文字画像の選択操作が困難になるが、本実施形態によれば、画面に表示される文字画像を少なくすることによって、ユーザは当該選択操作を容易に行うことができる。また、本実施形態においては、ユーザは、文字画像を選択する操作（指示位置を移動する操作）と、文字画像を切り替える操作（入力装置８の傾きを変更する操作）との両方を、入力装置８を用いて行うことができる。したがって、２種類の操作を同時に行うことができ、２種類の操作による入力操作を容易に行うことができる。また、２種類の操作による入力操作を片手で行うことができる。
【００９７】
［ゲーム装置３による処理の詳細］
次に、ゲーム装置３において実行される処理の詳細について説明する。まず、ゲーム装置３における処理において用いられる主なデータについて図１０を用いて説明する。図１０は、ゲーム装置３のメインメモリ（外部メインメモリ１２または内部メインメモリ１１ｅ）に記憶される主なデータを示す図である。図１０に示すように、ゲーム装置３のメインメモリには、情報処理プログラム７０、操作データ７１、および処理用データ７６が記憶される。なお、メインメモリには、図１０に示すデータの他、画面に表示される各種オブジェクトの画像データや、オブジェクトの各種パラメータを示すデータ等、処理に必要なデータが記憶される。
【００９８】
情報処理プログラム７０は、ゲーム装置３に電源が投入された後の適宜のタイミングで光ディスク４からその一部または全部が読み込まれてメインメモリに記憶される。情報処理プログラム７０には、選択対象（具体的には文字画像）を表示し、表示された選択対象のうちからユーザが選択した対象に応じた処理（具体的には、文字画像が表す文字を出力する処理）を行うプログラムが含まれる。
【００９９】
操作データ７１は、コントローラ５からゲーム装置３へ送信されてくる操作データである。上述したように、コントローラ５からゲーム装置３へ１／２００秒に１回の割合で操作データが送信されるので、メインメモリに記憶される操作データ７１はこの割合で更新される。本実施形態においては、メインメモリには、最新の（最後に取得された）操作データのみが記憶されればよい。図１０に示すように、操作データ７１には、加速度データ７２、マーカ座標データ７３、操作ボタンデータ７４、および角速度データ７５が含まれる。
【０１００】
加速度データ７２は、加速度センサ３７によって検出された加速度（加速度ベクトル）を示すデータである。ここでは、加速度データ７２は、図３に示すＸＹＺの３軸の方向に関する加速度を各成分とする３次元の加速度ベクトルを示す。また、本実施形態においては、コントローラ５が静止している状態で加速度センサ３７が検出する加速度ベクトルの大きさを“１”とする。つまり、加速度センサ３７によって検出される重力加速度の大きさは“１”である。
【０１０１】
マーカ座標データ７３は、撮像情報演算部３５の画像処理回路４１によって算出される座標、すなわち上記マーカ座標を示すデータである。マーカ座標は、撮像画像に対応する平面上の位置を表すための２次元座標系（図１７に示すｘ’ｙ’座標系）で表現される。なお、撮像素子４０によって２つのマーカ６Ｒおよび６Ｌが撮像される場合には、２つのマーカ座標が算出される。一方、撮像素子４０の撮像可能な範囲内にマーカ６Ｒおよび６Ｌのいずれか一方が位置しない場合には、撮像素子４０によって１つのマーカのみが撮像され、１つのマーカ座標のみが算出される。また、撮像素子４０の撮像可能な範囲内にマーカ６Ｒおよび６Ｌの両方が位置しない場合には、撮像素子４０によってマーカが撮像されず、マーカ座標は算出されない。したがって、マーカ座標データ７３は、２つのマーカ座標を示す場合もあるし、１つのマーカ座標を示す場合もあるし、マーカ座標がないことを示す場合もある。
【０１０２】
操作ボタンデータ７４は、各操作ボタン３２ａ〜３２ｉに対する入力状態を示すデータである。すなわち、操作ボタンデータ７４は、各操作ボタン３２ａ〜３２ｉがそれぞれ押下されているかどうかを示す。
【０１０３】
角速度データ７５は、ジャイロセンサユニット７のジャイロセンサ５５および５６によって検出された角速度を示すデータである。ここでは、角速度データ７５は、図３に示すＸＹＺの３軸回りのそれぞれの角速度を示す。
【０１０４】
処理用データ７６は、後述する文字入力処理（図１１）において用いられるデータである。処理用データ７６は、指示位置データ７７、傾きデータ７８、ページデータ７９、および、閾値データ８０を含む。
【０１０５】
指示位置データ７７は、画面上における上記指示位置を示すデータである。本実施形態においては、指示位置は、画面上の位置を表すための２次元座標系で表現される。また、本実施形態においては、指示位置は、上記操作データ７１から算出される入力装置８の傾きに基づいて算出される。より具体的には、指示位置は、入力装置８の傾きのうち、Ｘ軸回りの回転およびＹ軸回りの回転に関する傾きに基づいて算出される。指示位置は、選択対象（複数の文字画像）から１つを選択する処理に用いられる。
【０１０６】
傾きデータ７８は、入力装置８の傾きを示すデータである。傾きデータ７８が示す傾きは、選択対象を切り替える処理に用いられる。また、傾きデータ７８は、入力装置８の傾き（姿勢）のうち、Ｚ軸回りの回転に関する傾きを示す。つまり、選択対象を切り替える処理に用いられる傾きデータ７８は、上記指示位置の算出に用いられない軸回り（Ｚ軸回り）の回転に関する傾きを示す。本実施形態においては、入力装置８の傾きは、上述した基準姿勢（ボタン面が鉛直上向きとなる姿勢）となる場合を０°とし、Ｚ軸負方向から正方向に見たときの回転方向が右回りとなる向きの傾きを正の値で表した角度θ（−１８０°＜θ≦１８０°）で表される。
【０１０７】
ページデータ７９は、画面に表示され得る全ての選択対象のうち、実際に表示される選択対象のグループを示す。本実施形態では、画面には、“Ａ”〜“Ｉ”を表す複数の文字画像６１、“Ｊ”〜“Ｒ”を表す複数の文字画像６２、および、“Ｓ”〜“Ｚ”を表す複数の文字画像６３のいずれかが表示される。ここでは、複数の文字画像６１を第１ページと呼び、複数の文字画像６２を第２ページと呼び、複数の文字画像６３を第３ページと呼ぶ。ページデータは、上記第１〜第３ページのいずれかを示す。なお、本実施形態においては、切替によって表示可能なページ数を３ページとするが、ページ数はいくつであってもよい。ただし、ページ数があまりに多くなると、ユーザが所望のページを表示する操作が難しくなる点に注意すべきである。
【０１０８】
閾値データ８０は、画面に表示される選択対象を切り替える閾値（上限値および／または下限値）を示すデータである。傾きデータ７８によって示される傾きが当該閾値を超えたり下回ったりした場合、選択対象の切り替えが行われる。また、本実施形態においては、上記各ページ毎に閾値が設定される。具体的には、閾値データ８０は、下記の各閾値を示す。
第１ページ：上限値＝θ１°
第２ページ：下限値＝θ２°、上限値＝θ３°
第３ページ：下限値＝θ４°
第１ページの閾値θ１°は、第１ページが表示されている場合、入力装置８の傾き角度θが上限値θ１°を超えると第２ページに切り替わることを意味する。第２ページの閾値θ２°およびθ３°は、第２ページが表示されている場合、入力装置８の傾き角度θが下限値θ２°を下回ると第１ページに切り替わり、上限値θ３°を超えると第３ページに切り替わることを意味する。第３ページの閾値θ４°は、第３ページが表示されている場合、入力装置８の傾き角度θが下限値θ４°を超えると第２ページに切り替わることを意味する。なお、上記において、閾値θ１およびθ２は負の値であり、閾値θ３およびθ４は正の値である。また、詳細は後述するが、θ１≧θ２、および、θ３≧θ４となるように各閾値が設定される。
【０１０９】
次に、ゲーム装置３において行われる処理の詳細な流れを、図１１および図１２を用いて説明する。図１１は、ゲーム装置３において実行される文字入力処理の流れを示すメインフローチャートである。ゲーム装置３の電源が投入されると、ゲーム装置３のＣＰＵ１０は、図示しないブートＲＯＭに記憶されている起動プログラムを実行し、これによってメインメモリ等の各ユニットが初期化される。そして、光ディスク４に記憶された情報処理プログラムがメインメモリに読み込まれ、ＣＰＵ１０によって当該情報処理プログラムの実行が開始される。図１１に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。
【０１１０】
まず、ステップＳ１において、ＣＰＵ１０は、初期化処理を実行する。この初期化処理においては、文字入力処理に用いられる各種パラメータの値が初期化される。例えば、本実施形態では、ページデータ７９としては、第２ページを示すデータがメインメモリに記憶される。また、初期化処理においては、選択対象である上記文字画像が配置される仮想空間が構築される。以上のステップＳ１の後、ステップＳ２〜Ｓ７の処理ループが、ゲームが実行される間、繰り返し実行される。なお、当該処理ループは、１フレーム時間（例えば１／６０秒）に１回の割合で実行される。
【０１１１】
ステップＳ２において、ＣＰＵ１０は操作データを取得する。すなわち、コントローラ５から送信されてくる操作データが無線コントローラモジュール１９を介して受信される。そして、受信された操作データに含まれる加速度データ、マーカ座標データ、操作ボタンデータ、および、角速度データがそれぞれメインメモリに記憶される。ステップＳ２の次にステップＳ３の処理が実行される。
【０１１２】
ステップＳ３において、ＣＰＵ１０は表示対象決定処理を実行する。表示対象決定処理は、画面に表示され得る選択対象のうち、実際に表示する選択対象（表示対象）を決定する処理である。以下、図１２を参照して、表示対象決定処理の詳細について説明する。
【０１１３】
図１２は、図１１に示す表示対象決定処理（ステップＳ３）の流れを示すフローチャートである。表示対象決定処理においては、まずステップＳ１１において、ＣＰＵ１０は、入力装置８のＺ軸回りの傾き角度θを算出する。具体的には、ＣＰＵ１０は、操作データ７１をメインメモリから読み出し、操作データ７１に基づいて傾き角度θを算出する。算出された傾き角度θを示すデータが、傾きデータ７８としてメインメモリに記憶される。上記の傾き角度θを算出する方法は、操作データに基づいて算出する方法であればどのような方法であってもよいが、例えば、以下に説明する第１および第２の算出方法が考えられる。
【０１１４】
第１の算出方法は、操作データに含まれるマーカ座標を用いる方法である。図１３は、撮像画像におけるマーカ座標の位置の例を示す図である。図１３に示すように、撮像画像上における位置はｘ’ｙ’座標系によって表現される。図１３においては、位置Ｐ１およびＰ２を表す２つのマーカ座標が撮像情報演算部３５によって算出されたものとする。つまり、ゲーム装置３は、図１３に示す位置Ｐ１およびＰ２を表すマーカ座標を示すデータを操作データとしてコントローラ５から取得したものとする。このとき、ＣＰＵ１０は、まず、２つのマーカ座標を結ぶベクトルｖ１を算出する。なお、２つのマーカ座標のうちでいずれをベクトルの始点にしていずれをベクトルの終点にするかは、予め定められたルールに従って決定される。例えば、２つのマーカ座標のうち、ｘ’成分の値が小さい方のマーカ座標を始点とするようにしてもよいし、前回のステップＳ１１の処理において始点とされたマーカ座標に近い方のマーカ座標を始点とするようにしてもよい。
【０１１５】
上記ベクトルｖ１とｘ’軸とのなす角度は、上述した基準姿勢（ボタン面が鉛直上向きとなる姿勢）となる場合に０°となり、入力装置８のＺ軸回りの回転に応じて変化する。つまり、上記ベクトルｖ１とｘ’軸とのなす角度が入力装置８の傾き角度θに対応する。したがって、ＣＰＵ１０は、ベクトルｖ１とｘ’軸とのなす角度を入力装置の傾き角度θとして算出する。以上の第１の算出方法によれば、撮像素子によって撮像した画像を用いるので、入力装置８の傾き角度θを正確に算出することができる。
【０１１６】
第２の算出方法は、操作データに含まれる角速度を用いる方法である。ＣＰＵ１０は、初期時点での入力装置の傾きを取得しておけば、初期時点での傾きに対して、逐次検出される角速度を累積加算していくことで入力装置８の傾き角度θを算出することができる。具体的には、入力装置８の傾き角度θは、前回の傾き（前回の処理ループにおいて算出された傾き）を、今回の角速度（今回の処理ループにおいて取得された角速度）で単位時間分だけ変化させた傾きの角度として算出される。
【０１１７】
上記初期時点での傾きは、例えば、入力装置８が予め定められた所定の傾きとなる状態でユーザに所定の操作（例えば、Ａボタン３２ｄを押下する操作）を行わせることで取得されてもよい。このとき、ＣＰＵ１０は、当該所定の操作が行われた時点（初期時点）での傾きを、上記所定の傾きとすればよい。また例えば、初期時点での傾きは、上述した第１の算出方法によって算出されてもよい。
【０１１８】
また、Ｚ軸回りの傾き角度θを得るために、ＣＰＵ１０は、３軸回りの傾きを算出してもよいし、Ｚ軸回りの傾きのみを算出してもよい。すなわち、ＣＰＵ１０は、３軸回り（３次元）の角速度に基づいて入力装置８の３軸回りの傾きを算出し、３軸回りの傾きからＺ軸回りの傾きを抽出することによって上記傾き角度θを得てもよい。また、ＣＰＵ１０は、単にＺ軸回りの角速度に基づいてＺ軸回りの傾き角度θを算出してもよい。
【０１１９】
ここで、上記第１の方法では、撮像素子４０がマーカ部６を撮像可能な状態で（つまり、入力装置８のＺ軸正方向がマーカ部６の方を向く状態で）入力装置８を使用する必要があるので、入力装置８の使用範囲が制限されてしまう。これに対して、第２の方法によれば、マーカ座標を用いずに傾き角度θを算出することができるので、入力装置８の使用範囲が制限されることがなく、ユーザは入力装置８を自由な方向に向けて使用することができる。
【０１２０】
なお、入力装置８の傾き角度θを算出する方法は上記に限らず、どのような方法であってもよい。例えば、他の実施形態においては、ＣＰＵ１０は、操作データに含まれる加速度を用いて傾き角度θを算出してもよい。なお、加速度センサ３７は入力装置８に加えられる重力加速度を加速度として検知可能であるので、当該加速度を用いて重力方向に対する入力装置８の傾き角度θを算出することが可能である。また、他の実施形態においては、第１の方法と第２の方法とを組み合わせて用いてもよい。具体的には、第２の方法によって算出された入力装置８の傾き角度に対して、第１の方法によって算出された傾き角度を用いて補正を加える（例えば、第２の方法で算出された傾き角度を、所定の割合で第１の方法で算出された傾き角度へと近づける等）ようにしてもよい。さらに、他の実施形態においては、ＣＰＵ１０は、加速度、角速度、およびマーカ座標の全てを用いて傾き角度θを算出してもよい。
【０１２１】
以上より、入力装置８の傾き角度を算出するために用いられる操作データは、マーカ座標データであってもよいし、角速度データであってもよいし、加速度データであってもよいし、これらのデータの組み合わせであってもよい。操作データは、入力装置８の傾き角度を算出することができるものであれば、どのようなものであってもよい。すなわち、操作データは、上記マーカ座標データおよび加速度データのような、入力装置８の傾きに応じてその内容が変化するデータ、あるいは、上記角速度データのような、入力装置８の傾きの変化に応じてその内容が変化するデータであればよい。
【０１２２】
図１２の説明に戻り、上記ステップＳ１１の次にステップＳ１２の処理が実行される。ステップＳ１２において、ＣＰＵ１０は、入力装置８の傾き角度θが、現在の上限値よりも大きいか否かを判定する。「現在の上限値」とは、現在表示されているページ（ページデータ７９が示すページ）に対応する上限値を指す。具体的には、まず、ＣＰＵ１０は、ページデータ７９と閾値データ８０とをメインメモリから読み出し、上記現在の上限値を特定する。例えば、ページデータ７９が第１ページを示す場合、現在の上限値は“θ１°”と特定され、ページデータ７９が第２ページを示す場合、現在の上限値は“θ３°”と特定される。なお、ページデータ７９が第３ページを示す場合、上限値は設定されていないので、この場合にはステップＳ１２の判定結果は否定となる。次に、ＣＰＵ１０は、傾きデータ７８をメインメモリから読み出し、傾きデータ７８が示す傾き角度θが、特定された現在の上限値よりも大きいか否かを判定する。ステップＳ１２の判定結果が肯定である場合、ステップＳ１３の処理が実行される。一方、ステップＳ１２の判定結果が否定である場合、後述するステップＳ１５の処理が実行される。
【０１２３】
ステップＳ１３において、ＣＰＵ１０は、現在表示されているページの次のページが存在するか否かを判定する。ステップＳ１３の判定結果が肯定である場合、ステップＳ１４の処理が実行される。一方、ステップＳ１３の判定結果が否定である場合、後述するステップＳ１５の処理が実行される。上記ステップＳ１３の判定処理は、次のページが存在しない場合にページの切替処理（ステップＳ１４）が実行されることを防止するための処理である。なお、本実施形態においては、次のページが存在しない第３ページに対しては上限値が設定されないので、ステップＳ１３の処理は省略されてもよい。ただし、次のページが存在しないページに対して上限値が設定される場合には、ステップＳ１３の処理が実行されることが好ましい。
【０１２４】
ステップＳ１４において、ＣＰＵ１０は、次のページへと選択対象を切り替える。具体的には、ＣＰＵ１０は、ページデータ７９をメインメモリから読み出し、ページデータ７９が示すページ数に１を加算したページ数を示すデータを新たなページデータ７９としてメインメモリに記憶する。上記ステップＳ１４によって、表示対象が決定されたことになる。ステップＳ１４の終了後、ＣＰＵ１０は表示対象決定処理を終了する。
【０１２５】
ステップＳ１５において、ＣＰＵ１０は、入力装置８の傾き角度θが、現在の下限値よりも小さいか否かを判定する。「現在の下限値」とは、現在表示されているページ（ページデータ７９が示すページ）に対応する下限値を指す。具体的には、まず、ＣＰＵ１０は、ページデータ７９と閾値データ８０とをメインメモリから読み出し、上記現在の下限値を特定する。例えば、ページデータ７９が第２ページを示す場合、現在の下限値は“θ２°”と特定され、ページデータ７９が第３ページを示す場合、現在の下限値は“θ４°”と特定される。なお、ページデータ７９が第１ページを示す場合、下限値は設定されていないので、この場合にはステップＳ１５の判定結果は否定となる。次に、ＣＰＵ１０は、傾きデータ７８をメインメモリから読み出し、傾きデータ７８が示す傾き角度θが、特定された現在の下限値よりも小さいか否かを判定する。ステップＳ１５の判定結果が肯定である場合、ステップＳ１６の処理が実行される。一方、ステップＳ１５の判定結果が否定である場合、ＣＰＵ１０は表示対象決定処理を終了する。
【０１２６】
ステップＳ１６において、ＣＰＵ１０は、現在表示されているページの前のページが存在するか否かを判定する。ステップＳ１６の判定結果が肯定である場合、ステップＳ１７の処理が実行される。一方、ステップＳ１６の判定結果が否定である場合、ＣＰＵ１０は表示対象決定処理を終了する。上記ステップＳ１６の判定処理は、前のページが存在しない場合にページの切替処理（ステップＳ１７）が実行されることを防止するための処理である。なお、本実施形態においては、前のページが存在しない第１ページに対しては下限値が設定されないので、上記ステップＳ１３と同様、ステップＳ１６の処理は省略されてもよい。ただし、次のページが存在しないページに対して下限値が設定される場合には、ステップＳ１６の処理が実行されることが好ましい。
【０１２７】
ステップＳ１７において、ＣＰＵ１０は、前のページへと選択対象を切り替える。具体的には、ＣＰＵ１０は、ページデータ７９をメインメモリから読み出し、ページデータ７９が示すページ数に１を減算したページ数を示すデータを新たなページデータ７９としてメインメモリに記憶する。上記ステップＳ１７によって、表示対象が決定されたことになる。ステップＳ１７の終了後、ＣＰＵ１０は表示対象決定処理を終了する。
【０１２８】
上記の表示対象決定処理によれば、傾き量に応じて選択対象が切り替えられる。すなわち、入力装置８を傾けることによって傾き角度θが上限値を超えた場合（ステップＳ１２でＹｅｓ）、それまで表示されていたページからその次のページへと切り替えられる（ステップＳ１４）。一方、入力装置８を傾けることによって傾き角度θが下限値を超えた場合（ステップＳ１５でＹｅｓ）、それまで表示されていたページからその前のページへと切り替えられる（ステップＳ１７）。また、入力装置８の傾き角度θが下限値以上でかつ上限値以下の場合、それまで表示されていたページが引き続き表示対象となる（ステップＳ１２でＮｏ、かつ、ステップＳ１５でＮｏ）。
【０１２９】
なお、上記実施形態では、第１ページの上限値θ１は第２ページの下限値θ２よりも大きく設定され、第２ページの上限値θ３は第３ページの下限値θ４よりも大きく設定される。これによって、ページが頻繁に切り替わってしまうことを防止することができ、切り替え操作の操作性が向上される。以下、図１４および図１５を参照して詳細を説明する。
【０１３０】
図１４は、第２ページが表示される場合における入力装置８の傾き角度θおよび閾値を示す図である。図１４に示すように第２ページが表示される場合、下限値はθ２°に設定され、上限値はθ３°に設定される。したがって、傾き角度θがθ２≦θ≦θ３の範囲（図１４に示す斜線範囲）から外に出た場合に、ページが切り替えられる。一方、図１５は、第３ページが表示される場合における入力装置８の傾き角度θおよび閾値を示す図である。図１５に示すように第３ページが表示される場合、下限値はθ４°に設定される。したがって、傾き角度θがθ４≦θの範囲（図１５に示す斜線範囲）から外に出た場合に、ページが切り替えられる。
【０１３１】
ここで、上述のように下限値θ４は上限値θ３よりも小さく設定される（例えば、θ４＝１０°、θ３＝３０°）。したがって、画面に第２ページが表示されている場合、ＣＰＵ１０は、傾き角度θが上限値θ３を超えたことを条件として、画面に表示される選択対象を第２ページから第３ページへと切り替える。また、画面に第３ページが表示されている場合、ＣＰＵ１０は、傾き角度θが上限値θ３より小さい下限値θ４を下回ったことを条件として、画面に表示される選択対象を第３ページから第２ページへと切り替える。これによれば、傾き角度θの値が上限値θ３を超えたことによって第２ページから第３ページへと切り替えられると、傾き角度θが若干減少してθ３を下回っても（下限値θ４を下回らない限り）第３ページから第２ページへと戻ることはない。つまり、傾き角度θが上限値θ３となる前後で入力装置８の傾きが変動したとしても、第２ページと第３ページとの間でページが頻繁に切り替わってしまうことがないので、切り替え操作の操作性を向上することができる。
【０１３２】
なお、上記図１４および図１５では第２ページと第３ページとの間の切り替えを例として説明したが、第１ページと第２ページとの間の切り替えについても、第１ページの上限値θ１が第２ページの下限値θ２よりも大きく設定されることによって、上記と同様の効果を奏することができる。
【０１３３】
図１１の説明に戻り、ステップＳ３の次のステップＳ４において、ＣＰＵ１０は、操作データに基づいて上記指示位置を算出する。具体的には、ＣＰＵ１０は、操作データ７１をメインメモリから読み出し、操作データ７１に基づいて指示位置を算出する。算出された指示位置を示すデータは、指示位置データ７７としてメインメモリに記憶される。指示位置を算出する方法は、操作データに基づいて算出する方法であればどのような方法であってもよいが、例えば、マーカ座標を用いて算出する方法と、入力装置８の傾きに基づいて算出する方法とが考えられる。以下、指示位置の算出方法の一例を説明する。
【０１３４】
まず、図１３を参照して、マーカ座標を用いて指示位置を算出する方法について説明する。まず、ＣＰＵ１０は、操作データ７１に含まれるマーカ座標データ７３から２つのマーカ座標の中点（図１３に示す点Ｐ３）を算出する。次に、ＣＰＵ１０は、上記２つのマーカ座標を結ぶベクトルｖ１がｘ’軸に平行になるように、撮像画像の中心を軸として当該マーカ座標の中点を回転する補正を行う。この補正によって、入力装置８のＺ軸回りに関して基準姿勢から傾いている場合においても正確に指示位置を算出することができる。次に、ＣＰＵ１０は、上記補正後の中点の位置を示す座標を、テレビ２の画面上の位置を表す座標に変換する。なお、入力装置８の指示位置と、撮像画像内での上記中点の位置とでは逆方向に移動することになるので、上記の変換においては上下左右が反転するような変換が行われる。上記の変換によって得られる画面上の位置が上記指示位置となる。
【０１３５】
以上のように、マーカ座標を用いて指示位置を算出する方法によれば、入力装置８の傾き角度θを算出するための上記第１の算出方法と同様、指示位置を正確に算出することができる。
【０１３６】
次に、図１６および図１７を参照して、入力装置８の傾きに基づいて指示位置を算出する方法について説明する。図１６は、所定の仮想空間に入力装置８と所定の平面とを仮想的に配置した図である。本実施形態では、図１６に示すように、ＣＰＵ１０は、３次元の仮想空間を定義し、入力装置８と所定の平面Ｑとが仮想的に配置されていると考えて指示位置の算出を行う。平面Ｑは、テレビ２の画面に対応するものである。ＣＰＵ１０は、指示位置として、仮想空間において入力装置８のＺ軸（図１６に示すＺ軸ベクトルＶＺ）の方向が指し示す平面Ｑ上の位置を算出する。すなわち、仮想空間において入力装置８の傾きを表すＺ軸ベクトルＶＺを延ばした線分と、当該仮想空間における所定平面Ｑとの交点Ｒの位置を指示位置として算出する。なお、「Ｚ軸ベクトルＶＺを延ばした線分」とは、Ｚ軸ベクトルＶＺに平行でかつＺ軸上を通る線分を意味する。
【０１３７】
なお、図１６に示すように、本実施形態では、上記仮想空間の位置をＸ’Ｙ’Ｚ’座標系によって表現する。また、平面Ｑ上の位置をｘ”ｙ”座標系で表現する。このとき、空間座標系のＸ’Ｙ’平面に平行となるように平面Ｑを設定し、空間座標系のＸ’軸と平面Ｑのｘ”軸が平行となり、空間座標系のＹ’軸と平面Ｑのｙ”軸が平行となるようにｘ”ｙ”座標系を設定する（図１６参照）。
【０１３８】
また、本実施形態では、プレイヤは入力装置８をテレビ２の画面のほぼ正面の位置で使用する状況を想定し、上記仮想空間において入力装置８の位置は変化しないものとする。すなわち、ＣＰＵ１０は、上記仮想空間において入力装置８の姿勢（傾き）のみを変化させ、入力装置８の位置を変化させずに処理を行う。これによって、入力装置８の傾きから平面Ｑ上の位置（交点Ｒの位置）を一義的に決定することができる。
【０１３９】
以下、平面Ｑ上の位置（交点Ｒの位置）を算出する方法について詳細に説明する。図１７は、図１６に示す仮想空間をＹ’軸正方向側から負方向側へ見た図である。図１７においては、入力装置８の位置を表す点Ｓから、当該点Ｓを平面Ｑに投影させた点（投影点）Ｔまでの長さを“Ｌ”とする。また、投影点Ｔから上記交点Ｒまでの、ｘ”成分に関する長さを“Ｗｘ”とする。本実施形態では、上記長さＬの値は、所定のタイミング（例えば、ゲーム処理が開始されるタイミング等）でプレイヤによって設定される。
【０１４０】
まず、ＣＰＵ１０は、入力装置８の傾きからＺ軸ベクトルＶＺを算出する。なお、入力装置８の傾きは、傾き角度θを算出するための上記第２の算出方法と同様の方法で算出することができる。したがって、入力装置８の傾き角度θを算出するために上記第２の算出方法を採用する場合には、ＣＰＵ１０は、上記ステップＳ１１で算出した入力装置８の３次元の傾きをメインメモリに記憶しておき、当該傾きを用いてＺ軸ベクトルＶＺを算出すればよい。
【０１４１】
ここで、図１７から明らかなように、上記長さＷｘと上記長さＬとの比は、Ｚ軸ベクトルＶＺのＸ’成分（Ｚｘ）とＺ軸ベクトルＶＺのＺ’成分（Ｚｚ）との比に等しくなるという関係がある。したがって、この関係に基づいて、既知のベクトルＶＺのＸ’成分Ｚｘ、Ｚ’成分Ｚｚ、および既知の長さＬから、長さＷｘを算出することができる。すなわち、ＣＰＵ１０は、上記Ｚ軸ベクトルＶＺを用いて、次の式（１）によって長さＷｘを算出する。
Ｗｘ＝Ｌ×Ｚｘ／Ｚｚ  …（１）
また、ｘ”成分の長さＷｘと同様に、投影点Ｔから交点Ｒまでのｙ”成分の長さＷｙは、次の式（２）によって算出することができる。
Ｗｙ＝Ｌ×Ｚｙ／Ｚｚ  …（２）
上記長さＷｘおよびＷｙが得られれば、平面Ｑ上における交点Ｒの位置を算出することができる。本実施形態では、上記投影点Ｔの位置をｘ”ｙ”座標系の原点とする。このとき、交点Ｒの座標は（Ｗｘ，Ｗｙ）となる。
【０１４２】
交点Ｒの位置を算出した後、ＣＰＵ１０は、交点Ｒの位置に対応する画面上の位置を指示位置として算出する。すなわち、ｘ”ｙ”座標系の座標値を、画面上の位置を表す座標系の座標値へと変換する。この変換においては、入力装置８が画面の中心を指し示す傾きとなる場合に指示位置が画面の中心となるように指示位置を算出することが好ましい。例えば、ＣＰＵ１０は、上記投影点Ｔの位置と画面の中央の位置とを対応させるように上記変換を行ってもよい。また例えば、ＣＰＵ１０は、入力装置８が画面の中心を指し示す傾きとなったか否かをマーカ座標を用いて判定し、当該傾きとなった場合において算出される平面Ｑ上の交点Ｒの位置を画面の中央の位置と対応させるように変換を行ってもよい。
【０１４３】
以上のように、入力装置８と所定の平面Ｑとを配置する仮想空間を設定し、仮想空間において入力装置８の所定軸（Ｚ軸）の方向が指し示す平面Ｑ上の位置を算出することによって、入力装置８の傾きから指示位置を得ることができる。入力装置８の傾きを用いて指示位置を算出する方法によれば、入力装置８の傾き角度θを算出するための上記第２の方法と同様、ユーザは入力装置８を自由な方向に向けて使用することができる。
【０１４４】
なお、上記実施形態においては、長さＬをプレイヤが設定することができるようにした。ここで、上式（１）および（２）から明らかなように、長さＬの大きさを調整することによって、算出される２次元座標（Ｗｘ，Ｗｙ）の値を変化させることができる。つまり、長さＬの大きさを調整することによって、Ｚ軸ベクトルＶＺの向きの変化（すなわち、入力装置８の傾きの変化）に対する２次元座標（Ｗｘ，Ｗｙ）の変化量を調整することができる。具体的には、長さＬの値が大きくなると上記変化量は大きくなる。その結果、入力装置８の傾きを少し変化させるだけで、カーソルが大きく移動することになる。一方、長さＬの値が小さくなると上記変化量は小さくなる。その結果、入力装置８の傾きを大きく変化させても、カーソルは少ししか移動しないことになる。以上より、上記実施形態においては、長さＬをプレイヤに設定させることによって、入力装置８の操作感をプレイヤ自身が調整することができるようになる。例えば、プレイヤは、カーソルを細かく操作することを必要とする場合には長さＬを相対的に小さく設定すればよく、カーソルを大きく移動させる操作を必要とする場合には長さＬを相対的に大きく設定すればよい。なお、他の実施形態においては、上記長さＬは、予め定められた定数であってもよい。
【０１４５】
また、他の実施形態においては、ゲーム装置３が所定の方法で上記長さＬを算出するようにしてもよい。例えば、ＣＰＵ１０は、入力装置８からテレビ２の画面までの実際の距離を算出し、算出された距離を長さＬとして設定してもよい。上記実際の距離は、例えば、撮像素子４０によって撮像された撮像画像内における２つのマーカ６Ｒおよび６Ｌの間の長さ、または、マーカ６Ｒまたは６Ｌの大きさを用いて算出することができる。さらに、仮想空間における平面Ｑの位置および大きさと、実空間におけるテレビ２の画面の位置および大きさとを対応させるように平面Ｑを設定すれば（例えば、プレイヤにテレビの画面の大きさを設定させるようにしてもよい）、２次元座標（Ｗｘ，Ｗｙ）に対応するテレビ２の画面上の位置にカーソルが表示されることとなる。これによれば、入力装置８が指し示す（画面上の）正確な位置にカーソルを表示させることができる。
【０１４６】
図１１の説明に戻り、ステップＳ４の次のステップＳ５において、ＣＰＵ１０は、選択対象等をテレビ２の画面に表示させる。テレビ２の画面には、現在の表示対象であるページに含まれる選択対象（文字画像）が表示されるとともに、ステップＳ４で算出された指示位置にカーソルが表示される。具体的には、ＣＰＵ１０は、指示位置データ７７およびページデータ７９をメインメモリから読み出し、ページデータ７９によって特定されるページの選択対象を画面に表示させるとともに、指示位置データ７７によって特定される指示位置にカーソルを表示させる。ステップＳ５の次にステップＳ６の処理が実行される。
【０１４７】
ページデータ７９によって特定されるページが前回の処理ループから変更されている場合、上記ステップＳ５によって、表示される選択対象（文字画像）が切り替えられることとなる。なお、選択対象を切り替えるための具体的な表示処理はどのようなものであってもよい。本実施形態においては、表示処理は、仮想カメラを用いて行われるものとする。すなわち、ＣＰＵ１０は、仮想空間に配置される各ページのうちで、ページデータ７９によって特定されるページが表示範囲となるように仮想カメラの位置および向きを設定し、当該仮想カメラから各ページを見た画像を生成して画面に表示させる。なお、他の実施形態においては、ＣＰＵ１０は、仮想カメラでなく表示対象であるページを移動させるようにしてもよい。また、他の実施形態においては、表示処理は仮想カメラを用いない方法によって行われてもよい。例えば、ＣＰＵ１０は、各ページが配置される２次元平面上に表示範囲を設定し、当該表示範囲を切り替えることによってページを切り替えてもよい。
【０１４８】
また、選択対象（ページ）を切り替える際の表示態様はどのようなものであってもよい。例えば、ＣＰＵ１０は、ページを切り替える際、変更前のページから画像がスクロールして変更後のページへと切り替わるように表示してもよい。図１８は、選択対象を切り替える方法の一例を示す図である。図１８においては、“Ａ”〜“Ｉ”を表す複数の文字画像６１と、“Ｊ”〜“Ｒ”を表す複数の文字画像６２と、“Ｓ”〜“Ｚ”を表す複数の文字画像６３とが仮想空間において略同心円状に配置される。ページを切り替える際、ＣＰＵ１０は、変更前のページの位置から変更後のページの位置へと表示範囲が次第に変化するように、仮想カメラを回転させながら移動させる（図１８に示す矢印参照）。なお、ＣＰＵ１０は、仮想カメラではなく各文字画像６１〜６３を回転させてもよい。このように、本実施形態においては、図１８に示すように、選択対象が回転しながらスクロールするような表示態様で選択対象の切り替えを行う。なお、他の実施形態においては、ＣＰＵ１０は、表示範囲が上下または左右に単に平行移動するように画像をスクロールさせてもよい。画像のスクロール方向はどのような方向であってもよいが、画像が左右方向に移動する（左右方向に平行移動する場合と、図１８に示すように回転しながら左右方向に移動する場合とを含む）ことが好ましい。これらの場合には、入力装置８を傾ける方向と画像の移動方向とが一致するので、自然な操作感覚をユーザに与えることができるからである。
【０１４９】
なお、本発明では、ＣＰＵ１０は入力装置８の傾き量に応じて選択対象を「切り替える」ので、上記のように画像をスクロールさせる場合であっても、切り替わりの途中でスクロールが停止することはない。また、上記実施形態では、ＣＰＵ１０は、ページを切り替える際に画像が連続的に変化する（スクロールする）ようなアニメーションを表示することとしたが、他の実施形態では、このようなアニメーションを表示せずに、画像が不連続に変化する（単に切り替わる）ように表示を行ってもよい。
【０１５０】
ステップＳ６において、ＣＰＵ１０は、指示位置を用いた所定の処理を実行する。本実施形態においては、上記所定の処理は、カーソルによって指し示されている文字画像が表す文字を出力（表示）する処理である。すなわち、ＣＰＵ１０は、カーソルによって文字画像が指し示されている状態で所定の操作（例えば入力装置８のＡボタン３２ｄが押下される操作）が行われた場合、当該文字画像が表す文字を出力する。なお、上記所定の処理は、指示位置に表示される対象を選択し、選択された対象に応じた内容の情報処理であればどのような処理であってもよい。例えば、ゲームのアイテムを表すアイコンが選択対象として表示される場合であれば、ＣＰＵ１０は、指示位置に表示されるアイコンが表すアイテムをゲーム中において使用する処理を上記所定の処理として実行してもよい。また例えば、ゲームに登場するキャラクタを表す画像が選択対象として表示される場合であれば、ＣＰＵ１０は、指示位置に表示されるキャラクタをユーザの操作対象として決定する処理を上記所定の処理として実行してもよい。ステップＳ６の次にステップＳ７の処理が実行される。
【０１５１】
ステップＳ７において、ＣＰＵ１０は、文字入力処理を終了するか否かを判定する。ステップＳ７の判定は、例えば、プレイヤが文字入力処理を終了する指示を行ったか否か等によって行われる。ステップＳ７の判定結果が否定である場合、ステップＳ２の処理が再度実行される。以降、ステップＳ７で処理を終了すると判定されるまで、ステップＳ２〜Ｓ７の処理ループが繰り返し実行される。一方、ステップＳ７の判定結果が肯定である場合、ＣＰＵ１０は、図１１に示す文字入力処理を終了する。以上で、文字入力処理の説明を終了する。
【０１５２】
以上のように、上記実施形態によれば、画面に表示される選択対象が入力装置８の傾き角度θに応じて切り替えられるとともに、入力装置８の指示位置によって選択対象から１つが選択される。これによれば、ユーザは、選択対象を選択する操作と、選択対象を切り替える操作とを行うことによって、一度に表示される選択対象を少なくすることができるとともに、２種類の操作を１つの入力装置８を用いて行うことができる。したがって、本発明によれば、ユーザは、選択対象から１つを選択する操作を容易に行うことができる。
【０１５３】
また、一度に全ての選択対象を表示する従来の方法では、１つ１つの選択対象が小さくなるためにカーソル（指示位置）の操作に厳密性が要求される。そのため、入力装置８の向き（指示位置）と選択対象とをユーザが体で覚えてカーソルの位置を確認せずに入力操作を行うことは、実際には不可能であった。これに対して、本実施形態によれば、画面に表示される１つ１つの選択対象を従来の方法に比べて大きくすることができるので、カーソルの操作に厳密性が要求されない。そのため、ある程度操作に慣れたユーザであれば、指示位置と傾き角度との組み合わせに対する選択対象を体で覚えて、入力操作を行うことも可能である。したがって、本実施形態によれば、従来に比べて迅速な入力操作が可能となる。
【０１５４】
また、上記実施形態においては、選択対象を選択するために用いられる指示位置は、入力装置８のＸ軸回りおよびＹ軸回りの傾き（入力装置８のＺ軸がマーカ部６の方向を向く状態で使用することを前提とすれば、「Ｘ軸方向およびＹ軸方向への移動」とも言える。）に応じて算出される。一方、選択対象を切り替えるために用いられる傾き角度θは、入力装置８のＺ軸回りの傾きである。このように、上記実施形態においては、指示位置の算出は、傾き角度θの算出に用いられるＺ軸と垂直な軸に関する傾きまたは位置に応じて算出される。これによれば、選択対象を選択する操作と選択対象を切り替える操作とは互いに無関係であり、一方の操作が他方の操作に影響を与えることがないので、ユーザにとっては２種類の操作が容易である。
【０１５５】
［変形例］
上記実施形態は本発明を実施する一例であり、他の実施形態においては例えば以下に説明する構成で本発明を実施することも可能である。
【０１５６】
（ゲームシステムに関する変形例）
以下、図１９および図２０を参照して、他の実施形態におけるゲームシステムの例について説明する。図１９は、第１の変形例におけるゲームシステムの構成を示すブロック図である。図１９においては、ゲームシステムは、カメラ９１、ゲーム装置３、およびテレビ２を有する。ゲーム装置３は、上記実施形態と同様の構成であってもよいが、傾き角度を算出する処理等は上記実施形態とは異なっている。テレビ２は上記実施形態と同様の構成である。以下、上記実施形態との相違点を中心に、図１９に示すゲームシステムについて説明する。
【０１５７】
マーカ９２は、カメラ９１の撮像対象となる物体である。ユーザが把持して使用するコントローラをゲームシステムが有する場合には、当該コントローラをマーカ９２としてもよい。また、ユーザの身体の一部（例えば手）をマーカ９２の代わりとしてもよい。カメラ９１は、任意の位置（例えば、テレビ２の周辺の位置）に配置され、マーカ９２を撮像する。カメラ９１による撮像結果に基づく操作データは、有線または無線でゲーム装置３へ送信される。「撮像結果に基づく操作データ」とは、撮像された画像のデータでもよいし、画像のデータから得られる情報（例えば、撮像画像内におけるマーカ９２の位置や向きや形状の情報等）を示すデータでもよい。
【０１５８】
ゲーム装置３は、操作データに基づいてマーカ９２の傾き角度を算出する。マーカ９２の傾き角度は、例えば、撮像画像におけるマーカ９２の形状を特定し、その形状からマーカ９２の向きを算出することで得ることができる。また、ゲーム装置３は、操作データに基づいてマーカ９２による指示位置を算出する。指示位置は、例えば、撮像画像内におけるマーカ９２の位置から算出することができる。このように、マーカ９２の撮像結果に基づいてマーカ９２の傾き角度および指示位置を算出することができる。なお、傾き角度および指示位置を用いる処理より後の処理は上記実施形態と同様である。
【０１５９】
図１９に示したように、他の実施形態においては、ユーザが操作に用いる物体は、入力装置８に限らず、ユーザの身体の一部、または、ユーザが動かすことができるマーカであってもよい。このとき、ゲーム装置３は、物体を撮像する撮像手段から、撮像結果に基づくデータを操作データとして取得する。これによっても上記実施形態と同様、ユーザが操作に用いる物体の傾き角度および指示位置を操作データに基づいて算出することが可能であり、当該傾き角度および指示位置を入力として用いて選択対象を選択する操作をユーザに行わせることができる。
【０１６０】
図２０は、第２の変形例におけるゲームシステムの構成を示すブロック図である。図２０においては、ゲームシステムは、カメラ９１、コントローラ９５、ゲーム装置３、およびテレビ２を有する。ゲーム装置３は、上記実施形態と同様の構成であってもよいが、傾き角度を算出する処理等は上記実施形態とは異なっている。テレビ２は上記実施形態と同様の構成である。以下、上記実施形態との相違点を中心に、図２０に示すゲームシステムについて説明する。
【０１６１】
カメラ９１は上記第１の変形例と同じものである。第２の変形例においては、カメラ９１による撮像結果に基づく操作データを「第１の操作データ」と呼ぶ。コントローラ９５は、自身の傾きに関する情報を検出可能な検出手段を備える。図２０では、検出手段はジャイロセンサ９６である。ジャイロセンサ９６は、１軸のみの回転に関する角速度を検出するものであってもよいし、２軸あるいは３軸の回転に関する角速度を検出するものであってもよい。また、コントローラ９５が備える検出手段は、上記実施形態における加速度センサ３７であってもよいし、（ゲームシステムがマーカ部を備える場合には）マーカ部を撮像する撮像手段であってもよい。コントローラ９５は、ジャイロセンサ９６の検出結果に基づくデータを第２操作データとしてゲーム装置３へ有線または無線で送信する。
【０１６２】
第２の変形例において、ゲーム装置３は、上記第２操作データに基づいてコントローラ９５の傾き角度を算出する。第２操作データに基づく傾き角度の算出方法、すなわち、ジャイロセンサ９６の検出結果に基づく傾き角度の算出方法は、上記実施形態と同様である。一方、ゲーム装置３は、上記第１操作データに基づいてコントローラ９５による指示位置を算出する。指示位置の算出方法は上記第１の変形例と同様である。傾き角度および指示位置を用いる処理より後の処理は上記実施形態と同様である。
【０１６３】
図２０に示したように、他の実施形態においては、ユーザが操作に用いる物体として、ジャイロセンサ９６を備えるコントローラ９５が用いられてもよい。そして、ゲーム装置３は、コントローラ９５からの第２操作データに基づいてコントローラ９５の傾き角度を算出し、（コントローラ９５とは別体の）カメラ９１からの第１操作データに基づいて指示位置を算出するようにしてもよい。これによっても上記実施形態および第１の変形例と同様、ユーザが操作に用いる物体の傾き角度および指示位置を操作データに基づいて算出することが可能であり、当該傾き角度および指示位置を入力として用いて選択対象を選択する操作をユーザに行わせることができる。
【０１６４】
また、他の実施形態においては、ゲーム装置３は、コントローラからの操作データに基づいてコントローラによる指示位置を算出し、コントローラとは別体のカメラからの操作データに基づいてコントローラの傾き角度を算出するようにしてもよい。以上のように、本発明は、ユーザが操作する物体の傾き角度と、当該物体による指示位置とを算出可能な任意の情報処理システムに対して適用可能である。
【０１６５】
（画面に表示される選択対象に関する変形例）
上記実施形態においては、文字（アルファベット）を表す画像を選択対象として画面に表示する場合を例として説明したが、選択対象はこれに限らない。例えば、他の実施形態においては、選択対象は、何らかの処理が関連付けられるアイコンであってもよい。すなわち、本発明は、複数のアイコンを表示し、アイコンが選択がされた場合には当該アイコンに関連付けられた処理を実行する技術に適用することが可能である。また、本発明は、ゲーム処理に適用することも可能である。すなわち、ゲーム装置３は、ゲームに登場するアイテムまたはゲームキャラクタを表す画像、あるいは、ゲームのコマンドを表す画像を選択対象として画面に表示してもよい。このとき、ゲーム装置は、選択された画像が表すアイテムまたはゲームキャラクタに応じたゲーム処理を実行したり、選択された画像が表すコマンドに応じたゲーム処理を実行したりする。以上のように、選択対象は、何らかの処理が関連付けられた画像であってもよい。
【０１６６】
また、本発明は、地図（ゲームマップでもよい）を表示する処理においても適用することが可能である。具体的には、ゲーム装置３は、画面に表示する地図を入力装置８の傾き角度θに応じて切り替える。なお、地図領域内の部分領域（地点でもよい）には、何らかの処理（例えば、その部分領域を登録する処理や、その部分領域周辺を拡大して表示する処理等）が関連付けられているものとする。部分領域が選択された場合には、ゲーム装置３は、選択された部分領域（指示位置と対応する部分領域）に関連付けられた処理を実行する。これによれば、画面に地図を表示し、地図上の地点に対して処理を行う場合においても、本発明を適用することができる。
【０１６７】
また、上記実施形態においては、選択対象の切り替えに応じて文字を切り替えるようにしたが、選択対象の切り替えに応じて文字の種類を切り替えるようにしてもよい。すなわち、上記実施形態においては、２６個のアルファベットを３つのグループに分け、選択対象の切り替えに応じて表示されるグループを変化させるようにした。これに対して、他の実施形態においては、選択対象の切り替えに応じて、大文字と小文字、ひらがなとカタカナ、または、文字のフォントを切り替えるようにしてもよい。
【産業上の利用可能性】
【０１６８】
以上のように、本発明は、選択対象から１つを選択する操作が容易な入力インターフェースを提供すること等を目的として、例えばゲーム処理や文字入力処理等を実行する情報処理装置として利用することが可能である。
【符号の説明】
【０１６９】
１    ゲームシステム
２    テレビ
３    ゲーム装置
４    光ディスク
５    コントローラ
６    マーカ部
７    ジャイロセンサユニット
８    入力装置
１０    ＣＰＵ
１１ｃ  ＧＰＵ
１１ｅ  内部メインメモリ
１２    外部メインメモリ
６１〜６３  文字画像
６０    カーソル
７２    加速度データ
７３    マーカ座標データ
７５    角速度データ
７７    指示位置データ
７８    傾きデータ
７９    ページデータ
８０    閾値データ
９１    カメラ
９２    マーカ
９５    コントローラ
９６    ジャイロセンサ
【図１】
0005448073.tif 000002
【図２】
0005448073.tif 000003
【図３】
0005448073.tif 000004
【図４】
0005448073.tif 000005
【図５】
0005448073.tif 000006
【図６】
0005448073.tif 000007
【図７】
0005448073.tif 000008
【図８】
0005448073.tif 000009
【図９】
0005448073.tif 000010
【図１０】
0005448073.tif 000011
【図１１】
0005448073.tif 000012
【図１２】
0005448073.tif 000013
【図１３】
0005448073.tif 000014
【図１４】
0005448073.tif 000015
【図１５】
0005448073.tif 000016
【図１６】
0005448073.tif 000017
【図１７】
0005448073.tif 000018
【図１８】
0005448073.tif 000019
【図１９】
0005448073.tif 000020
【図２０】
0005448073.tif 000021