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