(57)【特許請求の範囲】
【請求項１】
タッチパネルと、ユーザによって接触された前記タッチパネル上の複数の接触位置を検出する検出手段と、を含む情報処理装置において、
前記複数の接触位置のうちの一の接触位置に基づいて設定され、かつ、該一の接触位置を含んでなる対象領域内に、前記複数の接触位置のうちの他の接触位置のいずれかが含まれるか否かの判定を実行する判定手段と、
前記他の接触位置のいずれかが前記対象領域内に含まれると前記判定手段によって判定された場合、該対象領域として設定されていた領域外の領域を含み、かつ、前記一の接触位置及び該他の接触位置を含んでなる領域を、新たな対象領域として、前記一の接触位置に基づいて設定する設定手段と、
前記判定手段による前記判定が複数回実行された場合、前記一の接触位置と、該複数回の判定の各々において前記対象領域に含まれると判定された接触位置とに基づいて、処理を実行する処理実行手段と、
を含み、
前記判定手段は、前記対象領域として設定されていた領域外の領域を含み、かつ、前記一の接触位置及び前記他の接触位置を含んでなる領域が前記新たな対象領域として前記設定手段によって設定された場合に、前記複数の接触位置のうちの、当該一の接触位置及び当該他の接触位置以外の接触位置のいずれかが当該新たな対象領域内に含まれるか否かの判定を実行する、
ことを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、
前記判定手段は、前記一の接触位置からの距離が基準距離以下である対象領域内に、前記他の接触位置のいずれかが含まれるか否かを判定し、
前記設定手段は、前記他の接触位置のいずれかが前記対象領域内に含まれると前記判定手段によって判定された場合、該対象領域における前記基準距離よりも長い距離を新たな基準距離として設定することによって前記新たな対象領域を設定する、
ことを特徴とする情報処理装置。
【請求項３】
請求項１又は２に記載の情報処理装置において、
前記検出手段は、所定の上限数の接触位置を検出可能であり、
前記判定制御手段は、
前記他の接触位置のいずれかが前記対象領域内に含まれると前記判定手段によって判定された場合、前記対象領域内に含まれると判定された該接触位置を記憶手段に記憶させる手段と、
前記他の接触位置のいずれかが前記対象領域内に含まれると前記判定手段によって判定された場合、前記対象領域内に含まれると判定された該接触位置の代わりに、新たな接触位置を前記検出手段に検出させる手段と、を含み、
前記処理実行手段は、前記記憶手段に記憶された、前記対象領域内に含まれると判定された接触位置に基づいて、前記処理を実行する、
ことを特徴とする情報処理装置。
【請求項４】
請求項１乃至３のいずれかに記載の情報処理装置において、
前記ユーザの指の長さに関する情報を取得する手段を含み、
前記ユーザの指の長さに関する前記情報に基づいて、前記対象領域の大きさを制御する、
ことを特徴とする情報処理装置。
【請求項５】
請求項１乃至４のいずれかに記載の情報処理装置において、
前記ユーザの指の長さに関する情報を取得する手段を含み、
前記ユーザの指の長さに関する前記情報に基づいて、前記判定手段による前記判定が実行される上限回数を設定する、
ことを特徴とする情報処理装置。
【請求項６】
タッチパネルと、ユーザによって接触された前記タッチパネル上の複数の接触位置を検出する検出手段と、を含む情報処理装置の制御方法において、
前記複数の接触位置のうちの一の接触位置に基づいて設定され、かつ、該一の接触位置を含んでなる対象領域内に、前記複数の接触位置のうちの他の接触位置のいずれかが含まれるか否かの判定を実行する判定ステップと、
前記他の接触位置のいずれかが前記対象領域内に含まれると前記判定手段によって判定された場合、該対象領域として設定されていた領域外の領域を含み、かつ、前記一の接触位置及び該他の接触位置を含んでなる領域を、新たな対象領域として、前記一の接触位置に基づいて設定する設定ステップと、
前記判定手段による前記判定が複数回実行された場合、前記一の接触位置と、該複数回の判定の各々において前記対象領域に含まれると判定された接触位置とに基づいて、処理を実行する処理実行ステップと、
を含み、
前記判定ステップでは、前記対象領域として設定されていた領域外の領域を含み、かつ、前記一の接触位置及び前記他の接触位置を含んでなる領域が前記新たな対象領域として前記設定ステップによって設定された場合に、前記複数の接触位置のうちの、当該一の接触位置及び当該他の接触位置以外の接触位置のいずれかが当該新たな対象領域内に含まれるか否かの判定を実行する、
ことを特徴とする情報処理装置の制御方法。
【請求項７】
タッチパネルと、ユーザによって接触された前記タッチパネル上の複数の接触位置を検出する検出手段と、を含むコンピュータを、
前記複数の接触位置のうちの一の接触位置に基づいて設定され、かつ、該一の接触位置を含んでなる対象領域内に、前記複数の接触位置のうちの他の接触位置のいずれかが含まれるか否かの判定を実行する判定手段、
前記他の接触位置のいずれかが前記対象領域内に含まれると前記判定手段によって判定された場合、該対象領域として設定されていた領域外の領域を含み、かつ、前記一の接触位置及び該他の接触位置を含んでなる領域を、新たな対象領域として、前記一の接触位置に基づいて設定する設定手段、及び、
前記判定手段による前記判定が複数回実行された場合、前記一の接触位置と、該複数回の判定の各々において前記対象領域に含まれると判定された接触位置とに基づいて、処理を実行する処理実行手段、
として機能させ、
前記判定手段は、前記対象領域として設定されていた領域外の領域を含み、かつ、前記一の接触位置及び前記他の接触位置を含んでなる領域が前記新たな対象領域として前記設定手段によって設定された場合に、前記複数の接触位置のうちの、当該一の接触位置及び当該他の接触位置以外の接触位置のいずれかが当該新たな対象領域内に含まれるか否かの判定を実行する、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、情報処理装置の制御方法、及びプログラムに関する。
【背景技術】
【０００２】
タッチパネルを備えた情報処理装置が知られている。例えば特許文献１には、タッチパネルを使用してプレイされるゲームを実行するゲーム装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２３３８３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記のような情報処理装置では、ユーザによって接触されたタッチパネル上の複数の位置を検出可能に構成されている場合がある。このような情報処理装置では、一本の指によって触られている複数の位置に基づいて処理を実行するようにしたい場合がある。しかしながら、そのようなことを実現するためには、一本の指によって触られている複数の位置を特定する必要がある。
【０００５】
本発明は上記課題に鑑みてなされたものであって、その目的は、一本の指によって触られている複数の位置を好適に特定することが可能な情報処理装置、情報処理装置の制御方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明に係る情報処理装置は、タッチパネルと、ユーザによって接触された前記タッチパネル上の複数の接触位置を検出する検出手段と、を含む情報処理装置において、前記複数の接触位置のうちの一の接触位置に基づいて設定され、かつ、該一の接触位置を含んでなる対象領域内に、前記複数の接触位置のうちの他の接触位置のいずれかが含まれるか否かの判定を実行する判定手段と、前記他の接触位置のいずれかが前記対象領域内に含まれると前記判定手段によって判定された場合、該対象領域として設定されていた領域外の領域を含み、かつ、前記一の接触位置及び該他の接触位置を含んでなる領域を、新たな対象領域として、前記一の接触位置に基づいて設定する設定手段と、前記判定手段による前記判定が複数回実行された場合、前記一の接触位置と、該複数回の判定の各々において前記対象領域に含まれると判定された接触位置とに基づいて、処理を実行する処理実行手段と、を含むことを特徴とする。
【０００７】
また、本発明に係る情報処理装置の制御方法は、タッチパネルと、ユーザによって接触された前記タッチパネル上の複数の接触位置を検出する検出手段と、を含む情報処理装置の制御方法において、前記複数の接触位置のうちの一の接触位置に基づいて設定され、かつ、該一の接触位置を含んでなる対象領域内に、前記複数の接触位置のうちの他の接触位置のいずれかが含まれるか否かの判定を実行する判定ステップと、前記他の接触位置のいずれかが前記対象領域内に含まれると前記判定手段によって判定された場合、該対象領域として設定されていた領域外の領域を含み、かつ、前記一の接触位置及び該他の接触位置を含んでなる領域を、新たな対象領域として、前記一の接触位置に基づいて設定する設定ステップと、前記判定手段による前記判定が複数回実行された場合、前記一の接触位置と、該複数回の判定の各々において前記対象領域に含まれると判定された接触位置とに基づいて、処理を実行する処理実行ステップと、を含むことを特徴とする。
【０００８】
また、本発明に係るプログラムは、タッチパネルと、ユーザによって接触された前記タッチパネル上の複数の接触位置を検出する検出手段と、を含むコンピュータを、前記複数の接触位置のうちの一の接触位置に基づいて設定され、かつ、該一の接触位置を含んでなる対象領域内に、前記複数の接触位置のうちの他の接触位置のいずれかが含まれるか否かの判定を実行する判定手段、前記他の接触位置のいずれかが前記対象領域内に含まれると前記判定手段によって判定された場合、該対象領域として設定されていた領域外の領域を含み、かつ、前記一の接触位置及び該他の接触位置を含んでなる領域を、新たな対象領域として、前記一の接触位置に基づいて設定する設定手段、及び、前記判定手段による前記判定が複数回実行された場合、前記一の接触位置と、該複数回の判定の各々において前記対象領域に含まれると判定された接触位置とに基づいて、処理を実行する処理実行手段、として機能させるためのプログラムである。
【０００９】
また、本発明に係る情報記憶媒体は、上記プログラムを記録したコンピュータ読み取り可能な情報記憶媒体である。
【００１０】
本発明によれば、一本の指によって触られている複数の位置を好適に特定することが可能になる。
【００１１】
また本発明の一態様では、前記判定手段は、前記一の接触位置からの距離が基準距離以下である対象領域内に、前記他の接触位置のいずれかが含まれるか否かを判定し、前記設定手段は、前記他の接触位置のいずれかが前記対象領域内に含まれると前記判定手段によって判定された場合、該対象領域における前記基準距離よりも長い距離を新たな基準距離として設定することによって前記新たな対象領域を設定するようにしてもよい。
【００１２】
また本発明の一態様では、前記検出手段は、所定の上限数の接触位置を検出可能であり、前記判定制御手段は、前記他の接触位置のいずれかが前記対象領域内に含まれると前記判定手段によって判定された場合、前記対象領域内に含まれると判定された該接触位置を記憶手段に記憶させる手段と、前記他の接触位置のいずれかが前記対象領域内に含まれると前記判定手段によって判定された場合、前記対象領域内に含まれると判定された該接触位置の代わりに、新たな接触位置を前記検出手段に検出させる手段と、を含み、前記処理実行手段は、前記記憶手段に記憶された、前記対象領域内に含まれると判定された接触位置に基づいて、前記処理を実行するようにしてもよい。
【００１３】
また本発明の一態様では、前記ユーザの指の長さに関する情報を取得する手段を含み、前記ユーザの指の長さに関する前記情報に基づいて、前記対象領域の大きさを制御するようにしてもよい。
【００１４】
また本発明の一態様では、前記ユーザの指の長さに関する情報を取得する手段を含み、前記ユーザの指の長さに関する前記情報に基づいて、前記判定手段による前記判定が実行される上限回数を設定するようにしてもよい。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１，２実施形態に係る情報処理装置の外観の一例を示す図である。
【図２】情報処理装置のハードウェア構成の一例を示す図である。
【図３】検出位置データの一例を示す図である。
【図４】ギターアプリケーションの画面の一例を示す図である。
【図５】ギターアプリケーションの遊び方を説明するための図である。
【図６】情報処理装置の機能ブロック図である。
【図７】判定部及び判定制御部の処理の一例について説明するための図である。
【図８】処理実行部の処理の一例について説明するための図である。
【図９】情報処理装置が実行する処理の一例を示すフロー図である。
【図１０Ａ】行列データの一例を示す図である。
【図１０Ｂ】行列データの一例を示す図である。
【図１１】情報処理装置が実行する処理について説明するための図である。
【図１２】ゲーム画面の一例を示す図である。
【図１３】ゲームフィールドの一例を示す図である。
【図１４】タッチパネルへの指の接触のさせ方の一例を示す図である。
【図１５】タッチパネルへの指の接触のさせ方の他の一例を示す図である。
【図１６】タッチパネルへの指の接触のさせ方の他の一例を示す図である。
【図１７】タッチパネルへの指の接触のさせ方の他の一例を示す図である。
【図１８】判定部及び判定制御部の処理の一例について説明するための図である。
【図１９】処理実行部の処理の一例について説明するための図である。
【図２０】情報処理装置が実行する処理の一例を示すフロー図である。
【図２１】ドライブゲームのゲーム画面の一例を示す図である。
【図２２】認証機能の画面の一例を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態の例について図面に基づき詳細に説明する。本発明の実施形態に係る情報処理装置は、例えば、携帯電話機、携帯情報端末、パーソナルコンピュータ、携帯ゲーム機、業務用ゲーム機、又は家庭用ゲーム機（据置型ゲーム機）等によって実現される。ここでは、本発明の実施形態に係る情報処理装置を携帯電話機（又は携帯情報端末）によって実現する場合について説明する。
【００１７】
［第１実施形態］
まず、本発明の第１実施形態について説明する。図１は、本発明の第１実施形態に係る情報処理装置の外観の一例を示す。また、図２は、本発明の第１実施形態に係る情報処理装置のハードウェア構成の一例を示す。図１及び図２に示すように、情報処理装置１０は、制御部１１、記憶部１２、タッチパネル１３、表示部１４、音声出力部１５、及び通信部１６を含む。
【００１８】
制御部１１は、例えばマイクロプロセッサを含んで構成される。制御部１１は、記憶部１２に記憶されたオペレーティングシステム又はその他のプログラムに従って、処理を実行する。例えば、情報処理装置１０の各部を制御するための処理が実行される。制御部１１は通常の携帯電話機としての処理（発呼、着呼の処理や、通話に関する処理）も行うが、以下では本発明に関連する処理について主に説明する。制御部１１によって実行される処理の具体的内容については後述する。
【００１９】
記憶部１２はメインメモリと不揮発性メモリとを含む。不揮発性メモリには制御部１１によって実行されるプログラムが記憶される。例えば、このプログラムは、インターネット等の通信ネットワークを介してサーバ装置からダウンロードされて不揮発性メモリに格納される。または、このプログラムは、メモリカード等のコンピュータ読み取り可能な情報記憶媒体から複写されて不揮発性メモリに格納される。メインメモリには、不揮発性メモリから読み出されるプログラムや、制御部１１が処理を実行する場合に必要なデータが書き込まれる。
【００２０】
タッチパネル１３は一般的なタッチパネルであり、ユーザによって接触された位置を検出する。タッチパネル１３は、ユーザによって接触された複数の位置を検出できるようになっている。タッチパネル１３としては、例えば静電容量方式のタッチパネルが用いられる。静電容量方式のタッチパネルでは、タッチパネルの表面がユーザによって接触された場合に生じる電荷の変化に基づいて、ユーザによって接触された位置が検出される。
【００２１】
タッチパネル１３は、ユーザによって接触された位置に応じた情報を供給する。オペレーティングシステムは、タッチパネル１３から供給される情報に基づいて、ユーザによって接触されている位置を取得するようになっている。例えば、オペレーティングシステムは最大で所定数の接触位置を取得し、それらの接触位置を記憶部１２に記憶させるようになっている。なお以下では、オペレーティングシステムによって最大で５つの接触位置が取得され、記憶部１２に記憶されることとして説明する。
【００２２】
図３は、記憶部１２に記憶される検出位置データの一例を示す。検出位置データは、オペレーティングシステムによって取得された接触位置に関するデータである。検出位置データでは、接触位置が、例えば図１に示すような、タッチパネル１３の左上頂点を原点Ｏとし、かつ、右方向及び下方向をそれぞれＸ軸正方向及びＹ軸正方向とするＸＹ座標系の座標値によって表される。
【００２３】
例えば、ユーザとタッチパネル１３との接触位置が３つ存在している場合、それら３つの接触位置が検出位置データに保持される。また例えば、ユーザとタッチパネル１３との接触位置が５つ存在している場合、それら５つの接触位置が検出位置データに保持される。図３はこの状態の検出位置データを示している。
【００２４】
また例えば、ユーザとタッチパネル１３との接触位置が６つ以上存在している場合、それらの接触位置のうちの、ユーザが第１番目〜第５番目に接触した位置（言い換えれば、タッチパネル１３が第１番目〜第５番目に検出した位置）が検出位置データに保持される。この場合、ユーザが第６番目以降に接触した位置（言い換えれば、タッチパネル１３が第６番目以降に検出した位置）は検出位置データに保持されない。
【００２５】
なお、検出位置データでは、ユーザが接触した順序（言い換えれば、タッチパネル１３が検出した順序）を特定可能に接触位置が記憶される。
【００２６】
いずれかの位置におけるユーザとタッチパネル１３との接触が解除された場合、その接触位置はタッチパネル１３によって検出されなくなる。この場合、その接触位置は検出位置データから削除される。例えば図３に示す状態において、位置（Ｘ１，Ｙ１）におけるユーザとタッチパネル１３との接触が解除された場合、位置（Ｘ１，Ｙ１）は検出位置データから削除される。
【００２７】
オペレーティングシステム以外のプログラムは、オペレーティングシステムによって記憶部１２に記憶された検出位置データを参照することによって、ユーザの接触位置を把握することができる。
【００２８】
ところで、タッチパネル１３は表示部１４の上に重ねて設けられる。このため、ユーザはタッチパネル１３の表面を触ることによって、表示部１４に表示される画面内の位置を指定することができる。
【００２９】
表示部１４は例えば液晶パネルである。表示部１４は制御部１１からの指示に従って画面を表示する。音声出力部１５は例えばスピーカ又はヘッドホン端子である。音声出力部１５は制御部１１からの指示に従って音声（例えば、音楽又は効果音等）を出力する。
【００３０】
通信部１６はデータ通信又は音声通信を行うためのものである。例えば、通信部１６は、制御部１１からの指示に従ってデータ通信を実行する。また例えば、通信部１６は、制御部１１からの発呼指示に従って携帯電話回線網を介して相手側を発呼する。また、携帯電話回線網を介して着信要求を受信した場合、通信部１６は制御部１１にこれを伝達する。そして、制御部１１からの着呼指示に従って、通信部１６は着呼の処理を実行する。
【００３１】
情報処理装置１０の記憶部１２には、ギターを弾いているような気分をユーザが味わうことが可能なギターアプリケーションプログラム（又はギター音楽シミュレーションゲームプログラム）が記憶されており、このギターアプリケーション（又はギター音楽シミュレーションゲーム）が実行されるようになっている。
【００３２】
図４は、表示部１４に表示されるギターアプリケーションの画面の一例を示す。図４は、図１に示す状態から右方向に９０度回転された状態の情報処理装置１０の表示部１４をユーザが見た場合の画面を示している。図４に示すように、ギターの一部分を表す画像が画面に表示される。具体的にはギターの第１弦２０ａ、第２弦２０ｂ，第３弦２０ｃ、第４弦２０ｄ、第５弦２０ｅ、第６弦２０ｆが表示される。また、ギターのフレット２１も表示される。なお以下では、第１弦２０ａ〜第６弦２０ｆのことを総称して「弦２０」と記載する場合がある。
【００３３】
図５はギターアプリケーションの遊び方を説明するための図である。実際のギターを弾く場合と同様に、ユーザが一又は複数の弦２０を押さえるようにして指Ｆａをタッチパネル１３上に接触させ、かつ、タッチパネル１３の左端領域２２内で弦２０をはじくように他の指Ｆｂでスライド操作（すなわち、指をタッチパネル１３に接触させた状態で指を移動させる操作）を行うと、実際のギターと同様の音が音声出力部１５から出力される。
【００３４】
なお、ユーザの操作（例えば、タッチパネル１３上で指をＹ軸方向にスライドさせる操作）に従って画面がスクロールし、その結果として、画面に表示されるギターの部分が変わるようにしてもよい。
【００３５】
以下、上記のようなギターアプリケーションにおいて、ユーザの一本の指によって触られている複数の位置を好適に特定するための技術について説明する。
【００３６】
図６は、情報処理装置１０で実現される機能ブロックを示す機能ブロック図である。図６に示すように、情報処理装置１０は、検出部３０、判定部３１、判定制御部３２、及び処理実行部３３を含む。これらの機能ブロックは、例えば制御部１１が記憶部１２から読み出されたプログラムを実行することによって実現される。
【００３７】
まず、検出部３０について説明する。検出部３０は、ユーザによって接触されたタッチパネル１３上の複数の接触位置を検出する。例えば、検出部３０は、所定の上限数の接触位置を検出可能である。ここでは、検出部３０が最大で５つの接触位置を検出可能であることとして説明する。検出部３０によって検出された接触位置は記憶部１２に記憶される（図３参照）。
【００３８】
次に、判定部３１、判定制御部３２、及び処理実行部３３について説明する。
【００３９】
判定部３１は、検出部３０によって検出された複数の接触位置のうちの一の接触位置に基づいて設定され、かつ、該一の接触位置を含んでなる対象領域内に、複数の接触位置のうちの他の接触位置のいずれかが含まれるか否かの判定を実行する。判定部３１によって他の接触位置のいずれかが対象領域内に含まれると判定された場合、判定制御部３２（設定手段）は、当該対象領域として設定されていた領域外の領域を含み、かつ、かつ、上記の一の接触位置及び該他の接触位置を含んでなる領域を、新たな対象領域として設定する。新たな対象領域を設定した後、判定制御部３２は判定部３１に上記の判定を再実行させる。また、処理実行部３３は、上記の一の接触位置と、判定部３１によって実行された複数回の判定の各々において対象領域に含まれると判定された接触位置と、に基づいて、処理を実行する。
【００４０】
まず、判定部３１及び判定制御部３２の処理について詳細に説明する。図７は、判定部３１及び判定制御部３２の処理の一例について説明するための図である。図７において、符号４０ａ，４０ｂ，４０ｃ，４０ｄ，４０ｅは検出部３０によって検出された接触位置を示している。図７に示す接触位置４０ａ〜４０ｅは、図５に示すようにしてユーザが指Ｆａ，Ｆｂをタッチパネル１３に接触させた場合に検出部３０によって検出される接触位置の一例を示している。すなわち、接触位置４０ａ〜４０ｄは指Ｆａの接触位置であり、接触位置４０ｅは指Ｆｂの接触位置である。説明の簡便化のため、図７では接触位置４０ａ〜４０ｄと接触位置４０ｅとの間の距離は実際よりも短くなっている。
【００４１】
また、ここでは、ユーザの指Ｆａが指先から根元に向かって徐々にタッチパネル１３に接触したこととする。つまり、指Ｆａの指先とタッチパネル１３との接触位置４０ａが最初に検出され、その後、接触位置４０ｂ，４０ｃがこの順番で検出され、その後、指Ｆａの根元とタッチパネル１３との接触位置４０ｄが検出されたこととする。さらに、その後、指Ｆｂがタッチパネル１３に接触し、指Ｆｂとタッチパネル１３との接触位置４０ｅが検出されたこととする。要するに、ここでは、図７に示す接触位置４０ａ，４０ｂ，４０ｃ，４０ｄ，４０ｅが、それぞれ、図３における第１，２，３，４，５番目の接触位置（Ｘ１，Ｙ１）、（Ｘ２，Ｙ２）、（Ｘ３，Ｙ３）、（Ｘ４，Ｙ４）、（Ｘ５，Ｙ５）に相当していることとしている。
【００４２】
図７に示す例の場合、まず、判定部３１は、最初に検出された接触位置４０ａを中心とした半径Ｒａの円形領域である対象領域４１ａ内に、接触位置４０ａ以外の接触位置４０ｂ〜４０ｅのいずれかが含まれるか否かを判定する。なお、半径Ｒａの大きさは、例えば、タッチパネル１３の分解能及びサイズ等を考慮して決定される。後述の半径Ｒｂ，Ｒｃ，Ｒｄも同様である。
【００４３】
図７に示す例の場合、接触位置４０ａの次に検出された接触位置４０ｂが対象領域４１ａ内に含まれている。このため、接触位置４０ｂが対象領域４１ａ内に含まれていると判定部３１によって判定される。この場合、判定制御部３２（設定手段）は、対象領域４１ａの半径Ｒａよりも大きい半径の円形領域を新たな対象領域として設定する。すなわち、判定制御部３２は、接触位置４０ａを中心とした半径Ｒｂ（Ｒｂ＞Ｒａ）の円形領域である対象領域４１ｂを新たな対象領域として設定する。そして、判定制御部３２は判定部３１に判定を再実行させる。この場合、判定部３１は、接触位置４０ａ，４０ｂ以外の接触位置４０ｃ〜４０ｅのいずれかが対象領域４１ｂ内に含まれるか否かを判定する。
【００４４】
図７に示す例の場合、接触位置４０ｂの次に検出された接触位置４０ｃが対象領域４１ｂ内に含まれている。このため、接触位置４０ｂが対象領域４１ｂ内に含まれていると判定部３１によって判定される。この場合、判定制御部３２（設定手段）は、対象領域４１ｂの半径Ｒｂよりも大きい半径の円形領域を新たな対象領域として設定する。すなわち、判定制御部３２は、接触位置４０ａを中心とした半径Ｒｃ（Ｒｃ＞Ｒｂ）の円形領域である対象領域４１ｃを新たな対象領域として設定する。そして、判定制御部３２は判定部３１に判定を再実行させる。この場合、判定部３１は、接触位置４０ａ〜４０ｃ以外の接触位置４０ｄ，４０ｅのいずれかが対象領域４１ｃ内に含まれるか否かを判定する。
【００４５】
図７に示す例の場合、接触位置４０ｃの次に検出された接触位置４０ｄが対象領域４１ｃ内に含まれている。このため、接触位置４０ｄが対象領域４１ｃ内に含まれていると判定部３１によって判定される。この場合、判定制御部３２（設定手段）は、対象領域４１ｃの半径Ｒｃよりも大きい半径の円形領域を新たな対象領域として設定する。すなわち、判定制御部３２は、接触位置４０ａを中心とした半径Ｒｄ（Ｒｄ＞Ｒｃ）の円形領域である対象領域４１ｄを新たな対象領域として設定する。そして、判定制御部３２は判定部３１に判定を再実行させる。この場合、判定部３１は、接触位置４０ａ〜４０ｄ以外の接触位置４０ｅが対象領域４１ｄ内に含まれるか否かを判定する。
【００４６】
図７に示す例の場合、接触位置４０ｄの次に検出された接触位置４０ｅが対象領域４１ｄ内に含まれていない。このため、接触位置４０ｅは対象領域４１ｄ内に含まれていないと判定部３１によって判定される。
【００４７】
次に、処理実行部３３の処理について詳細に説明する。図７に示した例の場合、処理実行部３３は、接触位置４０ａと、判定部３１によって実行された複数回の判定の各々において対象領域４１ａ〜４１ｃに含まれると判定された接触位置４０ｂ〜４０ｄとに基づいて、処理を実行する。例えば、処理実行部３３は、接触位置４０ａと接触位置４０ｂ〜４０ｄとに基づいて指領域を設定し、この指領域に基づいて、ギター音の出力制御処理を実行する。
【００４８】
図８は、処理実行部３３の処理の一例について説明するための図である。図８に示すように、処理実行部３３は、接触位置４０ａ〜４０ｄを結ぶ線５０に基づいて、指領域５１を設定する。例えば、線５０からの距離が所定距離以下である領域が指領域５１として設定される。そして、処理実行部３３は、指領域５１がユーザの指によって接触されている領域と判断して、ギター音の出力制御処理を実行する。詳細については後述する（図９のステップＳ１１２参照）。
【００４９】
判定部３１、判定制御部３２、及び処理実行部３３を実現するために情報処理装置１０で実行される処理について説明する。図９は、図５に示す左端領域２２内でスライド操作が行われた場合にギター音を出力するために情報処理装置１０で実行される処理の一例を示すフロー図である。制御部１１が記憶部１２から読み出されたギターアプリケーションプログラムに従って図９に示す処理を実行することによって、制御部１１が判定部３１、判定制御部３２、及び処理実行部３３として機能するようになる。
【００５０】
図９に示すように、まず、制御部１１は行列データＭを初期生成する（Ｓ１０１）。行列データＭは、下記に説明する処理（ステップＳ１０２〜Ｓ１１１）によって行われる判定の結果を登録するためのデータである。図１０Ａは、ステップＳ１０１で初期生成された行列データＭの一例を示す。例えば、行列データＭの行数及び列数は情報処理装置１０で検出可能な接触位置の上限数に設定される。本実施形態の場合、最大で５つの接触位置が検出されるため、図１０Ａに示す行列データＭは５行×５列の行列データになっている。ステップＳ１０１が実行された直後では、図１０Ａに示すように、いずれの要素もＮＵＬＬ状態（情報が登録されていない状態）になっている。
【００５１】
図１０Ｂは、下記に説明する処理（ステップＳ１０２〜Ｓ１１１）が完了した後の行列データＭの一例を示している。下記に説明する処理が実行されることによって、図１０Ｂに示すように、行列データＭの要素に接触位置が登録される。下記に説明する処理では、同じ指によって接触された複数の位置が同じ行に登録されるようになっている。
【００５２】
図１０Ｂに示す行列データＭは図７に示す状態に対応している。このため、図１０Ｂに示す行列データＭでは、指Ｆａの接触位置４０ａ，４０ｂ，４０ｃ，４０ｄが第１行に登録されている。また、指Ｆｂの接触位置４０ｅが第２行に登録されている。
【００５３】
ステップＳ１０１の処理が実行された後、制御部１１は変数ｉ，ｊ，ｎを１に初期化する（Ｓ１０２）。なお、図１０Ａ及び図１０Ｂに示すように、変数ｉは行列データＭの行番号を示すために用いられる変数であり、変数ｊは行列データＭの列番号を示すために用いられる変数である。なお、ここでは、行列データＭの第ｉ行及び第ｊ列の要素のことを「Ｍ（ｉ，ｊ）」のように記載する。例えば、行列データＭの第１行及び第１列の要素のことを「Ｍ（１，１）」のように記載する。
【００５４】
ステップＳ１０２の処理が実行された後、制御部１１は、検出位置データに記憶されている第ｎ番目の接触位置（第ｎ番目に検出された接触位置）がすでに行列データＭに登録されているか否かを判定する（Ｓ１０３）。第ｎ番目に検出された接触位置が行列データＭに登録されていない場合、制御部１１は、第ｎ番目の接触位置を行列データＭの要素Ｍ（ｉ，１）に登録する（Ｓ１０４）。例えば、変数ｉ，ｎの値がいずれも「１」である場合、図１０Ｂに示すように、第１番目の接触位置（Ｘ１，Ｙ１）が行列データＭの要素Ｍ（１，１）に登録される。
【００５５】
ステップＳ１０４の処理が実行された後、制御部１１は対象領域を設定する（Ｓ１０５）。具体的には、制御部１１は、行列データＭの要素Ｍ（ｉ，１）に登録された接触位置を中心とする円形領域を対象領域として設定する。例えば、行列データＭの要素Ｍ（ｉ，１）に第１番目の接触位置（Ｘ１，Ｙ１）が登録されている場合には、第１番目の接触位置（Ｘ１，Ｙ１）を中心とする円形領域が対象領域として設定される。例えば、図７に示すような対象領域４１ａ（又は４１ｂ〜４１ｄ）が設定される。
【００５６】
この場合、対象領域の半径は変数ｊの値に基づいて設定される。変数ｊと対象領域の半径との対応関係は、変数ｊの値が大きくなると対象領域の半径も大きくなるように設定される。例えば、変数ｊの値が１である場合、対象領域の半径はＲａ（図７参照）に設定される。また例えば、変数ｊの値が２である場合、対象領域の半径はＲｂ（図７参照）に設定される。さらに例えば、変数ｊの値が３である場合、対象領域の半径はＲｃ（図７参照）に設定される。また例えば、変数ｊの値が４である場合、対象領域の半径はＲｄ（図７参照）に設定される。
【００５７】
ステップＳ１０５の処理が実行された後、制御部１１は、検出されている接触位置のうちに、下記の２つの条件の両方を満足する接触位置が存在するか否かを判定する（Ｓ１０６）。
（１）行列データＭに登録されていない接触位置であること。
（２）対象領域内に含まれている接触位置であること。
【００５８】
なお、上記の２つの条件の両方を満足する接触位置が複数存在していた場合、それらの複数の接触位置のうちで、行列データＭの要素Ｍ（ｉ，ｊ）に登録されている接触位置に最も近い接触位置を選択し、その接触位置を後述のステップＳ１０８の処理の対象とするようにするとよい。
【００５９】
一本の指がタッチパネル１３に接触した場合に検出される、隣り合う２つの接触位置の間隔は、タッチパネル１３の分解能に応じた最小間隔になるはずである。このため、上記のような場合、要素Ｍ（ｉ，ｊ）に登録されている接触位置に最も近い接触位置が、要素Ｍ（ｉ，ｊ）に登録されている接触位置と同じ指で接触された位置である可能性が高いと考えられる。そこで、上記のような場合、要素Ｍ（ｉ，ｊ）に登録されている接触位置に最も近い接触位置を選択するようにすればよい。
【００６０】
また、変数ｊの値が２以上である場合（すなわち、第ｉ行にすでに２つの接触位置が登録されている場合）には、上記の２つの条件の他に、図１１を用いて説明するような条件を加えるようにしてもよい。なお、図１１において、接触位置４０ｆは行列データＭの要素Ｍ（ｉ，ｊ−１）に登録されている接触位置を示しており、接触位置４０ｇは行列データＭの要素（ｉ，ｊ）に登録されている接触位置を示している。また、接触位置４０ｈは、ステップＳ１０６において条件を満足するか否かの判定の対象となっている接触位置を示している。
【００６１】
図１１に示す例では、接触位置４０ｆから接触位置４０ｇへの方向６０と、接触位置４０ｇから接触位置４０ｈへの方向６１との間の角度θが基準角度θｃよりも大きくなっている。このような場合、接触位置４０ｈは接触位置４０ｆ，４０ｇと同じ指で接触された位置でないとみなし、接触位置４０ｈを無視するようにしてもよい。すなわち、ステップＳ１０６では、上記の２つの条件の他に、下記の条件を加えるようにしてもよい。そして、ステップＳ１０６では、制御部１１がこれらの３つの条件のすべてを満足する接触位置が存在するか否かを判定するようにしてもよい。
（３）行列データＭの要素Ｍ（ｉ，ｊ−１）に登録されている接触位置から要素（ｉ，ｊ）に登録されている接触位置への方向６０と、要素（ｉ，ｊ）に登録されている接触位置から接触位置への方向６１との間の角度θが基準角度θｃ以下であること。
【００６２】
ステップＳ１０６で上記のような条件を満足する接触位置が存在すると判定された場合、制御部１１は変数ｊの値に１を加算し（Ｓ１０７）、その接触位置を行列データＭの要素Ｍ（ｉ，ｊ）に登録する（Ｓ１０８）。そして、制御部１１はステップＳ１０５の処理を再実行する。
【００６３】
一方、ステップＳ１０６で上記のような接触位置が存在しないと判定された場合、制御部１１は、変数ｉ，ｎの値にそれぞれ１を加算し、変数ｊの値を１に初期化する（Ｓ１０９）。そして、制御部１１は変数ｎの値が定数Ｎ以下であるか否かを判定する（Ｓ１１１）。定数Ｎは、情報処理装置１０で検出可能な接触位置の上限数であり、本実施形態の場合には「５」である。変数ｎの値が定数Ｎ以下である場合、制御部１１はステップＳ１０３の処理を再実行する。一方、変数ｎの値が定数Ｎ以下でない場合、制御部１１は後述のステップＳ１１２の処理を実行する。
【００６４】
なお、ステップＳ１０３で第ｎ番目の接触位置がすでに行列データＭに登録されていると判定された場合、制御部１１は変数ｎの値に１を加算する（Ｓ１１０）。そして、制御部１１はステップＳ１１１の処理を実行する。
【００６５】
ここで、図７に示すような接触位置４０ａ〜４０ｅが図３に示す検出位置データに記憶されている場合を想定する。なお、接触位置４０ａ，４０ｂ，４０ｃ，４０ｄ，４０ｅが、それぞれ、第１，２，３，４，５番目の接触位置（Ｘ１，Ｙ１）、（Ｘ２，Ｙ２）、（Ｘ３，Ｙ３）、（Ｘ４，Ｙ４）、（Ｘ５，Ｙ５）に相当していることとする。
【００６６】
この場合、図９に示す処理によれば、まず、ステップＳ１０４の処理において、第１番目の接触位置である接触位置４０ａが行列データＭの要素Ｍ（１，１）に登録される（図１０Ｂ参照）。また、ステップＳ１０５の処理において対象領域４１ａが設定される。第２番目の接触位置である接触位置４０ｂは対象領域４１ａに含まれるため、ステップＳ１０７，Ｓ１０８の処理が実行されることによって、接触位置４０ｂが行列データＭの要素Ｍ（１，２）に登録される（図１０Ｂ参照）。
【００６７】
その後、再び実行されるステップＳ１０５の処理において対象領域４１ｂが設定される。第３番目の接触位置である接触位置４０ｃは対象領域４１ｂに含まれるため、ステップＳ１０７，Ｓ１０８の処理が実行されることによって、接触位置４０ｃが行列データＭの要素Ｍ（１，３）に登録される（図１０Ｂ参照）。さらに、再び実行されるステップＳ１０５の処理において対象領域４１ｃが設定される。第４番目の接触位置である接触位置４０ｄは対象領域４１ｃに含まれるため、ステップＳ１０７，Ｓ１０８の処理が実行されることによって、接触位置４０ｄが行列データＭの要素Ｍ（１，４）に登録される（図１０Ｂ参照）。
【００６８】
その後、再び実行されるステップＳ１０５の処理において対象領域４１ｄが設定される。しかし、第５番目の接触位置である接触位置４０ｅは対象領域４１ｄに含まれないため、行列データＭの第１行に接触位置４０ｅは登録されない。ステップＳ１０９，Ｓ１１１，Ｓ１０３，Ｓ１０４の処理が実行されることによって、接触位置４０ｅは第１行の次の行である第２行の要素Ｍ（２，１）に登録される（図１０Ｂ参照）。
【００６９】
ステップＳ１１１において変数ｎが定数Ｎ以下でないと判定された場合、制御部１１はギター音出力処理を実行する（Ｓ１１２）。
【００７０】
例えば、制御部１１は、行列データＭの各行に登録された接触位置を各行ごとに取得する。そして、一つの行に一つの接触位置のみが登録されている場合、制御部１１は、その接触位置からの距離が所定距離以下である領域を指領域５１として設定する。一方、一つの行に複数の接触位置が登録されている場合、制御部１１は、例えば図８に示すように、それらの複数の接触位置を結ぶ線５０に基づいて指領域５１を設定する。
【００７１】
制御部１１は、上記のようにして設定された指領域５１に基づいて、ギターの第１弦２０ａ〜第６弦２０ｆがどのように押さえられているかを判断する。すなわち、制御部１１は、どの弦２０が押さえられているのかや弦２０のどの位置が押さえられているのかを制御部１１は判断する。そして制御部１１は、その判断結果に基づいて、ギター音を音声出力部１５から出力させる。記憶部１２には、第１弦２０ａ〜第６弦２０ｆがどのように押さえられているのかに関する情報と、ギター音を出力するためのギター音データと、が対応づけて予め記憶されている。制御部１１は記憶部１２の記憶内容を参照して、上記の判断結果に対応するギター音データを読み出し、そのギター音データに基づいてギター音を音声出力部１５から出力させる。以上で本処理は終了する。
【００７２】
以上説明した第１実施形態に係る情報処理装置１０によれば、一本の指によって触られている複数の位置を好適に特定することが可能になる。
【００７３】
［第２実施形態］
次に、本発明の第２実施形態について説明する。本発明の第２実施形態に係る情報処理装置の外観及びハードウェア構成は第１実施形態（図１，２）と同様である。
【００７４】
第２実施形態に係る情報処理装置１０（ゲーム装置）では、記憶部１２に記憶されたゲームプログラムに基づいてゲームが実行される。例えば、自律的に移動するゲームキャラクタをゴール（目標位置）まで誘導することを目指すゲームが実行される。
【００７５】
図１２は表示部１４に表示されるゲーム画面の一例を示す。ゲーム画面にはゲームフィールドの一部が表示される。ユーザは、タッチパネル１３に接触した指を動かすことによって、ゲーム画面をスクロールさせることができる。なお、ゲーム画面にはゲームフィールドの全体が表示されるようにしてもよい。
【００７６】
図１３はゲームフィールドの一例を示す。図１３に示すように、ゲームフィールド７０には４体のゲームキャラクタ７１ａ，７１ｂ，７１ｃ，７１ｄが配置される。ゲームキャラクタ７１ａにはアルファベット文字「Ａ」が付されている。また、ゲームキャラクタ７１ｂにはアルファベット文字「Ｂ」が付されている。ゲームキャラクタ７１ｃにはアルファベット文字「Ｃ」が付されており、ゲームキャラクタ７１ｄにはアルファベット文字「Ｄ」が付されている。以下では、ゲームキャラクタ７１ａ，７１ｂ，７１ｃ，７１ｄのことを総称して「ゲームキャラクタ７１」と記載する場合がある。
【００７７】
ゲームキャラクタ７１は床７２上を自律的に移動する。図１３に示すように、床７２は基本的に水平になっているが、斜面になっているところもあれば、階段状になっているところもある。ゲームキャラクタ７１は壁７３に当たると、向きを変えて、それまでの進行方向とは逆の方向への移動を開始する。
【００７８】
図１３に示すように、床７２には穴７４が設けられている。ゲームキャラクタ７１が穴７４まで移動した場合、原則として、ゲームキャラクタ７１は下に落ちる。つまり、ゲームキャラクタ７１は、穴７４の下に位置している床７２まで落ち、その床７２上を移動し始める。
【００７９】
ユーザは、穴７４を塞ぐようにして、指をタッチパネル１３上に接触させることによって、ゲームキャラクタ７１が穴７４に落ちないようにすることができる。例えば図１４に示すように、ユーザが穴７４を塞ぐように指Ｆをタッチパネル１３上に置いた場合、ユーザの指Ｆは穴７４の一端から他端へと渡された橋の役割を果たすようになる。その結果、ゲームキャラクタ７１が穴７４に落ちることなく移動できるようになる。
【００８０】
また、穴７４が比較的大きい場合には、例えば図１５に示すように、ユーザは、指Ｆ全体で穴７４を塞ぐようにして、指Ｆをタッチパネル１３に接触させることによって、ゲームキャラクタ７１が穴７４に落ちないようにすることができる。
【００８１】
なお、例えば図１６に示すように、ユーザは、タッチパネル１３に接触した指Ｆを、ゲームキャラクタ７１の移動に合わせて移動することによって、ゲームキャラクタ７１が穴７４に落ちないようにすることもできる。
【００８２】
このゲームでは、ユーザは穴７４を指で塞ぐことによって、ゲームキャラクタ７１を家７５（ゴール）まで誘導することを目指す。家７５に到達したゲームキャラクタ７１は家７５に入る。
【００８３】
ただし、ゲームキャラクタ７１は予め定められた順序でしか家７５に入らないようになっている。すなわち、ゲームキャラクタ７１ａ〜７１ｄは、ゲームキャラクタ７１ａ，７１ｂ，７１ｃ，７１ｄの順序でのみ家７５に入るようになっている。このため、例えば、ゲームキャラクタ７１ｂが家７５に到達した場合であっても、ゲームキャラクタ７１ａが家７５に未だ到達していないのであれば（つまり、ゲームキャラクタ７１ａが家７５に入っていないのであれば）、ゲームキャラクタ７１ｂは家７５に入らないようになっている。この場合、ゲームキャラクタ７１ｂは家７５を通過して移動し続ける。このため、ユーザは、ゲームキャラクタ７１ａ〜７１ｄがゲームキャラクタ７１ａ，７１ｂ，７１ｃ，７１ｄの順番で家７５に到達するように、ゲームキャラクタ７１ａ〜７１ｄを誘導する必要がある。
【００８４】
また、このゲームでは制限時間が設けられている。このため、ユーザは制限時間内にゲームキャラクタ７１ａ〜７１ｄが家７５に入るように誘導しなければならない。図１３に示すように、ゲーム画面には残り時間７６が表示されている。ユーザは、残り時間７６が零になる前にゲームキャラクタ７１ａ〜７１ｄが家７５に入るように目指す。
【００８５】
ところで、上記のようなゲームを実現する場合には、ユーザが指をタッチパネル１３にどのように接触させているかを把握する必要がある。
【００８６】
例えば図１７に示す例では、ユーザが穴７４の一端側に指Ｆａを接触させ、かつ、他端側に他の指Ｆｂを接触させている。このような場合、ユーザの指Ｆａ，Ｆｂは、穴７４の一端から他端へと渡された橋の役目を果たしていない。このため、ゲームキャラクタ７１が穴７４に落ちるようにする必要がある。
【００８７】
上記のような場合にゲームキャラクタ７１が穴７４に落ちるようにするためには、図１５に示すようにして指Ｆがタッチパネル１３に接触しているのか、又は図１７に示すようにして指Ｆａ，Ｆｂがタッチパネル１３に接触しているのかによって、ゲームキャラクタ７１の移動制御処理を異ならせる必要がある。以下、このようなことを実現するための構成について説明する。
【００８８】
第２実施形態に係る情報処理装置１０で実現される機能ブロックは第１実施形態と同様である（図６参照）。すなわち、第２実施形態に係る情報処理装置１０も、検出部３０、判定部３１、判定制御部３２、及び処理実行部３３を含む。第２実施形態における検出部３０の処理は第１実施形態と同様である。このため、ここでは説明を省略する。
【００８９】
第２実施形態における判定部３１及び判定制御部３２の処理も第１実施形態と同様である。図１８は、第２実施形態における判定部３１及び判定制御部３２の処理の一例について説明するための図である。図１８において、符号４０ａ，４０ｂ，４０ｃ，４０ｄ，４０ｅは、図１５に示すようにしてユーザが指Ｆをタッチパネル１３に接触させた場合に検出部３０によって検出される接触位置の一例を示している。
【００９０】
なお、ここでは、ユーザの指Ｆが指先から根元に向かって徐々にタッチパネル１３に接触したこととする。つまり、指Ｆの指先とタッチパネル１３との接触位置４０ａが最初に検出され、その後、接触位置４０ｂ，４０ｃ，４０ｄがこの順番で検出され、最後に、指Ｆの根元とタッチパネル１３との接触位置４０ｅが検出されたこととする。
【００９１】
図１８に示す例の場合、まず、判定部３１は、最初に検出された接触位置４０ａを中心とした半径Ｒａの円形領域である対象領域４１ａ内に、接触位置４０ａ以外の接触位置４０ｂ〜４０ｅのいずれかが含まれるか否かを判定する。第１実施形態と同様、半径Ｒａの大きさは、例えば、タッチパネル１３の分解能及びサイズ等を考慮して決定される。後述の半径Ｒｂ，Ｒｃ，Ｒｄも同様である。
【００９２】
図１８に示す例の場合、接触位置４０ａの次に検出された接触位置４０ｂが対象領域４１ａ内に含まれている。この場合、判定制御部３２は、接触位置４０ａを中心とした半径Ｒｂ（Ｒｂ＞Ｒａ）の円形領域である対象領域４１ｂを新たな対象領域として設定し、判定部３１に判定を再実行させる。この場合、判定部３１は、接触位置４０ａ，４０ｂ以外の接触位置４０ｃ〜４０ｅのいずれかが対象領域４１ｂ内に含まれるか否かを判定する。
【００９３】
図１８に示す例の場合、接触位置４０ｂの次に検出された接触位置４０ｃが対象領域４１ｂ内に含まれている。この場合、判定制御部３２は、接触位置４０ａを中心とした半径Ｒｃ（Ｒｃ＞Ｒｂ）の円形領域である対象領域４１ｃを新たな対象領域として設定し、判定部３１に判定を再実行させる。この場合、判定部３１は、接触位置４０ａ〜４０ｃ以外の接触位置４０ｄ，４０ｅのいずれかが対象領域４１ｃ内に含まれるか否かを判定する。
【００９４】
図１８に示す例の場合、接触位置４０ｃの次に検出された接触位置４０ｄが対象領域４１ｃ内に含まれている。この場合、判定制御部３２は、接触位置４０ａを中心とした半径Ｒｄ（Ｒｄ＞Ｒｃ）の円形領域である対象領域４１ｄを新たな対象領域として設定し、判定部３１に判定を再実行させる。この場合、判定部３１は、接触位置４０ａ〜４０ｄ以外の接触位置４０ｅが対象領域４１ｄ内に含まれるか否かを判定する。
【００９５】
図１８に示す例の場合、接触位置４０ｄの次に検出された接触位置４０ｅが対象領域４１ｄ内に含まれている。このため、接触位置４０ｅが対象領域４１ｄ内に含まれると判定部３１によって判定される。
【００９６】
第２実施形態における処理実行部３３の基本的な処理も第１実施形態と同様である。すなわち、図１８に示した例の場合、第２実施形態における処理実行部３３は、接触位置４０ａと、判定部３１によって実行された複数回の判定の各々において対象領域４１ａ〜４１ｄに含まれると判定された接触位置４０ｂ〜４０ｅとに基づいて、処理を実行する点で第１実施形態と共通する。
【００９７】
ただし、第２実施形態では上記のゲームプログラムが実行されるため、処理実行部３３の具体的な処理は第１実施形態とは異なる。例えば、第２実施形態における処理実行部３３は、接触位置４０ａと接触位置４０ｂ〜４０ｅとに基づいて当たり領域を設定し、この当たり領域に基づいて、ゲームキャラクタ７１の制御処理を実行する。
【００９８】
図１９は、第２実施形態における処理実行部３３の処理の一例について説明するための図である。図１９に示すように、処理実行部３３は、接触位置４０ａ〜４０ｅを結ぶ線８０に基づいて、当たり領域８１（橋）を設定する。例えば、線８０からの距離が所定距離以下である領域が当たり領域８１として設定される。そして、ゲームキャラクタ７１が当たり領域８１に到達した場合、処理実行部３３は、そのゲームキャラクタ７１が当たり領域８１上を移動するように、そのゲームキャラクタ７１の移動を制御する。
【００９９】
次に、第２実施形態に係る情報処理装置１０においてゲームが開始されてから終了するまでの間に実行される処理のうち、本発明に関連する処理の一例について説明する。第２実施形態に係る情報処理装置１０においてゲームが開始されてから終了するまでの間に実行される処理は図９に示す処理と類似する。ただし、図９におけるステップＳ１１２の代わりに、図２０に示す処理が実行される。
【０１００】
なお、図２０に示す処理は記憶部１２に記憶されるデータに基づいて実行される。図２０に示す処理について説明する前にこのデータについて説明する。
【０１０１】
例えば、ゲーム画面を表示するためのデータが記憶部１２に記憶される。具体的には、ゲームフィールド７０の画像データやゲームキャラクタ７１の画像データが記憶部１２に記憶される。
【０１０２】
また例えば、ゲームの現在の状況を示すデータ（以下「ゲーム状況データ」と記載する。）が記憶部１２に記憶される。例えば、下記に示すような情報がゲーム状況データに保持される。
・ゲームキャラクタ７１ａ〜７１ｄの状態を示す情報（例えば、位置及び進行方向等）
・制限時間の経過状況を示す情報（残り時間を示す情報）
・ゲームフィールド７０内のいずれの領域をゲーム画面に表示すべきかを示す情報
【０１０３】
なお、ゲームキャラクタ７１ａ〜７１ｄの状態を示す情報には、ゲームキャラクタ７１ａ〜７１ｄが家７５に入ったか否かを示す情報も含まれる。
【０１０４】
図２０に示す処理について説明する。図２０に示すように、まず、制御部１１は、行列データＭの内容に基づいて、当たり領域を設定する（Ｓ２０１）。例えば、制御部１１は、行列データＭの各行に登録された接触位置を各行ごとに取得する。一つの行に一つの接触位置のみが登録されている場合、制御部１１はその接触位置に基づいて当たり領域を設定する。例えば、制御部１１は、その接触位置を中心とし、かつ、所定距離を半径とする円領域を当たり領域８１として設定する。一方、一つの行に複数の接触位置が登録されている場合、制御部１１は、例えば図１９に示すように、それら複数の接触位置を結ぶ線８０に基づいて、当たり領域８１を設定する。
【０１０５】
ステップＳ２０１の処理が実行された後、制御部１１はゲームキャラクタ７１の状態情報を更新するための処理（図２０のＳ２０２〜Ｓ２０９）を実行する。この処理は、ゲームキャラクタ７１ａ〜７１ｄの各々について実行される。
【０１０６】
まず制御部１１は、ゲームキャラクタ７１が床７２又は当たり領域８１上に立っているか否かを判定する（Ｓ２０２）。そして、ゲームキャラクタ７１が床７２又は当たり領域８１上に立っていないと判定された場合、制御部１１は、ゲームキャラクタ７１が下に落下するようにして、ゲームキャラクタ７１の位置を更新する（Ｓ２０３）。この場合、ゲームキャラクタ７１の位置が、現在位置から下方向に所定距離だけ移動した位置に更新される。ステップＳ２０３の処理が実行された後、制御部１１は後述のステップＳ２０７の処理を実行する。
【０１０７】
一方、ゲームキャラクタ７１が床７２又は当たり領域８１上に立っていると判定された場合、制御部１１は、ゲームキャラクタ７１が進行方向に移動するようにして、ゲームキャラクタ７１の位置を更新する（Ｓ２０４）。この場合、ゲームキャラクタ７１の位置が、現在位置から進行方向に所定距離だけ移動した位置に更新される。
【０１０８】
ステップＳ２０４の処理が実行された後、制御部１１は、ゲームキャラクタ７１が壁７３に当たったか否かを判定する（Ｓ２０５）。そして、ゲームキャラクタ７１が壁７３に当たったと判定された場合、制御部１１は、ゲームキャラクタ７１の進行方向をそれまでの進行方向とは逆方向に変更する（Ｓ２０６）。
【０１０９】
ステップＳ２０６の処理が実行された場合、又は、ステップＳ２０５において、ゲームキャラクタ７１が壁７３に当たったと判定されなかった場合、制御部１１はゲームキャラクタ７１が家７５に到達したか否かを判定する（Ｓ２０７）。そして、ゲームキャラクタ７１が家７５に到達したと判定された場合、制御部１１は、そのゲームキャラクタ７１よりも先に家７５に入るべき全てのゲームキャラクタ７１が家７５に入っているか否かを判定する（Ｓ２０８）。例えば、家７５に到達したゲームキャラクタ７１がゲームキャラクタ７１ｃである場合、制御部１１は、ゲームキャラクタ７１ｃよりも先に家７５に入るべきゲームキャラクタ７１ａ，７１ｂの両方が既に家７５に入っているか否かを判定する。
【０１１０】
家７５に到達したゲームキャラクタ７１よりも先に家７５に入るべき全てのゲームキャラクタ７１が家７５に入っている場合、制御部１１は、家７５に到達したゲームキャラクタ７１を家７５に入れる（Ｓ２０９）。そして、制御部１１は全てのゲームキャラクタ７１が家７５に入ったか否かを判定する（Ｓ２１０）。すなわち、制御部１１は、ゲームキャラクタ７１ａ〜７１ｄがいずれも家７５に入っている否かを判定する。全てのゲームキャラクタ７１が家７５に入ったと判定された場合、制御部１１はゲームクリア画面を表示部１４に表示する（Ｓ２１３）。この場合、本処理は終了し、ゲームが終了する。
【０１１１】
ステップＳ２０７において、ゲームキャラクタ７１が家７５に到達したと判定されなかった場合、ステップＳ２０８において、家７５に到達したゲームキャラクタ７１よりも先に家７５に入るべき全てのゲームキャラクタ７１が家７５に入っていると判定されなかった場合、又は、ステップＳ２１０において、全てのゲームキャラクタ７１が家７５に入ったと判定されなかった場合、制御部１１は制限時間が経過したか否か（残り時間が零になったか否か）を判定する（Ｓ２１１）。そして、制限時間が経過したと判定された場合（残り時間が零になったと判定された場合）、制御部１１はゲームオーバー画面を表示部１４に表示する（Ｓ２１４）。この場合、本処理は終了し、ゲームは終了する。
【０１１２】
一方、制限時間が経過していないと判定された場合（残り時間が零になっていないと判定された場合）、制御部１１はゲーム画面を更新する（Ｓ２１２）。例えば、制御部１１は、ステップＳ２０２〜Ｓ２０９の処理によって更新されたゲームキャラクタ７１ａ〜７１ｄの状態情報（例えば位置及び進行方向等）に基づいて、ゲーム画面をＶＲＡＭに生成する。そして、ＶＲＡＭに生成されたゲーム画面は表示部１４に表示される。
【０１１３】
なお、ゲーム画面を生成する場合、制御部１１は、ユーザがゲーム画面のスクロール操作を行ったか否かを判定する。すなわち、制御部１１は、タッチパネル１３に接触した指をユーザが動かしたか否かを判定する。そして、タッチパネル１３に接触した指をユーザが動かした場合、制御部１１は、指の移動方向に基づいて、ゲームフィールド７０の表示対象領域（ゲーム画面に表示すべき領域）を変更する。このような処理が実行されることによって、ユーザの指の移動方向に応じた方向にゲーム画面がスクロールするようになる。
【０１１４】
ステップＳ２１２の処理が実行された後、制御部１１は図９のステップＳ１０１の処理を実行する。ゲームがクリアされる（すなわち、ステップＳ２１０において全てのゲームキャラクタ７１が家７５に入ったと判定される）か、又はゲームオーバーになる（ステップＳ２１１において制限時間が経過したと判定される）まで、ステップＳ１０１〜Ｓ１１１及びＳ２０１〜Ｓ２１２の処理が繰り返し実行される。この場合、ステップＳ１０１〜Ｓ１１１及びＳ２０１〜Ｓ２１２の処理は所定時間（例えば１／６０秒）ごとに実行される。
【０１１５】
以上説明した第２実施形態に係る情報処理装置１０によれば、一本の指によって触られている複数の位置を好適に特定することが可能になる。その結果、例えば、複数の位置が一本の指によって触られている場合（例えば図１５参照）と、複数の位置が複数の指によって触られている場合（例えば図１７参照）とで、異なるゲーム処理を実行できるようになる。
【０１１６】
なお、本発明は以上に説明した第１実施形態及び第２実施形態に限定されるものではない。
【０１１７】
（Ａ）例えば、図９のステップＳ１０６において、制御部１１は、第（ｎ＋ｊ）番目に検出された接触位置が上記の２つの条件の両方（又は上記の３つの条件のすべて）を満足するか否かを判定するようにしてもよい。そして、第（ｎ＋ｊ）番目に検出された接触位置が上記の２つの条件の両方（又は上記の３つの条件のすべて）を満足する場合、ステップＳ１０８において、制御部１１はその接触位置を行列データＭの要素Ｍ（ｉ，ｊ）に登録するようにしてもよい。一方、第（ｎ＋ｊ）番目に検出された接触位置が上記の２つの条件の両方（又は上記の３つの条件のすべて）を満足すると判定されかった場合、制御部１１はステップＳ１０９の処理を実行するようにしてもよい。
【０１１８】
複数の位置を一本の指によって触る場合、ユーザは最初に指先をタッチパネル１３に接触させ、その後、指の他の部分をタッチパネル１３に接触させるようにするのが一般的である。この場合、指の各部分は、指先から指の根元に向かう順番でタッチパネル１３と接触することになる。この点、上記のようにすれば、ユーザが一本の指によって複数の位置を触る場合の一般的な指の接触のさせ方を考慮して、一本の指によって触られている位置を特定することが可能になる。その結果として、一本の指によって触られている位置をより確実に特定することが可能になる。
【０１１９】
（Ｂ）例えば、図９のステップＳ１０４，Ｓ１０８では、行列データＭに登録された接触位置を検出位置データ（図３参照）から削除するようにしてもよい。
【０１２０】
例えば、接触位置（Ｘ１，Ｙ１）が行列データＭに登録された場合、接触位置（Ｘ１，Ｙ１）を検出位置データから削除するように、オペレーティングシステムに指示するようにしてもよい。そして、この指示に従って、オペレーティングシステムは接触位置（Ｘ１，Ｙ１）を検出位置データから削除するようにしてもよい。
【０１２１】
なお、上述したように、５つの接触位置が検出位置データに既に記憶されている場合には、新たに接触位置が生じたとしても、その接触位置はオペレーティングシステムによって取得されない。この点、接触位置が検出位置データから削除されると、新たな接触位置がオペレーティングシステムによって取得されるようになる。そして、その新たな接触位置が、上記の削除された接触位置の代わりに、検出位置データに記憶されるようになる。
【０１２２】
以上のように、接触位置が検出位置データから削除されると、新たな接触位置がオペレーティングシステムによって取得されるようになり、この新たな接触位置を処理（例えば、指領域５１又は当たり領域８１の設定処理）に用いることが可能になる。また、例えば行列データＭを少なくとも一定期間保持するようにしておけば、検出位置データから削除された接触位置は行列データＭに保持されているため、その接触位置も処理（例えば、新たな行列データＭの生成処理や、指領域５１又は当たり領域８１の設定処理）に用いることが可能になる。このため、上記のようにすれば、オペレーティングシステムによって取得可能な接触位置の上限数が設けられているような場合であっても、その上限数よりも多い数の接触位置を処理（例えば、指領域５１又は当たり領域８１の設定処理）に用いることが可能になる。
【０１２３】
（Ｃ）例えば、ユーザの指の長さを考慮して図９の処理を実行するようにしてもよい。
【０１２４】
（Ｃ−１）例えば図９のステップＳ１０５では、ユーザの指の長さに関する情報に基づいて、対象領域の大きさを制御するようにしてもよい。具体的には、ユーザの指が長いほど対象領域が大きくなるようにして、対象領域を設定するようにしてもよい。
【０１２５】
この変形例では、ユーザの指の長さに関する情報が記憶部１２に記憶される。なお、ユーザの指に関する情報は予めユーザが入力するようにすればよい。または、ユーザの指に関する情報は、ユーザが指の根元から指先までをタッチパネル１３に接触させた場合の接触位置の検出結果に基づいて、自動的に取得するようにしてもよい。
【０１２６】
また、この変形例では、ユーザの指の長さに関する情報と、対象領域の大きさに関する情報と、の対応関係を示す対応関係情報が記憶部１２に記憶される。対象領域の大きさに関する情報は、例えば、対応領域の半径に関する情報である。対応関係情報は、ユーザの指が長いほど対象領域が大きくなるように（対象領域の半径が長くなるように）設定される。そして、図９のステップＳ１０５では、ユーザの指の長さに関する情報と、対応関係情報とに基づいて、対象領域の大きさ（対象領域の半径の長さ）が設定される。
【０１２７】
上記のようにすれば、一本の指によって触られている複数の位置をユーザの指の長さを考慮して特定できるようになる。
【０１２８】
（Ｃ−２）また例えば、図９に示す処理では、ステップＳ１０６において上記の２つの条件の両方（又は上記の３つの条件のすべて）を満足する接触位置が存在しないと判定された場合に、ステップＳ１０５〜Ｓ１０８の処理の繰り返し実行を終了して、ステップＳ１０９の処理を実行するようになっていた。しかしながら、図９に示す処理では、変数ｊの値が基準値に達した場合にも、ステップＳ１０５〜Ｓ１０８の処理の繰り返し実行を終了して、ステップＳ１０９の処理を実行するようにしてもよい。
【０１２９】
そして、上記の基準値を、ユーザの指の長さに関する情報に基づいて制御するようにしてもよい。すなわち、ステップＳ１０５〜Ｓ１０８の処理の繰り返し実行の上限回数を、ユーザの指の長さに関する情報に基づいて制御するようにしてもよい。
【０１３０】
この変形例においても、ユーザの指の長さに関する情報が記憶部１２に記憶される。また、この変形例では、ユーザの指の長さに関する情報と、上記の基準値（上限回数）に関する情報と、の対応関係を示す対応関係情報が記憶部１２に記憶される。この対応関係情報は、ユーザの指が長いほど上記の基準値（上限回数）が大きくなるように設定される。そして、図９に示す処理では、ユーザの指の長さに関する情報と、対応関係情報とに基づいて、上記の基準値（上限回数）が設定され、変数ｊの値がその基準値に達した場合に、ステップＳ１０５〜Ｓ１０８の処理の繰り返し実行が終了され、ステップＳ１０９の処理が実行される。
【０１３１】
このようにしても、一本の指によって触られている複数の位置をユーザの指の長さを考慮して特定できるようになる。
【０１３２】
（Ｄ）例えば、第２実施形態では、図９のステップＳ１０１〜Ｓ１１１の処理、すなわち、当たり領域８１を設定するための前処理は、少なくとも一つのゲームキャラクタ７１が穴７４上に位置している場合にのみ実行されるようにしてもよい。このようにすれば、処理負荷の軽減を図ることが可能になる。
【０１３３】
（Ｅ）例えば、第２実施形態では、ユーザがゲームキャラクタ７１の移動を遮るようにして指をタッチパネル１３上に置いた場合に、ユーザの指が壁７３と同様の役割を果たすようにしてもよい。この場合、ユーザの指が接触している位置までゲームキャラクタ７１が到達したら、ゲームキャラクタ７１が壁７３に当たった場合と同様、ゲームキャラクタ７１が向きを変えて、それまでの進行方向とは逆の方向への移動を開始するようにしてもよい。
【０１３４】
（Ｆ）例えば、第１実施形態では、ギターアプリケーションプログラム以外のプログラムが実行されるようにしてもよい。すなわち、本発明は、ギターアプリケーション以外のアプリケーションにも適用することができる。また例えば、第２実施形態では、上記に説明したようなゲーム以外のゲームが実行されるようにしてもよい。すなわち、本発明は、上記に説明したようなゲーム以外のゲームにも適用することができる。本発明は、一本の指によって触られた複数の位置を特定する必要があるアプリケーションやゲームに適用することができる。本発明は、一本の指によって触られた複数の位置を特定する必要がある情報処理装置に適用することができる。
【０１３５】
（Ｆ−１）例えば、自動車又はオートバイの運転を楽しむドライブゲームにも本発明は適用することができる。図２１はドライブゲームのゲーム画面の一例を示す。図２１に示すゲーム画面には道路９２上を走行する自動車９０，９１が表示されている。自動車９０はユーザが運転する自動車であり、自動車９１は競争相手となる自動車である。
【０１３６】
このドライブゲームでは、ユーザは情報処理装置１０（携帯電話機）の両端を両手で持ちながら右手の指Ｆａ（例えば親指）及び左手の指Ｆｂ（例えば親指）をタッチパネル１３上に接触させる。例えば、指Ｆａはアクセルペダルに対応しており、タッチパネル１３に接触している指Ｆａの部分の長さに基づいて、アクセルペダルの踏み込み度合いを示すパラメータの値が設定される。例えば、指Ｆａの指先のみがタッチパネル１３に接触している場合には、タッチパネル１３に接触している指Ｆａの部分の長さが比較的短いため、アクセルペダルの踏み込み度合いが弱く設定される。また例えば、指Ｆａの指先から第１関節までの部分がタッチパネル１３に接触している場合には、タッチパネル１３に接触している指Ｆａの部分の長さが比較的長いため、アクセルペダルの踏み込み度合いが強く設定される。一方、指Ｆｂはクラッチペダルに対応しており、タッチパネル１３に接触している指Ｆｂの部分の長さに基づいて、クラッチペダルの踏み込み度合いを示すパラメータの値が設定される。タッチパネル１３に接触している指Ｆｂの部分の長さとクラッチペダルの踏み込み度合いとの関係は、指Ｆａとアクセルペダルとの関係と同様である。
【０１３７】
上記のようなドライブゲームでは、図９に示すステップＳ１０１〜Ｓ１１１の処理によって得られた行列データＭに基づいて、タッチパネル１３に接触している指Ｆａ又はＦｂの部分の長さが取得される。例えば、行列データＭの一つの行に登録されている複数の接触位置を結ぶ線８０の長さが、タッチパネル１３に接触している指の部分の長さとして取得される。
【０１３８】
上記のようなドライブゲームによれば、ユーザがタッチパネル１３に接触している指Ｆａ又はＦｂの部分の長さを調整することによって、アクセルペダルやクラッチペダルの踏み込み具合を調整できるようになる。言い換えれば、本発明をドライブゲームに適用することによって、アクセルペダルやクラッチペダルの操作のリアルさを高めることが可能になる。
【０１３９】
（Ｆ−２）例えば、セキュリティシステム等における認証機能にも本発明は適用することができる。ユーザがタッチパネル１３を触る場合の触り方にはそのユーザ特有の癖が存在する。例えば、タッチパネル１３に接触させる指の数、指が接触するタッチパネル１３上の位置や、タッチパネル１３に接触された指の部分の長さはユーザごとに異なるはずである。このため、上記の認証機能では、ユーザがタッチパネル１３を触る場合の触り方に基づいて認証処理が行われる。
【０１４０】
図２２は上記の認証機能の画面の一例を示している。図２２に示すように、認証機能の画面では、タッチパネル１３上に指を置くようにユーザに案内される。この場合、ユーザは任意の数の指をタッチパネル１３上の任意の位置に置く。図２２に示す例では、ユーザが一本の指Ｆをタッチパネル１３上に置いている。
【０１４１】
そして、認証機能では、タッチパネル１３に接触された指の数、指によって接触されているタッチパネル１３上の位置や、タッチパネル１３上に接触されている指の長さが取得される。図２２に示す例の場合、ユーザが一本の指Ｆをタッチパネル１３上に接触させているため、タッチパネル１３に接触された指の数として「１本」が取得される。さらに、指Ｆの接触位置と、タッチパネル１３上に接触されている指Ｆの長さとが取得される。
【０１４２】
記憶部１２には、ユーザの認証情報として、基準本数と基準接触位置と基準長さとの組合せが記憶されており、これらの基準情報が上記の取得結果と比較される。図２２に示す例の場合、タッチパネル１３に接触された指の数（１本）が基準本数と比較される。また、指Ｆの接触位置が基準接触位置と比較される。さらに、タッチパネル１３上に接触されている指Ｆの長さが基準長さと比較される。そして、それらの比較結果に基づいて認証の成否が決定される。例えば、類似度が基準値以上であるか否かが判定されることによって類似度が高いか否かが判定される。そして、類似度が高い場合には認証成功と判断され、類似度が低い場合には認証失敗と判断される。
【０１４３】
以上のようにすれば、ユーザがタッチパネル１３を触る場合の触り方によって認証を行う認証機能を実現できるようになる。
【符号の説明】
【０１４４】
１０  情報処理装置、１１  制御部、１２  記憶部、１３  タッチパネル、１４  表示部、１５  音声出力部、１６  通信部、２０ａ  第１弦、２０ｂ  第２弦、２０ｃ  第３弦、２０ｄ  第４弦、２０ｅ  第５弦、２０ｆ  第６弦、２１  フレット、３０  検出部、３１  判定部、３２  判定制御部、３３  処理実行部、４０ａ，４０ｂ，４０ｃ，４０ｄ，４０ｅ，４０ｆ，４０ｇ，４０ｈ  接触位置、４１ａ，４１ｂ，４１ｃ，４１ｄ  対象領域、５０，８０  線、５１  指領域、７０  ゲームフィールド、７１ａ，７１ｂ，７１ｃ，７１ｄ  ゲームキャラクタ、７２  床、７３  壁、７４  穴、７５  家、７６  残り時間、８１  当たり領域、９０，９１  自動車、９２  道路。
【図１】
0005260694.tif 000002
【図２】
0005260694.tif 000003
【図３】
0005260694.tif 000004
【図４】
0005260694.tif 000005
【図５】
0005260694.tif 000006
【図６】
0005260694.tif 000007
【図７】
0005260694.tif 000008
【図８】
0005260694.tif 000009
【図９】
0005260694.tif 000010
【図１０Ａ】
0005260694.tif 000011
【図１０Ｂ】
0005260694.tif 000012
【図１１】
0005260694.tif 000013
【図１２】
0005260694.tif 000014
【図１３】
0005260694.tif 000015
【図１４】
0005260694.tif 000016
【図１５】
0005260694.tif 000017
【図１６】
0005260694.tif 000018
【図１７】
0005260694.tif 000019
【図１８】
0005260694.tif 000020
【図１９】
0005260694.tif 000021
【図２０】
0005260694.tif 000022
【図２１】
0005260694.tif 000023
【図２２】
0005260694.tif 000024