説明

情報処理装置、情報処理装置の制御方法、及びプログラム

【課題】一本の指によって触られている位置を好適に特定することが可能な情報処理装置を提供すること。
【解決手段】判定手段(31)は、ユーザによって接触されたタッチパネル上の複数の接触位置のうちの一の接触位置に基づいて設定され、かつ、該一の接触位置を含んでなる対象領域内に、複数の接触位置のうちの他の接触位置のいずれかが含まれるか否かの判定を実行する。設定手段(32)は、他の接触位置のいずれかが対象領域内に含まれると判定手段(31)によって判定された場合、対象領域として設定されていた領域外の領域を含み、かつ、上記一の接触位置及び該他の接触位置を含んでなる領域を、新たな対象領域として、上記一の接触位置に基づいて設定する。判定手段(31)による上記判定が複数回実行された場合、上記一の接触位置と、該複数回の判定の各々において対象領域に含まれると判定された接触位置とに基づいて、処理が実行される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は情報処理装置、情報処理装置の制御方法、及びプログラムに関する。
【背景技術】
【0002】
タッチパネルを備えた情報処理装置が知られている。例えば特許文献1には、タッチパネルを使用してプレイされるゲームを実行するゲーム装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−233832号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記のような情報処理装置では、ユーザによって接触されたタッチパネル上の複数の位置を検出可能に構成されている場合がある。このような情報処理装置では、一本の指によって触られている複数の位置に基づいて処理を実行するようにしたい場合がある。しかしながら、そのようなことを実現するためには、一本の指によって触られている複数の位置を特定する必要がある。
【0005】
本発明は上記課題に鑑みてなされたものであって、その目的は、一本の指によって触られている複数の位置を好適に特定することが可能な情報処理装置、情報処理装置の制御方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明に係る情報処理装置は、タッチパネルと、ユーザによって接触された前記タッチパネル上の複数の接触位置を検出する検出手段と、を含む情報処理装置において、前記複数の接触位置のうちの一の接触位置に基づいて設定され、かつ、該一の接触位置を含んでなる対象領域内に、前記複数の接触位置のうちの他の接触位置のいずれかが含まれるか否かの判定を実行する判定手段と、前記他の接触位置のいずれかが前記対象領域内に含まれると前記判定手段によって判定された場合、該対象領域として設定されていた領域外の領域を含み、かつ、前記一の接触位置及び該他の接触位置を含んでなる領域を、新たな対象領域として、前記一の接触位置に基づいて設定する設定手段と、前記判定手段による前記判定が複数回実行された場合、前記一の接触位置と、該複数回の判定の各々において前記対象領域に含まれると判定された接触位置とに基づいて、処理を実行する処理実行手段と、を含むことを特徴とする。
【0007】
また、本発明に係る情報処理装置の制御方法は、タッチパネルと、ユーザによって接触された前記タッチパネル上の複数の接触位置を検出する検出手段と、を含む情報処理装置の制御方法において、前記複数の接触位置のうちの一の接触位置に基づいて設定され、かつ、該一の接触位置を含んでなる対象領域内に、前記複数の接触位置のうちの他の接触位置のいずれかが含まれるか否かの判定を実行する判定ステップと、前記他の接触位置のいずれかが前記対象領域内に含まれると前記判定手段によって判定された場合、該対象領域として設定されていた領域外の領域を含み、かつ、前記一の接触位置及び該他の接触位置を含んでなる領域を、新たな対象領域として、前記一の接触位置に基づいて設定する設定ステップと、前記判定手段による前記判定が複数回実行された場合、前記一の接触位置と、該複数回の判定の各々において前記対象領域に含まれると判定された接触位置とに基づいて、処理を実行する処理実行ステップと、を含むことを特徴とする。
【0008】
また、本発明に係るプログラムは、タッチパネルと、ユーザによって接触された前記タッチパネル上の複数の接触位置を検出する検出手段と、を含むコンピュータを、前記複数の接触位置のうちの一の接触位置に基づいて設定され、かつ、該一の接触位置を含んでなる対象領域内に、前記複数の接触位置のうちの他の接触位置のいずれかが含まれるか否かの判定を実行する判定手段、前記他の接触位置のいずれかが前記対象領域内に含まれると前記判定手段によって判定された場合、該対象領域として設定されていた領域外の領域を含み、かつ、前記一の接触位置及び該他の接触位置を含んでなる領域を、新たな対象領域として、前記一の接触位置に基づいて設定する設定手段、及び、前記判定手段による前記判定が複数回実行された場合、前記一の接触位置と、該複数回の判定の各々において前記対象領域に含まれると判定された接触位置とに基づいて、処理を実行する処理実行手段、として機能させるためのプログラムである。
【0009】
また、本発明に係る情報記憶媒体は、上記プログラムを記録したコンピュータ読み取り可能な情報記憶媒体である。
【0010】
本発明によれば、一本の指によって触られている複数の位置を好適に特定することが可能になる。
【0011】
また本発明の一態様では、前記判定手段は、前記一の接触位置からの距離が基準距離以下である対象領域内に、前記他の接触位置のいずれかが含まれるか否かを判定し、前記設定手段は、前記他の接触位置のいずれかが前記対象領域内に含まれると前記判定手段によって判定された場合、該対象領域における前記基準距離よりも長い距離を新たな基準距離として設定することによって前記新たな対象領域を設定するようにしてもよい。
【0012】
また本発明の一態様では、前記検出手段は、所定の上限数の接触位置を検出可能であり、前記判定制御手段は、前記他の接触位置のいずれかが前記対象領域内に含まれると前記判定手段によって判定された場合、前記対象領域内に含まれると判定された該接触位置を記憶手段に記憶させる手段と、前記他の接触位置のいずれかが前記対象領域内に含まれると前記判定手段によって判定された場合、前記対象領域内に含まれると判定された該接触位置の代わりに、新たな接触位置を前記検出手段に検出させる手段と、を含み、前記処理実行手段は、前記記憶手段に記憶された、前記対象領域内に含まれると判定された接触位置に基づいて、前記処理を実行するようにしてもよい。
【0013】
また本発明の一態様では、前記ユーザの指の長さに関する情報を取得する手段を含み、前記ユーザの指の長さに関する前記情報に基づいて、前記対象領域の大きさを制御するようにしてもよい。
【0014】
また本発明の一態様では、前記ユーザの指の長さに関する情報を取得する手段を含み、前記ユーザの指の長さに関する前記情報に基づいて、前記判定手段による前記判定が実行される上限回数を設定するようにしてもよい。
【図面の簡単な説明】
【0015】
【図1】本発明の第1,2実施形態に係る情報処理装置の外観の一例を示す図である。
【図2】情報処理装置のハードウェア構成の一例を示す図である。
【図3】検出位置データの一例を示す図である。
【図4】ギターアプリケーションの画面の一例を示す図である。
【図5】ギターアプリケーションの遊び方を説明するための図である。
【図6】情報処理装置の機能ブロック図である。
【図7】判定部及び判定制御部の処理の一例について説明するための図である。
【図8】処理実行部の処理の一例について説明するための図である。
【図9】情報処理装置が実行する処理の一例を示すフロー図である。
【図10A】行列データの一例を示す図である。
【図10B】行列データの一例を示す図である。
【図11】情報処理装置が実行する処理について説明するための図である。
【図12】ゲーム画面の一例を示す図である。
【図13】ゲームフィールドの一例を示す図である。
【図14】タッチパネルへの指の接触のさせ方の一例を示す図である。
【図15】タッチパネルへの指の接触のさせ方の他の一例を示す図である。
【図16】タッチパネルへの指の接触のさせ方の他の一例を示す図である。
【図17】タッチパネルへの指の接触のさせ方の他の一例を示す図である。
【図18】判定部及び判定制御部の処理の一例について説明するための図である。
【図19】処理実行部の処理の一例について説明するための図である。
【図20】情報処理装置が実行する処理の一例を示すフロー図である。
【図21】ドライブゲームのゲーム画面の一例を示す図である。
【図22】認証機能の画面の一例を示す図である。
【発明を実施するための形態】
【0016】
以下、本発明の実施形態の例について図面に基づき詳細に説明する。本発明の実施形態に係る情報処理装置は、例えば、携帯電話機、携帯情報端末、パーソナルコンピュータ、携帯ゲーム機、業務用ゲーム機、又は家庭用ゲーム機(据置型ゲーム機)等によって実現される。ここでは、本発明の実施形態に係る情報処理装置を携帯電話機(又は携帯情報端末)によって実現する場合について説明する。
【0017】
[第1実施形態]
まず、本発明の第1実施形態について説明する。図1は、本発明の第1実施形態に係る情報処理装置の外観の一例を示す。また、図2は、本発明の第1実施形態に係る情報処理装置のハードウェア構成の一例を示す。図1及び図2に示すように、情報処理装置10は、制御部11、記憶部12、タッチパネル13、表示部14、音声出力部15、及び通信部16を含む。
【0018】
制御部11は、例えばマイクロプロセッサを含んで構成される。制御部11は、記憶部12に記憶されたオペレーティングシステム又はその他のプログラムに従って、処理を実行する。例えば、情報処理装置10の各部を制御するための処理が実行される。制御部11は通常の携帯電話機としての処理(発呼、着呼の処理や、通話に関する処理)も行うが、以下では本発明に関連する処理について主に説明する。制御部11によって実行される処理の具体的内容については後述する。
【0019】
記憶部12はメインメモリと不揮発性メモリとを含む。不揮発性メモリには制御部11によって実行されるプログラムが記憶される。例えば、このプログラムは、インターネット等の通信ネットワークを介してサーバ装置からダウンロードされて不揮発性メモリに格納される。または、このプログラムは、メモリカード等のコンピュータ読み取り可能な情報記憶媒体から複写されて不揮発性メモリに格納される。メインメモリには、不揮発性メモリから読み出されるプログラムや、制御部11が処理を実行する場合に必要なデータが書き込まれる。
【0020】
タッチパネル13は一般的なタッチパネルであり、ユーザによって接触された位置を検出する。タッチパネル13は、ユーザによって接触された複数の位置を検出できるようになっている。タッチパネル13としては、例えば静電容量方式のタッチパネルが用いられる。静電容量方式のタッチパネルでは、タッチパネルの表面がユーザによって接触された場合に生じる電荷の変化に基づいて、ユーザによって接触された位置が検出される。
【0021】
タッチパネル13は、ユーザによって接触された位置に応じた情報を供給する。オペレーティングシステムは、タッチパネル13から供給される情報に基づいて、ユーザによって接触されている位置を取得するようになっている。例えば、オペレーティングシステムは最大で所定数の接触位置を取得し、それらの接触位置を記憶部12に記憶させるようになっている。なお以下では、オペレーティングシステムによって最大で5つの接触位置が取得され、記憶部12に記憶されることとして説明する。
【0022】
図3は、記憶部12に記憶される検出位置データの一例を示す。検出位置データは、オペレーティングシステムによって取得された接触位置に関するデータである。検出位置データでは、接触位置が、例えば図1に示すような、タッチパネル13の左上頂点を原点Oとし、かつ、右方向及び下方向をそれぞれX軸正方向及びY軸正方向とするXY座標系の座標値によって表される。
【0023】
例えば、ユーザとタッチパネル13との接触位置が3つ存在している場合、それら3つの接触位置が検出位置データに保持される。また例えば、ユーザとタッチパネル13との接触位置が5つ存在している場合、それら5つの接触位置が検出位置データに保持される。図3はこの状態の検出位置データを示している。
【0024】
また例えば、ユーザとタッチパネル13との接触位置が6つ以上存在している場合、それらの接触位置のうちの、ユーザが第1番目〜第5番目に接触した位置(言い換えれば、タッチパネル13が第1番目〜第5番目に検出した位置)が検出位置データに保持される。この場合、ユーザが第6番目以降に接触した位置(言い換えれば、タッチパネル13が第6番目以降に検出した位置)は検出位置データに保持されない。
【0025】
なお、検出位置データでは、ユーザが接触した順序(言い換えれば、タッチパネル13が検出した順序)を特定可能に接触位置が記憶される。
【0026】
いずれかの位置におけるユーザとタッチパネル13との接触が解除された場合、その接触位置はタッチパネル13によって検出されなくなる。この場合、その接触位置は検出位置データから削除される。例えば図3に示す状態において、位置(X1,Y1)におけるユーザとタッチパネル13との接触が解除された場合、位置(X1,Y1)は検出位置データから削除される。
【0027】
オペレーティングシステム以外のプログラムは、オペレーティングシステムによって記憶部12に記憶された検出位置データを参照することによって、ユーザの接触位置を把握することができる。
【0028】
ところで、タッチパネル13は表示部14の上に重ねて設けられる。このため、ユーザはタッチパネル13の表面を触ることによって、表示部14に表示される画面内の位置を指定することができる。
【0029】
表示部14は例えば液晶パネルである。表示部14は制御部11からの指示に従って画面を表示する。音声出力部15は例えばスピーカ又はヘッドホン端子である。音声出力部15は制御部11からの指示に従って音声(例えば、音楽又は効果音等)を出力する。
【0030】
通信部16はデータ通信又は音声通信を行うためのものである。例えば、通信部16は、制御部11からの指示に従ってデータ通信を実行する。また例えば、通信部16は、制御部11からの発呼指示に従って携帯電話回線網を介して相手側を発呼する。また、携帯電話回線網を介して着信要求を受信した場合、通信部16は制御部11にこれを伝達する。そして、制御部11からの着呼指示に従って、通信部16は着呼の処理を実行する。
【0031】
情報処理装置10の記憶部12には、ギターを弾いているような気分をユーザが味わうことが可能なギターアプリケーションプログラム(又はギター音楽シミュレーションゲームプログラム)が記憶されており、このギターアプリケーション(又はギター音楽シミュレーションゲーム)が実行されるようになっている。
【0032】
図4は、表示部14に表示されるギターアプリケーションの画面の一例を示す。図4は、図1に示す状態から右方向に90度回転された状態の情報処理装置10の表示部14をユーザが見た場合の画面を示している。図4に示すように、ギターの一部分を表す画像が画面に表示される。具体的にはギターの第1弦20a、第2弦20b,第3弦20c、第4弦20d、第5弦20e、第6弦20fが表示される。また、ギターのフレット21も表示される。なお以下では、第1弦20a〜第6弦20fのことを総称して「弦20」と記載する場合がある。
【0033】
図5はギターアプリケーションの遊び方を説明するための図である。実際のギターを弾く場合と同様に、ユーザが一又は複数の弦20を押さえるようにして指Faをタッチパネル13上に接触させ、かつ、タッチパネル13の左端領域22内で弦20をはじくように他の指Fbでスライド操作(すなわち、指をタッチパネル13に接触させた状態で指を移動させる操作)を行うと、実際のギターと同様の音が音声出力部15から出力される。
【0034】
なお、ユーザの操作(例えば、タッチパネル13上で指をY軸方向にスライドさせる操作)に従って画面がスクロールし、その結果として、画面に表示されるギターの部分が変わるようにしてもよい。
【0035】
以下、上記のようなギターアプリケーションにおいて、ユーザの一本の指によって触られている複数の位置を好適に特定するための技術について説明する。
【0036】
図6は、情報処理装置10で実現される機能ブロックを示す機能ブロック図である。図6に示すように、情報処理装置10は、検出部30、判定部31、判定制御部32、及び処理実行部33を含む。これらの機能ブロックは、例えば制御部11が記憶部12から読み出されたプログラムを実行することによって実現される。
【0037】
まず、検出部30について説明する。検出部30は、ユーザによって接触されたタッチパネル13上の複数の接触位置を検出する。例えば、検出部30は、所定の上限数の接触位置を検出可能である。ここでは、検出部30が最大で5つの接触位置を検出可能であることとして説明する。検出部30によって検出された接触位置は記憶部12に記憶される(図3参照)。
【0038】
次に、判定部31、判定制御部32、及び処理実行部33について説明する。
【0039】
判定部31は、検出部30によって検出された複数の接触位置のうちの一の接触位置に基づいて設定され、かつ、該一の接触位置を含んでなる対象領域内に、複数の接触位置のうちの他の接触位置のいずれかが含まれるか否かの判定を実行する。判定部31によって他の接触位置のいずれかが対象領域内に含まれると判定された場合、判定制御部32(設定手段)は、当該対象領域として設定されていた領域外の領域を含み、かつ、かつ、上記の一の接触位置及び該他の接触位置を含んでなる領域を、新たな対象領域として設定する。新たな対象領域を設定した後、判定制御部32は判定部31に上記の判定を再実行させる。また、処理実行部33は、上記の一の接触位置と、判定部31によって実行された複数回の判定の各々において対象領域に含まれると判定された接触位置と、に基づいて、処理を実行する。
【0040】
まず、判定部31及び判定制御部32の処理について詳細に説明する。図7は、判定部31及び判定制御部32の処理の一例について説明するための図である。図7において、符号40a,40b,40c,40d,40eは検出部30によって検出された接触位置を示している。図7に示す接触位置40a〜40eは、図5に示すようにしてユーザが指Fa,Fbをタッチパネル13に接触させた場合に検出部30によって検出される接触位置の一例を示している。すなわち、接触位置40a〜40dは指Faの接触位置であり、接触位置40eは指Fbの接触位置である。説明の簡便化のため、図7では接触位置40a〜40dと接触位置40eとの間の距離は実際よりも短くなっている。
【0041】
また、ここでは、ユーザの指Faが指先から根元に向かって徐々にタッチパネル13に接触したこととする。つまり、指Faの指先とタッチパネル13との接触位置40aが最初に検出され、その後、接触位置40b,40cがこの順番で検出され、その後、指Faの根元とタッチパネル13との接触位置40dが検出されたこととする。さらに、その後、指Fbがタッチパネル13に接触し、指Fbとタッチパネル13との接触位置40eが検出されたこととする。要するに、ここでは、図7に示す接触位置40a,40b,40c,40d,40eが、それぞれ、図3における第1,2,3,4,5番目の接触位置(X1,Y1)、(X2,Y2)、(X3,Y3)、(X4,Y4)、(X5,Y5)に相当していることとしている。
【0042】
図7に示す例の場合、まず、判定部31は、最初に検出された接触位置40aを中心とした半径Raの円形領域である対象領域41a内に、接触位置40a以外の接触位置40b〜40eのいずれかが含まれるか否かを判定する。なお、半径Raの大きさは、例えば、タッチパネル13の分解能及びサイズ等を考慮して決定される。後述の半径Rb,Rc,Rdも同様である。
【0043】
図7に示す例の場合、接触位置40aの次に検出された接触位置40bが対象領域41a内に含まれている。このため、接触位置40bが対象領域41a内に含まれていると判定部31によって判定される。この場合、判定制御部32(設定手段)は、対象領域41aの半径Raよりも大きい半径の円形領域を新たな対象領域として設定する。すなわち、判定制御部32は、接触位置40aを中心とした半径Rb(Rb>Ra)の円形領域である対象領域41bを新たな対象領域として設定する。そして、判定制御部32は判定部31に判定を再実行させる。この場合、判定部31は、接触位置40a,40b以外の接触位置40c〜40eのいずれかが対象領域41b内に含まれるか否かを判定する。
【0044】
図7に示す例の場合、接触位置40bの次に検出された接触位置40cが対象領域41b内に含まれている。このため、接触位置40bが対象領域41b内に含まれていると判定部31によって判定される。この場合、判定制御部32(設定手段)は、対象領域41bの半径Rbよりも大きい半径の円形領域を新たな対象領域として設定する。すなわち、判定制御部32は、接触位置40aを中心とした半径Rc(Rc>Rb)の円形領域である対象領域41cを新たな対象領域として設定する。そして、判定制御部32は判定部31に判定を再実行させる。この場合、判定部31は、接触位置40a〜40c以外の接触位置40d,40eのいずれかが対象領域41c内に含まれるか否かを判定する。
【0045】
図7に示す例の場合、接触位置40cの次に検出された接触位置40dが対象領域41c内に含まれている。このため、接触位置40dが対象領域41c内に含まれていると判定部31によって判定される。この場合、判定制御部32(設定手段)は、対象領域41cの半径Rcよりも大きい半径の円形領域を新たな対象領域として設定する。すなわち、判定制御部32は、接触位置40aを中心とした半径Rd(Rd>Rc)の円形領域である対象領域41dを新たな対象領域として設定する。そして、判定制御部32は判定部31に判定を再実行させる。この場合、判定部31は、接触位置40a〜40d以外の接触位置40eが対象領域41d内に含まれるか否かを判定する。
【0046】
図7に示す例の場合、接触位置40dの次に検出された接触位置40eが対象領域41d内に含まれていない。このため、接触位置40eは対象領域41d内に含まれていないと判定部31によって判定される。
【0047】
次に、処理実行部33の処理について詳細に説明する。図7に示した例の場合、処理実行部33は、接触位置40aと、判定部31によって実行された複数回の判定の各々において対象領域41a〜41cに含まれると判定された接触位置40b〜40dとに基づいて、処理を実行する。例えば、処理実行部33は、接触位置40aと接触位置40b〜40dとに基づいて指領域を設定し、この指領域に基づいて、ギター音の出力制御処理を実行する。
【0048】
図8は、処理実行部33の処理の一例について説明するための図である。図8に示すように、処理実行部33は、接触位置40a〜40dを結ぶ線50に基づいて、指領域51を設定する。例えば、線50からの距離が所定距離以下である領域が指領域51として設定される。そして、処理実行部33は、指領域51がユーザの指によって接触されている領域と判断して、ギター音の出力制御処理を実行する。詳細については後述する(図9のステップS112参照)。
【0049】
判定部31、判定制御部32、及び処理実行部33を実現するために情報処理装置10で実行される処理について説明する。図9は、図5に示す左端領域22内でスライド操作が行われた場合にギター音を出力するために情報処理装置10で実行される処理の一例を示すフロー図である。制御部11が記憶部12から読み出されたギターアプリケーションプログラムに従って図9に示す処理を実行することによって、制御部11が判定部31、判定制御部32、及び処理実行部33として機能するようになる。
【0050】
図9に示すように、まず、制御部11は行列データMを初期生成する(S101)。行列データMは、下記に説明する処理(ステップS102〜S111)によって行われる判定の結果を登録するためのデータである。図10Aは、ステップS101で初期生成された行列データMの一例を示す。例えば、行列データMの行数及び列数は情報処理装置10で検出可能な接触位置の上限数に設定される。本実施形態の場合、最大で5つの接触位置が検出されるため、図10Aに示す行列データMは5行×5列の行列データになっている。ステップS101が実行された直後では、図10Aに示すように、いずれの要素もNULL状態(情報が登録されていない状態)になっている。
【0051】
図10Bは、下記に説明する処理(ステップS102〜S111)が完了した後の行列データMの一例を示している。下記に説明する処理が実行されることによって、図10Bに示すように、行列データMの要素に接触位置が登録される。下記に説明する処理では、同じ指によって接触された複数の位置が同じ行に登録されるようになっている。
【0052】
図10Bに示す行列データMは図7に示す状態に対応している。このため、図10Bに示す行列データMでは、指Faの接触位置40a,40b,40c,40dが第1行に登録されている。また、指Fbの接触位置40eが第2行に登録されている。
【0053】
ステップS101の処理が実行された後、制御部11は変数i,j,nを1に初期化する(S102)。なお、図10A及び図10Bに示すように、変数iは行列データMの行番号を示すために用いられる変数であり、変数jは行列データMの列番号を示すために用いられる変数である。なお、ここでは、行列データMの第i行及び第j列の要素のことを「M(i,j)」のように記載する。例えば、行列データMの第1行及び第1列の要素のことを「M(1,1)」のように記載する。
【0054】
ステップS102の処理が実行された後、制御部11は、検出位置データに記憶されている第n番目の接触位置(第n番目に検出された接触位置)がすでに行列データMに登録されているか否かを判定する(S103)。第n番目に検出された接触位置が行列データMに登録されていない場合、制御部11は、第n番目の接触位置を行列データMの要素M(i,1)に登録する(S104)。例えば、変数i,nの値がいずれも「1」である場合、図10Bに示すように、第1番目の接触位置(X1,Y1)が行列データMの要素M(1,1)に登録される。
【0055】
ステップS104の処理が実行された後、制御部11は対象領域を設定する(S105)。具体的には、制御部11は、行列データMの要素M(i,1)に登録された接触位置を中心とする円形領域を対象領域として設定する。例えば、行列データMの要素M(i,1)に第1番目の接触位置(X1,Y1)が登録されている場合には、第1番目の接触位置(X1,Y1)を中心とする円形領域が対象領域として設定される。例えば、図7に示すような対象領域41a(又は41b〜41d)が設定される。
【0056】
この場合、対象領域の半径は変数jの値に基づいて設定される。変数jと対象領域の半径との対応関係は、変数jの値が大きくなると対象領域の半径も大きくなるように設定される。例えば、変数jの値が1である場合、対象領域の半径はRa(図7参照)に設定される。また例えば、変数jの値が2である場合、対象領域の半径はRb(図7参照)に設定される。さらに例えば、変数jの値が3である場合、対象領域の半径はRc(図7参照)に設定される。また例えば、変数jの値が4である場合、対象領域の半径はRd(図7参照)に設定される。
【0057】
ステップS105の処理が実行された後、制御部11は、検出されている接触位置のうちに、下記の2つの条件の両方を満足する接触位置が存在するか否かを判定する(S106)。
(1)行列データMに登録されていない接触位置であること。
(2)対象領域内に含まれている接触位置であること。
【0058】
なお、上記の2つの条件の両方を満足する接触位置が複数存在していた場合、それらの複数の接触位置のうちで、行列データMの要素M(i,j)に登録されている接触位置に最も近い接触位置を選択し、その接触位置を後述のステップS108の処理の対象とするようにするとよい。
【0059】
一本の指がタッチパネル13に接触した場合に検出される、隣り合う2つの接触位置の間隔は、タッチパネル13の分解能に応じた最小間隔になるはずである。このため、上記のような場合、要素M(i,j)に登録されている接触位置に最も近い接触位置が、要素M(i,j)に登録されている接触位置と同じ指で接触された位置である可能性が高いと考えられる。そこで、上記のような場合、要素M(i,j)に登録されている接触位置に最も近い接触位置を選択するようにすればよい。
【0060】
また、変数jの値が2以上である場合(すなわち、第i行にすでに2つの接触位置が登録されている場合)には、上記の2つの条件の他に、図11を用いて説明するような条件を加えるようにしてもよい。なお、図11において、接触位置40fは行列データMの要素M(i,j−1)に登録されている接触位置を示しており、接触位置40gは行列データMの要素(i,j)に登録されている接触位置を示している。また、接触位置40hは、ステップS106において条件を満足するか否かの判定の対象となっている接触位置を示している。
【0061】
図11に示す例では、接触位置40fから接触位置40gへの方向60と、接触位置40gから接触位置40hへの方向61との間の角度θが基準角度θcよりも大きくなっている。このような場合、接触位置40hは接触位置40f,40gと同じ指で接触された位置でないとみなし、接触位置40hを無視するようにしてもよい。すなわち、ステップS106では、上記の2つの条件の他に、下記の条件を加えるようにしてもよい。そして、ステップS106では、制御部11がこれらの3つの条件のすべてを満足する接触位置が存在するか否かを判定するようにしてもよい。
(3)行列データMの要素M(i,j−1)に登録されている接触位置から要素(i,j)に登録されている接触位置への方向60と、要素(i,j)に登録されている接触位置から接触位置への方向61との間の角度θが基準角度θc以下であること。
【0062】
ステップS106で上記のような条件を満足する接触位置が存在すると判定された場合、制御部11は変数jの値に1を加算し(S107)、その接触位置を行列データMの要素M(i,j)に登録する(S108)。そして、制御部11はステップS105の処理を再実行する。
【0063】
一方、ステップS106で上記のような接触位置が存在しないと判定された場合、制御部11は、変数i,nの値にそれぞれ1を加算し、変数jの値を1に初期化する(S109)。そして、制御部11は変数nの値が定数N以下であるか否かを判定する(S111)。定数Nは、情報処理装置10で検出可能な接触位置の上限数であり、本実施形態の場合には「5」である。変数nの値が定数N以下である場合、制御部11はステップS103の処理を再実行する。一方、変数nの値が定数N以下でない場合、制御部11は後述のステップS112の処理を実行する。
【0064】
なお、ステップS103で第n番目の接触位置がすでに行列データMに登録されていると判定された場合、制御部11は変数nの値に1を加算する(S110)。そして、制御部11はステップS111の処理を実行する。
【0065】
ここで、図7に示すような接触位置40a〜40eが図3に示す検出位置データに記憶されている場合を想定する。なお、接触位置40a,40b,40c,40d,40eが、それぞれ、第1,2,3,4,5番目の接触位置(X1,Y1)、(X2,Y2)、(X3,Y3)、(X4,Y4)、(X5,Y5)に相当していることとする。
【0066】
この場合、図9に示す処理によれば、まず、ステップS104の処理において、第1番目の接触位置である接触位置40aが行列データMの要素M(1,1)に登録される(図10B参照)。また、ステップS105の処理において対象領域41aが設定される。第2番目の接触位置である接触位置40bは対象領域41aに含まれるため、ステップS107,S108の処理が実行されることによって、接触位置40bが行列データMの要素M(1,2)に登録される(図10B参照)。
【0067】
その後、再び実行されるステップS105の処理において対象領域41bが設定される。第3番目の接触位置である接触位置40cは対象領域41bに含まれるため、ステップS107,S108の処理が実行されることによって、接触位置40cが行列データMの要素M(1,3)に登録される(図10B参照)。さらに、再び実行されるステップS105の処理において対象領域41cが設定される。第4番目の接触位置である接触位置40dは対象領域41cに含まれるため、ステップS107,S108の処理が実行されることによって、接触位置40dが行列データMの要素M(1,4)に登録される(図10B参照)。
【0068】
その後、再び実行されるステップS105の処理において対象領域41dが設定される。しかし、第5番目の接触位置である接触位置40eは対象領域41dに含まれないため、行列データMの第1行に接触位置40eは登録されない。ステップS109,S111,S103,S104の処理が実行されることによって、接触位置40eは第1行の次の行である第2行の要素M(2,1)に登録される(図10B参照)。
【0069】
ステップS111において変数nが定数N以下でないと判定された場合、制御部11はギター音出力処理を実行する(S112)。
【0070】
例えば、制御部11は、行列データMの各行に登録された接触位置を各行ごとに取得する。そして、一つの行に一つの接触位置のみが登録されている場合、制御部11は、その接触位置からの距離が所定距離以下である領域を指領域51として設定する。一方、一つの行に複数の接触位置が登録されている場合、制御部11は、例えば図8に示すように、それらの複数の接触位置を結ぶ線50に基づいて指領域51を設定する。
【0071】
制御部11は、上記のようにして設定された指領域51に基づいて、ギターの第1弦20a〜第6弦20fがどのように押さえられているかを判断する。すなわち、制御部11は、どの弦20が押さえられているのかや弦20のどの位置が押さえられているのかを制御部11は判断する。そして制御部11は、その判断結果に基づいて、ギター音を音声出力部15から出力させる。記憶部12には、第1弦20a〜第6弦20fがどのように押さえられているのかに関する情報と、ギター音を出力するためのギター音データと、が対応づけて予め記憶されている。制御部11は記憶部12の記憶内容を参照して、上記の判断結果に対応するギター音データを読み出し、そのギター音データに基づいてギター音を音声出力部15から出力させる。以上で本処理は終了する。
【0072】
以上説明した第1実施形態に係る情報処理装置10によれば、一本の指によって触られている複数の位置を好適に特定することが可能になる。
【0073】
[第2実施形態]
次に、本発明の第2実施形態について説明する。本発明の第2実施形態に係る情報処理装置の外観及びハードウェア構成は第1実施形態(図1,2)と同様である。
【0074】
第2実施形態に係る情報処理装置10(ゲーム装置)では、記憶部12に記憶されたゲームプログラムに基づいてゲームが実行される。例えば、自律的に移動するゲームキャラクタをゴール(目標位置)まで誘導することを目指すゲームが実行される。
【0075】
図12は表示部14に表示されるゲーム画面の一例を示す。ゲーム画面にはゲームフィールドの一部が表示される。ユーザは、タッチパネル13に接触した指を動かすことによって、ゲーム画面をスクロールさせることができる。なお、ゲーム画面にはゲームフィールドの全体が表示されるようにしてもよい。
【0076】
図13はゲームフィールドの一例を示す。図13に示すように、ゲームフィールド70には4体のゲームキャラクタ71a,71b,71c,71dが配置される。ゲームキャラクタ71aにはアルファベット文字「A」が付されている。また、ゲームキャラクタ71bにはアルファベット文字「B」が付されている。ゲームキャラクタ71cにはアルファベット文字「C」が付されており、ゲームキャラクタ71dにはアルファベット文字「D」が付されている。以下では、ゲームキャラクタ71a,71b,71c,71dのことを総称して「ゲームキャラクタ71」と記載する場合がある。
【0077】
ゲームキャラクタ71は床72上を自律的に移動する。図13に示すように、床72は基本的に水平になっているが、斜面になっているところもあれば、階段状になっているところもある。ゲームキャラクタ71は壁73に当たると、向きを変えて、それまでの進行方向とは逆の方向への移動を開始する。
【0078】
図13に示すように、床72には穴74が設けられている。ゲームキャラクタ71が穴74まで移動した場合、原則として、ゲームキャラクタ71は下に落ちる。つまり、ゲームキャラクタ71は、穴74の下に位置している床72まで落ち、その床72上を移動し始める。
【0079】
ユーザは、穴74を塞ぐようにして、指をタッチパネル13上に接触させることによって、ゲームキャラクタ71が穴74に落ちないようにすることができる。例えば図14に示すように、ユーザが穴74を塞ぐように指Fをタッチパネル13上に置いた場合、ユーザの指Fは穴74の一端から他端へと渡された橋の役割を果たすようになる。その結果、ゲームキャラクタ71が穴74に落ちることなく移動できるようになる。
【0080】
また、穴74が比較的大きい場合には、例えば図15に示すように、ユーザは、指F全体で穴74を塞ぐようにして、指Fをタッチパネル13に接触させることによって、ゲームキャラクタ71が穴74に落ちないようにすることができる。
【0081】
なお、例えば図16に示すように、ユーザは、タッチパネル13に接触した指Fを、ゲームキャラクタ71の移動に合わせて移動することによって、ゲームキャラクタ71が穴74に落ちないようにすることもできる。
【0082】
このゲームでは、ユーザは穴74を指で塞ぐことによって、ゲームキャラクタ71を家75(ゴール)まで誘導することを目指す。家75に到達したゲームキャラクタ71は家75に入る。
【0083】
ただし、ゲームキャラクタ71は予め定められた順序でしか家75に入らないようになっている。すなわち、ゲームキャラクタ71a〜71dは、ゲームキャラクタ71a,71b,71c,71dの順序でのみ家75に入るようになっている。このため、例えば、ゲームキャラクタ71bが家75に到達した場合であっても、ゲームキャラクタ71aが家75に未だ到達していないのであれば(つまり、ゲームキャラクタ71aが家75に入っていないのであれば)、ゲームキャラクタ71bは家75に入らないようになっている。この場合、ゲームキャラクタ71bは家75を通過して移動し続ける。このため、ユーザは、ゲームキャラクタ71a〜71dがゲームキャラクタ71a,71b,71c,71dの順番で家75に到達するように、ゲームキャラクタ71a〜71dを誘導する必要がある。
【0084】
また、このゲームでは制限時間が設けられている。このため、ユーザは制限時間内にゲームキャラクタ71a〜71dが家75に入るように誘導しなければならない。図13に示すように、ゲーム画面には残り時間76が表示されている。ユーザは、残り時間76が零になる前にゲームキャラクタ71a〜71dが家75に入るように目指す。
【0085】
ところで、上記のようなゲームを実現する場合には、ユーザが指をタッチパネル13にどのように接触させているかを把握する必要がある。
【0086】
例えば図17に示す例では、ユーザが穴74の一端側に指Faを接触させ、かつ、他端側に他の指Fbを接触させている。このような場合、ユーザの指Fa,Fbは、穴74の一端から他端へと渡された橋の役目を果たしていない。このため、ゲームキャラクタ71が穴74に落ちるようにする必要がある。
【0087】
上記のような場合にゲームキャラクタ71が穴74に落ちるようにするためには、図15に示すようにして指Fがタッチパネル13に接触しているのか、又は図17に示すようにして指Fa,Fbがタッチパネル13に接触しているのかによって、ゲームキャラクタ71の移動制御処理を異ならせる必要がある。以下、このようなことを実現するための構成について説明する。
【0088】
第2実施形態に係る情報処理装置10で実現される機能ブロックは第1実施形態と同様である(図6参照)。すなわち、第2実施形態に係る情報処理装置10も、検出部30、判定部31、判定制御部32、及び処理実行部33を含む。第2実施形態における検出部30の処理は第1実施形態と同様である。このため、ここでは説明を省略する。
【0089】
第2実施形態における判定部31及び判定制御部32の処理も第1実施形態と同様である。図18は、第2実施形態における判定部31及び判定制御部32の処理の一例について説明するための図である。図18において、符号40a,40b,40c,40d,40eは、図15に示すようにしてユーザが指Fをタッチパネル13に接触させた場合に検出部30によって検出される接触位置の一例を示している。
【0090】
なお、ここでは、ユーザの指Fが指先から根元に向かって徐々にタッチパネル13に接触したこととする。つまり、指Fの指先とタッチパネル13との接触位置40aが最初に検出され、その後、接触位置40b,40c,40dがこの順番で検出され、最後に、指Fの根元とタッチパネル13との接触位置40eが検出されたこととする。
【0091】
図18に示す例の場合、まず、判定部31は、最初に検出された接触位置40aを中心とした半径Raの円形領域である対象領域41a内に、接触位置40a以外の接触位置40b〜40eのいずれかが含まれるか否かを判定する。第1実施形態と同様、半径Raの大きさは、例えば、タッチパネル13の分解能及びサイズ等を考慮して決定される。後述の半径Rb,Rc,Rdも同様である。
【0092】
図18に示す例の場合、接触位置40aの次に検出された接触位置40bが対象領域41a内に含まれている。この場合、判定制御部32は、接触位置40aを中心とした半径Rb(Rb>Ra)の円形領域である対象領域41bを新たな対象領域として設定し、判定部31に判定を再実行させる。この場合、判定部31は、接触位置40a,40b以外の接触位置40c〜40eのいずれかが対象領域41b内に含まれるか否かを判定する。
【0093】
図18に示す例の場合、接触位置40bの次に検出された接触位置40cが対象領域41b内に含まれている。この場合、判定制御部32は、接触位置40aを中心とした半径Rc(Rc>Rb)の円形領域である対象領域41cを新たな対象領域として設定し、判定部31に判定を再実行させる。この場合、判定部31は、接触位置40a〜40c以外の接触位置40d,40eのいずれかが対象領域41c内に含まれるか否かを判定する。
【0094】
図18に示す例の場合、接触位置40cの次に検出された接触位置40dが対象領域41c内に含まれている。この場合、判定制御部32は、接触位置40aを中心とした半径Rd(Rd>Rc)の円形領域である対象領域41dを新たな対象領域として設定し、判定部31に判定を再実行させる。この場合、判定部31は、接触位置40a〜40d以外の接触位置40eが対象領域41d内に含まれるか否かを判定する。
【0095】
図18に示す例の場合、接触位置40dの次に検出された接触位置40eが対象領域41d内に含まれている。このため、接触位置40eが対象領域41d内に含まれると判定部31によって判定される。
【0096】
第2実施形態における処理実行部33の基本的な処理も第1実施形態と同様である。すなわち、図18に示した例の場合、第2実施形態における処理実行部33は、接触位置40aと、判定部31によって実行された複数回の判定の各々において対象領域41a〜41dに含まれると判定された接触位置40b〜40eとに基づいて、処理を実行する点で第1実施形態と共通する。
【0097】
ただし、第2実施形態では上記のゲームプログラムが実行されるため、処理実行部33の具体的な処理は第1実施形態とは異なる。例えば、第2実施形態における処理実行部33は、接触位置40aと接触位置40b〜40eとに基づいて当たり領域を設定し、この当たり領域に基づいて、ゲームキャラクタ71の制御処理を実行する。
【0098】
図19は、第2実施形態における処理実行部33の処理の一例について説明するための図である。図19に示すように、処理実行部33は、接触位置40a〜40eを結ぶ線80に基づいて、当たり領域81(橋)を設定する。例えば、線80からの距離が所定距離以下である領域が当たり領域81として設定される。そして、ゲームキャラクタ71が当たり領域81に到達した場合、処理実行部33は、そのゲームキャラクタ71が当たり領域81上を移動するように、そのゲームキャラクタ71の移動を制御する。
【0099】
次に、第2実施形態に係る情報処理装置10においてゲームが開始されてから終了するまでの間に実行される処理のうち、本発明に関連する処理の一例について説明する。第2実施形態に係る情報処理装置10においてゲームが開始されてから終了するまでの間に実行される処理は図9に示す処理と類似する。ただし、図9におけるステップS112の代わりに、図20に示す処理が実行される。
【0100】
なお、図20に示す処理は記憶部12に記憶されるデータに基づいて実行される。図20に示す処理について説明する前にこのデータについて説明する。
【0101】
例えば、ゲーム画面を表示するためのデータが記憶部12に記憶される。具体的には、ゲームフィールド70の画像データやゲームキャラクタ71の画像データが記憶部12に記憶される。
【0102】
また例えば、ゲームの現在の状況を示すデータ(以下「ゲーム状況データ」と記載する。)が記憶部12に記憶される。例えば、下記に示すような情報がゲーム状況データに保持される。
・ゲームキャラクタ71a〜71dの状態を示す情報(例えば、位置及び進行方向等)
・制限時間の経過状況を示す情報(残り時間を示す情報)
・ゲームフィールド70内のいずれの領域をゲーム画面に表示すべきかを示す情報
【0103】
なお、ゲームキャラクタ71a〜71dの状態を示す情報には、ゲームキャラクタ71a〜71dが家75に入ったか否かを示す情報も含まれる。
【0104】
図20に示す処理について説明する。図20に示すように、まず、制御部11は、行列データMの内容に基づいて、当たり領域を設定する(S201)。例えば、制御部11は、行列データMの各行に登録された接触位置を各行ごとに取得する。一つの行に一つの接触位置のみが登録されている場合、制御部11はその接触位置に基づいて当たり領域を設定する。例えば、制御部11は、その接触位置を中心とし、かつ、所定距離を半径とする円領域を当たり領域81として設定する。一方、一つの行に複数の接触位置が登録されている場合、制御部11は、例えば図19に示すように、それら複数の接触位置を結ぶ線80に基づいて、当たり領域81を設定する。
【0105】
ステップS201の処理が実行された後、制御部11はゲームキャラクタ71の状態情報を更新するための処理(図20のS202〜S209)を実行する。この処理は、ゲームキャラクタ71a〜71dの各々について実行される。
【0106】
まず制御部11は、ゲームキャラクタ71が床72又は当たり領域81上に立っているか否かを判定する(S202)。そして、ゲームキャラクタ71が床72又は当たり領域81上に立っていないと判定された場合、制御部11は、ゲームキャラクタ71が下に落下するようにして、ゲームキャラクタ71の位置を更新する(S203)。この場合、ゲームキャラクタ71の位置が、現在位置から下方向に所定距離だけ移動した位置に更新される。ステップS203の処理が実行された後、制御部11は後述のステップS207の処理を実行する。
【0107】
一方、ゲームキャラクタ71が床72又は当たり領域81上に立っていると判定された場合、制御部11は、ゲームキャラクタ71が進行方向に移動するようにして、ゲームキャラクタ71の位置を更新する(S204)。この場合、ゲームキャラクタ71の位置が、現在位置から進行方向に所定距離だけ移動した位置に更新される。
【0108】
ステップS204の処理が実行された後、制御部11は、ゲームキャラクタ71が壁73に当たったか否かを判定する(S205)。そして、ゲームキャラクタ71が壁73に当たったと判定された場合、制御部11は、ゲームキャラクタ71の進行方向をそれまでの進行方向とは逆方向に変更する(S206)。
【0109】
ステップS206の処理が実行された場合、又は、ステップS205において、ゲームキャラクタ71が壁73に当たったと判定されなかった場合、制御部11はゲームキャラクタ71が家75に到達したか否かを判定する(S207)。そして、ゲームキャラクタ71が家75に到達したと判定された場合、制御部11は、そのゲームキャラクタ71よりも先に家75に入るべき全てのゲームキャラクタ71が家75に入っているか否かを判定する(S208)。例えば、家75に到達したゲームキャラクタ71がゲームキャラクタ71cである場合、制御部11は、ゲームキャラクタ71cよりも先に家75に入るべきゲームキャラクタ71a,71bの両方が既に家75に入っているか否かを判定する。
【0110】
家75に到達したゲームキャラクタ71よりも先に家75に入るべき全てのゲームキャラクタ71が家75に入っている場合、制御部11は、家75に到達したゲームキャラクタ71を家75に入れる(S209)。そして、制御部11は全てのゲームキャラクタ71が家75に入ったか否かを判定する(S210)。すなわち、制御部11は、ゲームキャラクタ71a〜71dがいずれも家75に入っている否かを判定する。全てのゲームキャラクタ71が家75に入ったと判定された場合、制御部11はゲームクリア画面を表示部14に表示する(S213)。この場合、本処理は終了し、ゲームが終了する。
【0111】
ステップS207において、ゲームキャラクタ71が家75に到達したと判定されなかった場合、ステップS208において、家75に到達したゲームキャラクタ71よりも先に家75に入るべき全てのゲームキャラクタ71が家75に入っていると判定されなかった場合、又は、ステップS210において、全てのゲームキャラクタ71が家75に入ったと判定されなかった場合、制御部11は制限時間が経過したか否か(残り時間が零になったか否か)を判定する(S211)。そして、制限時間が経過したと判定された場合(残り時間が零になったと判定された場合)、制御部11はゲームオーバー画面を表示部14に表示する(S214)。この場合、本処理は終了し、ゲームは終了する。
【0112】
一方、制限時間が経過していないと判定された場合(残り時間が零になっていないと判定された場合)、制御部11はゲーム画面を更新する(S212)。例えば、制御部11は、ステップS202〜S209の処理によって更新されたゲームキャラクタ71a〜71dの状態情報(例えば位置及び進行方向等)に基づいて、ゲーム画面をVRAMに生成する。そして、VRAMに生成されたゲーム画面は表示部14に表示される。
【0113】
なお、ゲーム画面を生成する場合、制御部11は、ユーザがゲーム画面のスクロール操作を行ったか否かを判定する。すなわち、制御部11は、タッチパネル13に接触した指をユーザが動かしたか否かを判定する。そして、タッチパネル13に接触した指をユーザが動かした場合、制御部11は、指の移動方向に基づいて、ゲームフィールド70の表示対象領域(ゲーム画面に表示すべき領域)を変更する。このような処理が実行されることによって、ユーザの指の移動方向に応じた方向にゲーム画面がスクロールするようになる。
【0114】
ステップS212の処理が実行された後、制御部11は図9のステップS101の処理を実行する。ゲームがクリアされる(すなわち、ステップS210において全てのゲームキャラクタ71が家75に入ったと判定される)か、又はゲームオーバーになる(ステップS211において制限時間が経過したと判定される)まで、ステップS101〜S111及びS201〜S212の処理が繰り返し実行される。この場合、ステップS101〜S111及びS201〜S212の処理は所定時間(例えば1/60秒)ごとに実行される。
【0115】
以上説明した第2実施形態に係る情報処理装置10によれば、一本の指によって触られている複数の位置を好適に特定することが可能になる。その結果、例えば、複数の位置が一本の指によって触られている場合(例えば図15参照)と、複数の位置が複数の指によって触られている場合(例えば図17参照)とで、異なるゲーム処理を実行できるようになる。
【0116】
なお、本発明は以上に説明した第1実施形態及び第2実施形態に限定されるものではない。
【0117】
(A)例えば、図9のステップS106において、制御部11は、第(n+j)番目に検出された接触位置が上記の2つの条件の両方(又は上記の3つの条件のすべて)を満足するか否かを判定するようにしてもよい。そして、第(n+j)番目に検出された接触位置が上記の2つの条件の両方(又は上記の3つの条件のすべて)を満足する場合、ステップS108において、制御部11はその接触位置を行列データMの要素M(i,j)に登録するようにしてもよい。一方、第(n+j)番目に検出された接触位置が上記の2つの条件の両方(又は上記の3つの条件のすべて)を満足すると判定されかった場合、制御部11はステップS109の処理を実行するようにしてもよい。
【0118】
複数の位置を一本の指によって触る場合、ユーザは最初に指先をタッチパネル13に接触させ、その後、指の他の部分をタッチパネル13に接触させるようにするのが一般的である。この場合、指の各部分は、指先から指の根元に向かう順番でタッチパネル13と接触することになる。この点、上記のようにすれば、ユーザが一本の指によって複数の位置を触る場合の一般的な指の接触のさせ方を考慮して、一本の指によって触られている位置を特定することが可能になる。その結果として、一本の指によって触られている位置をより確実に特定することが可能になる。
【0119】
(B)例えば、図9のステップS104,S108では、行列データMに登録された接触位置を検出位置データ(図3参照)から削除するようにしてもよい。
【0120】
例えば、接触位置(X1,Y1)が行列データMに登録された場合、接触位置(X1,Y1)を検出位置データから削除するように、オペレーティングシステムに指示するようにしてもよい。そして、この指示に従って、オペレーティングシステムは接触位置(X1,Y1)を検出位置データから削除するようにしてもよい。
【0121】
なお、上述したように、5つの接触位置が検出位置データに既に記憶されている場合には、新たに接触位置が生じたとしても、その接触位置はオペレーティングシステムによって取得されない。この点、接触位置が検出位置データから削除されると、新たな接触位置がオペレーティングシステムによって取得されるようになる。そして、その新たな接触位置が、上記の削除された接触位置の代わりに、検出位置データに記憶されるようになる。
【0122】
以上のように、接触位置が検出位置データから削除されると、新たな接触位置がオペレーティングシステムによって取得されるようになり、この新たな接触位置を処理(例えば、指領域51又は当たり領域81の設定処理)に用いることが可能になる。また、例えば行列データMを少なくとも一定期間保持するようにしておけば、検出位置データから削除された接触位置は行列データMに保持されているため、その接触位置も処理(例えば、新たな行列データMの生成処理や、指領域51又は当たり領域81の設定処理)に用いることが可能になる。このため、上記のようにすれば、オペレーティングシステムによって取得可能な接触位置の上限数が設けられているような場合であっても、その上限数よりも多い数の接触位置を処理(例えば、指領域51又は当たり領域81の設定処理)に用いることが可能になる。
【0123】
(C)例えば、ユーザの指の長さを考慮して図9の処理を実行するようにしてもよい。
【0124】
(C−1)例えば図9のステップS105では、ユーザの指の長さに関する情報に基づいて、対象領域の大きさを制御するようにしてもよい。具体的には、ユーザの指が長いほど対象領域が大きくなるようにして、対象領域を設定するようにしてもよい。
【0125】
この変形例では、ユーザの指の長さに関する情報が記憶部12に記憶される。なお、ユーザの指に関する情報は予めユーザが入力するようにすればよい。または、ユーザの指に関する情報は、ユーザが指の根元から指先までをタッチパネル13に接触させた場合の接触位置の検出結果に基づいて、自動的に取得するようにしてもよい。
【0126】
また、この変形例では、ユーザの指の長さに関する情報と、対象領域の大きさに関する情報と、の対応関係を示す対応関係情報が記憶部12に記憶される。対象領域の大きさに関する情報は、例えば、対応領域の半径に関する情報である。対応関係情報は、ユーザの指が長いほど対象領域が大きくなるように(対象領域の半径が長くなるように)設定される。そして、図9のステップS105では、ユーザの指の長さに関する情報と、対応関係情報とに基づいて、対象領域の大きさ(対象領域の半径の長さ)が設定される。
【0127】
上記のようにすれば、一本の指によって触られている複数の位置をユーザの指の長さを考慮して特定できるようになる。
【0128】
(C−2)また例えば、図9に示す処理では、ステップS106において上記の2つの条件の両方(又は上記の3つの条件のすべて)を満足する接触位置が存在しないと判定された場合に、ステップS105〜S108の処理の繰り返し実行を終了して、ステップS109の処理を実行するようになっていた。しかしながら、図9に示す処理では、変数jの値が基準値に達した場合にも、ステップS105〜S108の処理の繰り返し実行を終了して、ステップS109の処理を実行するようにしてもよい。
【0129】
そして、上記の基準値を、ユーザの指の長さに関する情報に基づいて制御するようにしてもよい。すなわち、ステップS105〜S108の処理の繰り返し実行の上限回数を、ユーザの指の長さに関する情報に基づいて制御するようにしてもよい。
【0130】
この変形例においても、ユーザの指の長さに関する情報が記憶部12に記憶される。また、この変形例では、ユーザの指の長さに関する情報と、上記の基準値(上限回数)に関する情報と、の対応関係を示す対応関係情報が記憶部12に記憶される。この対応関係情報は、ユーザの指が長いほど上記の基準値(上限回数)が大きくなるように設定される。そして、図9に示す処理では、ユーザの指の長さに関する情報と、対応関係情報とに基づいて、上記の基準値(上限回数)が設定され、変数jの値がその基準値に達した場合に、ステップS105〜S108の処理の繰り返し実行が終了され、ステップS109の処理が実行される。
【0131】
このようにしても、一本の指によって触られている複数の位置をユーザの指の長さを考慮して特定できるようになる。
【0132】
(D)例えば、第2実施形態では、図9のステップS101〜S111の処理、すなわち、当たり領域81を設定するための前処理は、少なくとも一つのゲームキャラクタ71が穴74上に位置している場合にのみ実行されるようにしてもよい。このようにすれば、処理負荷の軽減を図ることが可能になる。
【0133】
(E)例えば、第2実施形態では、ユーザがゲームキャラクタ71の移動を遮るようにして指をタッチパネル13上に置いた場合に、ユーザの指が壁73と同様の役割を果たすようにしてもよい。この場合、ユーザの指が接触している位置までゲームキャラクタ71が到達したら、ゲームキャラクタ71が壁73に当たった場合と同様、ゲームキャラクタ71が向きを変えて、それまでの進行方向とは逆の方向への移動を開始するようにしてもよい。
【0134】
(F)例えば、第1実施形態では、ギターアプリケーションプログラム以外のプログラムが実行されるようにしてもよい。すなわち、本発明は、ギターアプリケーション以外のアプリケーションにも適用することができる。また例えば、第2実施形態では、上記に説明したようなゲーム以外のゲームが実行されるようにしてもよい。すなわち、本発明は、上記に説明したようなゲーム以外のゲームにも適用することができる。本発明は、一本の指によって触られた複数の位置を特定する必要があるアプリケーションやゲームに適用することができる。本発明は、一本の指によって触られた複数の位置を特定する必要がある情報処理装置に適用することができる。
【0135】
(F−1)例えば、自動車又はオートバイの運転を楽しむドライブゲームにも本発明は適用することができる。図21はドライブゲームのゲーム画面の一例を示す。図21に示すゲーム画面には道路92上を走行する自動車90,91が表示されている。自動車90はユーザが運転する自動車であり、自動車91は競争相手となる自動車である。
【0136】
このドライブゲームでは、ユーザは情報処理装置10(携帯電話機)の両端を両手で持ちながら右手の指Fa(例えば親指)及び左手の指Fb(例えば親指)をタッチパネル13上に接触させる。例えば、指Faはアクセルペダルに対応しており、タッチパネル13に接触している指Faの部分の長さに基づいて、アクセルペダルの踏み込み度合いを示すパラメータの値が設定される。例えば、指Faの指先のみがタッチパネル13に接触している場合には、タッチパネル13に接触している指Faの部分の長さが比較的短いため、アクセルペダルの踏み込み度合いが弱く設定される。また例えば、指Faの指先から第1関節までの部分がタッチパネル13に接触している場合には、タッチパネル13に接触している指Faの部分の長さが比較的長いため、アクセルペダルの踏み込み度合いが強く設定される。一方、指Fbはクラッチペダルに対応しており、タッチパネル13に接触している指Fbの部分の長さに基づいて、クラッチペダルの踏み込み度合いを示すパラメータの値が設定される。タッチパネル13に接触している指Fbの部分の長さとクラッチペダルの踏み込み度合いとの関係は、指Faとアクセルペダルとの関係と同様である。
【0137】
上記のようなドライブゲームでは、図9に示すステップS101〜S111の処理によって得られた行列データMに基づいて、タッチパネル13に接触している指Fa又はFbの部分の長さが取得される。例えば、行列データMの一つの行に登録されている複数の接触位置を結ぶ線80の長さが、タッチパネル13に接触している指の部分の長さとして取得される。
【0138】
上記のようなドライブゲームによれば、ユーザがタッチパネル13に接触している指Fa又はFbの部分の長さを調整することによって、アクセルペダルやクラッチペダルの踏み込み具合を調整できるようになる。言い換えれば、本発明をドライブゲームに適用することによって、アクセルペダルやクラッチペダルの操作のリアルさを高めることが可能になる。
【0139】
(F−2)例えば、セキュリティシステム等における認証機能にも本発明は適用することができる。ユーザがタッチパネル13を触る場合の触り方にはそのユーザ特有の癖が存在する。例えば、タッチパネル13に接触させる指の数、指が接触するタッチパネル13上の位置や、タッチパネル13に接触された指の部分の長さはユーザごとに異なるはずである。このため、上記の認証機能では、ユーザがタッチパネル13を触る場合の触り方に基づいて認証処理が行われる。
【0140】
図22は上記の認証機能の画面の一例を示している。図22に示すように、認証機能の画面では、タッチパネル13上に指を置くようにユーザに案内される。この場合、ユーザは任意の数の指をタッチパネル13上の任意の位置に置く。図22に示す例では、ユーザが一本の指Fをタッチパネル13上に置いている。
【0141】
そして、認証機能では、タッチパネル13に接触された指の数、指によって接触されているタッチパネル13上の位置や、タッチパネル13上に接触されている指の長さが取得される。図22に示す例の場合、ユーザが一本の指Fをタッチパネル13上に接触させているため、タッチパネル13に接触された指の数として「1本」が取得される。さらに、指Fの接触位置と、タッチパネル13上に接触されている指Fの長さとが取得される。
【0142】
記憶部12には、ユーザの認証情報として、基準本数と基準接触位置と基準長さとの組合せが記憶されており、これらの基準情報が上記の取得結果と比較される。図22に示す例の場合、タッチパネル13に接触された指の数(1本)が基準本数と比較される。また、指Fの接触位置が基準接触位置と比較される。さらに、タッチパネル13上に接触されている指Fの長さが基準長さと比較される。そして、それらの比較結果に基づいて認証の成否が決定される。例えば、類似度が基準値以上であるか否かが判定されることによって類似度が高いか否かが判定される。そして、類似度が高い場合には認証成功と判断され、類似度が低い場合には認証失敗と判断される。
【0143】
以上のようにすれば、ユーザがタッチパネル13を触る場合の触り方によって認証を行う認証機能を実現できるようになる。
【符号の説明】
【0144】
10 情報処理装置、11 制御部、12 記憶部、13 タッチパネル、14 表示部、15 音声出力部、16 通信部、20a 第1弦、20b 第2弦、20c 第3弦、20d 第4弦、20e 第5弦、20f 第6弦、21 フレット、30 検出部、31 判定部、32 判定制御部、33 処理実行部、40a,40b,40c,40d,40e,40f,40g,40h 接触位置、41a,41b,41c,41d 対象領域、50,80 線、51 指領域、70 ゲームフィールド、71a,71b,71c,71d ゲームキャラクタ、72 床、73 壁、74 穴、75 家、76 残り時間、81 当たり領域、90,91 自動車、92 道路。

【特許請求の範囲】
【請求項1】
タッチパネルと、ユーザによって接触された前記タッチパネル上の複数の接触位置を検出する検出手段と、を含む情報処理装置において、
前記複数の接触位置のうちの一の接触位置に基づいて設定され、かつ、該一の接触位置を含んでなる対象領域内に、前記複数の接触位置のうちの他の接触位置のいずれかが含まれるか否かの判定を実行する判定手段と、
前記他の接触位置のいずれかが前記対象領域内に含まれると前記判定手段によって判定された場合、該対象領域として設定されていた領域外の領域を含み、かつ、前記一の接触位置及び該他の接触位置を含んでなる領域を、新たな対象領域として、前記一の接触位置に基づいて設定する設定手段と、
前記判定手段による前記判定が複数回実行された場合、前記一の接触位置と、該複数回の判定の各々において前記対象領域に含まれると判定された接触位置とに基づいて、処理を実行する処理実行手段と、
を含むことを特徴とする情報処理装置。
【請求項2】
請求項1に記載の情報処理装置において、
前記判定手段は、前記一の接触位置からの距離が基準距離以下である対象領域内に、前記他の接触位置のいずれかが含まれるか否かを判定し、
前記設定手段は、前記他の接触位置のいずれかが前記対象領域内に含まれると前記判定手段によって判定された場合、該対象領域における前記基準距離よりも長い距離を新たな基準距離として設定することによって前記新たな対象領域を設定する、
ことを特徴とする情報処理装置。
【請求項3】
請求項1又は2に記載の情報処理装置において、
前記検出手段は、所定の上限数の接触位置を検出可能であり、
前記判定制御手段は、
前記他の接触位置のいずれかが前記対象領域内に含まれると前記判定手段によって判定された場合、前記対象領域内に含まれると判定された該接触位置を記憶手段に記憶させる手段と、
前記他の接触位置のいずれかが前記対象領域内に含まれると前記判定手段によって判定された場合、前記対象領域内に含まれると判定された該接触位置の代わりに、新たな接触位置を前記検出手段に検出させる手段と、を含み、
前記処理実行手段は、前記記憶手段に記憶された、前記対象領域内に含まれると判定された接触位置に基づいて、前記処理を実行する、
ことを特徴とする情報処理装置。
【請求項4】
請求項1乃至3のいずれかに記載の情報処理装置において、
前記ユーザの指の長さに関する情報を取得する手段を含み、
前記ユーザの指の長さに関する前記情報に基づいて、前記対象領域の大きさを制御する、
ことを特徴とする情報処理装置。
【請求項5】
請求項1乃至4のいずれかに記載の情報処理装置において、
前記ユーザの指の長さに関する情報を取得する手段を含み、
前記ユーザの指の長さに関する前記情報に基づいて、前記判定手段による前記判定が実行される上限回数を設定する、
ことを特徴とする情報処理装置。
【請求項6】
タッチパネルと、ユーザによって接触された前記タッチパネル上の複数の接触位置を検出する検出手段と、を含む情報処理装置の制御方法において、
前記複数の接触位置のうちの一の接触位置に基づいて設定され、かつ、該一の接触位置を含んでなる対象領域内に、前記複数の接触位置のうちの他の接触位置のいずれかが含まれるか否かの判定を実行する判定ステップと、
前記他の接触位置のいずれかが前記対象領域内に含まれると前記判定手段によって判定された場合、該対象領域として設定されていた領域外の領域を含み、かつ、前記一の接触位置及び該他の接触位置を含んでなる領域を、新たな対象領域として、前記一の接触位置に基づいて設定する設定ステップと、
前記判定手段による前記判定が複数回実行された場合、前記一の接触位置と、該複数回の判定の各々において前記対象領域に含まれると判定された接触位置とに基づいて、処理を実行する処理実行ステップと、
を含むことを特徴とする情報処理装置の制御方法。
【請求項7】
タッチパネルと、ユーザによって接触された前記タッチパネル上の複数の接触位置を検出する検出手段と、を含むコンピュータを、
前記複数の接触位置のうちの一の接触位置に基づいて設定され、かつ、該一の接触位置を含んでなる対象領域内に、前記複数の接触位置のうちの他の接触位置のいずれかが含まれるか否かの判定を実行する判定手段、
前記他の接触位置のいずれかが前記対象領域内に含まれると前記判定手段によって判定された場合、該対象領域として設定されていた領域外の領域を含み、かつ、前記一の接触位置及び該他の接触位置を含んでなる領域を、新たな対象領域として、前記一の接触位置に基づいて設定する設定手段、及び、
前記判定手段による前記判定が複数回実行された場合、前記一の接触位置と、該複数回の判定の各々において前記対象領域に含まれると判定された接触位置とに基づいて、処理を実行する処理実行手段、
として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10A】
image rotate

【図10B】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2012−181590(P2012−181590A)
【公開日】平成24年9月20日(2012.9.20)
【国際特許分類】
【出願番号】特願2011−42499(P2011−42499)
【出願日】平成23年2月28日(2011.2.28)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】