(57)【要約】  【構成】情報選択装置はコントローラを含む。複数の項目から任意の項目がたとえばアナログジョイスティック９４ａの方向入力によって選択される。所定の一連の方向入力操作が行われたと判定されるとき、選択項目のうち少なくとも１つの項目が他の項目に切替えられる。  【効果】方向入力による項目選択において項目を容易に切替えることができ、操作性を向上できる。【選択図】図１２
2008217543.tif 000002
【特許請求の範囲】
【請求項１】
複数の項目から任意の項目をユーザに選択させる情報選択装置であって、
方向の入力操作が可能であって、当該入力操作に応じた方向を示す方向データを入力する方向入力手段、
所定の操作に応じた操作データを入力する操作手段、
前記複数の項目を示す項目データを記憶する記憶手段、
前記項目データのうち所定数の項目を所定の方向にそれぞれ対応付けられた選択項目として設定する選択項目設定手段、
前記方向入力手段からの前記方向データに対応する項目を前記選択項目から選択し、所定の前記操作データが入力されたとき、当該項目を出力する選択手段、
前記方向データの推移に基づいて所定の一連の方向入力操作が行われたか否かを判定するシーケンス入力判定手段、および
前記シーケンス入力判定手段によって前記所定の一連の方向入力操作が行われたことが判定されたとき、前記選択項目のうち少なくとも１つの項目を前記項目データの他の項目に切替える切替手段を備える、情報選択装置。
【請求項２】
前記方向入力手段は傾倒可能なスティックを含み、当該スティックの傾倒方向に応じて前記方向データを入力し、
前記シーケンス入力判定手段は、前記方向データの推移に基づいて前記スティックが１回転したか否かを判定する、請求項１に記載の情報選択装置。
【請求項３】
前記操作手段は押下可能なキーを含み、当該キーの操作に応じたキー情報を前記操作データとして入力する、請求項１に記載の情報選択装置。
【請求項４】
前記選択項目設定手段および前記切替手段によって設定された前記選択項目を表示装置に表示する表示制御手段をさらに備える、請求項１に記載の情報選択装置。
【請求項５】
前記項目は文字または文字列であって、
前記選択手段によって出力された文字または文字列を入力として処理する文字入力処理手段をさらに備える、請求項１に記載の情報選択装置。
【請求項６】
方向の入力操作が可能であって当該入力操作に応じた方向を示す方向データを入力する方向入力手段、所定の操作に応じた操作データを入力する操作手段、および複数の項目を示す項目データを記憶する記憶手段を備え、前記複数の項目から任意の項目をユーザに選択させる情報選択装置のコンピュータにおいて実行される情報選択プログラムであって、
前記項目データのうち所定数の項目を所定の方向にそれぞれ対応付けられた選択項目として設定する選択項目設定ステップ、
前記方向入力手段からの前記方向データに対応する項目を前記選択項目から選択し、所定の操作データが入力されたとき、当該項目を出力する選択ステップ、
前記方向データの推移に基づいて所定の一連の方向入力操作が行われたか否かを判定するシーケンス入力判定ステップ、および
前記シーケンス入力判定ステップによって前記所定の一連の方向入力操作が行われたことが判定されたとき、前記選択項目のうち少なくとも１つの項目を前記項目データの他の項目に切替える切替ステップを前記コンピュータに実行させる、情報選択プログラム。
【請求項７】
複数の項目からユーザに選択された項目に応じたゲーム処理を行うゲーム装置であって、
所定の操作に応じた第１の操作データを入力する第１の操作ユニット、
方向の入力操作が可能であって、当該入力操作に応じた方向を示す方向データを入力する方向入力手段を少なくとも含む第２の操作ユニット、
前記第１の操作ユニットおよび前記第２の操作ユニットからの前記第１の操作データおよび前記方向データを取得する取得手段、
前記複数の項目を示す項目データを記憶する記憶手段、
前記項目データのうち所定数の項目を所定の方向にそれぞれ対応付けられた選択項目として設定する選択項目設定手段、
前記方向入力手段からの前記方向データに対応する項目を前記選択項目から選択する選択手段、
前記方向データの推移に基づいて所定の一連の方向入力操作が行われたか否かを判定するシーケンス入力判定手段、
前記シーケンス入力判定手段によって前記所定の一連の方向入力操作が行われたことが判定されたとき、前記選択項目のうち少なくとも１つの項目を前記項目データの他の項目に切替える切替手段、および
前記選択手段によって選択された前記項目と前記第１の操作データとに基づいてゲーム処理を行うゲーム処理手段を備える、ゲーム装置。
【請求項８】
前記第１の操作ユニットは自身の動きを検出する動き検出手段を含み、
前記第１の操作データは、前記動き検出手段によって検出された動きデータを含み、
前記ゲーム処理手段は、前記選択手段によって選択された前記項目と前記動きデータとに基づいてゲーム処理を行う、請求項７に記載のゲーム装置。
【請求項９】
前記第１の操作ユニットは、前記動き検出手段として加速度センサを備え、
前記ゲーム処理手段は、前記選択手段によって選択された前記項目と前記加速度センサによって取得された加速度データとに基づいて、前記ゲーム処理を行う、請求項８に記載のゲーム装置。
【請求項１０】
前記第１の操作ユニットは、前記動き検出手段として撮像装置を備え、
前記ゲーム処理手段は、前記選択手段によって選択された前記項目と前記撮像装置によって取得された撮像対象の位置を示す撮像対象データとに基づいて、前記ゲーム処理を行う、請求項８に記載のゲーム装置。
【請求項１１】
所定の操作に応じた第１の操作データを入力する第１の操作ユニット、方向の入力操作が可能であって当該入力操作に応じた方向を示す方向データを入力する方向入力手段を少なくとも含む第２の操作ユニット、および複数の項目を示す項目データを記憶する記憶手段を備え、前記複数の項目からユーザに選択された項目に応じたゲーム処理を行うゲーム装置のコンピュータにおいて実行されるゲームプログラムであって、
前記第１の操作ユニットおよび前記第２の操作ユニットからの前記第１の操作データおよび前記方向データを取得する取得ステップ、
前記項目データのうち所定数の項目を所定の方向にそれぞれ対応付けられた選択項目として設定する選択項目設定ステップ、
前記方向入力手段からの前記方向データに対応する項目を前記選択項目から選択する選択ステップ、
前記方向データの推移に基づいて所定の一連の方向入力操作が行われたか否かを判定するシーケンス入力判定ステップ、
前記シーケンス入力判定ステップによって前記所定の一連の方向入力操作が行われたことが判定されたとき、前記選択項目のうち少なくとも１つの項目を前記項目データの他の項目に切替える切替ステップ、および
前記選択ステップによって選択された前記項目と前記第１の操作データとに基づいてゲーム処理を行うゲーム処理ステップを前記コンピュータに実行させる、ゲームプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は情報選択装置、情報選択プログラム、ゲーム装置およびゲームプログラムに関し、特にたとえば複数の項目から任意の項目をユーザに選択させる、情報選択装置、情報選択プログラム、ゲーム装置およびゲームプログラムに関する。
【背景技術】
【０００２】
方向指示デバイスの操作に応じて文字セットを選択する文字入力装置の一例が特許文献１に開示されている。特許文献１の技術では、特定方向に文字セット選択行が割り当てられている。当該特定方向においてスティックを倒す角度またはスティックに加わる荷重に対応付けられた文字セットが選択される。決定キーの操作によって当該文字セットが選択されて当該文字セットに含まれる文字を入力できるモードに入る。入力モードでは、スティックの方向と角度（または荷重）に対応付けられた文字が選択される。
【特許文献１】特開２０００−１０７１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
特許文献１の技術では、スティックの円周方向の移動によって特定方向を指示し、当該特定方向においてスティックを半径方向に倒す角度または加重によって文字セットの選択を行い、決定キーの操作によって当該文字セットでの入力モードに入るようにしているので、文字セットの選択の操作が難しいという問題がある。
【０００４】
それゆえに、この発明の主たる目的は、新規な、情報選択装置、情報選択プログラム、ゲーム装置およびゲームプログラムを提供することである。
【０００５】
また、この発明の他の目的は、方向入力による項目選択において選択操作を容易に行うことができる、情報選択装置、情報選択プログラム、ゲーム装置およびゲームプログラムを提供することである。
【課題を解決するための手段】
【０００６】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【０００７】
第１の発明は、複数の項目から任意の項目をユーザに選択させる情報選択装置である。情報選択装置は、方向入力手段、操作手段、記憶手段、選択項目設定手段、選択手段、シーケンス入力判定手段および切替手段を備える。方向入力手段は、方向の入力操作が可能であって、当該入力操作に応じた方向を示す方向データを入力する。操作手段は、所定の操作に応じた操作データを入力する。記憶手段は、複数の項目を示す項目データを記憶する。選択項目設定手段は、項目データのうち所定数の項目を所定の方向にそれぞれ対応付けられた選択項目として設定する。選択手段は、方向入力手段からの方向データに対応する項目を選択項目から選択し、所定の操作データが入力されたとき、当該項目を出力する。シーケンス入力判定手段は、方向データの推移に基づいて所定の一連の方向入力操作が行われたか否かを判定する。切替手段は、シーケンス入力判定手段によって所定の一連の方向入力操作が行われたことが判定されたとき、選択項目のうち少なくとも１つの項目を項目データの他の項目に切替える。
【０００８】
第１の発明では、情報選択装置（１０、１２）は、複数の項目から任意の項目をユーザに選択させる。記憶手段（２２、５０、２２０）には複数の項目を示す項目データが記憶される。項目は、たとえば文字、ゲームアイテム、メニュー項目などであってよい。この情報選択装置では、項目はユーザの方向入力によって選択される。そのため、方向入力手段（１４、８２ａ、９４ａ）が備えられており、ユーザの入力操作に応じた方向を示す方向データを入力する。方向入力手段は、たとえばアナログジョイスティック、十字キー、タッチパッドやマウスであってよい。なお、方向入力手段は、無操作状態において、いずれの方向も入力しないものとしてもよい。選択項目設定手段（４６、Ｓ１、Ｓ１０１）は、所定数の項目を方向入力手段による指示方向のそれぞれに対応付けられた選択項目として設定する。したがって、ユーザは選択項目のうち所望の項目に対応する方向を入力することによって当該項目を選択できる。なお、項目の全体数は、選択項目数よりも多い。すなわち、項目の全体の中の一部が選択項目として選択される。また、この情報選択装置では、方向入力手段の方向に対応する項目の選択を、別の操作によって決定または確定する。そのため、操作手段（１４、８２ｄ、９４ｂ、８６、８８、９６）が備えられており、ユーザの所定の操作に応じた操作データを入力する。操作手段は、たとえば、ボタンスイッチなどのキーであってよいし、あるいはユーザ操作による動きを検出する加速度センサや撮像装置であってよい。選択手段（４６、Ｓ９、Ｓ１７、Ｓ１９、Ｓ３５−Ｓ３９、Ｓ１３５、Ｓ１３９）は、方向データに対応する項目を選択項目から選択し、所定の操作データが入力されたとき、当該項目を出力する。このような項目を選択するための方向入力手段を用いて、選択項目の切り替えが行われる。すなわち、シーケンス入力判定手段（４６、Ｓ２３）は、方向データの推移に基づいて所定の一連の方向入力操作が行われたか否かを判定する。切替手段（４６、Ｓ２９、Ｓ３１、Ｓ１２９、Ｓ１３１）は、所定の一連の方向入力操作が行われたと判定されたとき、選択項目のうち少なくとも１つの項目を項目データの他の項目に切替える。現在の選択項目の全てを他の項目に入れ替えても良いし、現在の選択項目の一部（１つのみ、１／８、１／４、半分、３／４など）を他の項目に入れ替えても良い。なお、項目データを所定順番で配列してプログラムに記憶しておいてもよく、この場合、切替手段は、少なくとも、（ａ）現在の選択項目のうち最も前に配列された項目を選択項目から削除し、現在の選択項目の次に配列された項目を選択項目に追加するか、または、（ｂ）現在の選択項目のうち最も後に配列された項目を選択項目から削除し、現在の選択項目より前に配列された項目を選択項目に追加するのが望ましい。また、典型的には、選択項目数をｎ個としたときに、（ｃ）現在の選択項目のすべてを削除し、現在の選択項目の次に配列されたｎ個の項目を新たに選択項目とし、または、（ｄ）現在の選択項目のすべてを削除し、現在の選択項目より前に配列されたｎ個の項目を新たに選択項目とするようにしてもよい。
【０００９】
また、シーケンス入力判定手段は、第１の一連入力操作とそれと異なる第２の一連入力操作を判定し、第１の一連入力操作がおこなわれたことが判定されたときには、上記（ａ）（または（ｃ））の処理を実行し、第２の一連入力操作がおこなわれたときには、上記（ｂ）（または（ｄ））の処理を実行するようにしてもよい。特に、シーケンス入力判定手段が、一連の入力操作として、方向入力手段が１回転する操作を判定する場合には、第１の一連入力操作として、右回りの１回転を判定し、第２の一連入力操作として、左回りの１回転を判定するようにしてもよい。
【００１０】
また、シーケンス入力判定手段は、現在の全選択項目に対応する全方向が、方向入力手段により順番に入力されたことを判定してもよい。すなわち、例えば、現在の選択項目が項目データｉ１〜ｉｎとするときに、ｉ１に対応する方向ｄ１が入力された後、ｉ２に対応する方向ｄ２が入力され、その後、ｉ３に対応する方向ｄ３が入力され、・・・、その後、ｉｎ−１に対応する方向ｄｎ−１が入力された後、ｉｎに対応する方向ｄｎが入力されたことを判定してもよい。この場合、方向ｄ１の入力→方向ｄ２の入力→方向ｄ３の入力→・・・→方向ｄｎ−１の入力→方向ｄｎの入力が連続的に（すなわち、他の方向の入力が間に入ることなく）入力されたことを判定することが好ましい。特に、方向入力手段が無操作状態においていずれの方向も入力しないものである場合、無操作状態が間に入ることなく連続入力されることを判定してもよいが、無操作状態は間に入ることを許容してもよい。
【００１１】
または、シーケンス入力判定手段は、現在の全選択項目に対応する全方向が、方向入力手段により順番に入力された後、さらに、いずれかの方向が入力されたことを判定してもよい。典型的には、全方向が順番に入力された後、最初に入力した方向がさらに入力されたことを判定してもよく、典型的には、前述の例において、方向ｄ１の入力→方向ｄ２の入力→方向ｄ３の入力→…→方向ｄｎ−１の入力→方向ｄｎ→方向ｄ１の入力となったことを判定してもよい。
【００１２】
なお、例えば、方向ｄ１の入力→方向ｄ２の入力→方向ｄ３の入力→…→方向ｄｎ−１の入力→方向ｄｎを判定する場合、途中の入力を或る程度飛ばすことを許容してもよい。すなわち、方向ｄ１の入力→方向ｄ３の入力→…→方向ｄｎ−１の入力→方向ｄｎとなったときに肯定判定をするようにしてもよい。
【００１３】
また、現在の選択項目の全てを他の項目に入れ替える場合、選択項目数をｎ個として、ｎ個の選択項目を１つのグループにして、当該グループ単位で所定順番に配列してプログラムに記憶しておいて、切替手段は、一連の入力操作があったときに、現在のグループの次に配列されたグループを選択し、または、現在のグループの前に配列されたグループを選択するようにしてもよい。
【００１４】
また、項目データを所定順番で配列してプログラムに記憶する場合、当該配列の順番に基づいて、項目データと方向とを対応付けるのが好ましい。典型的には、項目データが当該配列の順番に、右回り、または、左回りになるように、項目データと方向とを対応付けてもよい。
【００１５】
したがって、ユーザは項目の全てまたは一部が置き換えられた新たな選択項目から、項目の選択を行うことができる。
【００１６】
第１の発明によれば、所定の一連の方向を入力することによって選択項目を切替えることができるので、切替え操作を容易に行うことができ、操作性がよい。
【００１７】
第２の発明は、方向入力手段は傾倒可能なスティックを含み、当該スティックの傾倒方向に応じて方向データを入力し、シーケンス入力判定手段は、方向データの推移に基づいてスティックが１回転したか否かを判定する、第１の発明に従属する情報選択装置である。
【００１８】
第２の発明では、傾倒可能なスティック（９４ａ）による方向入力に応じて項目が選択される。そして、シーケンス入力判定手段はスティックが１回転したか否かを判定する。したがって、ユーザは、スティックを１回転させる簡単な操作によって、選択項目を切替えることができる。この場合、シーケンス入力判定手段は、最初の入力方向に関わらず、１回転したことを判定してもよい。例えば、方向ｄ１、ｄ２、ｄ３、・・・、ｄｎ−１、ｄｎがこの順番に右回りまたは左回りに円形に配置されるときに、方向ｄ１→方向ｄ２→方向ｄ３→・・・→方向ｄｎ−１→方向ｄｎ（→方向ｄ１）となる一連の入力操作だけでなく、方向ｄ２→方向ｄ３→・・・→方向ｄｎ−１→方向ｄｎ→方向ｄ１（→方向ｄ２）となる一連の入力操作や、方向ｄ３→・・・→方向ｄｎ−１→方向ｄｎ→方向ｄ１→方向ｄ２（→方向ｄ３）となるような一例の入力操作などがあったときに、切替手段が項目を切り替えるようにしてもよい。
【００１９】
第３の発明は、操作手段は押下可能なキーを含み、当該キーの操作に応じたキー情報を操作データとして入力する、第１の発明に従属する情報選択装置である。
【００２０】
第３の発明では、所定のキー（８２ｄ、９４ｂ）の操作データが入力されたときに、方向データに対応する項目が選択される。ユーザは、キー操作によって簡単に項目の選択を決定または確定することができる。
【００２１】
なお、方向入力手段と当該押下可能なキーはともに片手で把持可能なハウジングに配設されるようにしてもよい。このようにすれば、ユーザは片手で入力が可能である。さらには、ユーザが当該ハウジングを片手で把持したときの親指の位置に方向入力手段が配設され、かつ、ユーザが当該ハウジングを片手で把持したときの人差し指または中指の位置に当該キーが配設されるようにすると操作性がよい。
【００２２】
第４の発明は、選択項目設定手段および切替手段によって設定された選択項目を表示装置に表示する表示制御手段をさらに備える、第１の発明に従属する情報選択装置である。
【００２３】
第４の発明では、表示制御手段（４６、５２、Ｓ３）は、設定された選択項目および切替えられた選択項目を表示装置（３０）に表示する。表示された選択項目を見ながら選択を行えるので、操作性が良い。
【００２４】
第５の発明は、項目は文字または文字列であって、選択手段によって出力された文字または文字列を入力として処理する文字入力処理手段をさらに備える、第１の発明に従属する情報選択装置である。
【００２５】
第５の発明では、項目として文字または文字列が適用される。文字入力処理手段（４６、Ｓ４１、Ｓ４３）は、選択手段によって出力された文字または文字列を入力として処理する。したがって、文字入力における文字選択の操作性を向上できる。
【００２６】
第６の発明は、方向の入力操作が可能であって当該入力操作に応じた方向を示す方向データを入力する方向入力手段、所定の操作に応じた操作データを入力する操作手段、および複数の項目を示す項目データを記憶する記憶手段を備え、複数の項目から任意の項目をユーザに選択させる情報選択装置のコンピュータにおいて実行される情報選択プログラムである。情報選択プログラムは、選択項目設定ステップ、選択ステップ、シーケンス入力判定ステップ、および切替ステップをコンピュータに実行させる。選択項目設定ステップは、項目データのうち所定数の項目を所定の方向にそれぞれ対応付けられた選択項目として設定する。選択ステップは、方向入力手段からの方向データに対応する項目を選択項目から選択し、所定の操作データが入力されたとき、当該項目を出力する。シーケンス入力判定ステップは、方向データの推移に基づいて所定の一連の方向入力操作が行われたか否かを判定する。切替ステップは、シーケンス入力判定ステップによって所定の一連の方向入力操作が行われたことが判定されたとき、選択項目のうち少なくとも１つの項目を項目データの他の項目に切替える。
【００２７】
第６の発明は、第１の発明の情報選択装置に対応する情報選択プログラムであり、第１の発明と同様な効果を奏する。
【００２８】
第７の発明は、複数の項目からユーザに選択された項目に応じたゲーム処理を行うゲーム装置である。ゲーム装置は、第１の操作ユニット、第２の操作ユニット、取得手段、記憶手段、選択項目設定手段、選択手段、シーケンス入力判定手段、切替手段、およびゲーム処理手段を備える。第１の操作ユニットは、所定の操作に応じた第１の操作データを入力する。第２の操作ユニットは、方向の入力操作が可能であって、当該入力操作に応じた方向を示す方向データを入力する方向入力手段を少なくとも含む。取得手段は、第１の操作ユニットおよび第２の操作ユニットからの第１の操作データおよび方向データを取得する。記憶手段は、複数の項目を示す項目データを記憶する。選択項目設定手段は、項目データのうち所定数の項目を所定の方向にそれぞれ対応付けられた選択項目として設定する。選択手段は、方向入力手段からの方向データに対応する項目を選択項目から選択する。シーケンス入力判定手段は、方向データの推移に基づいて所定の一連の方向入力操作が行われたか否かを判定する。切替手段は、シーケンス入力判定手段によって所定の一連の方向入力操作が行われたことが判定されたとき、選択項目のうち少なくとも１つの項目を項目データの他の項目に切替える。ゲーム処理手段は、選択手段によって選択された項目と第１の操作データとに基づいてゲーム処理を行う。
【００２９】
第７の発明では、ゲーム装置（１０、１２）は、上述の第１の発明と同様に複数の項目から任意の項目をユーザに選択させる。そして、このゲーム装置はユーザに選択された項目に応じたゲーム処理を実行する。複数の項目を示す項目データは記憶手段（２２、５０、２２０）に記憶される。項目は、たとえば文字、ゲームアイテム、メニュー項目などであってよい。ゲーム装置は、第１の操作ユニット（３４）および第２の操作ユニット（３６）を備えている。項目を選択するための方向入力手段（９４ａ）は第２の操作ユニットに設けられており、方向の入力操作に応じた方向を示す方向データを入力する。また、第１の操作ユニットが所定の操作に応じた第１の操作データを入力する。この第１の操作データは、ゲーム処理を制御するために使用され得る。選択項目設定手段（４６、Ｓ１、Ｓ１０１）は、所定数の項目を所定の方向のそれぞれに対応付けられた選択項目として設定する。したがって、ユーザは第２の操作ユニットを用いて選択項目のうち所望の項目に対応する方向を入力することによって当該項目を選択できる。選択手段（４６、Ｓ９、Ｓ１７、Ｓ１９、Ｓ３７、Ｓ３９、Ｓ１３９）は、方向データに対応する項目を選択項目から選択する。このような項目を選択するための方向入力手段を用いて、選択項目の切り替えが行われる。すなわち、シーケンス入力判定手段（４６、Ｓ２３）は、方向データの推移に基づいて所定の一連の方向入力操作が行われたか否かを判定する。切替手段（４６、Ｓ２９、Ｓ３１、Ｓ１２９、Ｓ１３１）は、所定の一連の方向入力操作が行われたと判定されたとき、選択項目のうち少なくとも１つの項目を項目データの他の項目に切替える。したがって、ユーザは項目の全てまたは一部が置き換えられた新たな選択項目から、項目の選択を行うことができる。そして、ゲーム処理手段（４６、Ｓ１６１）は、選択された項目と第１の操作データとに基づいてゲーム処理を行う。
【００３０】
第７の発明によれば、第２の操作ユニットの方向入力手段を用いて所定の一連の方向を入力することによって選択項目を切替えることができるので、切替え操作を容易に行うことができ、操作性がよい。また、第２の操作ユニットの方向入力手段の方向入力によって項目の切り替えや選択を行い、第１の操作ユニットの操作と選択された項目とに基づいてゲーム処理を実行するので、ユーザは、一方の操作ユニットで容易に項目を選択することができるとともに、他方の操作ユニットで当該選択された項目に応じたゲーム処理に対する操作を容易に行うことができる。
【００３１】
第８の発明は、第１の操作ユニットは自身の動きを検出する動き検出手段を含み、第１の操作データは、動き検出手段によって検出された動きデータを含み、ゲーム処理手段は、選択手段によって選択された項目と動きデータとに基づいてゲーム処理を行う、第７の発明に従属するゲーム装置である。
【００３２】
第８の発明では、第１の操作ユニットには動き検出手段（８６、８８）が設けられており、第１の操作データとして動きデータが入力される。ゲーム処理手段は、選択された項目と動きデータとに基づいてゲーム処理を行う。したがって、第２の操作ユニットの方向入力によって項目の切替えや選択を容易に行うことができるとともに、第１の操作ユニットを適宜に動かすことによってゲーム処理に対する操作を容易に行うことができる。
【００３３】
第９の発明は、第１の操作ユニットは、動き検出手段として加速度センサを備え、ゲーム処理手段は、選択手段によって選択された項目と加速度センサによって取得された加速度データとに基づいて、ゲーム処理を行う、第８の発明に従属するゲーム装置である。
【００３４】
第９の発明では、第１の操作ユニットには加速度センサ（８６）が設けられており、第１の操作ユニットの動きが加速度によって取得される。ゲーム処理手段は、選択された項目と加速度データとに基づいてゲーム処理を行う。したがって、第２の操作ユニットの方向入力によって項目の切替えや選択を容易に行うことができるとともに、第１の操作ユニットの動きによってゲーム処理に対する操作を容易に行うことができる。
【００３５】
第１０の発明は、第１の操作ユニットは、動き検出手段として撮像装置を備え、ゲーム処理手段は、選択手段によって選択された項目と撮像装置によって取得された撮像対象の位置を示す撮像対象データとに基づいて、ゲーム処理を行う、第８の発明に従属するゲーム装置である。
【００３６】
第１０の発明では、第１の操作ユニットには撮像装置（８８）が設けられる。撮像装置は、撮像対象（４４ｍ、４４ｎ）を撮像し、当該撮像対象の位置を示す撮像対象データを動きデータとして入力する。つまり、第１の操作ユニットの動きが撮像対象の位置によって取得される。ゲーム処理手段は、選択された項目と撮像対象データとに基づいて、ゲーム処理を行う。したがって、第２の操作ユニットの方向入力によって項目の切り替えや選択を容易に行うことができるとともに、第１の操作ユニットの動きによってゲーム処理に対する操作を容易に行うことができる。
【００３７】
第１１の発明は、所定の操作に応じた第１の操作データを入力する第１の操作ユニット、方向の入力操作が可能であって当該入力操作に応じた方向を示す方向データを入力する方向入力手段を少なくとも含む第２の操作ユニット、および複数の項目を示す項目データを記憶する記憶手段を備え、複数の項目からユーザに選択された項目に応じたゲーム処理を行うゲーム装置のコンピュータにおいて実行されるゲームプログラムである。ゲームプログラムは、取得ステップ、選択項目設定ステップ、選択ステップ、シーケンス入力判定ステップ、切替ステップ、およびゲーム処理ステップをコンピュータに実行させる。取得ステップは、第１の操作ユニットおよび第２の操作ユニットからの第１の操作データおよび方向データを取得する。選択項目設定ステップは、項目データのうち所定数の項目を所定の方向にそれぞれ対応付けられた選択項目として設定する。選択ステップは、方向入力手段からの方向データに対応する項目を選択項目から選択する。シーケンス入力判定ステップは、方向データの推移に基づいて所定の一連の方向入力操作が行われたか否かを判定する。切替ステップは、シーケンス入力判定ステップによって所定の一連の方向入力操作が行われたことが判定されたとき、選択項目のうち少なくとも１つの項目を項目データの他の項目に切替える。ゲーム処理ステップは、選択ステップによって選択された項目と第１の操作データとに基づいてゲーム処理を行う。
【００３８】
第１１の発明は、第７の発明のゲーム装置に対応するゲームプログラムであり、第７の発明と同様な効果を奏する。
【発明の効果】
【００３９】
この発明によれば、所定の一連の方向入力操作に応じて選択項目が切替えられるので、方向入力による項目選択において、選択操作を容易に行うことができる。
【００４０】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００４１】
図１を参照して、この発明の一実施例である情報選択装置１０はゲームシステムの形態で実現される。なお、情報選択装置１０は、ゲームシステムに限られず、パーソナルコンピュータ、携帯電話機、携帯端末などの形態で実現されてもよい。
【００４２】
情報選択装置すなわちゲームシステム１０は、ゲーム装置１２およびコントローラ１４を含む。ゲーム装置１２は据置型ゲーム装置である。コントローラ１４は、ユーザないしプレイヤの入力装置ないし操作装置である。ゲーム装置１２とコントローラ１４とは無線によって接続される。無線通信は、たとえばＢｌｕｅｔｏｏｔｈ（登録商標）規格に従って実行されるが、無線ＬＡＮなど他の規格に従って実行されてもよい。
【００４３】
ゲーム装置１２は、略直方体のハウジング１６を含み、ハウジング１６の前面にはディスクスロット１８およびメモリカードスロットカバー２０が設けられる。ディスクスロット１８から、ゲームプログラムおよびデータを記憶した情報記憶媒体の一例である光ディスク２２が挿入されて、ハウジング１６内のディスクドライブ２４（図２）に装着される。メモリカードスロットカバー２０の内側にはメモリカードスロットが設けられており、外部メモリカード２６（図２）が挿入される。メモリカード２６は、光ディスク２２から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム１０を利用してプレイされたゲームのゲームデータ（結果データまたは途中データ）を保存（セーブ）しておいたりするために利用される。また、上記ゲームデータの保存は、外部メモリカード２６に代えて、たとえばフラッシュメモリ等の内部メモリに対して行うようにしてもよい。
【００４４】
ゲーム装置１２のハウジング１６の後面には、ＡＶケーブルコネクタ（図示せず）が設けられ、当該コネクタを用いて、ゲーム装置１２はＡＶケーブル２８を介してモニタ（ディスプレイ）３０に接続される。このモニタ３０は典型的にはカラーテレビジョン受像機であり、ＡＶケーブル２８は、ゲーム装置１２からの映像信号をカラーテレビのビデオ入力端子に入力し、音声信号を音声入力端子に入力する。したがって、カラーテレビ（モニタ）３０の画面上にたとえば３Ｄビデオゲームのゲーム画像が表示され、内蔵されるスピーカ３２からゲーム音楽や効果音などのステレオゲーム音声が出力される。
【００４５】
ゲーム装置１２の電源は、一般的なＡＣアダプタ（図示せず）によって与えられる。ＡＣアダプタは家庭用の標準的な壁ソケットに差し込まれ、家庭用電源を、ゲーム装置１２を駆動するのに適した低いＤＣ電圧信号に変換する。他の実施例では、電源としてバッテリが用いられてもよい。
【００４６】
コントローラ１４は、詳細は後述されるが、第１の操作ユニットおよび第２の操作ユニットとして、それぞれが片手で把持可能な第１コントローラ３４および第２コントローラ３６を含む。第２コントローラ３６の後端から延びるケーブル３８の先端にはコネクタ４０が設けられており、当該コネクタ４０は、第１コントローラ３４の後端面に設けられるコネクタ４２（図３、図５）に接続される。第２コントローラ３６において取得される入力データは、ケーブル３８を介して第１コントローラ３４に与えられる。第１コントローラ３４は、第１コントローラ３４自身の入力データと第２コントローラ３６の入力データとを含むコントローラデータをゲーム装置１２に送信する。
【００４７】
このゲームシステム１０において、ゲーム（または他のアプリケーション）をプレイするために、ユーザはまずゲーム装置１２の電源をオンし、次いで、ユーザはビデオゲーム（もしくは実行したいと思う他のアプリケーション）を記憶している適宜の光ディスク２２を選択し、その光ディスク２２をゲーム装置１２のディスクスロット１８からディスクドライブ２４にローディングする。これに応じて、ゲーム装置１２がその光ディスク２２に記憶されているソフトウェアに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザはゲーム装置１２に入力を与えるためにコントローラ１４を操作する。
【００４８】
また、モニタ３０の周辺（この実施例では、表示面の上側）には、センサバー４４が設けられ、このセンサバー４４には、２つのＬＥＤモジュール（以下、「マーカ（目印）」という。）４４ｍ，４４ｎが所定の距離を隔てて設けられる。このセンサバー４４を用いることで、後述されるように、コントローラ１４（第１コントローラ３４）は画面上の位置を指し示すポインティングデバイスとしても機能する。マーカ４４ｍ，４４ｎは、赤外ＬＥＤであり、それぞれモニタ３０の前方に向けて赤外光を出力する。センサバー４４から延びるケーブル４４ａはゲーム装置１２の後面のコネクタ（図示せず）に接続され、マーカ４４ｍ，４４ｎにはゲーム装置１２から電源が与えられる。
【００４９】
図２はゲームシステム１０の電気的な構成を示すブロック図である。ゲーム装置１２はＣＰＵ４６を含む。このＣＰＵ４６は、ゲームプロセッサとして機能し、ゲーム装置１２を全体的に制御するコンピュータである。ＣＰＵ４６には、バスを介してメモリコントローラ４８が接続される。メモリコントローラ４８は主として、ＣＰＵ４６の制御の下で、バスを介して接続されるメインメモリ５０の書込みや読出しを制御する。このメモリコントローラ４８にはＧＰＵ(Graphics Processing Unit) ５２が接続される。
【００５０】
ＧＰＵ５２は、描画手段の一部を形成し、たとえばシングルチップＡＳＩＣで構成され、メモリコントローラ４８を介してＣＰＵ４６からのグラフィクスコマンド(作画命令)を受け、そのコマンドに従って、ジオメトリユニット５４およびレンダリングユニット５６によって３Ｄのゲーム画像を生成する。つまり、ジオメトリユニット５４は、３次元座標系の各種オブジェクトの回転，移動，変形等の座標演算処理を行う。オブジェクトは、複数のポリゴン（ポリゴンとは少なくとも３つの頂点座標によって定義される多角形平面をいう。）で構成されている。レンダリングユニット５６は、各種オブジェクトの各ポリゴンにテクスチャ（模様画像）を貼り付ける処理などの画像生成処理を行う。したがって、ＧＰＵ５２によって、ゲーム画面上に表示すべき３Ｄの画像データが生成され、その画像データがフレームバッファ５８内に記憶される。
【００５１】
なお、ＧＰＵ５２が作画コマンドを実行するにあたって必要なデータ（プリミティブまたはポリゴンやテクスチャ等）は、ＧＰＵ５２がメモリコントローラ４８を介してメインメモリ５０から入手する。
【００５２】
フレームバッファ５８は、たとえばラスタスキャンモニタ３０の１フレーム分の画像データを描画（蓄積）しておくためのメモリであり、ＧＰＵ５２によって１フレーム毎に書き換えられる。具体的には、フレームバッファ５８は、１画素（ピクセル）毎に、画像の色情報を順序立てて記憶している。ここで、色情報は、Ｒ，Ｇ，Ｂ，Ａについてのデータであり、たとえば、８ビットのＲ（赤）データ、８ビットのＧ（緑）データ、８ビットのＢ（青）データおよび８ビットのＡ（アルファ）データである。なお、Ａデータは、マスク（マット画像）についてのデータである。後述のビデオＩ／Ｆ６８がメモリコントローラ４８を介してフレームバッファ５８のデータを読み出すことによって、モニタ３０の画面上にゲーム画像が表示される。
【００５３】
また、Ｚバッファ６０は、（フレームバッファ５８に対応する画素数×１画素当たりの奥行きデータのビット数）に相当する記憶容量を有し、フレームバッファ５８の各記憶位置に対応するドットの奥行き情報または奥行きデータ（Ｚ値）を記憶する。
【００５４】
なお、フレームバッファ５８およびＺバッファ６０は、ともにメインメモリ５０の一部を用いて構成されてもよく、また、これらはＧＰＵ５２の内部に設けられてもよい。
【００５５】
メモリコントローラ４８はまた、ＤＳＰ(Digital Signal Processor)６２を介して、オーディオ用のＲＡＭ（以下、「ＡＲＡＭ」という。）６４に接続される。したがって、メモリコントローラ４８は、メインメモリ５０だけでなく、サブメモリとしてのＡＲＡＭ６４の書込みおよび／または読出しを制御する。
【００５６】
ＤＳＰ６２は、サウンドプロセッサとして働き、メインメモリ５０に記憶されたサウンドデータを用いたり、ＡＲＡＭ６４に書き込まれた音波形（音色）データを用いたりして、ゲームに必要な音、音声或いは音楽に対応するオーディオデータを生成する。
【００５７】
メモリコントローラ４８は、バスを介してさらに各インタフェース（Ｉ／Ｆ）６６，６８，７０，７２および７４に接続される。コントローラＩ／Ｆ６６は、ゲーム装置１２にＢｌｕｅｔｏｏｔｈ通信ユニット７６を介して接続されるコントローラ１４のためのインタフェースである。具体的に言うと、Ｂｌｕｅｔｏｏｔｈ通信ユニット７６は、本体側通信装置であり、コントローラ１４側通信装置である無線モジュール７８（図５）から送信されるコントローラデータ（入力データ）を受信する。コントローラＩ／Ｆ６６は、Ｂｌｕｅｔｏｏｔｈ通信ユニット７６によって受信されたコントローラデータを、メモリコントローラ４８を通してＣＰＵ４６に与える。ビデオＩ／Ｆ６８は、フレームバッファ５８にアクセスし、ＧＰＵ５２によって生成された画像データを読み出して、画像信号または画像データ（ディジタルＲＧＢＡピクセル値）をＡＶケーブル２８（図１）を介してモニタ３０に与える。
【００５８】
外部メモリＩ／Ｆ７０は、ゲーム装置１２の前面から挿入される外部メモリカード２６をメモリコントローラ４８に連係させる。それによって、メモリコントローラ４８を介して、ＣＰＵ４６がこのメモリカード２６にデータを書き込み、またはメモリカード２６からデータを読み出すことができる。オーディオＩ／Ｆ７２は、メモリコントローラ４８を通してＤＳＰ６２から与えられるオーディオデータまたは光ディスク２２から読み出されたオーディオストリームを受け、それらに応じたオーディオ信号（音声信号）をモニタ３０のスピーカ３２に与える。
【００５９】
ディスクＩ／Ｆ７４は、ディスクドライブ２４をメモリコントローラ４８に接続し、したがって、ＣＰＵ４６がディスクドライブ２４を制御する。このディスクドライブ２４によって光ディスク２２から読み出されたプログラムおよびデータが、ＣＰＵ４６の制御の下でメインメモリ５０に書き込まれる。ＣＰＵ４６は、このプログラムに従ってゲームまたはアプリケーションのための処理を実行する。
【００６０】
図３には第１コントローラ３４の外観の一例が示される。図３（Ａ）は、第１コントローラ３４を上面後方から見た斜視図であり、図３（Ｂ）は、第１コントローラ３４を下面前方から見た斜視図である。
【００６１】
第１コントローラ３４は、たとえばプラスチック成型によって形成されたハウジング８０を有している。ハウジング８０は、その前後方向（図３に示すＺ軸方向）を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。一例として、ハウジング８０は人間の掌とほぼ同じ長さまたは幅を持つ大きさをしている。プレイヤは、第１コントローラ３４を用いて、それに設けられたボタンを押下することと、第１コントローラ３４自体を動かしてその位置や向きを変えることとによって、ゲーム操作を行うことができる。
【００６２】
ハウジング８０には、複数の操作ボタン（操作キー）が設けられる。すなわち、ハウジング８０の上面には、十字キー８２ａ、１ボタン８２ｂ、２ボタン８２ｃ、Ａボタン８２ｄ、−ボタン８２ｅ、メニューボタン８２ｆ、および＋ボタン８２ｇが設けられる。一方、ハウジング８０の下面には凹部が形成されており、当該凹部の後方側傾斜面にはＢボタン８２ｈが設けられる。これら各ボタン（スイッチ）８２ａ−８２ｈには、ゲーム装置１２が実行するゲームプログラムに応じてそれぞれ適宜な機能が割り当てられる。また、ハウジング８０の上面には、遠隔からゲーム装置１２本体の電源をオン／オフするための電源スイッチ８２ｉが設けられる。第１コントローラ３４に設けられる各ボタン（スイッチ）は、包括的に参照符号８２を用いて示されることもある。
【００６３】
また、ハウジング８０の後面には、上述のコネクタ４２が設けられている。コネクタ４２は、たとえば３２ピンのエッジコネクタであり、第１コントローラ３４に他の機器を接続するために利用される。この実施例では、コネクタ４２には第２コントローラ３６のコネクタ４０が接続される。また、ハウジング８０上面の後端側には複数のＬＥＤ８４が設けられ、この複数のＬＥＤ８４によって当該コントローラ１４のコントローラ番号（コントローラの識別番号）が示される。ゲーム装置１２には、たとえば最大４つのコントローラ１４が接続可能であり、ゲーム装置１２に複数のコントローラ１４が接続される場合には、各コントローラ１４には、たとえば接続順にコントローラ番号が付与される。各ＬＥＤ８４はコントローラ番号と対応付けられており、当該コントローラ番号に対応するＬＥＤ８４が点灯される。
【００６４】
また、第１コントローラ３４のハウジング８０内には加速度センサ８６（図５）が設けられている。加速度センサ８６としては、典型的には静電容量式の加速度センサが用いられ得る。加速度センサ８６は、当該加速度センサの検出部に加わっている加速度のうち、センシング軸ごとの直線成分の加速度や重力加速度を検出する。具体的には、この実施例では、３軸加速度センサが適用され、第１コントローラ３４の上下方向（図３に示すＹ軸方向）、左右方向（図３に示すＸ軸方向）および前後方向（図３に示すＺ軸方向）の３軸方向のそれぞれで加速度を検知する。
【００６５】
なお、加速度センサ８６としては、ハウジング８０の形状または第１コントローラ３４の持たせ方の限定等に応じて、上下方向、左右方向および前後方向のうちいずれか２方向の加速度を検出する２軸加速度センサが用いられてもよい。場合によっては１軸加速度センサが用いられてもよい。
【００６６】
さらに、コントローラ２２は、撮像情報演算部８８（図５参照）を有している。図３（Ｂ）に示すように、ハウジング８０の先端面には撮像情報演算部８８の光入射口９０が設けられ、光入射口９０からはセンサバー４４のマーカ４４ｍ、４４ｎの発する赤外線が取り込まれる。
【００６７】
図４には第２コントローラ３６の外観の一例が示される。図４（Ａ）は、第２コントローラ３６を上面後方から見た斜視図であり、図４（Ｂ）は、第２コントローラ３６を下面前方から見た斜視図である。なお、図４では、第２コントローラ３６のケーブル３８は省略されている。
【００６８】
第２コントローラ３６は、たとえばプラスチック成型によって形成されたハウジング９２を有している。ハウジング９２は、平面視では、前後方向（図４のＺ軸方向）に略細長い楕円形状を有し、後端側の左右方向（図４のＸ軸方向）の幅が先端側のそれよりも狭くされている。また、ハウジング９２は、側面視では、全体として湾曲した形状を有しており、先端側の水平部分から後端側に向かって下がるように湾曲している。ハウジング９２は、第１コントローラ３４と同様に、全体として大人や子供の片手で把持可能な大きさであるが、長手方向（Ｚ軸方向）の長さは、第１コントローラ３４のハウジング８０よりもやや短くされている。この第２コントローラ３６でも、プレイヤは、ボタンやスティックを操作することと、コントローラ自体を動かしてその位置や向きを変えることとによって、ゲーム操作を行うことができる。
【００６９】
ハウジング９２の上面の先端側には、アナログジョイスティック９４ａが設けられる。ハウジング９２の先端には、後方にやや傾斜する先端面が設けられており、この先端面には、上下方向（図４に示すＹ軸方向）に並べて、Ｃボタン９４ｂおよびＺボタン９４ｃが設けられる。アナログジョイスティック９４ａおよび各ボタン９４ｂ，９４ｃには、ゲーム装置１２が実行するゲームプログラムに応じてそれぞれ適宜な機能が割り当てられる。第２コントローラ３６に設けられるアナログジョイスティック９４ａおよび各ボタン９４ｂ，９４ｃは、包括的に参照符号９４を用いて示されることもある。
【００７０】
また、第２コントローラ３６のハウジング９２内には加速度センサ９６（図５）が設けられている。この加速度センサ９６としては、第１コントローラ３４の加速度センサ８６と同様の加速度センサが適用される。具体的には、この実施例では３軸加速度センサが適用され、第２コントローラ３６の上下方向（図４に示すＹ軸方向）、左右方向（図４に示すＸ軸方向）および前後方向（図４に示すＺ軸方向）の３軸方向のそれぞれで加速度を検知する。
【００７１】
なお、図３に示した第１コントローラ３４および図４に示した第２コントローラ３６の形状や、ボタン（スイッチまたはスティック等）の形状、数および設置位置等は一例であり、他の形状、数および設置位置等に適宜変更され得る。
【００７２】
また、コントローラ１４の電源は、第１コントローラ３４内に取替可能に収容されるバッテリ（図示せず）によって与えられる。第２コントローラ３６には、コネクタ４２、コネクタ４０およびケーブル３８を介してこの電源が供給される。
【００７３】
図５には、第１コントローラ３４と第２コントローラ３６とが接続されたときのコントローラ１４の電気的構成の一例が示される。
【００７４】
第１コントローラ３４は、その内部に通信部９８を備え、通信部９８には、操作部８２、加速度センサ８６、撮像情報演算部８８およびコネクタ４２が接続される。操作部８２は、上述の操作ボタンないし操作スイッチ８２ａ‐８２ｉを示す。操作部８２が操作されると、その操作信号（キー情報）が通信部９８に与えられる。
【００７５】
加速度センサ８６が検出した加速度を示すデータは、通信部９８へ出力される。加速度センサ８６は、たとえば最大２００フレーム／秒程度のサンプリング周期を有する。
【００７６】
撮像情報演算部８８が取得したデータもまた通信部９８に出力される。撮像情報演算部８８は、赤外線フィルタ１００、レンズ１０２、撮像素子１０４および画像処理回路１０６によって構成される。赤外線フィルタ１００は、第１コントローラ３４の前方の光入射口９０から入射する光から赤外線のみを通過させる。上述したように、モニタ３０の表示面近傍（周辺）に配置されるセンサバー４４のマーカ４４ｍおよび４４ｎは、モニタ３０の前方に向かって赤外光を出力する赤外ＬＥＤである。したがって、赤外線フィルタ１００を設けることによってマーカ４４ｍおよび４４ｎの画像をより正確に撮像することができる。レンズ１０２は、赤外線フィルタ１００を透過した赤外線を集光して撮像素子１０４へ出射する。撮像素子１０４は、たとえばＣＭＯＳセンサあるいはＣＣＤのような固体撮像素子であり、レンズ１０２によって集光された赤外線を撮像する。したがって、撮像素子１０４は、赤外線フィルタ１００を通過した赤外線だけを撮像して画像データを生成する。以下では、撮像素子１０４によって撮像された画像を撮像画像と呼ぶ。撮像素子１０４によって生成された画像データは、画像処理回路１０６で処理される。画像処理回路１０６は、撮像画像内における撮像対象（マーカ４４ｍおよび４４ｎ）の位置を算出し、所定時間（たとえば１フレーム）毎に、当該位置を示す各座標値を含むマーカ座標データを通信部９８に出力する。なお、画像処理回路１０６における処理については後述する。
【００７７】
コネクタ４２には、第２コントローラ３６から延びるケーブル３８のコネクタ４０が接続される。コネクタ４０には、第２コントローラ３６の操作部９４および加速度センサ９６が接続される。操作部９４は、上述のアナログジョイスティック９４ａおよび操作ボタン９４ｂ、９４ｃを示す。操作部９４が操作されると、その操作信号がケーブル３８、コネクタ４０およびコネクタ４２等を介して通信部９８に与えられる。また、加速度センサ９６も、加速度センサ８６と同様のサンプリング周期を有しており、検出された加速度を示すデータを通信部９８に与える。
【００７８】
通信部９８は、マイクロコンピュータ（マイコン）１０８、メモリ１１０、無線モジュール７８およびアンテナ１１２を含む。マイコン１０８は、処理の際にメモリ１１０を記憶領域（作業領域やバッファ領域）として用いながら、無線モジュール７８を制御して、取得したデータをゲーム装置１２に送信したりゲーム装置１２からのデータを受信したりする。
【００７９】
第１コントローラ３４の操作部８２、加速度センサ８６および撮像情報演算部８８ならびに第２コントローラ３６の操作部９４および加速度センサ９６からマイコン１０８へ出力されたデータは、一時的にメモリ１１０に格納される。通信部９８からゲーム装置１２のＢｌｕｅｔｏｏｔｈ通信ユニット７６への無線送信は所定の周期毎に行われる。なお、ゲームの処理は１／６０秒を単位として行われることが一般的であるので、第１コントローラ３４からの送信はそれと同等かそれより短い周期で行うことが必要となる。マイコン１０８は、ゲーム装置１２への送信タイミングが到来すると、メモリ１１０に格納されている操作部８２および９４の操作データ、加速度センサ８６および９６の加速度データならびに撮像情報演算部８８のマーカ座標データを含むデータを、コントローラデータとして無線モジュール７８へ出力する。無線モジュール７８は、Ｂｌｕｅｔｏｏｔｈのような近距離無線通信技術を用いて、所定周波数の搬送波をコントローラデータで変調し、その微弱電波信号をアンテナ１１２から放射する。つまり、コントローラデータは、無線モジュール７８で微弱電波信号に変調されて第１コントローラ３４から送信される。微弱電波信号はゲーム装置１２側のＢｌｕｅｔｏｏｔｈ通信ユニット７６で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置１２はコントローラデータを取得することができる。ゲーム装置１２のＣＰＵ４６は、コントローラ１４から取得したコントローラデータに基づいてゲーム処理を行う。
【００８０】
なお、加速度センサ８６および９６から出力される加速度の信号に基づいて、ゲーム装置１２のプロセッサ（例えばＣＰＵ４６）またはコントローラ１４のプロセッサ（例えばマイコン１０８）などのコンピュータが処理を行うことによって、コントローラ１４に関するさらなる情報を推測または算出（判定）することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、加速度センサ８６および９６を搭載する第１コントローラ３４および第２コントローラ３６が静的な状態であることを前提としてコンピュータ側で処理する場合（すなわち、加速度センサ８６および９６によって検出される加速度が重力加速度のみであるとして処理する場合）、第１コントローラ３４および第２コントローラ３６が現実に静的な状態であれば、検出された加速度に基づいて第１コントローラ３４および第２コントローラ３６の姿勢が重力方向に対して傾いているか否か又はどの程度傾いているかをそれぞれ知ることができる。具体的には、加速度センサ８６および９６の検出軸が鉛直下方向を向いている状態を基準としたとき、１Ｇ（重力加速度）がかかっているか否かだけで、第１コントローラ３４および第２コントローラ３６がそれぞれ傾いているか否かを知ることができるし、その大きさによってどの程度傾いているかも知ることができる。また、多軸加速度センサが適用される場合には、さらに各軸の加速度の信号に対して処理を施すことによって、第１コントローラ３４および第２コントローラ３６がそれぞれ重力方向に対してどの程度傾いているかをより詳細に知ることができる。この場合において、加速度センサ８６および９６からの出力に基づいて、コンピュータが第１コントローラ３４および第２コントローラ３６の傾き角度のデータを算出する処理を行ってもよいが、当該傾き角度のデータを算出する処理を行うことなく、加速度センサ８６および９６からの出力に基づいて、おおよその傾き具合を推定するような処理としてもよい。このように、加速度センサ８６および９６をコンピュータと組み合わせて用いることによって、第１コントローラ３４および第２コントローラ３６の傾き、姿勢または位置を判定することができる。
【００８１】
一方、加速度センサ８６および９６が動的な状態であることを前提とする場合には、重力加速度成分に加えて加速度センサ８６および９６の動きに応じた加速度を検出するので、重力加速度成分を所定の処理により除去すれば、動き方向などを知ることができる。具体的には、加速度センサ８６および９６を備える第１コントローラ３４および第２コントローラ３６がユーザの手で動的に加速されて動かされる場合に、加速度センサ８６および９６によって生成される加速度信号を上記コンピュータによって処理することによって、第１コントローラ３４および第２コントローラ３６のさまざまな動きおよび／または位置を算出することができる。なお、加速度センサ８６および９６が動的な状態であることを前提とする場合であっても、加速度センサ８６および９６の動きに応じた加速度を所定の処理により除去すれば、重力方向に対する傾きを知ることが可能である。他の実施例では、加速度センサ８６および９６は、信号をマイコン１０８に出力する前に内蔵の加速度検出手段から出力される加速度信号に対して所望の処理を行うための、組込み式の信号処理装置または他の種類の専用の処理装置を備えていてもよい。例えば、組込み式または専用の処理装置は、加速度センサ８６および９６が静的な加速度（例えば、重力加速度）を検出するためのものである場合、検知された加速度信号をそれに相当する傾斜角（あるいは、他の好ましいパラメータ）に変換するものであってもよい。
【００８２】
このゲームシステム１０では、ユーザがコントローラ１４を動かすことによってゲームに対する操作または入力を行うことができる。ゲームをプレイする際には、たとえば図６に示すように、ユーザは、その右手で第１コントローラ３４を持ち、その左手で第２コントローラ３６を持つ。上述のように、この実施例では、第１コントローラ３４には３軸方向の加速度を検出する加速度センサ８６が内蔵され、第２コントローラ３６にも同様の加速度センサ９６が内蔵されている。第１コントローラ３４および第２コントローラ３６がそれぞれユーザによって動かされると、加速度センサ８６および加速度センサ９６によって、それぞれのコントローラ自身の動きを示す加速度値が検出される。ゲーム装置１２では、当該検出された加速度値に応じてゲーム処理が実行され得る。
【００８３】
また、第１コントローラ３４には撮像情報演算部８８が設けられるので、ユーザは第１コントローラ３４をポインティングデバイスとして使用して操作を行うことができる。この場合、ユーザは、第１コントローラ３４の先端面（光入射口９０）がマーカ４４ｍおよび４４ｎの方を向く状態で第１コントローラ３４を把持する。ただし、図１から分かるように、マーカ４４ｍおよび４４ｎは、モニタ３０の画面の所定の１辺（上辺または下辺）の近傍に、当該所定の１辺に対して平行に配置されている。この状態で、ユーザは、第１コントローラ３４自体を動かして、第１コントローラ３４が指示する画面上の位置を変更したり、第１コントローラ３４と各マーカ４４ｍおよび４４ｎとの距離を変更したりすることによって、ゲーム操作を行うことができる。
【００８４】
図７は、マーカ４４ｍおよび４４ｎと第１コントローラ３４の視野角を説明するための図である。図７に示すように、マーカ４４ｍおよび４４ｎは、それぞれ、視野角αの範囲で赤外光を放射する。また、撮像情報演算部８８の撮像素子１０４は、第１コントローラ３４の視線方向（図３に示すＺ軸方向）を中心とした視野角βの範囲で入射する光を受光することができる。たとえば、マーカ４４ｍおよび４４ｎの視野角αは、共に３４°（半値角）であり、一方、撮像素子１０４の視野角βは４２°である。ユーザは、撮像素子１０４が２つのマーカ４４ｍおよび４４ｎからの赤外光を受光することが可能な位置および向きとなるように、第１コントローラ３４を把持する。具体的には、撮像素子１０４の視野角βの中に少なくとも一方のマーカ４４ｍまたは４４ｎが存在し、かつ、マーカ４４ｍおよび４４ｎの少なくとも一方の視野角αの中に第１コントローラ３４が存在する状態となるように、ユーザは第１コントローラ３４を把持する。この状態にあるとき、第１コントローラ３４は、マーカ４４ｍおよび４４ｎの少なくとも一方を検知することができる。ユーザは、この状態を満たす範囲で第１コントローラ３４の位置および向きを変化させることによってゲーム操作を行うことができる。なお、マーカ４４ｍおよび４４ｎのいずれか一方のみが検出される場合には、たとえば、直前の２つのマーカ４４ｍおよび４４ｎを検出したデータを利用して、検出されない他方のマーカの代わりに仮のマーカ座標を設定することによって、第１コントローラ３４の指示位置を算出することができる。
【００８５】
なお、第１コントローラ３４の位置および向きがこの範囲外となった場合、第１コントローラ３４の位置および向きに基づいたゲーム操作を行うことができなくなる。したがって、上記範囲は「操作可能範囲」と呼ばれる。
【００８６】
操作可能範囲内で第１コントローラ３４が把持される場合、撮像情報演算部８８によってマーカ４４ｍおよび４４ｎの画像が撮像される。すなわち、撮像素子１０４によって得られる撮像画像には、撮像対象であるマーカ４４ｍおよび４４ｎの画像（対象画像）が含まれる。図８は、対象画像を含む撮像画像の一例を示す図である。対象画像４４ｍ’および４４ｎ’を含む撮像画像の画像データを用いて、画像処理回路１０６は、各マーカ４４ｍおよび４４ｎの撮像画像における位置を表す座標（マーカ座標）を算出する。
【００８７】
撮像画像の画像データにおいて対象画像４４ｍ’および４４ｎ’は高輝度部分として現れるため、画像処理回路１０６は、まず、この高輝度部分を対象画像の候補として検出する。次に、画像処理回路１０６は、検出された高輝度部分の大きさに基づいて、その高輝度部分が対象画像であるか否かを判定する。撮像画像には、２つの対象画像（マーカ画像）４４ｍ’および４４ｎ’だけではなく、窓からの太陽光や部屋の蛍光灯の光等のような他の画像が含まれていることがある。高輝度部分が対象画像であるか否かの判定処理は、マーカ４４ｍおよび４４ｎの画像４４ｍ’および４４ｎ’と、それ以外の画像とを区別し、対象画像を正確に検出するために実行される。撮像画像における対象画像４４ｍ’および４４ｎ’と他の画像との区別のために、撮像対象４４ｍおよび４４ｎは既知のものである必要があり、この実施例ではその大きさが予め決められるので、マーカ画像４４ｍ’および４４ｎ’の大きさを予測することができる。したがって、高輝度部分の大きさに基づいて、マーカ画像４４ｍ’および４４ｎ’の判定を行うことができる。具体的には、当該判定処理においては、検出された高輝度部分が、予め定められた所定範囲内の大きさであるか否かが判定される。そして、高輝度部分が所定範囲内の大きさである場合には、当該高輝度部分は対象画像を表すと判定される。逆に、高輝度部分が所定範囲内の大きさでない場合には、当該高輝度部分は対象画像以外の画像を表すと判定される。
【００８８】
さらに、上記の判定処理の結果、対象画像を表すと判定された高輝度部分について、画像処理回路１０６は当該高輝度部分の位置を算出する。具体的には、当該高輝度部分の重心位置を算出する。ここでは、当該重心位置の座標をマーカ座標と呼ぶ。また、重心位置は撮像素子１０４の解像度よりも詳細なスケールで算出することが可能である。ここでは、撮像素子１０４によって撮像された撮像画像の解像度が１２６×９６であるとし、重心位置は１０２４×７６８のスケールで算出されるものとする。つまり、マーカ座標は、（０，０）から（１０２４，７６８）までの整数値で表現される。
【００８９】
なお、図８に示すように、撮像画像における位置は、撮像画像の左上を原点Ｏとし、下向きをＹ軸正方向とし、右向きをＸ軸正方向とする座標系（撮像画像のＸＹ座標系）で表現されるものとする。
【００９０】
また、対象画像４４ｍ’および４４ｎ’が正しく検出される場合には、判定処理によって２つの高輝度部分が対象画像として判定されるので、２箇所のマーカ座標が算出される。画像処理回路１０６は、算出された２箇所のマーカ座標を示すデータ、つまり、撮像対象の位置を示す撮像対象データを通信部９８に出力する。出力された撮像対象データ（マーカ座標データ）は、上述したように、マイコン１０８によってコントローラデータに含められて、ゲーム装置１２に送信される。
【００９１】
ゲーム装置１２（ＣＰＵ４６）は、受信したコントローラデータからマーカ座標データを取得すると、このマーカ座標データに基づいて、モニタ３０の画面上における第１コントローラ３４の指示位置（指示座標）と、第１コントローラ３４からマーカ４４ｍおよび４４ｎまでの各距離とを算出することができる。たとえば、第１コントローラ３４がモニタ３０の画面の左端を指示するとき、対象画像４４ｍ’および４４ｎ’は撮像画像の右側に検出され、第１コントローラ３４が画面の下端を指示するとき、対象画像４４ｍ’および４４ｎ’は撮像画像の上側に検出され、つまり、画面上の第１コントローラ３４の指示位置と逆側に撮像画像上のマーカ座標が検出される。したがって、第１コントローラ３４の指示位置の座標をマーカ座標から算出する際には、座標系が図８の撮像画像の座標系から画面上の位置を表すための座標系に適宜に変換される。
【００９２】
なお、この実施例では、第１コントローラ３４で撮像データに所定の演算処理を行ってマーカ座標を検出して、そのマーカ座標データをゲーム装置１２に送信するようにしている。しかし、他の実施例では、撮像データをコントローラデータとして第１コントローラ３４からゲーム装置１２に送信し、ゲーム装置１２のＣＰＵ４６が撮像データに所定の演算処理を行って、マーカ座標および指示位置の座標を検出するようにしてもよい。
【００９３】
また、撮像画像における対象画像間の距離は、第１コントローラ３４と、マーカ４４ｍおよび４４ｎとの距離に応じて変化する。マーカ４４ｍおよび４４ｎ間の距離、撮像画像の幅、撮像素子１０４の視野角βが予め決まっているので、２つのマーカ座標間の距離を算出することによって、ゲーム装置１２は第１コントローラ３４とマーカ４４ｍおよび４４ｎとの間の現在の距離を算出することができる。
【００９４】
ゲームシステム１０では、複数の項目から任意の項目をユーザに選択させ、当該選択が決定された項目を処理する、情報選択処理が実行される。この実施例では、文字入力処理における文字選択にこの発明が適用された場合を説明する。
【００９５】
図９には、文字入力を行う際に表示される文字入力画面の一例が示される。画面上には、入力すべき文字を選択するためのリスト１２０と、入力された文字を表示する入力欄１２２が設けられている。リスト１２０では、選択項目としての複数の文字がリング状に配列される。より詳細には、複数の文字は円形状に配置されてもよいし、多角形状に配置されてもよい。または半円状などの円弧状に配置されてもよい。
【００９６】
この実施例では、１６個の文字の位置は八角形の頂点および辺の中点に相当する。図９では、アルファベットａ−ｐが時計回りで順に配置される。項目の選択は、アナログジョイスティック９４ａを用いた方向指示によって行われる。そのため、この実施例では、選択項目の配列形状は、アナログジョイスティック９４ａのガイド９２ａの形状によって決められている。図１０から分かるように、第２コントローラ３６のハウジング９２には八角形のガイド９２ａが形成されており、このガイド９２ａによってアナログジョイスティック９４ａの傾倒される方向および量などの動きが制限される。特に、アナログジョイスティック９４ａはガイド９２ａの角の位置で当該角を形成する２辺によって安定的に係止されるので、角に対応する方向の入力が行い易い。したがって、この実施例の選択項目はガイド形状に合わせて八角形の角と辺の中央とに対応する位置に配置されている。
【００９７】
また、リスト１２０では、アナログジョイスティック９４ａの操作方向に対応する項目上の位置に移動されるカーソル１２４が表示される。アナログジョイスティック９４ａがニュートラルポジションにある、つまり、操作されていないときには、カーソル１２４は表示されないようにしてよい。また、リスト１２０の中央には現在選択されている項目を示す表示欄１２６が設けられている。表示欄１２６はたとえば括弧と下線によって表現されており、図９では文字「ｂ」が選択中であるのでｂが表示されているが、項目が選択されていない場合には空白になる。なお、図９では分り易くするためにリスト１２０は画面の中央に大きく示されるが、リスト１２０のサイズや位置は任意である。他にメインとなる画像が存在する場合などには、当該メインとなる画像が画面中央に表示されて、リスト１２０が画面の端部に小さいサイズで表示されてよい。
【００９８】
アナログジョイスティック９４ａが操作されると、当該アナログジョイスティック９４ａによる入力方向に対応する項目が選択される。カーソル１２４はアナログジョイスティック９４ａの操作方向に対応する項目上に移動される。たとえば図１１に示すように、アナログジョイスティック９４ａが上方向に倒されたときには、カーソル１２４は上方向に対応する文字「ａ」の位置に移動されるとともに、リスト１２０の中央の表示欄１２６には、現在選択されている文字「ａ」が表示される。このように、この実施例では、アナログジョイスティック９４ａを用いた方向入力という簡単な操作によって、当該入力方向に対応する位置の項目を選択することができる。なお、アナログジョイスティック９４ａは、操作されていない（無操作状態）ときに項目の選択のためのいずれの方向の入力も行わないものとしてよい。この実施例では、無操作状態のとき、項目は選択されず、カーソル１２４が表示されないようにしている。
【００９９】
このような操作方向に応じた項目の選択においては、方向と項目との対応付けの数に限度がある。文字入力のように多くの項目が存在する場合、すべての項目を同時に選択の候補（選択項目）とするのは困難である。この実施例では、ガイド９２ａの八角形の頂点と辺上に対応させて項目を配置するので、一度に選択候補として採用できる項目数は１６個以下であり、アルファベット入力の場合、図９のように最初はａ−ｐだけが選択可能になる。したがって、複数の項目のうちの一部である所定数以下の項目のみを選択候補として採用し、その後、選択候補を変更していく必要がある。たとえば、複数の項目を幾つかのページに分けて選択候補に採用し、ページを切替えるといった構成が必要である。この実施例では、シーケンス入力と呼ぶ特定の連続的な方向入力操作があったときに、項目の切り替えが行われるようにし、これによって方向入力に応じた項目選択の操作性を向上させるようにした。なお、ガイド９２ａの形状は、八角形以外の多角形であってもよく、いずれの多角形形状であっても項目を多角形の頂点と辺上に対応させて配置することができる。ここで、角を複数有する形状であれば、厳密な多角形でなくともガイドの効果を奏するので、たとえば曲線を含むような形状であってもよい。また、辺上には対応させず、頂点のみに対応させるようにして、代わりにページ数を多くするようにしてもよい。
【０１００】
以降、方向の変化を伴う所定の一連の方向入力のことをシーケンス入力と呼ぶこととする。当該シーケンス入力は、通常の文字入力の操作において、誤って行われることの少ないパターンによる一連の方向入力が好ましい。図１２にシーケンス入力による項目切替えの一例が示される。この実施例のシーケンス入力の成立条件は、入力方向が同一方向回りに一回転することである。つまり、アナログジョイスティック９４ａが連続的に同一方向回りに一回転されたとき、シーケンス入力が成立したことが判定され、項目の切り替えが行われる。具体的には、アナログジョイスティック９４ａが右回りに一回転されると、ページ送りが実行される。図１２では、ａ−ｐの選択項目がｑ−ｚの選択項目に切替えられる。また、アナログジョイスティック９４ａが左回りに一回転されると、ページ戻しが実行される。図１２では、ｑ−ｚの選択項目がａ−ｐの選択項目に切替えられる。
【０１０１】
なお、図１２では、上方向の項目（ａまたはｑ）から開始される一回転が示されるが、回転の開始位置は任意である。つまり、最初の入力方向に関わらず、１回転したことが判定されてよい。例えば、選択項目に割り当てられる方向ｄ１、ｄ２、ｄ３、・・・、ｄｎ−１、ｄｎがこの順番に右回りまたは左回りに円形に配置されるときに、方向ｄ１→方向ｄ２→方向ｄ３→・・・→方向ｄｎ−１→方向ｄｎ（→方向ｄ１）となる一連の入力操作だけでなく、方向ｄ２→方向ｄ３→・・・→方向ｄｎ−１→方向ｄｎ→方向ｄ１（→方向ｄ２）となる一連の入力操作や、方向ｄ３→・・・→方向ｄｎ−１→方向ｄｎ→方向ｄ１→方向ｄ２（→方向ｄ３）となるような一例の入力操作などがあったときに、項目が切り替えられてもよい。
【０１０２】
このように、項目を選択するための操作と同じく、方向入力操作に基づいたシーケンス入力によって、項目の切り替えを行うようにしたので、項目選択を容易に行うことができる。また、一回転によるシーケンス入力は、文字の入力と誤って発生してしまうことが少ないため、ページの切り替えという文字入力と別の操作を行うのに適している。
【０１０３】
図１３にはメモリマップの一例が示される。メモリマップはプログラム記憶領域２００およびデータ記憶領域２０２を含む。プログラムとデータの一部とは、光ディスク２２から一度に全部または必要に応じて部分的に、かつ順次的に読み出され、メインメモリ５０に記憶される。なお、図１３にはメモリマップの一部のみが示されており、処理に必要な他のプログラムおよびデータも記憶される。たとえば、音声、効果音、音楽などの音を出力するためのサウンドデータや画面を生成するための画像データなどが光ディスク２２から読み出されてデータ記憶領域２０２に記憶される。なお、本実施例においては、プログラムとデータの一部は光ディスク２２から読み出されるが、別の実施例においては、たとえばゲーム装置１２にフラッシュメモリ等の不揮発的な記憶媒体を内蔵させ、当該記憶媒体に予め記憶したプログラムやデータを読み出してメインメモリ５０に記憶するようにしてもよい。その際さらに、ゲーム装置１２に無線または有線の通信モジュールを設け、ネットワーク経由でダウンロードしたプログラムを当該記憶媒体に記憶しておくようにしてもよい。
【０１０４】
プログラム記憶領域２００の記憶領域２０４には項目設定プログラムが記憶される。このプログラムは複数の項目から選択項目を設定するためのプログラムである。アナログジョイスティック９４ａの入力方向に応じた項目の選択を行うために、選択項目は入力方向に対応付けられる必要がある。このため、この実施例では、アナログジョイスティック９４ａの入力値に予め対応付けられた領域を設けておき、この領域と項目との対応付けを行うことによって、項目と入力方向とが対応付けられる。この領域をセルと呼ぶこととする。
【０１０５】
この実施例においては、図１４に示すように、アナログジョイスティック９４ａの入力値による座標平面内において、八角形を１６分割した領域と、当該八角形の中央付近の領域との計１７個の領域としてセル０−１６が設けられている。セル１−１６には上述の選択項目（たとえば上述のａ−ｐ等）が関連付けられる。なお、中央のセル０は、方向入力がほとんど無い場合（アナログジョイスティック９４ａがほとんど操作されていない場合、つまり、無操作状態）に対応付けられており、このセル０には選択項目は関連付けられず、何も選択されていない状態に対応する。
【０１０６】
セルに関連付けられてリスト１２０に設定すべき項目は、項目データ２２０から選出される。図１５には項目データの一部が示される。項目データは複数の項目を含み、それぞれの項目は例えば配列（ｉ[１]，ｉ[２]，…）として記憶されている。図１５の例では、ｉ[１]からｉ[２６]にはアルファベットａからｚが登録される。ｉ[２７]からｉ[３２]はブランクである。ｉ[３３]からｉ[４８]には各種記号が登録される。ｉ[４９]からｉ[６４]には数字に関する項目が登録される。その他、アルファベットの大文字ＡからＺや、仮名等を登録しておいてもよい。また、項目データは、文字だけでなく、所定の文字列を設定してもよい。本実施例では、ｉ[５６]、ｉ[５８]、ｉ[６０]およびｉ[６５]からｉ[８０]に[]で表している部分に、図１５の下段で文字列データとして示したような複数の文字からなる文字列が登録されている。アドレスの一部やドメイン名のような、よく使われる文字列を項目として登録しておくことによって、一度の入力で文字列の入力が可能となり、文字入力の効率性を向上できる。
【０１０７】
項目データから所定数の項目が選出され、セル１−１６に対応付けられる。図１６に示すように、セルの識別情報を示すセルＩＤと項目の識別情報を示す項目ＩＤ（区別のため、ｉ[１]，ｉ[２]，…を示すＩＤをｉ１，ｉ２，…と表すこととする）との対応関係を示す選択項目リストデータが生成される。たとえば図９に示すリスト１２０の場合、アルファベットａ−ｐ（文字ＩＤ：ｉ１−ｉ１６）が選択項目としてセル１−１６（セルＩＤ：ｃ１−ｃ１６）に設定される。
【０１０８】
図１３の記憶領域２０６には操作方向検出プログラムが記憶される。このプログラムは、ユーザの操作方向（入力方向）を検出するためのプログラムである。この実施例では、ユーザの入力しようとしている項目は、アナログジョイスティック９４ａの倒される方向によって指示される。したがって、項目の特定のために、アナログジョイスティック９４ａの入力（操作信号）に基づいて、ユーザの入力方向を検出する。図１７に示すように、アナログジョイスティック９４ａの左右方向にＸ軸、上下方向にＹ軸を定義するとき、コントローラデータには、アナログジョイスティック９４ａのＸ方向およびＹ方向の傾き量（Ｘ，Ｙ）が含まれている。なお、ニュートラルポジション（傾きなし）のときの出力を（０，０）とする。このアナログジョイスティック９４ａの入力（Ｘ，Ｙ）をＸＹ平面にプロットしたとき、（０，０）と（Ｘ，Ｙ）とを結ぶ線と基準方向（たとえばＸ軸）とのなす角θは、アナログジョイスティック９４ａの傾き方向、すなわち、ユーザの入力方向を示す。このように、アナログジョイスティック９４ａの操作信号（Ｘ，Ｙ）は、入力操作に応じた方向を示す方向データに相当する。
【０１０９】
図１３の記憶領域２０８にはセル選択プログラムが記憶される。このプログラムは、ユーザの入力方向に対応するセルを選択するためのプログラムである。図１７に示すように、セル１−１６（セルＩＤ：ｃ１−ｃ１６）には、アナログジョイスティック９４ａの入力方向の受け付け範囲が均等に割り当てられている。図１８に示すように、各セルと受け付け角度範囲とを対応付けたセル角度データが予め記憶されているので、このセル角度データを参照して、アナログジョイスティック９４ａの入力（Ｘ，Ｙ）によって算出される角度θが含まれる受け付け角度範囲を特定することによって、ユーザの入力方向に対応するセルを特定することができる。なお、アナログジョイスティック９４ａの入力（Ｘ，Ｙ）の大きさが閾値を超えない場合には、方向入力操作が行われていないものとみなして、セル０が選択される。上述の処理によって、アナログジョイスティック９４ａの入力が、１７個のセルのいずれに含まれるかを特定することができる。なお、上述の処理ではアナログジョイスティック９４ａの入力（Ｘ，Ｙ）からθを算出し、当該算出されたθがどの範囲に属するかに基づいて、ユーザの入力方向に対応するセルを特定するが、それ以外の処理によってセルの特定を行ってもよい。たとえば、θの算出を行わずに、図１７のＸＹ平面において各セルの領域を定義し、アナログジョイスティック９４ａの入力（Ｘ，Ｙ）がどの領域に含まれるかに基づいて、ユーザの入力方向に対応するセルを特定してもよい。
【０１１０】
図１３の記憶領域２１０には項目選択プログラムが記憶される。このプログラムは、ユーザの入力方向に対応する項目を選択するためのプログラムである。上述のセル選択プログラムによって、入力方向に対応するセルが特定されるので、当該セルに対応付けられている項目を、図１６に示す選択項目リストデータを参照して特定する。また、この実施例では、第１コントローラ３４で所定の操作が行われることによって、方向入力で選択されている項目の入力が決定される。したがって、所定の操作データが入力されたときに、選択されている項目が特定されて出力される。
【０１１１】
記憶領域２１２には、シーケンス判定プログラムが記憶される。このプログラムは、入力方向の推移に基づいてシーケンス入力が行われたか否かを判定するためのプログラムである。シーケンス入力は、この実施例では、図１２に示すように同一方向回りの一回転であるから、入力方向が同一方向回りに一回転したか否かが判定される。また、回転の方向に応じて、切替え方向（ページ送りか戻しか）が異なるので、回転の方向も判定される。このシーケンス判定プログラムは、選択されたセルの推移によって判定を行ってもよいし、アナログジョイスティック９４ａの入力（Ｘ，Ｙ）または角度θ等の推移から直接判定するようにしてもよい。
【０１１２】
なお、シーケンス入力判定では、現在の全選択項目に対応する全方向が、アナログジョイスティック９４ａにより順番に入力されたことを判定してもよい。すなわち、例えば、現在の選択項目が項目データｉ１〜ｉｎとするときに、ｉ１に対応する方向ｄ１が入力された後、ｉ２に対応する方向ｄ２が入力され、その後、ｉ３に対応する方向ｄ３が入力され、・・・、その後、ｉｎ−１に対応する方向ｄｎ−１が入力された後、ｉｎに対応する方向ｄｎが入力されたことを判定してもよい。この場合、方向ｄ１の入力→方向ｄ２の入力→方向ｄ３の入力→・・・→方向ｄｎ−１の入力→方向ｄｎの入力が連続的に（すなわち、他の方向の入力が間に入ることなく）入力されたことを判定することが好ましい。特に、アナログジョイスティック９４ａが無操作状態においていずれの方向も入力しないものである場合、無操作状態が間に入ることなく連続入力されることを判定してもよいが、無操作状態は間に入ることを許容してもよい。
【０１１３】
または、シーケンス入力判定では、現在の全選択項目に対応する全方向が、アナログジョイスティック９４ａにより順番に入力された後、さらに、いずれかの方向が入力されたことを判定してもよい。典型的には、全方向が順番に入力された後、最初に入力した方向がさらに入力されたことを判定してもよく、典型的には、前述の例において、方向ｄ１の入力→方向ｄ２の入力→方向ｄ３の入力→…→方向ｄｎ−１の入力→方向ｄｎ→方向ｄ１の入力となったことを判定してもよい。後述されるこの実施例の処理フロー（図２３）では、この判定が行われ、つまり、現在のセルがシーケンス入力の開始セルに到達したか否かが判定される。
【０１１４】
なお、例えば、方向ｄ１の入力→方向ｄ２の入力→方向ｄ３の入力→…→方向ｄｎ−１の入力→方向ｄｎを判定する場合、途中の入力を或る程度飛ばすことを許容してもよい。たとえば方向ｄ１の入力→方向ｄ３の入力→…→方向ｄｎ−１の入力→方向ｄｎとなったときに、肯定判定をするようにしてもよい。
【０１１５】
記憶領域２１４には項目切替プログラムが記憶される。このプログラムは、シーケンス入力に応じて選択項目の切替えを行うためのプログラムである。切替え方法は予め決められている。この実施例では、図１９に示すように、複数の項目が所定数ごとにページに割り当てられている。シーケンス入力に応じてページごとの切替えが行われて全ての選択項目が他の項目に置き換えられる。第１および第２ページは、図１２に示したようにアルファベットのリストである。第３−５ページは、図２０に示すように、記号のリスト、数字のリスト、ドメイン名のリストとなっている。第４ページにおいては、複数の数字からなる文字列を、表示上記号で置き換え、当該記号に対応する文字列を別途表示させることで、表示が煩雑にならないようにしている。この切替え方法に従って、図１５に示す項目データから必要な項目のデータが読み出されて、図１６に示す選択項目リストデータが更新される。この際、選択項目リストデータを生成するにあたっては、図１５の配列の順番にしたがった順番で、各項目が配置されるのが好ましい。つまり、この実施例のように項目データを所定順番で配列してプログラムに記憶する場合には、当該配列の順番に基づいて、項目データと方向とを対応付けるのが好ましい。典型的には、項目データが当該配列の順番に、右回り、または、左回りになるように、項目データと方向（セル）とを対応付けてもよい。
【０１１６】
なお、上述のように、項目データが所定順番で配列されてプログラムに記憶される場合、項目切替えにおいては、少なくとも、（ａ）現在の選択項目のうち最も前に配列された項目を選択項目から削除し、現在の選択項目の次に配列された項目を選択項目に追加するか、または、（ｂ）現在の選択項目のうち最も後に配列された項目を選択項目から削除し、現在の選択項目より前に配列された項目を選択項目に追加するのが望ましい。また、項目の入替においては、典型的には、この実施例のように、図１２のような全項目の入替が行われる。つまり、選択項目数をｎ個としたときに、（ｃ）現在の選択項目のすべてを削除し、現在の選択項目の次に配列されたｎ個の項目を新たに選択項目とし、または、（ｄ）現在の選択項目のすべてを削除し、現在の選択項目より前に配列されたｎ個の項目を新たに選択項目とする。また、シーケンス入力判定において、第１の一連入力操作（この実施例では右回り一回転）とそれと異なる第２の一連入力操作（この実施例では左回り一回転）を判定し、第１の一連入力操作がおこなわれたことが判定されたときには、たとえば、上記（ａ）（または（ｃ））の処理を実行し、第２の一連入力操作がおこなわれたときには、上記（ｂ）（または（ｄ））の処理を実行するようにしてよい。
【０１１７】
また、この実施例のように、現在の選択項目の全てを他の項目に入れ替える場合、選択項目数をｎ個として、ｎ個の選択項目を１つのグループにして、当該グループ単位で所定順番に配列してプログラムに記憶しておくようにしてよい。そして、項目切替においては、現在のグループの次に配列されたグループを選択し、または、現在のグループの前に配列されたグループを選択するようにしてもよい。
【０１１８】
記憶領域２１６には表示プログラムが記憶されている。このプログラムによって、選択項目を示すリスト１２０を含む画面の画像データが生成され、その画面がモニタ３０に表示される。
【０１１９】
データ記憶領域２０２の記憶領域２１８は、コントローラデータバッファであり、Ｂｌｕｅｔｏｏｔｈ通信ユニット７６を介して受信したコントローラ１４からのコントローラデータが記憶される。記憶領域２２０には、図１５に示すような複数の項目を示す項目データが記憶される。項目データは光ディスク２２に予め記憶されている。記憶領域２２２には、図１６に示すようなセルと項目との対応付けを示す選択項目リストデータが記憶される。選択項目リストデータは項目設定プログラムによって生成され、項目切替プログラムによって更新される。
【０１２０】
記憶領域２２４にはセル選択フラグが記憶される。セル選択フラグは、セル０以外のセルの選択（方向入力）が行われているか否かを示すフラグである。アナログジョイスティック９４ａの入力の大きさ（すなわちアナログジョイスティック９４ａの傾き量）が所定の閾値以上であり、方向入力が行われていると判定されるとき、このセル選択フラグはオンにされる。
【０１２１】
記憶領域２２６には図１８に示すようなセルの受け付け範囲を示すセル角度データが記憶される。セル角度データは光ディスク２２に予め記憶されている。ただし、セル角度データ自体を光ディスク２２に記憶しなくとも、たとえば必要な項目数等に応じてプログラムの処理で算出し、記憶するようにしてもよい。
【０１２２】
記憶領域２２８には、選択セルを示す情報が記憶される。この情報には、現フレームで選択されているセル（セルＩＤ）を示す現在のセルと、前フレームで選択されていたセル（セルＩＤ）を示す前回のセルとが含まれる。
【０１２３】
記憶領域２３０にはカーソル位置が記憶される。リスト１２０におけるカーソル１２４の位置情報が記憶される。カーソル１２４の位置は、セル１−１６のそれぞれに対して予め定められて記憶されている。この記憶領域２３０には、現在選択されているセルに対応する位置が記憶される。
【０１２４】
記憶領域２３２には開始セルが記憶される。開始セルはシーケンス入力が開始されたときに選択されたセル（セルＩＤ）を示す。記憶領域２３４にはシーケンス開始フラグが記憶される。シーケンス開始フラグはシーケンス入力が開始されたときにオンにされる。記憶領域２３６には直後フラグが記憶される。直後フラグは、シーケンス入力が開始された直後のフレームであるか否かを判定するために設けられている。当該直後のフレームでシーケンス入力の回転方向の検出を行う必要があるためである。記憶領域２３８には回転方向フラグが記憶される。回転方向フラグはシーケンス入力の回転方向（右または左）を示す。記憶領域２４０にはシーケンス確定フラグが記憶される。シーケンス確定フラグはシーケンス入力が成立したことが判定されたときにオンにされる。
【０１２５】
記憶領域２４２には文字入力履歴が記憶される。この実施例では、アナログジョイスティック９４ａの方向入力によってセル１−１６が選択されている状態で、第１コントローラ３４で所定の操作が行われることによって、選択されているセルに対応する項目（文字）の入力が決定され、当該文字を入力することができる。この記憶領域２４２には、第１コントローラ３４のコントローラデータに基づいて所定の操作が検出されたときに、方向入力で選択されているセルに対応する文字（文字ＩＤ）が記憶される。
【０１２６】
記憶領域２４４には確定入力が記憶される。この実施例では、アナログジョイスティック９４ａで方向入力が行われていない状態で、第１コントローラ３４で所定の操作が行われることによって、文字入力が確定される。したがって、セル１−１６が選択されていない状態で第１コントローラ３４のコントローラデータに基づいて所定の操作が検出されたときに、この記憶領域２４４に、記憶領域２４２の文字入力履歴が確定入力として記憶される。
【０１２７】
図２１および図２２には文字入力処理におけるＣＰＵ４６の動作の一例が示される。文字入力処理を開始すると、まずステップＳ１で、ＣＰＵ４６は項目設定プログラムに従ってリスト１２０に載せる文字の設定を実行する。具体的には、項目データから所定数の文字が選出されてセル１−１６に割り当てられ、選択項目リストデータ（図１６）が生成される。この実施例では、図１９に示したように、複数の項目（文字）のうちの所定数が所定のページに割り当てられており、また、ステップＳ１はリスト１２０の初期設定であるから、第１ページの選択項目がセル１−１６に対応付けられる。
【０１２８】
次に、ステップＳ３で、ＣＰＵ４６は表示プログラムに従って画面を表示または更新する。具体的には、ＣＰＵ４６は、ＧＰＵ５２を用いて図９に示すようなリスト１２０を含む画面の画像データを生成し、当該画面をモニタ３０に表示する。選択項目リストデータを参照して、図９のようにセル１−１６の位置関係に対応するような配置で各項目が表示される。カーソル１２４はカーソル位置に表示される。記憶領域２２８の現在のセルがセル０ではない場合、表示欄１２６には現在のセルに対応する項目が表示される。また、記憶領域２４２に文字入力履歴が記憶されている場合には、入力欄１２２に入力された文字の履歴が表示される。
【０１２９】
続いて、ステップＳ５で、ＣＰＵ４６は記憶領域２１８からコントローラデータを取得する。コントローラデータは、第２コントローラ３６の操作部９４の操作データ、第１コントローラ３４の操作部８２の操作データ、加速度センサ８６および９６の加速度データ、撮像情報演算部８８の撮像対象データ等を含む。したがって、アナログジョイスティック９４ａの方向データや、Ａボタン８２ｄおよびＢボタン８２ｈの操作データ等が取得され得る。
【０１３０】
ステップＳ７では、ＣＰＵ４６は、操作方向検出プログラムに従って、アナログジョイスティック９４ａの傾き量と傾き方向をその操作信号から算出する。アナログジョイスティック９４ａの操作信号（Ｘ，Ｙ）は、Ｘ方向およびＹ方向（図１７）の傾き量を示す。したがって、（Ｘ，Ｙ）の大きさを算出することによってアナログジョイスティック９４ａ全体としての傾き量が得られる。また、（Ｘ，Ｙ）の角度θ（図１７）を算出することによって、アナログジョイスティック９４ａの傾き方向すなわち入力方向が得られる。
【０１３１】
そして、ステップＳ９で、ＣＰＵ４６は傾き量が所定の閾値以上であるか否かを判断する。この閾値判定によって不明確な入力を排除し、アナログジョイスティック９４ａで方向入力が行われたか否かを明確に判断できる。
【０１３２】
ステップＳ９で“ＮＯ”の場合には、つまり、セル０が選択されていて方向入力が行われていないと判断される場合には、ＣＰＵ４６はステップＳ１１で記憶領域２２４のセル選択フラグをオフにする。また、ステップＳ１３で、ＣＰＵ４６はセル０を現在のセルとして選択セル記憶領域２２８に記憶する。ステップＳ１３を終了すると、処理はステップＳ２１へ進む。
【０１３３】
一方、ステップＳ９で“ＹＥＳ”の場合、つまり、方向入力が行われている場合には、ＣＰＵ４６はステップＳ１７で記憶領域２２４のセル選択フラグをオンにする。また、ステップＳ１９で、ＣＰＵ４６は、セル選択プログラムに従って、セル角度データ（図１８）に基づいて傾き方向に対応するセルを特定し、当該セルを現在のセルとして選択セル記憶領域２２８に記憶する。
【０１３４】
次に、ステップＳ２１で、ＣＰＵ４６は記憶領域２３０のカーソル位置を現在のセルに対応する位置に更新する。このとき、セル０が選択されている状態のときには、カーソル位置がセル０となるが、この場合はカーソル１２４の表示は行われないこととなる。
【０１３５】
続いて、ステップＳ２３で、ＣＰＵ４６はシーケンス判定プログラムに従ってシーケンス判定処理を実行する。シーケンス判定処理の動作は図２３に詳細に示される。
【０１３６】
図２３の最初のステップＳ６１で、ＣＰＵ４６は記憶領域２２８を参照して現在のセルが前回のセルと同じであるか否かを判断する。なお、前回のセルの初期値はセル０とする。同じセルが選択され続けているときには、ステップＳ６１では“ＹＥＳ”と判断され、処理は図２１のステップＳ２５に戻る。
【０１３７】
ステップＳ６１で“ＮＯ”の場合、ＣＰＵ４６は、ステップＳ６３で記憶領域２３４のシーケンス開始フラグがオンであるか否かを判断する。ステップＳ６３で“ＮＯ”の場合、つまり、シーケンス入力の最初のタイミングであるときは、初期設定を行う。すなわち、ＣＰＵ４６は、ステップＳ６５で記憶領域２２８の現在のセルを、シーケンス入力の開始セルとして記憶領域２３２に記憶する。また、ＣＰＵ４６は、ステップＳ６７で記憶領域２３４のシーケンス開始フラグをオンにし、ステップＳ６９で記憶領域２３６の直後フラグをオンにする。ステップＳ６９を終了すると、処理はステップＳ８７に進む。
【０１３８】
一方、ステップＳ６３で“ＹＥＳ”の場合、つまり、シーケンス入力の判定が既に開始されているときには、ＣＰＵ４６は、ステップＳ７０で、現在のセルが前回のセルに隣接するセルであるか否かを判断する。ここで、シーケンス判定処理は回転を検出する目的であるので、隣接するセルにはセル０は含まないものとする。また、アナログジョイスティック９４ａを高速に回転させた場合等には、検出のタイミング等によって、セルが１つ、または複数個飛ばされて検出される場合も想定されるので、隣接セルだけでなく、前回のセルに１つもしくは複数のセルを隔てて隣接するセルであっても許容するようにしてもよい。ステップＳ７０で“ＮＯ”と判断された場合には、ステップＳ８５に処理を進め、以降の処理によってシーケンス入力状態が解除されるようにする。ステップＳ７０で“ＹＥＳ”と判断された場合には、ＣＰＵ４６は、ステップＳ７１で記憶領域２３６の直後フラグがオンであるか否かを判断する。ステップＳ７１で“ＹＥＳ”の場合、つまり、シーケンス入力の判定が開始された直後である場合には、ＣＰＵ４６は、ステップＳ７３で、回転方向を検出して、その結果（右または左）を記憶領域２３８の回転方向フラグに設定する。シーケンス入力の回転方向は、開始セルと現在のセルとの位置関係から検出される。上述のように、ユーザによる回転操作が速い場合、１フレームの間に選択セルが２つ先のセルに進むということも起こり得る。したがって、開始セルの隣接セルだけでなく所定数個のセルの範囲内で、現在のセルが開始セルの右回り方向に存在するのか左回り方向に存在するのかを検出すればよい。あるいは、開始セルから右回りまたは左回りで現在のセルに到達するまでに存在するセルの数が少ない方の回転方向を検出することによって、シーケンス入力の回転方向を検出することもできる。続くステップＳ７５で、ＣＰＵ４６は記憶領域２３６の直後フラグをオフにする。ステップＳ７５を終了すると、処理はステップＳ８７に進む。
【０１３９】
一方、ステップＳ７１で“ＮＯ”の場合、つまり、シーケンス入力の回転方向を検出済みの場合、ＣＰＵ４６は、ステップＳ７７で現在の回転方向を検出する。現在の回転方向は、ステップＳ７３と同様な処理で、前回のセルと現在のセルとの位置関係から検出される。
【０１４０】
そして、ステップＳ７９で、ＣＰＵ４６は、検出方向が記憶領域２３８の回転方向フラグに設定されている方向と同一であるか否かを判断する。つまり、シーケンス入力の回転方向が開始時点から同一であり続けているか否かが判断される。
【０１４１】
ステップＳ７９で“ＹＥＳ”の場合、つまり、回転方向が変化していない場合、ＣＰＵ４６は、ステップＳ８１で現在のセルが開始セルに到達したか否かを判断する。つまり、同一方向への一回転というこの実施例のシーケンス入力が成立したか否かが判断される。ステップＳ８１で“ＹＥＳ”の場合、ＣＰＵ４６は、ステップＳ８３で記憶領域２４０のシーケンス確定フラグをオンにする。ステップＳ８３を終了すると、または、ステップＳ８１で“ＮＯ”の場合、処理はステップＳ７５へ進む。
【０１４２】
一方、ステップＳ７９で“ＮＯ”の場合、つまり、回転方向がシーケンス入力直後のそれから変化した場合には、シーケンス入力が成立しない。ＣＰＵ４６は、ステップＳ８５で記憶領域２３４のシーケンス開始フラグをオフにする。ステップＳ８５を終了すると、処理はステップＳ７５へ進む。
【０１４３】
ステップＳ７５において直後フラグがオフに設定された後、ステップＳ８７では、ＣＰＵ４６は、次のフレームでの処理のために、記憶領域２２８において現在のセルを前回のセルとして記憶する。ステップＳ８７を終了すると、このシーケンス判定処理が終了され、処理は図２１のステップＳ２５へ戻る。
【０１４４】
図２１のステップＳ２５では、ＣＰＵ４６は記憶領域２４０のシーケンス確定フラグがオンであるか否かを判断する。ステップＳ２５で“ＹＥＳ”の場合、つまり、シーケンス入力が成立した場合には、ＣＰＵ４６は、ステップＳ２７で記憶領域２３８の回転方向フラグが右であるか否かを判断する。
【０１４５】
ステップＳ２７で“ＹＥＳ”の場合、つまり、右回りの一回転が成立した場合、ＣＰＵ４６は、ステップＳ２９で、項目切替プログラムに従って文字を送り方向に切替える。この実施例では、項目データから次のページの項目が読み出され、記憶領域２２２の選択項目リストデータにおいて全ての項目が次のページの項目に置き換えられる。なお、現在のページが最終ページである場合、第１ページの項目に置き換えられてよい。
【０１４６】
一方、ステップＳ２７で“ＮＯ”の場合、つまり、左回りの一回転が成立した場合には、ＣＰＵ４６は、ステップＳ３１で文字を戻り方向に切替える。つまり、項目データから前のページの項目が読み出され、記憶領域２２２の選択項目リストデータにおいて全ての項目が前のページの項目に置き換えられる。なお、現在のページが第１ページの場合、最終ページの項目に置き換えられてよい。
【０１４７】
ステップＳ２９またはＳ３１を終了すると、ＣＰＵ４６は、ステップＳ３３で記憶領域２４０のシーケンス確定フラグおよび記憶領域２３４のシーケンス開始フラグをオフにする。ステップＳ３３を終了すると、処理はステップＳ３に戻る。したがって、図１２に示したように、切替えられたリスト１２０が画面に表示される。
【０１４８】
一方、ステップＳ２５で“ＮＯ”の場合、つまり、シーケンス入力が成立していない場合には、処理は図２２のステップＳ３５に進む。
【０１４９】
図２２のステップＳ３５では、ＣＰＵ４６はＡボタン８２ｄが操作されたか否かを第１コントローラ３４の操作データに基づいて判断する。ステップＳ３５で“ＹＥＳ”の場合、ＣＰＵ４６は、ステップＳ３７で記憶領域２２４のセル選択フラグがオンであるか否かを判断する。ステップＳ３７で“ＹＥＳ”の場合、つまり、アナログジョイスティック９４ａによる方向入力が行われつつＡボタン８２ｄが押下げられたときには、ユーザが入力しようとする文字を決定したものとみなされる。したがって、ステップＳ３９で、ＣＰＵ４６は現在のセルに対応する文字を選択項目リストデータを参照して特定する。そして、ステップＳ４１で、ＣＰＵ４６は特定された文字を出力し、つまり、記憶領域２４２の文字入力履歴に記憶する。ステップＳ４１を終了すると、処理は図２１のステップＳ３に戻る。したがって、画面上の入力欄１２２には文字入力履歴に記憶された文字が表示される。
【０１５０】
一方、ステップＳ３７で“ＮＯ”の場合、つまり、アナログジョイスティック９４ａによる方向入力が行われていない状態でＡボタン８２ｄが押下げられたときには、ユーザが文字の入力を終えたものとみなされる。したがって、ステップＳ４３で、ＣＰＵ４６は、記憶領域２４２の文字入力履歴を確定入力として処理する。たとえば、文字入力履歴を確定入力として所定の記憶領域２４４に出力（記憶）したり、確定入力の文字情報を使った処理を実行したりする。ステップＳ４３を終了すると、この文字入力処理が終了される。
【０１５１】
また、ステップＳ３５で“ＮＯ”の場合には、ＣＰＵ４６はステップＳ４５で第１コントローラ３４の操作データに基づいてＢボタン８２ｈが操作されたか否かを判断する。ステップＳ４５で“ＹＥＳ”の場合、ＣＰＵ４６はステップＳ４７で文字入力履歴記憶領域２４２に項目が記憶されているか否かを判断する。ステップＳ４７で“ＹＥＳ”の場合、直前の文字の入力がキャンセルされたものとみなされる。したがって、ステップＳ４９で、ＣＰＵ４６は記憶領域２４２の文字入力履歴から最後に入力された１つの項目（文字または文字列）を削除する。ステップＳ４９を終了すると、処理は図２１のステップＳ３に戻る。したがって、画面上の入力欄１２２では、最後に入力された文字が消去される。
【０１５２】
一方、ステップＳ４７で“ＮＯ”の場合、つまり、１つの項目も入力されていない状態でＢボタン８２ｈが押下げられたときには、文字入力自体がキャンセルされたものとみなされる。したがって、ＣＰＵ４６はステップＳ５１で文字入力の取消しを実行し、この文字入力処理を終了する。
【０１５３】
この実施例によれば、方向指示による項目選択において、所定の一連の方向入力に応じて選択項目を切替えるようにしたので、項目選択の操作性を向上することができる。項目選択と同様に方向入力操作によって項目を切替えるので、切替えのための操作ボタンを設ける必要がなく、切替えのための操作が容易であり、切替え間違いを少なくすることができる。
【０１５４】
なお、上述の実施例では、切替えのためのシーケンス入力は同一方向への一回転であった。シーケンス入力の操作では、方向の入力操作が所定の順番に従って連続的に行われる。このように、シーケンス入力は所定の一連の変化を伴った方向入力であればよく、シーケンス入力の方向の変化の形態は、適宜変更され得る。また、ステップＳ２３のシーケンス判定処理も、方向データの推移に基づいて各シーケンス入力が成立したか否かを判定するために、適宜に変更される。図２４にはシーケンス入力の変形例が示される。図２４（Ａ）のシーケンス入力は半回転である。図２４（Ｂ）のシーケンス入力は、半回転して開始セルに戻る入力である。図２４（Ｃ）のシーケンス入力は、上方向指示から下方向へ戻る入力である。図２４（Ｄ）のシーケンス入力は、左方向指示から右方向へ戻る入力である。図２４（Ｃ）および（Ｄ）のようなシーケンス入力は、単なる方向の入力間違いや迷いなどと区別するために、素早く行われること、つまり、所定時間内に入力されることが条件にされてよい。
【０１５５】
また、他の実施例では、シーケンス判定処理において、さらにシーケンス入力の種類を判定し、当該種類に応じて項目の切替え方法を異ならせるようにしてよい。図２５にその一例が示される。図２５では、半回転のシーケンス入力が行われたとき、１ページ切り替えられ、一回転のシーケンス入力が行われたとき、２ページ切替えられる。
【０１５６】
さらに、他の実施例では、ページごとにシーケンス入力の種類を対応付けるようにしてよい。この場合、シーケンス入力の種類に対応するページに直接切替えられる、つまり、ユーザの所望のページに直に切替えられるので、項目選択の効率性を向上することができる。
【０１５７】
なお、上述の各実施例では、図１９に示したように、複数の項目をページに分けて、項目切替えの際に、ページを送り／戻しするようにしていた。つまり、選択項目の全ての項目を置き換えるようにしていた。しかし、他の実施例では、一部の項目のみが置き換えられるようにしてもよい。図２６には項目切替えの変形例が示される。図２６の設定によれば、シーケンス入力ごとに、４つの項目ずつ置き換えられることとなる。この一部置換えにおいては、現在の選択項目のうち、１つのみ、１／８、１／４、半分、３／４などを他の項目に入れ替えるようにしてよい。
【０１５８】
また、上述の各実施例では、第１コントローラ３４のＢボタン８２ｈの操作に応じて、直前に入力された文字をキャンセルするようにしていた。しかし、他の実施例では、選択項目の中に、キャンセルを行うための項目を設けるようにしてもよい。
【０１５９】
また、上述の各実施例では、文字の入力決定およびキャンセルのために第１コントローラ３４のＡボタン８２ｄおよびＢボタン８２ｈを使用するようにしていた。しかし、他の実施例では、第２コントローラ３６のＣボタン９４ｂおよびＺボタン９４ｃに、文字の入力およびキャンセルの機能を割り当てるようにしてもよい。この場合、第２コントローラ３６を用いた片手の操作のみで、文字入力を簡単に行うことができる。したがって、別の手の第１コントローラ３４によって、別の処理のための操作を行うことが可能になる。たとえば、一方の手の第２コントローラ３６の操作で文字入力（たとえばチャット）を行いながら、他方の手の第１コントローラ３４の操作でゲームをプレイするといったことが可能になる。また、第２コントローラ３６においては、ユーザが当該ハウジング９２を片手で把持したときの親指の位置にアナログジョイスティック９４ａが配設され、かつ、ユーザが当該ハウジング９２を片手で把持したときの人差し指または中指の位置にＣボタン９４ｂおよびＺボタン９４ｃが配設されるので、操作性がよい。
【０１６０】
また、他の実施例では、文字の入力決定やキャンセルのために、コントローラ１４の操作部８２および９４のボタン操作ではなく、加速度センサ８６および９６、または撮像情報演算部８８によって取得されるデータを用いるようにしてよい。たとえば、加速度センサ８６または加速度センサ９４によって所定の条件を満足する加速度値または加速度変化量などが検出されたとき、つまり、第１コントローラ３４または第２コントローラ３６で所定の動きが検出されたとき、文字の入力決定やキャンセルを行うようにしてよい。あるいは、撮像情報演算部８８によって取得されるデータに基づいて、第１コントローラ３４による指示位置または指示位置変化などが所定の条件を満たしたと判断されるとき、つまり、第１コントローラ３４で所定の動きが検出されたとき、文字の入力決定やキャンセルを行うようにしてもよい。
【０１６１】
また、上述の各実施例では項目は文字であったが、ゲームのアイテム選択、メニュー選択など様々な情報の選択にこの発明を適用可能である。
【０１６２】
図２７にはゲームのアイテムを選択項目としたリスト１２０の一例が示される。このリスト１２０では、プレイヤキャラクタが使用するアイテムとしての爆弾、靴、弓、薬１−３、ブーメラン、ランプが円形状に配列されている。このリスト１２０では、アイテムは八角形の頂点に対応する位置に配置される。つまり、八角形を８分割した領域であるセル１−８と、八角形の中央付近の領域であるセル０とが設けられている。リスト中央には、アナログジョイスティック９４ａの頭部を示す画像が表示され、アナログジョイスティック９４ａの方向指示でアイテム選択可能であることが表現される。このゲームでも、上述の文字入力と同様に、シーケンス入力によって選択項目の全部または一部が他の項目に切替えられ、したがって、アイテム選択が容易に行える。
【０１６３】
また、この実施例では、アナログジョイスティック９４ａの方向入力でアイテムを選択している状態で第１コントローラ３４を動かすことによって、当該選択されているアイテムに基づくゲーム処理を実行させることができる。
【０１６４】
図２８および図２９には、この実施例のゲームでの項目利用処理の動作の一例が示される。上述の図２１および図２２の文字入力処理と同様のステップには同一の参照符号を付してその説明を省略する。
【０１６５】
処理を開始すると、図２８の最初のステップＳ１０１で、ＣＰＵ４６はリストに載せる項目の設定を実行する。具体的には、複数のアイテムを示す項目データから所定数（この実施例では８個以下）のアイテムを選出し、アイテムとセルとの対応付けを行って、選択項目リストデータを生成し、記憶領域２２２に記憶する。したがって、次のステップＳ３の処理で、図２７に示すようなアイテムを選択するためのリスト１２０がモニタ３０に表示される。
【０１６６】
シーケンス入力が検出された場合において、ステップＳ２７で“ＹＥＳ”の場合には、ＣＰＵ４６は、ステップＳ１２９で項目を送り方向に切替える。具体的には、記憶領域２２２の選択項目リストデータにおいて、各セルの項目を、次のページの各アイテムに置き換える。一方、ステップＳ２７で“ＮＯ”の場合には、ＣＰＵ４６は、ステップＳ１３１で項目を戻り方向に切替える。具体的には、各セルの項目が前のページの各アイテムに置き換えられるように、記憶領域２２２の選択項目リストデータを更新する。なお、ステップＳ１２９およびＳ１３１では、一部の項目のみが他のアイテムに置き換えられてもよい。このように、シーケンス入力に応じて、アイテムのリスト１２０を切替えることができる。
【０１６７】
また、図２９の最初のステップＳ１３５では、ＣＰＵ４６は、加速度センサ８６の加速度データまたは撮像情報演算部８８の撮像対象データ（マーカ座標データ）に基づいて、第１コントローラ３４が動かされたか否かを判断する。つまり、この実施例のゲーム処理を実行するための操作が行われたか否かを判断する。ステップＳ１３５で“ＮＯ”の場合、処理は図２８のステップＳ３に戻る。
【０１６８】
一方、ステップＳ１３５で“ＹＥＳ”であり、かつ、その後のステップＳ３７で“ＹＥＳ”の場合、つまり、方向入力によってアイテムが選択された状態で第１コントローラ３４が動かされたときには、ユーザによってアイテムの使用が決定されたとみなされる。したがって、ＣＰＵ４６は、ステップＳ１３９で、記憶領域２２８の現在のセルに対応する項目を選択項目リストデータに基づいて特定する。続いて、ステップＳ１４１で、ＣＰＵ４６は特定された項目を入力として所定領域に記憶する。そして、ステップＳ１６１で、ＣＰＵ４６は、第１コントローラ３４の加速度データまたは撮像対象データに基づいて、入力項目に対応するゲーム処理を実行する。したがって、選択されたアイテムを使用することができ、また、当該アイテムを第１コントローラ３４の動きに応じて使用することができる。ゲーム処理は、たとえば、加速度センサ８６で検出された加速度値または加速度変化量などに基づいて制御されてよいし、あるいは、第１コントローラ３４による指示位置または指示位置変化などに基づいて制御されてもよい。たとえばアイテムが爆弾の場合、加速度の大きさに応じて爆弾を飛ばす距離を変化させ、あるいは、第１コントローラ３４の指示位置の変化した方向に爆弾を飛ばすゲーム処理などが考えられる。
【０１６９】
一方、ステップＳ３７で“ＮＯ”の場合、つまり、方向入力のない状態で第１コントローラ３４が動かされたときには、ＣＰＵ４６は、ステップＳ１６３で、第１コントローラ３４の加速度データまたは撮像対象データに基づくゲーム処理を実行する。この場合のゲーム処理でも、加速度センサ８６で検出された加速度値または加速度変化量などに基づく制御が行われてもよいし、あるいは、第１コントローラ３４による指示位置または指示位置変化などに基づく制御が行われてもよい。ステップＳ１６１またはＳ１６３を終了すると、この項目利用処理を終了する。
【０１７０】
この実施例では、ユーザは、第２コントローラ３６のアナログジョイスティック９４ａの方向入力でアイテムを選択しながら第１コントローラ３４を動かすことによって、アイテムを選択することができるとともに、当該選択されたアイテムと第１コントローラ３４の動きとに基づいてゲームをプレイすることができる。また、第１コントローラ３４を動かしてゲームをプレイしながらであっても、第２コントローラ３６の操作でアイテムの切り替えや選択が容易に行えるので、アイテム選択や装備のためにゲームの進行を中断する必要がなくなり、ゲームを円滑にプレイすることが可能になり、アクションゲームや、リアルタイム戦闘のロールプレイングゲームおよびシミュレーションゲームなどの興趣性を向上することができる。
【０１７１】
なお、上述の各実施例では、モニタ３０に選択項目を示すリスト１２０を表示するようにした。選択項目を表示すればユーザは選択項目を見ながら選択を行えるので、項目を選択し易く、操作性が良いが、他の実施例では、選択項目のリスト１２０を表示しないようにしてもよい。特にたとえば、画面上にリスト１２０を表示するスペースが確保できない場合、ゲームで項目の配列をユーザに覚えさせることに意味がある場合、あるいは、音楽や効果音などの音を選択させる場合などに、リスト１２０が表示されなくてもよいであろう。ただし、方向入力によって現在選択されている項目を示す表示欄１２６を画面上に表示するようにしてもよい。この場合には、現在選択している項目をユーザに明示することができるので、ユーザが選択を行い易い。また、音の選択の場合には、音そのものを表示することは不可能であるから、方向入力によって現在選択されている項目に対応する音をスピーカ３２から出力して、ユーザに聞かせるようにしてよい。
【０１７２】
また、上述の各実施例では、項目を選択するための方向の入力は、アナログジョイスティック９４ａによって行われた。しかし、この方向入力のための入力装置は、連続的な方向入力操作が行えるものであればよく、適宜変更され得る。たとえば、上下左右方向を指示可能な十字キー８２ａが使用されてよい。あるいは、静電式または感圧式などのトラックパッド（タッチパッド）が使用されてもよく、この場合、タッチパッドの基準位置からみた接触位置または、前回の接触位置からみた現在の接触位置の方向などによってユーザの入力方向を検出することができる。タッチパッド以外のポインティングデバイス、たとえばマウスも適用可能である。
【図面の簡単な説明】
【０１７３】
【図１】図１はこの発明の一実施例のゲームシステムの外観を示す図解図である。
【図２】図２はゲームシステムの電気的な構成の一例を示すブロック図である。
【図３】図３は第１コントローラの外観の一例を示す図解図であり、図３（Ａ）は後方上側から見た斜視図であり、図３（Ｂ）は前方下側から見た斜視図である。
【図４】図４は第２コントローラの外観の一例を示す図解図であり、図４（Ａ）は後方上側から見た斜視図であり、図４（Ｂ）は前方下側から見た斜視図である。
【図５】図５はコントローラの電気的構成の一例を示すブロック図である。
【図６】図６はユーザの右手および左手でそれぞれ把持された第１コントローラおよび第２コントローラを示す図解図である。
【図７】図７は図１に示すマーカおよび第１コントローラの視野角を説明するための図解図である。
【図８】図８は対象画像を含む撮像画像の一例を示す図解図である。
【図９】図９は文字入力画面の一例を示す図解図である。
【図１０】図１０は第２コントローラの上面図である。
【図１１】図１１はアナログジョイスティックの方向指示による文字選択の一例を示す図解図である。
【図１２】図１２はシーケンス入力による項目切替えの一例を示す図解図である。
【図１３】図１３はメモリマップの一例を示す図解図である。
【図１４】図１４はセルの配列の一例を示す図解図である。
【図１５】図１５は項目データの一例を示す図解図である。
【図１６】図１６はセルと項目との対応付けを示す選択項目リストデータを示す図解図である。
【図１７】図１７はアナログジョイスティック入力に対するセルの受け付け範囲の一例を示す図解図である。
【図１８】図１８は各セルの受け付け角度を示すセル角度データを示す図解図である。
【図１９】図１９は項目切替えの一例を示す図解図である。
【図２０】図２０は図１９の切替えによって表示される選択項目リストを示す図解図である。
【図２１】図２１はゲーム装置における文字入力処理の動作の一例の一部を示すフロー図である。
【図２２】図２２は図２１の続きを示すフロー図である。
【図２３】図２３は図２１に示すシーケンス判定処理の動作の一例を示すフロー図である。
【図２４】図２４はシーケンス入力の変形例を示す図解図である。
【図２５】図２５はシーケンス入力の種類に応じた項目切替えの一例を示す図解図である。
【図２６】図２６は項目切替えの変形例を示す図解図である。
【図２７】図２７はゲームアイテムを含む選択項目リストの一例を示す図解図である。
【図２８】図２８は他の実施例のゲームにおける項目利用処理の動作の一例の一部を示すフロー図である。
【図２９】図２９は図２８の続きを示すフロー図である。
【符号の説明】
【０１７４】
１０  …ゲームシステム
１２  …ゲーム装置
１４  …コントローラ
２２  …光ディスク
３０  …モニタ
３４  …第１コントローラ
３６  …第２コントローラ
４４ｍ、４４ｎ  …マーカ（赤外線ＬＥＤ）
４６  …ＣＰＵ
５０  …メインメモリ
５２  …ＧＰＵ
８２、９４  …操作部
８２ａ  …十字キー
８６、９６  …加速度センサ
８８  …撮像情報演算部
９４ａ  …アナログジョイスティック
９４ｂ  …Ｃボタン
１０８  …マイコン
１１０  …メモリ
１２０  …選択項目のリスト
【図１】
2008217543.tif 000003
【図２】
2008217543.tif 000004
【図３】
2008217543.tif 000005
【図４】
2008217543.tif 000006
【図５】
2008217543.tif 000007
【図６】
2008217543.tif 000008
【図７】
2008217543.tif 000009
【図８】
2008217543.tif 000010
【図９】
2008217543.tif 000011
【図１０】
2008217543.tif 000012
【図１１】
2008217543.tif 000013
【図１２】
2008217543.tif 000014
【図１３】
2008217543.tif 000015
【図１４】
2008217543.tif 000016
【図１５】
2008217543.tif 000017
【図１６】
2008217543.tif 000018
【図１７】
2008217543.tif 000019
【図１８】
2008217543.tif 000020
【図１９】
2008217543.tif 000021
【図２０】
2008217543.tif 000022
【図２１】
2008217543.tif 000023
【図２２】
2008217543.tif 000024
【図２３】
2008217543.tif 000025
【図２４】
2008217543.tif 000026
【図２５】
2008217543.tif 000027
【図２６】
2008217543.tif 000028
【図２７】
2008217543.tif 000029
【図２８】
2008217543.tif 000030
【図２９】
2008217543.tif 000031