情報処理装置およびプログラム
【課題】ユーザが手に持って使用する入力装置を用いて従来にはない新たな操作を行う。
【解決手段】情報処理装置は、入力装置から取得された操作データから、入力装置の傾きに対応して変化する傾きデータを算出または取得する。なお、操作データには、撮像手段によって撮像される撮像画像のデータ、当該撮像画像における撮像対象の所定の2箇所の位置を示すデータ、当該2箇所の位置を結ぶ方向を示すデータ、および当該方向から算出される入力装置の傾きを示すデータ、の少なくともいずれかが含まれる。情報処理装置は、傾きデータに基づいて、画面に表示されているオブジェクト(パネル等)を他のオブジェクトに入れ替えて表示させる。
【解決手段】情報処理装置は、入力装置から取得された操作データから、入力装置の傾きに対応して変化する傾きデータを算出または取得する。なお、操作データには、撮像手段によって撮像される撮像画像のデータ、当該撮像画像における撮像対象の所定の2箇所の位置を示すデータ、当該2箇所の位置を結ぶ方向を示すデータ、および当該方向から算出される入力装置の傾きを示すデータ、の少なくともいずれかが含まれる。情報処理装置は、傾きデータに基づいて、画面に表示されているオブジェクト(パネル等)を他のオブジェクトに入れ替えて表示させる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置およびプログラムに関し、より特定的には、撮像装置を備える入力装置を用いてユーザが操作を行う情報処理装置およびプログラムに関する。
【背景技術】
【0002】
従来、光学式のポインティングシステムを用いて表示画面上の特定の位置を指定する技術が考えられている。例えば、特許文献1に記載の光学式ポインティングシステムは、複数の視聴者を対象とした会議等において用いられるシステムである。このシステムでは、表示画面の近傍に発光素子が設けられ、指示器には光電変換素子を用いた撮像装置が内蔵される。指示者が指示器を用いて表示画面の任意の位置を指定する場合、指示器は、撮像装置によって上記発光素子を撮像し、撮像された画像に基づいて指示器が指定する位置を算出する。算出された位置にマークが表示されることによって、指示者が指示したい位置がマークによって示されることとなる。
【0003】
また、上記と同様の光学式のポインティングシステムを用いたゲーム用コントローラが考えられている(例えば、特許文献2参照。)。このコントローラは、ガン(拳銃)型の形状を有しており、射撃ゲームに用いられる。この射撃ゲームは、画面に表示されている標的に向かってガンを用いて射撃させるゲームである。ガンは、画面上の任意の位置(弾が飛んでいく位置)を指定するために用いられる。ガン型のコントローラにはCCDカメラが内蔵されており、画面の周囲の4箇所に配置された発光体をCCDカメラが撮像する。コントローラは、撮像された画像を用いてガンの向きや回転や傾きを算出する。算出結果を用いて、画面に表示されている標的の向きをガンが正しく向いているか否かを検出することによって、標的に命中したか否かを判断する。以上の構成によって、プレイヤが手に持ったコントローラ(ガン)自体を動かしてゲーム操作を行うゲームシステムを実現することができる。
【特許文献1】特開平6−308879号公報
【特許文献2】特開平8−71252号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
上記の技術では、ユーザが手に持って使用する入力装置(上記指示器やガン型のコントローラ)は、表示画面上の位置を指定するために用いられるのみである。つまり、上記の指示器やガン型のコントローラでは、表示画面上の位置を指定するという単一の操作のみが可能であり、他の操作を行うことができなかった。例えば、上記入力装置をゲーム装置に用いる場合、表示画面上の位置を指定するという1種類の単純なゲーム操作しか行うことができない。そのため、ゲーム操作が単純であることからゲーム自体も単純な内容となってしまい、興趣性に欠けるものとなる。
【0005】
それゆえ、本発明の目的は、ユーザが手に持って使用する入力装置を用いて従来にはない新たな操作を行うことが可能な情報処理装置およびプログラムを提供することである。
【課題を解決するための手段】
【0006】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、本欄における括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【0007】
第1の発明は、撮像対象(マーカ8aおよび8b)を撮像するための撮像手段(撮像素子40)を備えた入力装置(コントローラ7)から操作データ(62)を取得し、当該操作データに応じてゲーム処理を行った結果を表示装置(モニタ2)の画面に表示させる情報処理装置(ゲーム装置3)である。操作データには、撮像手段によって撮像される撮像画像のデータ、当該撮像画像における撮像対象の所定の2箇所の位置を示すデータ(マーカ座標データ621)、当該2箇所の位置を結ぶ方向を示すデータ、および当該方向から算出される入力装置の傾きを示すデータ、の少なくともいずれかが含まれる。情報処理装置は、傾きデータ算出手段(S22、S39、またはS57を実行するCPU10等。以下、この欄においてはステップ番号のみを記載する。)と、入替手段(S25およびS26、S40、または、S58)とを備える。傾きデータ算出手段は、入力装置から取得された操作データから、入力装置の傾きを表す傾きデータ(636)を算出または取得する。入替手段は、傾きデータに基づいて、画面に表示されているオブジェクト(パネル51、候補文字画像73a〜73e、表76の欄、または、ウィンドウ81a〜81d)を他のオブジェクトに入れ替えて表示させる。
【0008】
第2の発明においては、入替手段は、画面に表示されている複数のオブジェクトの位置を入れ替えてもよい。
【0009】
第3の発明においては、操作データには、撮像手段によって撮像される撮像画像のデータ、当該撮像画像における撮像対象の所定の2箇所の位置を示すデータ(マーカ座標データ621)、および、当該撮像画像における撮像対象の位置を示すデータ、の少なくともいずれかが含まれていてもよい。このとき、情報処理装置は、指示位置算出手段(S11、S34、またはS52)と、選出手段(S12およびS13、S35およびS37、または、S53およびS54)とをさらに備えている。指示位置算出手段は、入力装置によって指し示される画面上の指示位置を操作データから算出する。選出手段は、画面に表示され得る複数のオブジェクトのうちから、入替の対象となる対象オブジェクトを指示位置を用いて複数選出する。入替手段は、複数の対象オブジェクトの位置を入れ替える。
【0010】
第4の発明においては、選出手段は、指示位置を含む所定の領域内(枠53によって囲まれる領域内)に含まれる複数のオブジェクトを対象オブジェクトとして選出するようにしてもよい。
【0011】
第5の発明においては、画面には、複数のオブジェクトからなるオブジェクト群を表すオブジェクト群画像(候補文字群画像71a〜71e)が複数表示されてもよい。このとき、選出手段は、所定のタイミング(候補文字決定ボタンが押下されたタイミング)において複数のオブジェクト群画像のいずれかと指示位置とが重なったか否かを判定し、指示位置と重なったオブジェクト群画像に対応する複数のオブジェクト(候補文字画像73a〜73e)を対象オブジェクトとして選出する。
【0012】
第6の発明においては、選出手段は、所定のタイミング(選択ボタンが押下されたタイミング)において、画面に表示されている複数のオブジェクト(表76の各欄)のいずれかと指示位置とが重なったか否かを判定し、当該指示位置と重なったオブジェクトを対象オブジェクトとして選出するようにしてもよい。このとき、入替手段は、複数のオブジェクトが対象オブジェクトとして選出されている場合、当該複数の対象オブジェクトの位置を入れ替える。
【0013】
第7の発明においては、入替手段は、複数のオブジェクト(対象パネル)の表示位置の中心(マーク54)を軸に回転移動させることによって当該複数のオブジェクトを入れ替えるようにしてもよい。
【0014】
第8の発明においては、入替手段は、所定期間(入替状態に移行した時点から現在までの期間)における、傾きデータにより示される傾きの変化に基づいてオブジェクトの入れ替えを行うようにしてもよい。
【0015】
第9の発明においては、入力装置は少なくとも1つの押圧可能な操作キー(操作キー32a〜32i)を有していてもよい。このとき、操作データは、操作キーが押されているか否かを示すキーデータ(操作キーデータ622)をさらに含んでいる。入替手段は、キーデータに基づいて所定期間を決定する。
【0016】
第10の発明においては、入替手段は、複数のオブジェクトの位置を循環的に入れ替えるようにしてもよい。このとき、入替手段による入替は、所定期間における傾きの変化量に応じた回数だけ行われる。
【0017】
第11の発明においては、入替手段は、予め定められた基準方向に対する傾きデータにより示される傾きの変化に基づいてオブジェクトの入れ替えを行ってもよい。
【0018】
第12の発明は、撮像対象(マーカ8aおよび8b)を撮像するための撮像手段(撮像素子40)と、少なくとも1つの押圧可能な操作キー(操作キー32a〜32i)とを備えた入力装置(コントローラ7)から操作データ(62)を取得し、当該操作データに応じてゲーム処理を行うゲーム装置(3)である。
操作データには、撮像手段によって撮像される撮像画像のデータ、当該撮像画像における撮像対象の所定の2箇所の位置を示すデータ、当該2箇所の位置を結ぶベクトルを示すデータ、および当該ベクトルから算出される入力装置の傾きを示すデータ、の少なくともいずれかである第1データ(マーカ座標データ621)と、操作キーが押されているか否かを示す第2データ(操作キーデータ622)とが含まれる。ゲーム装置は、操作データ取得手段(S3)と、傾き算出手段(S15およびS22)と、指示位置算出手段(S11)と、キー入力判定手段(S14およびS21)と、操作対象設定手段(S12およびS13)と、記憶手段(S15)と、変化量算出手段(S23)と、回転手段(S25)と、近似手段(S26)と、入替手段(S28)と、消去手段(S18)と、表示手段(S28)とを備えている。操作データ取得手段は、操作データを逐次取得する。傾き算出手段は、操作データに含まれる第1データから、入力装置の傾きを逐次算出または取得する。指示位置算出手段は、入力装置によって指し示される画面上の指示位置を、操作データに含まれる第1データから逐次算出する。キー入力判定手段は、操作データに含まれる第2データに基づき、操作キーが押されているか否かを判定する。操作対象設定手段は、ゲーム空間内に配置された、複数種類のグループに分類された複数のパズル要素(パネル)のうち、キーが押されたタイミングにおける指示位置に対応するゲーム空間内の位置を含む所定領域内(枠53の領域内)に配置されるパズル要素を操作対象(対象パネル)として設定する。記憶手段は、キーが押されたタイミングにおける入力装置の傾きを記憶する。変化量算出手段は、キーが押されている期間、記憶手段に記憶された傾きに対する傾き算出手段によって算出された傾きの変化量を逐次算出する。回転手段は、変化量に基づいた回転量で、操作対象のパズル要素を回転させる。近似手段は、キーが離されたタイミングにおける変化量を、操作対象のパズル要素の位置を循環的に入れ替えたときの回転量に近似する。入替手段は、近似された回転量だけ操作対象のパズル要素を回転させることにより、当該パズル要素の位置を循環的に入れ替える。消去手段は、入替手段によってパズル要素の位置を入れ替えた結果、同一グループに分類されるパズル要素がゲーム空間において所定個数以上並んだ場合に、当該並んだパズル要素を消去する。表示制御手段は、パズル要素を含むゲーム空間の画像を表示装置に逐次表示させる。
【0019】
第13の発明は、撮像対象(マーカ8aおよび8b)を撮像するための撮像手段(撮像素子40)と、第1の操作キーおよび第2の操作キーとを備えた入力装置(コントローラ7)から操作データ(62)を取得し、当該操作データに応じて文字入力を受け付ける文字入力受付装置(ゲーム装置3)である。操作データには、撮像手段によって撮像される撮像画像のデータ、当該撮像画像における撮像対象の所定の2箇所の位置を示すデータ、当該2箇所の位置を結ぶベクトルを示すデータ、および当該ベクトルから算出される入力装置の傾きを示すデータ、の少なくともいずれかである第1データ(マーカ座標データ621)と、操作キーが押されているか否かを示す第2データ(操作キーデータ622)とが含まれる。文字入力受付装置は、操作データ取得手段(S33)と、傾き算出手段(S39)と、指示位置算出手段(S34)と、キー入力判定手段(S36およびS38)と、第1表示制御手段(S42)と、第2表示制御手段(S42)と、入替手段(S40)と、入力受付手段(S41)と、第3表示制御手段(S42)とを備えている。操作データ取得手段は、操作データを逐次取得する。傾き算出手段は、操作データに含まれる第1データから、入力装置の傾きを逐次算出または取得する。指示位置算出手段は、入力装置によって指し示される画面上の指示位置を、操作データに含まれる第1データから逐次算出する。キー入力判定手段は、操作データに含まれる第2データに基づき、操作キーが押されているか否かを判定する。第1表示制御手段は、複数の文字からなる文字群を表す文字群画像(候補文字群画像71a〜71e)を表示装置に複数表示させる。第2表示制御手段は、第1の操作キーが押されたタイミングにおいて指示位置と重なっている文字群画像により表される文字群に含まれる各文字を文字毎に表す複数の文字画像(候補文字画像73a〜73e)を、それぞれ所定の位置関係となるように表示装置に表示させる。入替手段は、傾き算出手段によって算出される傾きに基づいて複数の文字画像の位置関係を入れ替える。入力受付手段は、第2の操作キーが押下された場合、複数の文字画像のうち、所定の位置に表示されている文字画像により表される文字の入力を受け付ける。第3表示制御手段は、入力受付手段によって入力が受け付けられた文字を表示装置に表示させる。
【0020】
また、本発明は、上記発明における機能を情報処理装置のコンピュータに実行させるためのプログラムの形態で提供されてもよい。
【発明の効果】
【0021】
第1の発明によれば、傾きデータ算出手段は、入力装置の傾きに応じて変化する傾きデータを算出し、入替手段は、算出された傾きデータに基づいてオブジェクトの入替を行う。これによれば、ユーザは、入力装置の傾きを変化させる操作を行うことによって、オブジェクトの入替を行うことができる。つまり、コントローラ7自体を回転させることによってオブジェクトを入れ替えるという、今までにない新規な操作をユーザに提供することができる。
【0022】
第2の発明によれば、複数のオブジェクトの位置を入れ替えるための操作を、コントローラ7自体を回転させるという今までにない新規な操作によって行うことができる。
【0023】
第3の発明によれば、指示位置算出手段によって算出される指示位置に基づいて入替の対象となる対象オブジェクトが選出される。したがって、ユーザは、オブジェクトを入れ替える操作に加えて、入替の対象となるオブジェクトを選出する操作をコントローラ7を用いて行うことができる。すなわち、ユーザは、コントローラ7自体を操作する操作方法によって2種類の異なる操作を行うことができる。このように第3の発明によれば、簡単な操作でユーザに2種類の操作を行わせることができ、操作性の良い情報処理装置をユーザに提供することができる。
【0024】
第4の発明によれば、指示位置を含む所定の領域内のオブジェクトが入替の対象となるので、ユーザは、入替の対象となるオブジェクトを直感的な操作で容易に選出することができる。
【0025】
第5の発明によれば、所定のタイミングにおいてオブジェクト群画像の位置に指示位置が位置する場合、当該オブジェクト群画像に対応する複数のオブジェクトが入替の対象となる。したがって、ユーザは、入替の対象とすべき所望のオブジェクト群を表すオブジェクト群画像を指定するという直感的な操作によって、入替の対象となるオブジェクトを容易に選出することができる。
【0026】
第6の発明によれば、所定のタイミングにおいて指示位置と重なったオブジェクトが入替の対象となる。これによれば、入替の対象とすべきオブジェクトを1つずつ選出することができるので、より自由度の高い入れ替え操作が可能となる。また、ユーザは、入替の対象となるオブジェクトを直感的な操作で容易に選出することができる。
【0027】
第7の発明によれば、入替の対象となるオブジェクトが回転されるので、入替が行われる様子をわかりやすくユーザに提示することができる。
【0028】
第8の発明によれば、コントローラ7の傾きの相対的な変化に基づいてオブジェクトの入替を行うことができる。
【0029】
第9の発明によれば、ユーザは、上記所定期間を操作キーによって自ら決定することができるので、入替の操作をより容易に行うことができる。
【0030】
第10の発明によれば、変化量の大きさに応じて入替が行われる回数が変化するので、ユーザは複数回の入替操作を容易に行うことができる。
【0031】
第11の発明によれば、コントローラ7の絶対的な傾きに基づいてオブジェクトの入替を行うことができる。
【0032】
第12の発明によれば、コントローラ7の指示位置を移動させることによって入替の対象となるパズル要素を指定するとともに、コントローラ7を回転させることによってパズル要素を入れ替えるという、直感的で、かつ、今までにない新規な操作方法のパズルゲームを提供することができる。
【0033】
第13の発明によれば、コントローラ7の指示位置を移動させることによって入力の候補となる文字群を指定するとともに、コントローラ7を回転させることによって入力する文字を決定するという、直感的で、かつ、今までにない新規な操作方法の文字入力受付装置を提供することができる。
【発明を実施するための最良の形態】
【0034】
図1を参照して、本発明の一実施形態に係る情報処理装置の一例であるゲーム装置を含むゲームシステム1について説明する。なお、図1は、当該ゲームシステム1を説明するための外観図である。以下、据置型のゲーム装置を一例にして、本発明の情報処理装置について説明する。
【0035】
図1において、ゲームシステム1は、家庭用テレビジョン受像機等のスピーカを備えたディスプレイ(以下、モニタと記載する)2に、接続コードを介して接続される据置型ゲーム装置(以下、単にゲーム装置と記載する)3および当該ゲーム装置3に操作データを与えるコントローラ7によって構成される。また、モニタ2の周辺(図では画面の上側)には、2つのマーカ8aおよび8bが設置される。マーカ8aおよび8bは、具体的には赤外LEDであり、それぞれモニタ2の前方に向かって赤外光を出力する。ゲーム装置3は、接続端子を介して受信ユニット6が接続される。受信ユニット6は、コントローラ7から無線送信される操作データを受信し、コントローラ7とゲーム装置3とは無線通信によって接続される。なお、他の実施形態においてはコントローラ7とゲーム装置3とは有線で接続されてもよい。また、ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着される。ゲーム装置3の上部主面には、当該ゲーム装置3の電源ON/OFFスイッチ、ゲーム処理のリセットスイッチ、およびゲーム装置3上部の蓋を開くOPENスイッチが設けられている。ここで、プレイヤがOPENスイッチを押下することによって上記蓋が開き、光ディスク4の脱着が可能となる。
【0036】
また、ゲーム装置3には、セーブデータ等を固定的に記憶するバックアップメモリ等を搭載する外部メモリカード5が必要に応じて着脱自在に装着される。ゲーム装置3は、光ディスク4に記憶されたゲームプログラムなどを実行することによって、その結果をゲーム画像としてモニタ2に表示する。さらに、ゲーム装置3は、外部メモリカード5に記憶されたセーブデータを用いて、過去に実行されたゲーム状態を再現して、ゲーム画像をモニタ2に表示することもできる。そして、ゲーム装置3のプレイヤは、モニタ2に表示されたゲーム画像を見ながら、コントローラ7を操作することによって、ゲームを楽しむことができる。
【0037】
コントローラ7は、その内部に備える通信部36(後述)から受信ユニット6が接続されたゲーム装置3へ、例えばBluetooth(ブルートゥース)(登録商標)の技術を用いて操作データを無線送信する。コントローラ7は、複数の操作キーからなる操作部が設けられている。また、後述により明らかとなるが、コントローラ7は、少なくとも直交2軸方向の加速度を検出する加速度センサ37(後述)を備えている。加速度センサ37によって検出された加速度を示すデータは上記操作データの一部としてゲーム装置3へ送信される。また、コントローラ7は、当該コントローラ7から見た画像を撮像するための撮像情報演算部35(後述)を備えている。撮像情報演算部35は、モニタ2の周辺に配置された各マーカ8aおよび8bを撮像対象として、各マーカ8aおよび8bの画像を撮像する。ゲーム装置3は、この画像に基づいた演算処理によってコントローラ7の位置および姿勢に応じた処理を実行する。
【0038】
次に、図2を参照して、ゲーム装置3の構成について説明する。なお、図2は、ゲーム装置3の機能ブロック図である。
【0039】
図2において、ゲーム装置3は、各種プログラムを実行する例えばリスク(RISC)CPU(セントラルプロセッシングユニット)10を備える。CPU10は、図示しないブートROMに記憶された起動プログラムを実行し、メインメモリ13等のメモリの初期化等を行った後、光ディスク4に記憶されているゲームプログラムを実行し、そのゲームプログラムに応じたゲーム処理等を行うものである。CPU10には、メモリコントローラ11を介して、GPU(Graphics Processing Unit)12、メインメモリ13、DSP(Digital Signal Processor)14、およびARAM(Audio RAM)15が接続される。また、メモリコントローラ11には、所定のバスを介して、コントローラI/F(インターフェース)16、ビデオI/F17、外部メモリI/F18、オーディオI/F19、およびディスクI/F21が接続され、それぞれ受信ユニット6、モニタ2、外部メモリカード5、スピーカ22、およびディスクドライブ20が接続されている。
【0040】
GPU12は、CPU10の命令に基づいて画像処理を行うものあり、例えば、3Dグラフィックスの表示に必要な計算処理を行う半導体チップで構成される。GPU12は、図示しない画像処理専用のメモリやメインメモリ13の一部の記憶領域を用いて画像処理を行う。GPU12は、これらを用いてモニタ2に表示すべきゲーム画像データやムービー映像を生成し、適宜メモリコントローラ11およびビデオI/F17を介してモニタ2に出力する。
【0041】
メインメモリ13は、CPU10で使用される記憶領域であって、CPU10の処理に必要なゲームプログラム等を適宜記憶する。例えば、メインメモリ13は、CPU10によって光ディスク4から読み出されたゲームプログラムや各種データ等を記憶する。このメインメモリ13に記憶されたゲームプログラムや各種データ等がCPU10によって実行される。
【0042】
DSP14は、ゲームプログラム実行時にCPU10において生成されるサウンドデータ等を処理するものであり、そのサウンドデータ等を記憶するためのARAM15が接続される。ARAM15は、DSP14が所定の処理(例えば、先読みしておいたゲームプログラムやサウンドデータの記憶)を行う際に用いられる。DSP14は、ARAM15に記憶されたサウンドデータを読み出し、メモリコントローラ11およびオーディオI/F19を介してモニタ2に備えるスピーカ22に出力させる。
【0043】
メモリコントローラ11は、データ転送を統括的に制御するものであり、上述した各種I/Fが接続される。コントローラI/F16は、例えば4つのコントローラI/Fで構成され、それらが有するコネクタを介して嵌合可能な外部機器とゲーム装置3とを通信可能に接続する。例えば、受信ユニット6は、上記コネクタと嵌合し、コントローラI/F16を介してゲーム装置3と接続される。上述したように受信ユニット6は、コントローラ7からの操作データを受信し、コントローラI/F16を介して当該操作データをCPU10へ出力する。なお、他の実施形態においては、ゲーム装置3は、受信ユニット6に代えて、コントローラ7から送信されてくる操作データを受信する受信モジュールをその内部に設ける構成としてもよい。この場合、受信モジュールが受信した送信データは、所定のバスを介してCPU10に出力される。ビデオI/F17には、モニタ2が接続される。外部メモリI/F18には、外部メモリカード5が接続され、その外部メモリカード5に設けられたバックアップメモリ等とアクセス可能となる。オーディオI/F19にはモニタ2に内蔵されるスピーカ22が接続され、DSP14がARAM15から読み出したサウンドデータやディスクドライブ20から直接出力されるサウンドデータをスピーカ22から出力可能に接続される。ディスクI/F21には、ディスクドライブ20が接続される。ディスクドライブ20は、所定の読み出し位置に配置された光ディスク4に記憶されたデータを読み出し、ゲーム装置3のバスやオーディオI/F19に出力する。
【0044】
次に、図3A〜図8を参照して、コントローラ7について説明する。図3A〜図4は、コントローラ7の外観構成を示す斜視図である。図3Aは、コントローラ7の上面後方から見た斜視図であり、図3Bは、コントローラ7を下面後方から見た斜視図である。図4は、コントローラ7を前方から見た図である。
【0045】
図3A〜図4において、コントローラ7は、例えばプラスチック成型によって形成されたハウジング31を有している。ハウジング31は、その前後方向(図3に示すZ軸方向)を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。プレイヤは、コントローラ7を用いることによって、それに設けられたボタンを押下すること、および、コントローラ7自体の位置や向きを変えること等によってゲーム操作を行うことができる。例えば、プレイヤは、長手方向を軸としてコントローラ7を回転させたり、コントローラ7によって指し示される画面上の位置を変えたりする操作によって、操作対象に対する操作を行うことができる。ここで、「コントローラ7によって指し示される画面上の位置」とは、理想的には、コントローラ7の前端部から上記長手方向に延ばした直線とモニタ2の画面とが交わる位置であるが、厳密に当該位置である必要はなく、その周辺の位置をゲーム装置3によって算出することができればよい。以下では、コントローラ7によって指し示される画面上の位置を「コントローラ7の指示位置」と呼ぶ。また、コントローラ7(ハウジング31)の長手方向を、「コントローラ7の指示方向」と呼ぶことがある。
【0046】
ハウジング31には、複数の操作キーが設けられる。ハウジング31の上面には、十字キー32a、Xボタン32b、Yボタン32c、Aボタン32i、セレクトスイッチ32e、メニュースイッチ32f、およびスタートスイッチ32gが設けられる。一方、ハウジング31の下面には凹部が形成されており、当該凹部の後面側傾斜面にはBボタン32dが設けられる。これらの各操作キー(ボタン)は、ゲーム装置3が実行するゲームプログラムに応じてそれぞれの機能が割り当てられるが、本発明の説明とは直接関連しないためここでは詳細な説明を省略する。また、ハウジング31の上面には、遠隔からゲーム装置3本体の電源をオン/オフするための電源スイッチ32hが設けられる。
【0047】
また、コントローラ7は撮像情報演算部35(図5B)を有しており、図4に示すように、ハウジング31前面には撮像情報演算部35の光入射口35aが設けられる。一方、ハウジング31の後面にはコネクタ33が設けられている。コネクタ33は、例えば32ピンのエッジコネクタであり、コントローラ7に他の機器を接続するために利用される。また、ハウジング31上面の後面側には複数のLED34が設けられる。ここで、コントローラ7には、他のコントローラ7と区別するためにコントローラ種別(番号)が付与される。LED34は、コントローラ7に現在設定されている上記コントローラ種別をプレイヤに通知するために用いられる。具体的には、コントローラ7からゲーム装置3へ操作データを送信する際、上記コントローラ種別に応じて複数のLED34のいずれか1つが点灯する。
【0048】
次に、図5Aおよび図5Bを参照して、コントローラ7の内部構造について説明する。図5Aおよび図5Bは、コントローラ7の内部構造を示す図である。なお、図5Aは、コントローラ7の上筐体(ハウジング31の一部)を外した状態を示す斜視図である。図5Bは、コントローラ7の下筐体(ハウジング31の一部)を外した状態を示す斜視図である。図5Bに示す基板300は、図5Aに示す基板300の裏面から見た斜視図となっている。
【0049】
図5Aにおいて、ハウジング31の内部には基板300が固設されており、当該基板300の上主面上に操作キー32a〜32h、加速度センサ37、LED34、水晶振動子46、無線モジュール44、およびアンテナ45等が設けられる。そして、これらは、基板300等に形成された配線(図示せず)によってマイクロコンピュータ(Micro Computer:マイコン)42(図6参照)に接続される。また、無線モジュール44およびアンテナ45によって、コントローラ7がワイヤレスコントローラとして機能する。なお、水晶振動子46は、後述するマイコン42の基本クロックを生成する。
【0050】
一方、図5Bにおいて、基板300の下主面上の前端縁に撮像情報演算部35が設けられる。撮像情報演算部35は、コントローラ7の前方から順に赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41によって構成されおり、それぞれ基板300の下主面に取り付けられる。また、基板300の下主面上の後端縁にコネクタ33が取り付けられる。そして、撮像情報演算部35の後方であって基板300の下主面上にAボタン32iが取り付けられていて、それよりさらに後方に電池47が収容される。電池47とコネクタ33との間の基板300の下主面上には、バイブレータ48が取り付けられる。このバイブレータ48は、例えば振動モータやソレノイドであってよい。バイブレータ48が作動することによってコントローラ7に振動が発生するので、それを把持しているプレイヤの手にその振動が伝達され、いわゆる振動対応ゲームを実現することができる。
【0051】
なお、図3A〜図5Bに示したコントローラ7の形状や、各操作キーの形状、数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であっても、本発明を実現することができることは言うまでもない。また、コントローラ7における撮像情報演算部35の位置(撮像情報演算部35の光入射口35a)は、ハウジング31の前面でなくてもよく、ハウジング31の外部から光を取り入れることができれば他の面に設けられてもかまわない。このとき、上記「コントローラ7の指示方向」は、光入射口に垂直な方向、すなわち、撮像素子40の撮像方向となる。
【0052】
図6は、コントローラ7の構成を示すブロック図である。コントローラ7は、操作部32(各操作キー)、撮像情報演算部35、通信部36、および加速度センサ37を備えている。
【0053】
撮像情報演算部35は、撮像手段が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを算出するためのシステムである。撮像情報演算部35は、例えば最大200フレーム/秒程度のサンプリング周期を有するので、比較的高速なコントローラ7の動きでも追跡して解析することができる。
【0054】
撮像情報演算部35は、赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を含んでいる。赤外線フィルタ38は、コントローラ7の前方から入射する光から赤外線のみを通過させる。ここで、モニタ2の表示画面近傍に配置されるマーカ8aおよび8bは、モニタ2の前方に向かって赤外光を出力する赤外LEDである。したがって、赤外線フィルタ38を設けることによってマーカ8aおよび8bの画像をより正確に撮像することができる。レンズ39は、赤外線フィルタ38を透過した赤外線を集光して撮像素子40へ入射させる。撮像素子40は、例えばCMOSセンサやあるいはCCDのような固体撮像素子であり、レンズ39が集光した赤外線を撮像する。したがって、撮像素子40は、赤外線フィルタ38を通過した赤外線だけを撮像して画像データを生成する。以下では、撮像素子40によって撮像された画像を撮像画像と呼ぶ。撮像素子40によって生成された画像データは、画像処理回路41で処理される。画像処理回路41は、撮像画像内における撮像対象(マーカ8aおよび8b)の位置を算出する。以下、図7を用いて撮像対象の位置の算出方法を説明する。
【0055】
図7は、撮像画像の一例を示す図である。図7に示す撮像画像A1においては、マーカ8aの画像8a’およびマーカ8bの画像8b’が左右に並んでいる。撮像画像が入力されると、まず、画像処理回路41は、撮像画像内において所定条件に合致する領域の位置を示す座標を当該領域毎に算出する。ここで、所定条件とは、撮像対象の画像(対象画像)を特定するための条件であり、所定条件の具体的な内容は、輝度が所定値以上の領域(高輝度領域)であり、かつ、領域の大きさが所定範囲内の大きさであることである。なお、所定条件は撮像対象を特定するための条件であればよく、他の実施形態においては、画像の色に関する条件を含んでいてもよい。
【0056】
対象画像の位置を算出する際、まず、画像処理回路41は、撮像画像の領域から上記高輝度領域を対象画像の候補として特定する。撮像画像の画像データにおいて対象画像は高輝度領域として現れるからである。次に、画像処理回路41は、特定された高輝度領域の大きさに基づいて、その高輝度領域が対象画像であるか否かを判定する判定処理を行う。撮像画像には、対象画像である2つのマーカ8aおよび8bの画像8a’および8b’の他、窓からの太陽光や部屋の蛍光灯の光によって対象画像以外の画像が含まれている場合がある。この場合、マーカ8aおよび8bの画像8a’および8b’以外の画像も高輝度領域として現れてしまう。上記の判定処理は、対象画像であるマーカ8aおよび8bの画像8a’および8b’とそれ以外の画像とを区別し、対象画像を正確に特定するための処理である。具体的には、当該判定処理においては、特定された高輝度領域が、予め定められた所定範囲内の大きさであるか否かが判定される。そして、高輝度領域が所定範囲内の大きさである場合、当該高輝度領域は対象画像を表すと判定され、高輝度領域が所定範囲内の大きさでない場合、当該高輝度領域は対象画像以外の画像を表すと判定される。
【0057】
さらに、上記の判定処理の結果、対象画像を表すと判定された高輝度領域について、画像処理回路41は当該高輝度領域の位置を算出する。具体的には、当該高輝度領域の重心位置を算出する。なお、重心位置は撮像素子40の解像度よりも詳細なスケールで算出することが可能である。ここでは、撮像素子40によって撮像された撮像画像の解像度が126×96であるとし、重心位置は1024×768のスケールで算出されるものとする。つまり、重心位置の座標は、(0,0)から(1024,768)までの整数値で表現される。なお、撮像画像における位置は、図7に示すように、撮像画像の左上を原点とし、下向きをy軸正方向とし、右向きをx軸正方向とする座標系(xy座標系)で表現されるものとする。
【0058】
以上のようにして、画像処理回路41は、撮像画像内において所定条件に合致する領域の位置を示す座標を当該領域毎に算出する。なお、以下では、画像処理回路41によって算出される座標をマーカ座標と呼ぶ。マーカ座標は、撮像画像に対応する平面上の位置を表すための座標系において撮像対象の位置を示す座標である。画像処理回路41は、マーカ座標を通信部36のマイコン42へ出力する。マーカ座標のデータは、マイコン42によって操作データとしてゲーム装置3に送信される。マーカ座標はコントローラ7自体の向き(姿勢)や位置に対応して変化するので、ゲーム装置3は当該座標値を用いてコントローラ7の向きや位置を算出することができる。なお、本実施形態では、撮像画像からマーカ座標を算出する処理までをコントローラ7の画像処理回路41および/またはマイコン42で行ったが、例えば撮像画像をゲーム装置3に送り、以降の処理と同等の処理をゲーム装置3のCPU10等で行わせることもできる。
【0059】
また、他の実施形態においては、2個のマーカ8aおよび8bに代えて、例えば細長形状の光源を用いてもよい。この光源の両端の位置を示す座標を算出することによって、上記マーカ座標と同等の座標を得ることができる。つまり、1個のマーカのうちの所定の2箇所の位置を算出することによって、上記マーカ座標と同等の座標を得ることができる。
【0060】
図6の説明に戻り、加速度センサ37は、コントローラ7の加速度(重力加速度を含む)を検出する、すなわち、コントローラ7に加わる力(重力を含む)を検出する。加速度センサ37は、当該加速度センサ37の検出部に加わっている加速度のうち、センシング軸方向に沿った直線方向の加速度の値を検出する。例えば、2軸または3軸の加速度センサの場合には、加速度センサの検出部に加わっている加速度として、各軸に沿った成分の加速度(直線加速度)をそれぞれ検出する。本実施形態では、加速度センサ37は、コントローラ7を基準とした上下方向(図3Aおよび図3Bに示すY軸方向)、左右方向(図3Aおよび図3Bに示すX軸方向)および前後方向(図3Aおよび図3Bに示すZ軸方向)の3軸方向に関してそれぞれ直線加速度を検出する。加速度センサ37は、各軸に沿った直線方向に関する加速度を検出するものであるため、加速度センサ37からの出力は、3軸それぞれの直線加速度の値を表すものとなる。すなわち、検出された加速度は、コントローラ7を基準に設定されるXYZ座標系における3次元のベクトルとして表される。加速度センサ37が検出した加速度を示すデータ(加速度データ)は、マイコン42へ出力される。なお、本実施形態では、加速度データはゲーム処理に用いられないので、コントローラ7は加速度センサ37を備えていない構成であってもよい。
【0061】
操作部32は、上述した十字キー32a等の各操作キー32a〜32iに相当し、各操作キー32a〜32iに対する入力状態(各操作キー32a〜32iが押下されたか否か)を示すデータを通信部36のマイコン42へ出力する。
【0062】
通信部36は、マイコン42、メモリ43、無線モジュール44、およびアンテナ45を含んでいる。マイコン42は、処理の際にメモリ43を記憶領域として用いながら、マイコン42が取得したデータを無線送信する無線モジュール44を制御する。
【0063】
操作部32および撮像情報演算部35(および加速度センサ37)からマイコン42へ出力されたデータは、一時的にメモリ43に格納される。ここで、通信部36から受信ユニット6への無線送信は所定の周期毎に行われるが、ゲームの処理は1/60秒を単位として(1フレーム時間として)行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。マイコン42は、受信ユニット6への送信タイミングが到来すると、メモリ43に格納されているデータを操作データとして無線モジュール44へ出力する。無線モジュール44は、例えばBluetooth(ブルートゥース)(登録商標)の技術を用いて、所定周波数の搬送波を操作データで変調し、その微弱電波信号をアンテナ45から放射する。つまり、操作データは、無線モジュール44で微弱電波信号に変調されてコントローラ7から送信される。微弱電波信号はゲーム装置3側の受信ユニット6で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置3は操作データを取得することができる。そして、ゲーム装置3のCPU10は、取得した操作データとゲームプログラムとに基づいて、ゲーム処理を行う。
【0064】
上記コントローラ7を用いることによって、プレイヤは、各操作キーを押下する従来の一般的なゲーム操作に加えて、コントローラ7の姿勢を変化させたり、コントローラ7自身の位置を動かしたり、コントローラ7を回転させたりするというゲーム操作を行うことができる。
【0065】
図8は、コントローラ7を用いてゲーム操作するときの状態を概説する図解図である。図8に示すように、ゲームシステム1でコントローラ7を用いてゲームをプレイする際、プレイヤは、一方の手でコントローラ7を把持する。ここで、マーカ8aおよび8bは、モニタ2の画面の横方向と平行に、画面の上側に配置されている。なお、他の実施形態においては、マーカ8aおよび8bの配置位置ならびに2つのマーカ8aおよび8bを配置する向きは任意であり、例えば、マーカ8aおよび8bが画面の下側に配置されてもよいし、2つのマーカ8aおよび8bが画面の縦方向に沿って配置されてもよい。プレイヤは、コントローラ7の前面(撮像情報演算部35が撮像する光の入射口側)がマーカ8aおよび8bの方向を向く状態でコントローラ7を把持する。この状態で、プレイヤは、コントローラ7の傾きを変化させたり(図8に示す矢印参照)、コントローラ7が指し示す画面上の位置(指示位置)を変更したり、コントローラ7と各マーカ8aおよび8bとの距離を変更したりすることによってゲーム操作を行う。
【0066】
以下、上述したゲームシステム1を用いて行われるゲームの具体例について説明する。まず、本実施形態では、ゲームシステム1を用いて行われるパズルゲームを例として説明する。
【0067】
図9〜図11は、本実施形態におけるパズルゲームのゲーム画像の一例を示す図である。本実施形態において、モニタ2の画面には、複数のパネル51、カーソル52、枠53、マーク54、残り時間画像55、および得点画像56が表示される。パネル51は縦6行、横5列に並んでおり、合計30個のパネルが表示されている。各パネルには番号が付されており、番号が同じものは同じ種類のパネルである。このパズルゲームにおいては、プレイヤは後述する入替操作によってパネルの位置を入れ替えることができる。入替操作によって同じ種類のパネルが縦または横に3つ以上並ぶと、並んだパネルが消去される。このパズルゲームは、予め定められた制限時間内にパネルを消した個数を競って遊ぶゲームである。なお、残り時間画像55は、制限時間が経過するまでの残り時間を示す。得点画像56は、現在の得点、すなわち、現在までにパネルを消した個数を示す。
【0068】
本実施形態におけるゲームにおいて、プレイヤは、カーソル52を移動させる操作である移動操作と、パネルを入れ替える操作である入替操作を行うことが可能である。すなわち、ゲーム装置3は、プレイヤによる移動操作および入替操作を受け付ける。以下では、移動操作が可能であるゲーム状態を移動状態と呼び、入替操作が可能であるゲーム状態を入替状態と呼ぶ。
【0069】
図9は、移動状態におけるゲーム画像を示す図である。移動状態においては、ゲーム装置3は、プレイヤによる移動操作に従って画面上においてカーソル52を移動させる。具体的には、ゲーム装置3は、コントローラ7から取得される操作データを用いてコントローラ7の指示位置を算出し、当該指示位置にカーソル52を表示させる。プレイヤは、移動操作として、コントローラ7の指示位置を変更するようにコントローラ7の位置および/または姿勢を変化させる操作を行う。
【0070】
移動状態において、プレイヤは、カーソル52を移動させることによって枠53を所望の位置に移動させる。枠53は、入替操作による入替の対象となるパネルを示すための画像である。枠53は、縦2行横2列に並んだ任意の4つのパネルを囲むように配置されている。本実施形態において、枠53によって囲まれる4つのパネルが入替の対象となるパネル(対象パネルと呼ぶ)である。枠53は、カーソル52の移動に応じて移動する。具体的には、枠53は、カーソル52が枠53の内部に常に位置するように移動する。例えば、図9に示す状態からカーソル52が左へ移動していき、カーソル52が枠53の左辺を超えそうになると、ゲーム装置3はパネル1列分だけ枠53を左に移動させる。このように、移動状態においては、プレイヤは、入替を行いたい所望の4つのパネルを囲むように枠53を移動させる。なお、マーク54は、枠53により囲まれる領域の中心位置を示す。
【0071】
移動状態において、コントローラ7の所定の入替指示ボタン(例えば、Bボタン32d)が押下されると、ゲーム装置3はゲーム状態を移動状態から入替状態へ移行させる。また、本実施形態では、入替指示ボタンが押下されている間はゲーム状態が入替状態に設定され、入替指示ボタンが離される(押下されなくなる)とゲーム状態は入替状態から移動状態へ戻る。つまり、プレイヤは、入替指示ボタンを押下し続ける間、入替操作を行うことができる。プレイヤは、移動状態において枠53を所望の位置に移動させることができれば、入替指示ボタンを押下して入替操作を開始すればよい。
【0072】
入替状態において、ゲーム装置3は、コントローラ7からの操作データから、コントローラ7の長手方向を軸とした回転に関する傾きを算出する。そして、当該傾きに応じて対象パネルを回転移動させる。入替操作は、コントローラ7を長手方向(図3Aおよび図3Bに示すZ軸方向)を軸として回転させる操作である。なお、以下における本実施形態の説明では、「コントローラ7の回転」とは「コントローラ7の長手方向を軸とした回転」を指し、「コントローラ7の傾き」とは「コントローラ7の長手方向を軸とした回転量に関する傾き」を指すものとする。
【0073】
図10は、入替状態におけるゲーム画像を示す図である。図10は、上記入替指示ボタンが押下された時点のコントローラ7の状態から、コントローラ7を右回りに約60°回転させた状態である。なお、本明細書では、コントローラ7に関する「右回り」および「左回り」とは、コントローラ7の後方(図3に示すZ軸負方向側)から見たときの回転方向を言うものとする。図10に示すように、対象パネルは、入替指示ボタンが押下された時点の状態(図9に示す状態)から、コントローラ7の傾きに応じた回転量でマーク54を中心に回転している。図10においては、対象パネルは図9に示す状態から右回りに約60°回転している。このように、入替状態においてゲーム装置3は、対象パネルをコントローラ7の傾きに応じて回転移動させる。
【0074】
なお、本実施形態では、ゲーム装置3は、入替状態に移行した時点における向きを基準(0°)として、右回りまたは左回りにそれぞれ最大270°まで対象パネルを回転させる。プレイヤは、右回りまたは左回りに、90°、180°または270°だけ対象パネルを回転させることによって、対象パネルである4つのパネルの配置位置を入れ替える。そして、当該4つの対象パネルの配置された位置が所望の位置となれば、入替指示ボタンを離してゲーム状態を移動状態へ移行させる。
【0075】
また、本実施形態において、移動状態においては30個のパネルは縦6行、横5列に整列されて配置されるものとする。つまり、入替状態終了時において対象パネルが整列されていなければ、ゲーム装置3は、入替状態終了時における対象パネルの位置を必要に応じて補正する。
【0076】
図11は、入替状態から移動状態へ移行した直後におけるゲーム画像を示す図である。図11は、図9における状態から、図10に示す入替操作によって対象パネルが右回りに90°回転移動された状態を示している。つまり、枠53内の1つのパネルについて見れば、入替操作によって、入替前のパネルが他のパネルに入れ替えられていることになる。例えば枠53内の左上の位置について見れば、入替操作によって、番号が“4”のパネルが番号が“3”のパネルに入れ替えられている。また、枠53内の4つのパネルについて見れば、4つのパネルの配置位置が入れ替えられていることになる。このように、本実施形態では、入替状態においてコントローラ7の傾きを変化させることで、画面に表示されたオブジェクト(パネル)の入替を行うことができる。
【0077】
また、本実施形態では、4つの対象パネルが循環的に入れ替えられている。ここで、「循環的に入れ替える」とは、入替の対象となる各オブジェクト(パネル)を、当該各オブジェクトの配置位置を所定の順番で循環して移動させるように入れ替えることである。このように、所定の規則に従ってパネルを移動させることによって、パズルゲームの戦略性が増し、より面白いパズルゲームを提供することができる。
【0078】
図11においては、上から4行目において同種類のパネル(番号が“2”のパネル)が3つ並んで配置されているので、これらの3つのパネルが消去される。なお、図11においては、これら3つのパネルが消去される様子を白黒を反転させた表示で表現している。また、3つのパネルが消去されたことによって得点が3点加算される(図11に示す得点画像56参照)。本実施形態においては、ゲーム装置3は、パネルが消去されると、消去されたパネルの位置に新たなパネルを追加する。以降において、プレイヤは、制限時間が経過するまで、移動操作と入替操作とを繰り返し行うことによってパネルを消去していく。
【0079】
以上のように、本実施形態では、プレイヤは、コントローラ7を長手方向を軸として回転させる入替操作によって、対象パネルの位置を入れ替えることができる。つまり、プレイヤは、コントローラ7自体を回転させることによって、画面に表示されているオブジェクト(パネル)の位置を入れ替えるという、今までにない新規な操作を味わうことができる。
【0080】
さらに本実施形態では、コントローラ7の指示位置を移動させることによって、入替の対象となるパネルを選出する操作を行うことができる。つまり、プレイヤは、コントローラ7自体を操作する操作方法によって2種類の異なる操作(移動操作および入替操作)を行うことができるので、簡単な操作でプレイヤに2種類の操作を行わせることができ、操作性の良いゲームをプレイヤに提供することができる。
【0081】
次に、本実施形態においてゲーム装置3で実行されるプログラム処理について説明する。まず、ゲーム処理において用いられる主なデータについて図12を用いて説明する。図12は、ゲーム装置3のメインメモリ13に記憶される主なデータを示す図である。図12に示すように、メインメモリ13には、ゲームプログラム61、操作データ62、およびゲーム処理用データ63等が記憶される。なお、メインメモリ13には、図12に示すデータの他、パズルゲームに登場するパネルやカーソルや枠等の画像データや、残り時間や得点を示すデータ等、ゲーム処理に必要なデータが記憶される。
【0082】
ゲームプログラム61は、ゲーム装置3に電源が投入された後の適宜のタイミングで光ディスク4からその一部または全部が読み込まれてメインメモリ13に記憶される。ゲームプログラム61には、後述するゲーム処理(図13)の実行に必要なプログラムが含まれている。
【0083】
操作データ62は、コントローラ7からゲーム装置3へ送信されてきて、メインメモリ13に記憶される。操作データ62には、マーカ座標データ621および操作キーデータ622が含まれる。マーカ座標データ623は、撮像情報演算部35の画像処理回路41によって算出される座標、すなわち上記マーカ座標を示すデータである。マーカ座標は、撮像画像に対応する平面上の位置を表すための座標系(図7に示すxy座標系)で表現される。また、操作キーデータ622は、各操作ボタン32a〜32iに対する入力状態(各操作ボタン32a〜32iが押下されたか否か)を示すデータである。なお、操作データ62には、必要に応じて、上記加速度センサ37によって検出される加速度(加速度ベクトル)を示す加速度データが含まれていてもよい。
【0084】
ゲーム処理用データ63は、後述するゲーム処理において用いられるデータである。ゲーム処理用データ63は、ゲーム状態データ631、パネル配列データ632、カーソルデータ633、枠データ634、対象パネルデータ635、傾きデータ636、基準傾きデータ637、および回転角データ638を含む。
【0085】
ゲーム状態データ631は、現在のゲーム状態を示すデータである。上述したように、本実施形態では、ゲーム状態には、移動状態および入替状態という2種類の状態がある。ゲーム状態データ631は、“移動状態”および“入替状態”のいずれかを示す。
【0086】
パネル配列データ632は、30個のパネルの配列を示すデータである。具体的には、パネル配列データ632は、第i行(1≦i≦6)の第j列(1≦j≦5)に配置されるパネルの種類(パネルの番号)を示す。
【0087】
カーソルデータ633は、上記カーソル52の画面上の位置、すなわち、コントローラ7の指示位置を示す。カーソルデータ633は、上記マーカ座標データ621に基づいて算出される。
【0088】
枠データ634は、上記枠53の画面上の位置を示す。本実施形態では、枠データ634は、枠53の中心位置(すなわち、マーク54の位置)の座標を示す。
【0089】
対象パネルデータ635は、画面に表示されている30個のパネルのうちで対象パネルとなっている4つのパネルを示す。本実施形態においては、4つの対象パネルのうちの例えば左上のパネルの位置を表す行数および列数のデータを対象パネルデータ635として記憶する。例えば、図9に示す状態おいては、対象パネルデータ635は、“第3行第3列”を示す。
【0090】
傾きデータ636は、コントローラ7の傾きに対応して変化する方向を示すデータである。本実施形態では、傾きデータ636により示される方向は、仮想の3次元座標系であるX’Y’Z’座標系(図18参照)を用いて表される。具体的には、当該方向は、X’Y’Z’座標系におけるX’Y’平面上のベクトルで表現される。傾きデータ636は、上記マーカ座標データ621に基づいて算出される。
【0091】
基準傾きデータ637は、入替操作が開始された時点(すなわち、移動状態から入替状態へ移行した時点)におけるコントローラ7の傾きに対応する方向を示すデータである。基準傾きデータ637は、上記傾きデータ636と同様、上記X’Y’Z’座標系におけるX’Y’平面上のベクトルのデータである。基準傾きデータ637は、入替操作が開始された時点において算出される傾きデータである。
【0092】
回転角データ638は、入替状態における対象パネルの回転角度を示す。対象パネルの回転角度θは、入替操作が開始された時点における対象パネルの向きを0°とし、右回りを正として、−270°≦θ≦270°の範囲の値で表現される。なお、他の実施例においては、対象パネルの回転角度をベクトルで表現してもよい。
【0093】
次に、ゲーム装置3において行われる処理の詳細を、図13〜図18を用いて説明する。図13は、ゲーム装置3において実行される処理の流れを示すメインフローチャートである。ゲーム装置3の電源が投入されると、ゲーム装置3のCPU10は、図示しないブートROMに記憶されている起動プログラムを実行し、これによってメインメモリ13等の各ユニットが初期化される。そして、光ディスク4に記憶されたゲームプログラムがメインメモリ13に読み込まれ、CPU10によって当該ゲームプログラムの実行が開始される。図13に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。
【0094】
まず、ステップS1において、以降の処理において用いられるデータの初期化処理が実行される。具体的には、“移動状態”を示すデータがゲーム状態データ631としてメインメモリ13に記憶される。本実施形態においては、ゲーム開始直後は移動状態とするからである。また、ゲーム開始時における各パネルの初期配置を示すデータがパネル配列データ632としてメインメモリ13に記憶される。各パネルの初期配置は、ゲームプログラム61において予め決められていてもよいし、ランダムに決定されてもよい。
【0095】
続くステップS2において、ゲーム空間が構築されてモニタ2に表示される。CPU10は、3次元または2次元のゲーム空間を構築し、パネル配列データ632に従って30個のパネルを配置する。以上のように構築されたゲーム空間を表すゲーム画像が生成され、生成されたゲーム画像がモニタ2に表示される。以降、ステップS3〜S7の処理ループが1フレーム毎に繰り返される(ステップS18およびS19が実行される場合を除く。)ことによって、ゲームが進行していく。
【0096】
ステップS3において、CPU10は、コントローラ7から操作データを取得する。すなわち、コントローラ7は所定時間間隔(例えば、1フレーム時間間隔以内)で操作データをゲーム装置3へ送信してくるので、CPU10は、送信されてきた操作データをメインメモリ13に記憶する。この操作データには、少なくとも上記マーカ座標データおよび操作キーデータが含まれている。CPU10は、マーカ座標データおよび操作キーデータをメインメモリ13に記憶する。なお、ステップS3の処理が所定時間間隔で実行されることによって、ゲーム装置3は、マーカ座標データおよび操作キーデータを逐次取得することができる。
【0097】
続くステップS4において、CPU10は、現在のゲーム状態が移動状態であるか否かを判定する。ステップS4の判定は、メインメモリ13に記憶されているゲーム状態データ631を参照することによって行われる。具体的には、ゲーム状態データ631が移動状態を示す場合、ステップS4の判定結果は肯定となり、ゲーム状態データ631が入替状態を示す場合、ステップS4の判定結果は否定となる。ステップS4の判定結果が肯定の場合、ステップS5の処理が実行される。一方、ステップS4の判定結果が否定の場合、後述するステップS6の処理が実行される。
【0098】
ステップS5においては、移動処理が実行される。移動処理とは、移動状態におけるゲーム処理であり、プレイヤによる移動操作に従ってカーソル52や枠53を移動させるための処理である。以下、図14を参照して移動処理の詳細について説明する。
【0099】
図14は、図13に示す移動処理(ステップS5)の詳細を示すフローチャートである。移動処理においては、まずステップS10において、CPU10は、パネルがそろったか否かを判定する。ステップS10の判定は、メインメモリ13に記憶されているパネル配列データ632を参照することによって行われる。すなわち、パネル配列データ632により示される各パネルの配列において、同じ種類のパネルが縦または横に3つ以上並んでいる場合、ステップS10の判定結果は肯定となり、同じ種類のパネルが縦または横に3つ以上並んでいない場合、ステップS10の判定結果は否定となる。ステップS10の判定結果が肯定の場合、後述するステップS18の処理が実行される。一方、ステップS10の判定結果が否定の場合、ステップS11の処理が実行される。
【0100】
ステップS11においては、カーソル52の画面上の位置、すなわち、コントローラ7の指示位置が算出される。具体的には、CPU10は、メインメモリ13に記憶されているマーカ座標データ623により示されるマーカ座標に基づいて、コントローラ7の指示位置を算出する。算出された指示位置のデータは、カーソルデータ633としてメインメモリ13に記憶される。ここで、コントローラ7の指示位置の算出方法はどのようなものであってもよいが、例えば次に示す方法が考えられる。
【0101】
以下、コントローラ7の指示位置の算出方法の一例を説明する。コントローラ7から取得されるマーカ座標データ623は、マーカ8aおよび8bに対応する2つのマーカ座標を示すので、まずCPU10は、マーカ座標データから2つのマーカ座標の中点を算出する。この中点の位置は、撮像画像に対応する平面上の位置を表すための上記xy座標系によって表現される。次に、上記2つのマーカ座標を結ぶベクトルがy軸に平行になるように、撮像画像の中心を軸として当該マーカ座標の中点を回転する補正を行う。本願発明は、コントローラ7の傾きを入力に用いるため、コントローラ7が傾いている場合等にも、正確に指示位置を算出するためにそのような補正が必要になる。次に、CPU10は、当該補正された中点の位置を示す座標を、モニタ2の画面上の位置を表すための座標系(x’y’座標系とする)の座標に変換する。この変換は、ある撮像画像から算出される中点の座標を、当該撮像画像が撮像される時のコントローラ7の実際の指示位置に対応する画面上の座標に変換する関数を用いて行うことができる。その際、コントローラ7の指示位置と、撮像画像内でのマーカ座標の位置とは逆方向に移動することになるので、上下左右が反転するような変換を行う。以上のようにして算出されたx’y’座標値により示される位置がコントローラ7の指示位置となる。
【0102】
続くステップS12において、CPU10は、入替を行う対象を変更するか否か、すなわち、枠53を移動させるか否かを判定する。ステップS12の判定は、メインメモリ13に記憶されているカーソルデータ633と枠データ634とを参照することによって行うことができる。すなわち、カーソルデータ633により示されるカーソル52の位置が、枠データ634によって決められる枠53の領域の内側である場合、ステップS12の判定結果は否定となる。逆に、カーソル52の位置が枠53の領域の外側である場合、ステップS12の判定結果は肯定となる。なお、本実施形態では枠53の大きさは予め決まっているので、枠データ634により枠53の中心位置を特定することができれば枠53の領域を算出することができる。ステップS12の判定結果が肯定の場合、ステップS13の処理が実行される。一方、ステップS12の判定結果が否定の場合、ステップS13の処理がスキップされてステップS14の処理が実行される。
【0103】
ステップS13においては、枠53が移動される。CPU10は、カーソルデータ633により示されるカーソル52の位置に応じて、左方向または右方向に1列分、あるいは、上方向または下方向に1行分だけ枠53を移動させる。すなわち、カーソル52が枠53よりも左側に位置する場合には左方向へ1列分だけ枠53を移動させ、カーソル52が枠53よりも右側に位置する場合には右方向へ1列分だけ枠53を移動させ、カーソル52が枠53よりも上側に位置する場合には上方向へ1行分だけ枠53を移動させ、カーソル52が枠53よりも下側に位置する場合には下方向へ1行分だけ枠53を移動させる。このとき、メインメモリ13に記憶されている枠データ634の内容は、移動後の枠53の位置を示すデータに更新して記憶される。また、対象パネルデータ635の内容は、移動後の枠53によって囲まれる4つのパネルを示すデータに更新して記憶される。以上のステップS13およびS14によって、30個の各パネルのうちで、入替処理における入替の対象として選出されるパネルが変更されたこととなる。
【0104】
ステップS14においては、CPU10は、プレイヤによって入替指示が行われたか否かを判定する。すなわち、入替指示ボタン(本実施形態では、Bボタン32d)が押下されたか否かを判定する。ステップS14の判定は、メインメモリ13に記憶されている操作キーデータ622を参照することによって行われる。すなわち、操作キーデータ622が、Bボタン32dが押下されたことを示す場合、ステップS14の判定結果は肯定となり、操作キーデータ622が、Bボタン32dが押下されていないことを示す場合、ステップS14の判定結果は否定となる。ステップS14の判定結果が肯定の場合、ステップS15の処理が実行される。一方、ステップS14の判定結果が否定の場合、ステップS15およびS16の処理がスキップされてステップS17の処理が実行される。
【0105】
ステップS15においては、基準傾きデータが算出されてメインメモリ13に記憶に記憶される。つまり、入替指示が行われた時点において取得された操作データに基づいて、コントローラ7の傾きに対応する方向が算出される。本実施形態では、この方向は、仮想の3次元座標系であるX’Y’Z’座標系におけるベクトルとして表現される。以下、図15および図16を用いて、基準傾きデータの算出方法の詳細を説明する。
【0106】
図15は、ある状態において得られた撮像画像におけるマーカ座標の位置を示す図である。図15においては、位置M1およびM2を示す2つのマーカ座標が撮像情報演算部35によって算出されたものとする。つまり、ゲーム装置3は、図15に示す位置のマーカ座標を示すデータを操作データとしてコントローラ7から取得したものとする。このとき、CPU10は、まず、2つのマーカ座標を結ぶベクトルvを算出する。なお、2つのマーカ座標のうちでいずれをベクトルの始点にしていずれをベクトルの終点にするかは、予め定められた所定のルールに従って決定される。例えば、2つのマーカ座標のうち、x成分の値が小さい方のマーカ座標を始点とするようにしてもよい。なお、算出されたベクトルvがx軸となす角度をθと表す。次にCPU10は、xy座標系におけるベクトルvを、X’Y’Z’座標系におけるベクトルV’に変換する。具体的には、ベクトルV’がX’Y’平面(Z’=0)上となり、かつ、ベクトルV’がX’軸となす角度がθとなるように変換する。また、ベクトルV’の大きさは1とする。図16は、図15に示すベクトルvを変換した場合のベクトルV’を示している。以上のようにして得られるベクトルV’は、コントローラ7の傾きに対応して変化し、コントローラ7の傾きを示している。以下では、このベクトルV’を傾きベクトルと呼ぶ。特に、上記入替指示が行われた時点において算出される傾きベクトルを基準傾きベクトルと呼ぶ。
【0107】
ステップS15において、以上のように算出された基準傾きベクトルV’のデータは、基準傾きデータ637としてメインメモリ13に記憶される。詳細は後述するが、本実施形態では、ステップS15で算出された基準傾きベクトルV’の方向を基準とした傾きベクトルの方向の変化に基づいて、パネルの入れ替えが行われる。ステップS15の後、ステップS16の処理が実行される。
【0108】
ステップS16においては、ゲーム状態が入替状態に設定される。具体的には、CPU10は、メインメモリ13に記憶されているゲーム状態データ631の内容を、入替状態を示すデータに書き換える。これによって、次のフレーム処理(ステップS3〜S7の処理)においてはステップS4の判定結果が肯定となるのでステップS6の入替処理が実行されることとなる。ステップS16の後、ステップS17の処理が実行される。
【0109】
ステップS17において、モニタ2にゲーム画像が表示される。すなわち、メインメモリ13に記憶されているパネル配列データ632により示される配列で30個のパネルが表示され、カーソルデータ633により示される位置にカーソル52が表示され、枠データ634により示される位置に枠53が表示される(図9参照)。また、残り時間画像55および得点画像56が表示される。ステップS17の処理が終了するとCPU10は移動処理を終了する。
【0110】
一方、ステップS18においては、縦または横に3つ以上並んだ同じ種類のパネルが消去される様子がモニタ2に表示される。続くステップS19において、パネルが消去された位置に新たなパネルを追加する様子がモニタ2に表示される。なお、ステップS18およびS19の表示処理は、複数のフレームにわたってアニメーションを表示することによって行われることが好ましい。ステップS19の処理が終了するとCPU10は移動処理を終了する。
【0111】
図13の説明に戻り、ステップS6においては、入替処理が実行される。入替処理とは、入替状態におけるゲーム処理であり、プレイヤによる回転操作に従ってパネルの位置を入れ替えるための処理である。以下、図17を参照して入替処理の詳細について説明する。
【0112】
図17は、図13に示す入替処理(ステップS6)の詳細を示すフローチャートである。入替処理においては、まずステップS21において、CPU10は、入替終了指示があったか否かを判定する。すなわち、入替指示ボタン(本実施形態では、Bボタン32d)に対する入力がなくなったかを判定する。ステップS21の判定は、メインメモリ13に記憶されている操作キーデータ622を参照することによって行われる。すなわち、操作キーデータ622が、Bボタン32dが押下されていないことを示す場合、ステップS21の判定結果は肯定となり、操作キーデータ622が、Bボタン32dが押下されていることを示す場合、ステップS21の判定結果は否定となる。ステップS21の判定結果が肯定の場合、後述するステップS26の処理が実行される。一方、ステップS21の判定結果が否定の場合、ステップS22の処理が実行される。
【0113】
ステップS22においては、現在のコントローラの傾きを示す傾きベクトルV’のデータ(すなわち傾きデータ)が算出される。傾きデータは、今回のフレーム処理におけるステップS3で取得されてメインメモリ13に記憶されたマーカ座標データ621を用いて算出される。傾きベクトルの算出方法は、上述したステップS15で説明した算出方法と同様である。なお、ステップS22において傾きベクトルを算出する場合、2つのマーカ座標のうち、前回のフレーム処理においてマーカ座標を結ぶベクトルの始点とされた座標に近い方のマーカ座標がベクトルの始点とされる。算出された傾きベクトルV’のデータは、傾きデータ636としてメインメモリ13に記憶される。
【0114】
続くステップS23において、基準傾きベクトルの方向(基準方向)を基準としたときの、ステップS22で算出された傾きベクトルの方向の変化量が算出される。この変化量は、ステップS22で算出された傾きベクトルと基準傾きベクトルとの内積値として表される。すなわち、CPU10は、ステップS22で算出された傾きベクトルと基準傾きベクトルとの内積を算出する。なお、他の実施形態においては、ステップS22で算出された傾きベクトルの方向と基準方向とのなす角の大きさ(°)を上記変化量として算出するようにしてもよい。上記変化量は、入替指示が行われた時点における状態からのコントローラ7の傾きの変化量を示す。つまり、ステップS23は、入替指示が行われた時点における状態からのコントローラ7の回転量を算出するための処理である。
【0115】
続くステップS24において、基準方向を基準としたときの、ステップS22で算出された傾きベクトルの方向が変化する向きが算出される。具体的には、CPU10は、基準傾きベクトルとステップS22で算出された傾きベクトルとの外積を算出する。図18は、ステップS24の処理を説明するための図である。図18においては、基準傾きベクトルをV1’とし、ステップS22で算出された傾きベクトルをV2’とする。上述したように、ベクトルV1’およびV2’はX’Y’平面上のベクトルである。図18においては、傾きベクトルは、入替指示が行われた時点における状態から、Z’軸正方向の向きに見て右回りに回転している。このとき、ベクトルV1’とベクトルV2’との外積は、ベクトルV3となる。一方、傾きベクトルが、入替指示が行われた時点における状態から、Z’軸正方向の向きに見て左回りに回転している場合、ベクトルV1’とベクトルV2’との外積は、ベクトルV3’となる。つまり、上記変化の向きが右回りである場合、外積のベクトルがZ’軸正方向を向き、上記変化の向きが左回りである場合、外積のベクトルがZ’軸負方向を向く。このように、外積のベクトルを算出し、当該ベクトルのZ’成分の値が正か負かによって、上記変化の向きを知ることができる。つまり、外積のベクトルのZ’成分の値が正か負かによって、コントローラ7の回転方向を知ることができる。
【0116】
続くステップS25において、対象パネルの回転角度が決定される。具体的には、CPU10は、まず、ステップS24で算出された向きに、ステップS23で算出された変化量だけ対象パネルを回転させる角度を算出する。なお、本実施形態では、所定の中心角度(0°、90°、180°または270°)に対して±α°の範囲を遊び範囲として設定しておく。CPU10は、上記算出した角度がこの遊び範囲内の値である場合、対象パネルの回転角度を、遊び範囲に対応する中心角度として決定する。また、上記算出した角度がこの遊び範囲内の値でない場合、上記算出した角度を回転角度として決定する。例えば、上記算出した角度が90°±αの範囲内の値となる場合、回転角度は90°に決定される。これにより、プレイヤは、上記中心角度に正確に対応するようにコントローラ7を操作しなくても、対象パネルを当該中心角度だけ回転させることができるので、ゲームの操作性を向上することができる。ステップS25で決定された角度のデータは、回転角データ638としてメインメモリ13に記憶される。ステップS25の後、後述するステップS28の処理が実行され、上記決定された角度だけ回転した対象パネルのゲーム画像がモニタ2に表示されることとなる。
【0117】
ステップS25に示したように、本実施形態では、所定の期間(入替状態に移行した時点から現在までの期間)において、傾きデータにより示される方向の変化量に基づいて対象パネルの入替を行った。すなわち、基準傾きベクトルと現在の傾きベクトルとの変化に基づいて対象パネルの入替を行った。ここで、他の実施形態においては、後述する第1の変形例のように、現在の傾きベクトルの値のみに基づいて対象パネルの入替を行うようにしてもよい。
【0118】
一方、ステップS26においては、対象パネルの現在の回転角度に一番近い中心角度となるように、対象パネルの回転角度が決定される。具体的には、CPU10は、上記中心角度(0°、90°、180°または270°)のうちで、対象パネルの現在の回転角度に最も近い中心角度を選択して、選択した中心角度を対象パネルの現在の回転角度として決定する。ここで、対象パネルの現在の回転角度は、その時点でメインメモリ13に記憶されている回転角データ638により示されている。本実施形態では、対象パネルの現在の回転角度は、前回のフレーム処理のステップS25で決定された回転角度であるが、他の実施形態では、対象パネルの現在の回転角度は、今回のフレーム処理におけるステップS26の前にステップS22〜S25の処理を実行することによって得られる回転角度であってもよい。ステップS25で決定された角度のデータは、回転角データ638としてメインメモリ13に記憶される。さらに、回転角度が決定されたことにより、当該角度に基づいて、パネルの配置が入れ替わるようにパネル配列データ632の内容を変更する。
【0119】
続くステップS27において、ゲーム状態が移動状態に設定される。具体的には、CPU10は、メインメモリ13に記憶されているゲーム状態データ631の内容を、移動状態を示すデータに書き換える。これによって、次のフレーム処理においてはステップS4の判定結果が否定となるのでステップS5の移動処理が実行されることとなる。
【0120】
ステップS25またはS27の次に、ステップS28の処理が実行される。ステップS28においては、入替状態におけるゲーム画面が表示される。すなわち、対象パネルについては、メインメモリ13に記憶されている回転角データ638により示される角度だけ回転した状態で表示される(図10参照)。なお、本実施形態では、対象パネルの回転と同じ角度だけ枠53も回転して表示される。ステップS28の処理が終了するとCPU10は入替処理を終了する。
【0121】
図6の説明に戻り、ステップS5またはS6の次に、ステップS7の処理が実行される。ステップS7において、CPU10はゲームを終了するか否かを判定する。ステップS7の判定は、例えば、ゲームの制限時間が経過したか否かによって行われる。ステップS7の判定結果が否定である場合、ステップS3の処理が再度実行され、以降、ゲームを終了すると判定されるまでステップS3〜S7の処理ループが実行される。一方、ステップS7の判定結果が肯定である場合、CPU10は図13に示す処理を終了する。以上で、本実施形態においてゲーム装置3において実行されるゲーム処理の説明を終了する。
【0122】
以上のように、本実施形態においては、プレイヤが入替指示を行うと、ゲーム状態は移動状態から入替状態に移行し(ステップS16)、コントローラ7の傾きに応じて対象パネルを回転させることが可能となる(ステップS22〜S25)。さらに、プレイヤによって入替終了指示が行われると(ステップS21でYes)、対象パネルは右回りまたは左回りに0°、90°、180°または270°だけ回転した状態となって(ステップS26)、ゲーム状態が入替状態から移動状態へ移行する(ステップS27)。したがって、入替処理によって、コントローラの傾きに応じて、4つの対象パネルについて、ある位置に表示されていたパネルが他のパネル(他の位置に表示されていたパネル)と入れ替えられたこととなる。すなわち、本実施形態においては、プレイヤは、コントローラ7自体を回転させることによって、画面に表示されているオブジェクト(パネル)を入れ替えるという、今までにない新規な操作を味わうことができる。
【0123】
また、本実施形態において、対象パネルが90°回転するような入替処理を1回の入替処理とすると、ゲーム装置3は、コントローラ7の傾きの変化量に応じた回数だけ入替処理を行うこととなる。これによって、プレイヤは複数回の入替操作を容易に行うことができる。
【0124】
なお、上記本実施形態では、入替処理において、1フレーム毎に対象パネルの回転角度が算出されて(ステップS22〜25)対象パネルの回転角度が1フレーム毎に変化された。これによって、コントローラ7の傾きに応じて対象パネルが回転移動するアニメーションが表示されることとなる。ここで、他の実施例においては、コントローラ7の傾きに応じて対象パネルを入れ替えるようにすればよく、上記アニメーションが表示されなくてもよい。
【0125】
また、本実施形態では、対象パネルを4個とし、コントローラ7の傾きに応じて4個のオブジェクトの位置を入れ替えることとしたが、対象パネルの数はいくつであってもよい。例えば、左右または上下に並ぶ2個のパネルを対象パネルとし、2個のパネルの位置を入れ替えるようにしてもよい。
【0126】
なお、本実施形態では、画面に表示されている複数個のオブジェクト(パネル)の位置を入れ替える場合を例として説明したが、本発明は、画面に表示されているオブジェクトを他のオブジェクトに入れ替えて表示させる種々の形態に適用することが可能である。以下、変形例として、他のゲーム例について説明する。
【0127】
(第1の変形例)
以下、第1の変形例として、文字入力を行う際に本発明を適用する場合の例を説明する。図19は、第1の変形例におけるゲーム画像の一例を示す図である。図19に示すゲーム画像は、ひらがなを入力する際にモニタ2の画面に表示される。すなわち、画面には、候補文字群画像71a〜71j、カーソル72、候補文字画像73a〜73e、枠74、および入力文字画像75が表示される。第1の変形例においては、ゲーム開始時や、ゲーム中において所定の条件が満たされた場合等に、図19に示す画像が表示される。
【0128】
図19において、カーソル72は、プレイヤによって操作され、プレイヤが画面上の任意の位置を指定するために用いられる。すなわち、ゲーム装置3は、コントローラ7の指示位置にカーソル72を表示する。なお、カーソル72の表示位置を算出する方法は上記実施形態と同様である。
【0129】
画面上部に表示されている候補文字群画像71a〜71jは、それぞれ、候補文字の集合(候補文字群)を示す画像である。例えば、“あ行”と記載された候補文字群画像71aは、“あ”〜“お”の5つの候補文字の集合を示す画像である。ここで、候補文字とは、入力可能な文字として画面に表示される文字である。つまり、候補文字として選択されている文字は、それに対応する画像(後述する候補文字画像)が画面に表示されることとなる。
【0130】
候補文字画像73a〜73eは、候補文字として現在選択されている文字を示す画像である。図19の状態においては、“あ”〜“お”の5つの文字が候補文字に選択されており、これら5つの候補文字の入力を行うことが可能である。第1の変形例においては、候補文字画像73a〜73eは環状に配置されている。コントローラ7の傾きを変化させる操作によって、候補文字画像73a〜73eの位置を入れ替えることができる。
【0131】
枠74は、候補文字のうちで、入力の対象となっている文字を示す。つまり、枠74によって囲まれる候補文字画像の文字が入力の対象となっている文字である。例えば、図19の状態において、プレイヤがコントローラ7の所定の入力決定ボタン(例えば、Aボタン32i)を押下すると、枠74によって囲まれている候補文字である“あ”が入力される。
【0132】
入力文字画像75は、すでに入力された文字(文字列)を示す画像である。図19の状態では、入力文字画像75は、“あ”の文字が入力済である状態を示している。
【0133】
図19に示す画像が表示されると、プレイヤはまず、コントローラ7を用いて第1の操作を行う。第1の操作は、候補文字群を選択するための操作である。具体的には、まず、プレイヤは、候補文字群画像71a〜71jのうちの所望の1つの画像にカーソル72が重なるようにカーソル72を移動させる。次に、プレイヤは、所望の候補文字群画像の位置にカーソル72を移動させると、所定の候補文字決定ボタン(例えば、Bボタン32d)を押下する。これによって、ゲーム装置3は、カーソル72によって指し示される候補文字群画像が選択されたと認識し、候補文字として選択される文字群を、当該候補文字群画像に対応する文字群に変更する。例えば、図19に示す状態において、“か行”の文字群に対応する候補文字群画像71bが選択された場合、“あ”〜“お”の5文字に変えて、“か”〜“こ”の5文字を候補文字として選択する。これによって、“あ”〜“お”の5文字の候補文字画像に代えて、“か”〜“こ”の5文字の候補文字画像が画面に表示される。以上のように、プレイヤは、所望の文字を入力する際、まず、第1の操作として、入力したい文字を候補文字として画面に表示させるために、カーソル72を用いて候補文字群画像を選択する操作を行う。
【0134】
第1の操作の次に、プレイヤは、候補文字のうちから、入力する文字を決定する操作を第2の操作として行う。ここで、第1の変形例では、ゲーム装置3は、コントローラ7の傾きに応じて候補文字画像73a〜73eの位置を入れ替える。例えば、図19に示す状態から、コントローラ7を長手方向を軸として右回りに回転させた場合、ゲーム装置3は、候補文字画像73a〜73eの位置を、図20に示すように入れ替える。図20は、図19に示す状態から、候補文字画像73a〜73eの位置が入れ替えられた後のゲーム画像を示す図である。図20においては、各候補文字画像73a〜73eは、循環的に位置が入れ替えられている。つまり、各候補文字画像73a〜73eは、右回りにそれぞれ1つずつずれるように表示位置が移動されている。
【0135】
以上のように、プレイヤは、コントローラ7の傾きを変化させる操作によって、枠74によって囲まれる位置にくる候補文字画像を入れ替えることができる。すなわち、入力の対象となる文字を入れ替えることができる。プレイヤは、所望の候補文字が枠74によって選択されている状態となれば、所定の入力決定ボタン(例えば、Aボタン32i)を押下する。これに応じてゲーム装置3は、選択されている文字が入力されたと認識し、入力文字画像75に当該文字を追加する。例えば、図20においては、図19に示す状態から“い”の文字が新たに入力された様子を示している。
【0136】
図21は、第1の変形例において、ゲーム装置3のメインメモリ13に記憶される主なデータを示す図である。図21に示すように、メインメモリ13には、ゲームプログラム61、操作データ62、およびゲーム処理用データ63等が記憶される。なお、図21において、上記実施形態と同様のデータについては図12と同じ参照符号を付し、詳細な説明を省略する。以下、図12との相違点を中心に図21について説明する。
【0137】
第1の変形例において、ゲーム処理用データ63は、カーソルデータ633、傾きデータ636、候補文字群データ640、および入力文字データ641を含んでいる。カーソルデータ633および傾きデータ636は上記実施形態と同様のデータである。
【0138】
候補文字群データ640は、現在の候補文字群、すなわち、候補文字として現在選択されている文字群を示すデータである。候補文字群データ640は、例えば配列の形式で表現される。また、この配列においてそれぞれの列の最初に格納される文字が現在入力の対象となる文字であり、配列の2番目以降には、アルファベット順に各文字が格納される。なお、現在の候補文字群のうちでアルファベットの順番が最後の文字の後は、当該候補文字群のうちでアルファベットの順番が最初の文字が格納され、それ以降にはアルファベット順に書く文字が格納される。例えば、候補文字群が“か”〜“こ”であり、現在入力の対象となっている文字が“く”である場合、配列は、[“く”,“け”,“こ”,“か”,“き”]となる。
【0139】
入力文字データ641は、すでに入力された文字(文字列)を示すデータである。図19に示す入力文字画像75は、入力文字データ641により示される文字(文字列)を示している。
【0140】
次に、第1の変形例においてゲーム装置3で行われる処理の詳細を、図22および図23を用いて説明する。図22および図23は、第1の変形例においてゲーム装置3で実行される処理の流れを示すメインフローチャートである。なお、図22および図23に示すフローチャートは、ゲーム開始時や、ゲーム中において所定の条件が満たされた場合等に開始される。
【0141】
まずステップS31において、以降の処理において用いられるデータの初期化処理が実行される。具体的には、候補文字群データ640および入力文字データ641の内容が初期化される。ここでは、初期状態においては、“あ”〜“お”の文字が候補文字群として選択されており、入力の対象となる文字が“あ”に設定されているとする。したがって、[“あ”,“い”,“う”,“え”,“お”]を示すデータが候補文字群データ640としてメインメモリ13に記憶される。
【0142】
続くステップS32において、ゲーム空間が構築されてモニタ2に表示される。すなわち、CPU10は、図19に示すようなゲーム画像を生成してモニタ2に表示させる。以降、ステップS33〜S43の処理ループが1フレーム毎に繰り返されることによって、ゲームが進行していく。
【0143】
ステップS33においては、CPU10は、コントローラ7から操作データを取得する。ステップS33の処理は上記ステップS3の処理と同じである。続くステップS34においては、カーソル72の画面上の位置、すなわち、コントローラ7の指示位置が算出される。ステップS34の処理は上記ステップS11の処理と同じである。
【0144】
ステップS35において、CPU10は、候補文字群画像71a〜71jのいずれかが指定されたか否かを判定する。具体的には、ステップS34で算出したカーソル72の位置が候補文字群画像71a〜71jのいずれかと重なっているか否かを判定する。判定の結果、カーソル72の位置が候補文字群画像71a〜71jのいずれかと重なっている場合、ステップS36の処理が実行される。一方、カーソル72の位置が候補文字群画像71a〜71jのいずれとも重なっていない場合、ステップS36〜S38の処理がスキップされてステップS38の処理が実行される。
【0145】
ステップS36においては、CPU10は、候補文字を指定する入力があったか否か、すなわち、所定の候補文字決定ボタン(例えば、Bボタン32d)が押下されたか否かを判定する。ステップS36の処理は、上記ステップS14の処理と同様である。ステップS36の判定結果が肯定の場合、ステップS37の処理が実行される。一方、ステップS36の判定結果が否定の場合、ステップS37およびS38の処理がスキップされてステップS38の処理が実行される。
【0146】
ステップS37においては、候補文字群が変更される。すなわち、CPU10は、ステップS35においてカーソル72と重なると判定された候補文字群画像に対応する候補文字群を、新たに選択された候補文字群とする。このとき、CPU10は、新たに選択された各候補文字を示す配列データを候補文字群データ640としてメインメモリ13に記憶する。なお、この時点では、新たに選択された候補文字のうち、アルファベット順で最初の文字が配列の先頭となる。以上のステップS37によって、入替の対象として選出されるオブジェクト(候補文字画像)が変更されたこととなる。
【0147】
ステップS38において、CPU10は、入力する文字を決定する指示があったか否か、すなわち、所定の入力決定ボタン(例えば、Aボタン32i)が押下されたか否かを判定する。ステップS38の具体的な処理は、上記ステップS14の処理に準ずる。ステップS38の判定結果が肯定の場合、後述するステップS41の処理が実行される。一方、ステップS38の判定結果が否定の場合、ステップS39の処理が実行される。
【0148】
ステップS39においては、コントローラの傾きを示す傾きベクトルのデータ(すなわち傾きデータ)が算出される。ステップS39の処理は、上記ステップS22と同様である。
【0149】
ステップS40においては、ステップS39で算出された傾きデータに基づいて、候補文字群の入替が行われる。候補文字群の入替は、例えば次のようにして行うことができる。すなわち、CPU10は、傾きベクトルの方向に基づいて、候補文字群データ640の配列の先頭にくる文字を決定する。より具体的には、傾きベクトルの方向を0°〜360°の角度で表現するとすれば、次に示す対応関係に従って候補文字画像を決定する。
0°以上72°未満のとき:アルファベット順で最初の候補文字(例えば“あ”)
72°以上144°未満のとき:アルファベット順で2番目の候補文字(例えば“い”)
144°以上216°未満のとき:アルファベット順で3番目の候補文字(例えば“う”)
216°以上288°未満のとき:アルファベット順で4番目の候補文字(例えば“え”)
288°以上360°未満のとき:アルファベット順で5番目の候補文字(例えば“お”)
上記の対応関係に基づいて配列の先頭の文字を決定することによって、配列に格納される文字の順番を決定することができる。なお、第1の変形例においては、候補文字群画像71jが選択されている場合には候補文字は“わ”、“を”、および“ん”の3つとなるので、上記対応関係とは異なる対応関係を用いる必要がある。
【0150】
なお、上記ステップS40においては、傾きベクトルの方向は、予め定められた方向を基準(0°)とした角度で表されるものであった。ここで、他の実施形態においては、上記実施形態と同様、所定のタイミング(例えば、候補文字群が選択されたタイミング)における傾きベクトルの方向を基準とした角度で表されてもよい。
【0151】
一方、ステップS41においては、現在入力の対象となっている文字が入力済みの文字(文字列)に追加される。すなわち、CPU10は、候補文字群データ640により示される配列の先頭の文字データを、入力文字データ641に含まれる文字データに追加するように、入力文字データ641の内容を更新する。
【0152】
ステップS40またはS41の次に、ステップS42の処理が実行される。すなわち、ステップS42においては、文字入力画面がモニタ2に表示される。このとき、メインメモリ13に格納される候補文字群データ640により示される配列の先頭の文字に対応する候補文字画像が枠74により囲まれる位置に表示される。また、配列に含まれる他の文字に対応する候補文字画像は、配列の順番に従って(例えば右回りに)環状に配置される(図19参照)。したがって、候補文字群データ640により示される配列における文字の順番を並び替えることによって、画面に表示されるオブジェクト(候補文字画像)の入替を行うことができる。
【0153】
続くステップS43において、CPU10は、文字入力を終了するか否かを判定する。例えば、CPU10は、文字入力を終了する旨の指示がプレイヤによって行われたことに応じて文字入力を終了する。ステップS43の判定結果が否定である場合、ステップS33の処理が再度実行され、以降、文字入力を終了すると判定されるまでステップS33〜S43の処理ループが実行される。一方、ステップS43の判定結果が肯定である場合、CPU10は図22および図23に示す処理を終了する。以上で、第1の変形例においてゲーム装置3において実行される処理の説明を終了する。
【0154】
以上のように、第1の変形例においても上記実施形態と同様、プレイヤは、コントローラ7を長手方向を軸として回転させる操作によって、候補文字画像の位置を入れ替えることができる。つまり、プレイヤは、コントローラ7自体を回転させることによって、画面に表示されているオブジェクト(候補文字画像)の位置を入れ替えるという、今までにない新規な操作を味わうことができる。
【0155】
さらに第1の変形例では、カーソル72を移動させることによって、候補文字として表示すべき文字群を変更させる操作を行うことができる。つまり、プレイヤは、コントローラ7自体を操作する操作方法によって2種類の異なる操作を行うことができるので、簡単な操作でプレイヤに2種類の操作を行わせることができ、2種類の操作の組み合わせによって、選択肢の多い候補文字からの選択を高速に行うことができるため、操作性の良い文字入力方法をプレイヤに提供することができる。
【0156】
なお、上記第1の変形例においては、環状に配置された複数のオブジェクトに対して入替を行ったが、例えば図24に示すように、直線状に配置された複数のオブジェクトに対して入替を行うものであってもよい。図24に示す場合も上記第1の変形例と同様、配列を示す候補文字群データ640を用いて候補文字画像73a〜73jの位置を管理することができる。例えば、ゲーム装置3は、配列の先頭の文字に対応する候補文字画像から順に上から下へ候補文字画像を並べて表示することによって、図24に示す画像を表示させることができる。この場合も入替の方法は上記第1の変形例と同様に行うことができる。
【0157】
また、上記第1の変形例においては、入替の対象となる複数のオブジェクト(候補文字画像)が同時に表示されていたが、他の例においては、入替の対象となるオブジェクトの1つのみが表示されている形態であってもよい。図25は、第1の変形例の他の例におけるゲーム画像を示す図である。図25においては、入替の対象となる候補文字画像のうちで、枠74に囲まれる画像のみを表示するようにしている。なお、図25に示す例は、枠74に囲まれる候補文字画像以外の候補文字画像が表示されない点を除いては第1の変形例と同様であり、コントローラ7の傾きに応じて、枠74に囲まれる候補文字画像が入れ替わる点は第1の変形例と同様である。図25に示す例では、コントローラ7の傾きに応じて候補文字画像73aが他の候補文字画像に入れ替わることになる。
【0158】
なお、上記第1の変形例では、ひらがなを入力する場合を例として説明したが、他の変形例では、例えばA〜Zのアルファベットを入力する場合に第1の変形例を用いることも可能である。この場合、例えばA〜Zのアルファベットを、A〜E、F〜J、K〜O、P〜T、U〜Zの5つのグループに分類し、各グループを示す候補文字群画像を表示すればよい。さらに、他の変形例においては、例えばメニュー画面においてアイテムを選択する場合に第1の変形例を用いることも可能である。具体的には、ゲーム装置3は、候補文字群画像に代えて、アイテムの種類(例えば武器、防具等)を示す画像を複数表示する。そして、カーソルによって当該画像のうちの1つが選択された場合には、ゲーム装置3は、選択された画像により示される種類に属するアイテムを示す画像を候補文字画像に代えて表示する。例えば、「武器」を示す画像がカーソルによって選択された場合、「剣」を示す画像や「槍」を示す画像が表示される。プレイヤは、コントローラ7を回転させることによって「剣」や「槍」を示す画像を入れ替えることができ、所望のアイテムを選択することができる。
【0159】
(第2の変形例)
以下、第2の変形例として、各キャラクタの隊列の順番を示すためのメニュー画面を表示する際に本発明を適用する場合の例を説明する。図26は、第2の変形例におけるゲーム画像の一例を示す図である。このゲーム画像は、キャラクタA〜キャラクタDという4つのキャラクタが登場するゲームにおいて、各キャラクタの隊列の順番、および、各キャラクタが装備しているアイテムを示す画像である。すなわち、
図26に示すゲームでは4つのキャラクタが一列になって隊列を組むものとし、画面には、各キャラクタとそのキャラクタの隊列における順番とを対応付けた表76が表示される。なお、この表76においては、キャラクタが装備しているアイテム(武器および防具)がキャラクタ毎に対応付けられている。また、画面には、コントローラ7の指示位置に応じて移動するカーソル77が表示される。
【0160】
第2の変形例において入替の対象となるオブジェクトは、表76のうちの、隊列の順番を示す数字が記載された各欄(セル)である。プレイヤは、これらの欄のうちで入替を行う欄を複数選択する。このゲーム例においては、入替の対象となる欄はプレイヤによって1つずつ選択される。具体的には、プレイヤは、入替の対象とする欄の位置にカーソル77を移動させ、当該欄がカーソル77によって指し示されている状態で所定の選択ボタン(例えば、Aボタン32i)を押下する。ゲーム装置3は、選択ボタンが押下されたことに応じて、押下された時点でカーソル77によって指し示されている欄を入替の対象として選択する。第2の変形例においては、入替の対象として選択された欄は太線で囲まれる。プレイヤは、カーソル77を移動させるとともに入替の対象となる欄を選択する操作を複数回繰り返す。これによって、入替の対象となる欄が複数選択された状態となる。図26に示す状態では、キャラクタAの隊列の欄(“1”と記載された欄)と、キャラクタCの隊列の欄(“3”と記載された欄)とが選択されている。
【0161】
欄が複数選択された状態において、プレイヤは、コントローラ7の傾きを変化させることによって、選択されている欄の内容を入れ替えることができる。すなわち、ゲーム装置3は、コントローラ7の傾きに応じて、選択されている欄の内容を入れ替える。例えば、図26に示す状態において、コントローラ7の傾きが変化されると、ゲーム装置3は、キャラクタAの隊列の欄と、キャラクタCの隊列の欄とを入れ替える。その結果、入れ替え後の表76においては、図27に示すように、キャラクタAの隊列の欄に“3”と記載され、キャラクタCの隊列の欄に“1”と記載されることとなる。これによって、隊列の前から1番前に位置するキャラクタはキャラクタCとなり、隊列前から3番目に位置するキャラクタはキャラクタAとなるように隊列が入れ替えられる。
【0162】
図28は、第2の変形例において、ゲーム装置3のメインメモリ13に記憶される主なデータを示す図である。図28に示すように、メインメモリ13には、ゲームプログラム61、操作データ62、およびゲーム処理用データ63等が記憶される。なお、図28において、上記実施形態と同様のデータについては図12と同じ参照符号を付し、詳細な説明を省略する。以下、図12との相違点を中心に図28について説明する。
【0163】
第2の変形例において、ゲーム処理用データ63は、カーソルデータ633、傾きデータ636、基準傾きデータ637、対象欄データ642、対象内容データ643、および隊列データ644を含んでいる。カーソルデータ633、傾きデータ636および基準傾きデータ637は上記実施形態と同様のデータである。
【0164】
対象欄データ642は、上記表76の各欄のうちで、入替の対象となっている欄を示すデータである。対象欄データ642は、第1の変形例における候補文字群データ640と同様、配列の形式で記憶される。この配列には、入替の対象として最初に選択された欄を示すデータが先頭に格納され、以降、選択された順番に欄を示すデータが格納される。例えば、図26に示す状態において、「キャラクタAの隊列」の欄が選択された後「キャラクタCの隊列」の欄が選択された場合、対象欄データ642の内容は、[「キャラクタAの隊列」,「キャラクタCの隊列」]となる。
【0165】
対象内容データ643は、入替の対象となっている欄の内容(すなわち、欄に記載されている順番)を示すデータである。対象内容データ643は、対象欄データ642と同様、配列の形式で記憶される。この配列には、入替の対象として最初に選択された欄に記載されたアイテムを示すデータが先頭に格納され、以降、選択された順番にアイテムを示すデータが格納される。例えば、図26に示す状態において、「キャラクタAの隊列」の欄が選択された後「キャラクタCの隊列」の欄が選択された場合、対象内容データ643の内容は、[“1”,“3”]となる。
【0166】
隊列データ644は、4つのキャラクタの隊列の順番を示すデータである。つまり、隊列データ644は、図26に示す表76の左側2列の内容を示すデータである。換言すれば、ゲーム装置3は、隊列データ644の内容に従って表76を表示する。
【0167】
次に、第2の変形例においてゲーム装置3で行われる処理の詳細を、図29を用いて説明する。図29は、第2の変形例においてゲーム装置3で実行される処理の流れを示すメインフローチャートである。なお、図29に示すフローチャートは、ゲーム中において所定の条件が満たされた場合(例えば、キャラクタの隊列の順番を変更する指示がプレイヤによって行われた場合)等に開始される。なお、図29に示す処理が開始される際、メインメモリ13に記憶されている対象欄データ642および対象内容データ643の配列は空にされる。
【0168】
第2の変形例においては、まず、ステップS51において、コントローラ7から操作データが取得され、続くステップS52において、カーソル77の画面上の位置、すなわち、コントローラ7の指示位置が算出される。ステップS51の処理は上記ステップS3の処理と同じであり、ステップS52の処理は上記ステップS11の処理と同じである。
【0169】
続くステップS53において、CPU10は、表76の各欄のうちのいずれかが指定されたか否かを判定する。この判定は、当該各欄のいずれかがカーソル77によって指し示されている状態であり、かつ、所定の選択ボタン(例えば、Aボタン32i)が押下されたか否かによって判定される。各欄のいずれかがカーソル77によって指し示されている状態であるか否かは、ステップS52で算出したカーソル77の位置が表76の各欄のうちのいずれかと重なっているか否かにより行われる。また、所定の選択ボタンが押下されたか否かは、メインメモリ13に記憶されている操作キーデータ622を参照することによって、上記ステップS38と同様の方法で行うことができる。ステップS53の判定の結果、表76の各欄のうちのいずれかが指定された場合、ステップS54の処理が実行される。一方、表76の各欄のうちのいずれも指定されていない場合、ステップS54およびS55の処理がスキップされてステップS56の処理が実行される。
【0170】
ステップS54においては、ステップS53で指定されたと判定された欄が入替対象として決定される。すなわち、CPU10は、指定された欄を示すデータ(例えば「キャラクタAの隊列」を示すデータ)を、対象欄データ642により示される配列の最後に追加する。また、指定された欄に記載されている内容を示すデータを、対象内容データ643により示される配列の最後に追加する。このステップS54によって、入替の対象としてオブジェクト(欄)が新たに選出されたこととなる。
【0171】
ステップS55においては、基準傾きデータが算出されてメインメモリ13に記憶に記憶される。ステップS55の処理は、上記ステップS15の処理と同じである。
【0172】
ステップS56においては、入替対象が複数決定されているか否かが判定される。この判定は、メインメモリ13に記憶されている対象欄データ642または対象内容データ643により示される配列に格納されているデータの数を参照することによって行うことができる。すなわち、当該数が0または1の場合、ステップS55の判定結果は否定となり、当該数が2以上の場合、ステップS55の判定結果は肯定となる。ステップS56の判定結果が肯定の場合、ステップS57の処理が実行される。一方、ステップS56の判定結果が否定の場合、ステップS57およびS58の処理がスキップされてステップS59の処理が実行される。
【0173】
ステップS57においては、現在のコントローラの傾きを示す傾きベクトルV’のデータ(すなわち傾きデータ)が算出される。ステップS57の処理は上記ステップS22の処理と同じである。
【0174】
続くステップS58において、入替対象として選択されている欄の内容が入れ替えられる。すなわち、CPU10は、対象内容データ643により示される配列に格納されているデータの順番を入れ替える。ここで、第2の変形例においては、以下に示す入替処理を処理単位としてアイテムの入替が行われる。すなわち、1回の入替処理においては、入替前において配列のi(iは2以上の整数)番目に格納されていたデータが(i−1)番目に格納されるとともに、入替前において配列の先頭に格納されていたデータが配列の最後に格納される。ステップS58において、CPU10は、上記入替処理を、コントローラ7の傾きに応じた回数だけ実行する。例えば、CPU10は、上記ステップS22〜S25の処理によって算出される回転角度を用いて、回転角度が30°増加する毎に1回の入替処理を行う。さらに、他の変形例においては、上記入替処理と逆の入替を行う処理を回転角度が30°減少する毎に行うようにしてもよい。以上の入替処理が実行されることによって、対象内容データ643により示される配列に格納されるデータの順番が入れ替えられることとなる。
【0175】
さらに、ステップS58において、CPU10は、入替処理が実行された後の対象内容データ643および対象欄データ642を参照して、表76の内容を入れ替える。具体的には、対象欄データ642の配列の第j番目(jは1以上の整数)に格納されている欄のデータと、対象内容データ643の配列の第j番目に格納されているとを対応付け、この対応関係に従って隊列データ644の内容を更新する。例えば、対象欄データ642の配列の先頭に「キャラクタAの隊列」を示すデータが格納されており、対象内容データ643の配列の先頭に“3”を示すデータが格納されている場合、キャラクタAの順番が前から3番目となるように隊列データ644の内容を更新する。
【0176】
以上のステップS58の処理によれば、ゲーム装置3は、任意の複数のオブジェクト(欄)を入れ替えることが可能である。なお、入替対象となる欄の数は、2つ以上であればよく、3つ以上であっても入れ替えは可能である。
【0177】
ステップS59においては、各キャラクタが装備しているアイテムを示すためのメニュー画面がモニタ2に表示される。このとき、画面に表示される表76の内容は、メインメモリ13に記憶されている隊列データ644の内容に従って生成される。
【0178】
続くステップS60においては、メニュー画面の表示を終了するか否かが判定される。例えば、CPU10は、メニュー画面の表示を終了する旨の指示がプレイヤによって行われたことに応じて当該表示を終了する。ステップS60の判定結果が否定である場合、ステップS51の処理が再度実行され、以降、メニュー画面の表示を終了すると判定されるまでステップS51〜S60の処理ループが実行される。一方、ステップS60の判定結果が肯定である場合、CPU10は図29に示す処理を終了する。以上で、第2の変形例においてゲーム装置3において実行される処理の説明を終了する。
【0179】
なお、上記第2の変形例においては、武器の欄および防具の欄についても隊列の欄と同様に入れ替えが可能としてもよいし、入れ替えが不可能な欄としてもよい。
【0180】
以上の第2の変形例に示したように、本発明においては、入れ替えの対象となるオブジェクトを、プレイヤが1つずつ選択するようにしてもよい。これによって、より自由度の高い入れ替え操作が可能となる。さらに、コントローラ7の指示位置を変更する操作によって入れ替えの対象となるオブジェクトを選択するようにすれば、入れ替え操作の操作性をより向上することができる。
【0181】
(第3の変形例)
以下、第3の変形例として、キャラクタの状態を示すためのメニュー画面を表示する際に本発明を適用する場合の例を説明する。図30は、第3の変形例におけるゲーム画像の一例を示す図である。このゲーム画像は、キャラクタA〜キャラクタDという4つのキャラクタが登場するゲームにおいてキャラクタの状態を示す画像である。すなわち、画面には、4つのウィンドウ81a〜81dが表示されている。1つのウィンドウには、そのウィンドウに対応するキャラクタについての状態として、レベル、体力値(HP)、魔法力値(MP)、および持っているアイテムの情報が記述されている。なお、4つのウィンドウ81a〜81dは重なって表示されているので、最前面に位置するウィンドウ(図30においてはウィンドウ81a)についてのみ内容が表示され、他のウィンドウについては内容が表示されない。他のウィンドウ81b〜81dについては、ウィンドウ上部のタブ部分のみが表示される。このタブ部分には、キャラクタの名称等が記載されている。
【0182】
図30のメニュー画面が表示されている状態において、プレイヤは、コントローラ7の傾きを変化させることによって、最前面に表示されるウィンドウを入れ替えることができる。すなわち、ゲーム装置3は、コントローラ7の傾きに応じて、最前面に表示するウィンドウを入れ替える。図31は、図30に示す状態からコントローラ7の傾きを変化させる操作を行ったことによって、キャラクタBのウィンドウが最前面に表示された様子を示す図である。図31においては、最前面に位置するウィンドウが、ウィンドウ81aからウィンドウ81bに入れ替えられている。このように、第3の変形例では、コントローラ7の傾きに応じて、表示されるウィンドウを入れ替えることができる。第3の変形例のように、本発明における入替は、画面の奥行き方向に関する位置を入れ替えるものであってもよい。
【0183】
なお、最前面に表示するウィンドウを決定する方法は、コントローラ7の傾きに基づいて決定する方法であればどのような方法でもよい。例えば、上記実施形態のように、基準傾きベクトルと傾きベクトルとの角度差に基づいて決定する方法でもよいし、上記第1の変形例のように、(基準傾きベクトルを用いずに)傾きベクトルのみに基づいて決定する方法であってもよい。
【0184】
また、第3の変形例において、最前面に位置するウィンドウを管理する方法としては、例えば、深さ方向(画面の奥行き方向)に関するウィンドウの位置を示す深さデータをウィンドウに対応付けておき、このデータに基づいてウィンドウを表示する方法が考えられる。この方法においてウィンドウの入替を行う場合、各ウィンドウに対応付けられる深さデータの内容を変更すればよい。
【0185】
上記実施形態および第1〜第3の変形例において示したように、本発明は、コントローラ7の傾きを変化させる操作によって、画面に表示されるオブジェクトに対して種々の入替操作を行うことができる。
【0186】
なお、上記実施形態では、コントローラ7の傾きを示すデータ(傾きデータ)として、仮想のX’Y’Z’座標系におけるベクトルのデータを用いたが、傾きデータは、コントローラ7の傾きに対応して変化するデータであればどのようなものであってもよい。例えば、上記マーカ座標を結ぶベクトル(図15に示すベクトルv)を傾きデータとして用い、傾きデータに基づいてオブジェクトの入替を行うようにしてもよい。
【0187】
また、上記実施形態では、ゲーム装置3は、コントローラ7から操作データとしてマーカ座標データを取得することとしたが、ゲーム装置3がコントローラ7から取得する操作データはこれに限らない。例えば、操作データは、(a)撮像画像のデータ、(b)2つのマーカ座標の位置を結ぶ方向を示すデータ、または(c)上記傾きデータであってもよい。なお、(a)撮像画像のデータをコントローラ7から取得する場合、ゲーム装置3は、撮像画像からマーカ座標を算出する処理を実行する必要がある。また、(b)2つのマーカ座標の位置を結ぶ方向を示すデータがゲーム装置3によって取得される場合、コントローラ7は、当該ベクトルを算出する処理を実行する必要がある。この場合、ゲーム装置3側においては、当該処理を実行する必要はない。なお、「方向を示すデータ」は、図15に示したベクトルvのように、ベクトルとして表現されてもよいし、角度値(°)として表現されてもよい。また、(c)傾きデータがゲーム装置3によって取得される場合、コントローラ7は、撮像画像から傾きデータを算出する処理(上記ステップS22)を実行する必要がある。このとき、ゲーム装置3側においては、当該処理を実行する必要はない。
【0188】
また、上記実施形態では、ゲーム装置3は、コントローラ7から操作データとして取得されるマーカ座標データに基づいてコントローラ7の指示位置を算出することとしたが、コントローラ7の指示位置を算出する方法はこれに限らない。例えば、上記実施形態のようにゲーム装置3がコントローラ7の指示位置を算出する場合には、操作データは、(a)撮像画像のデータ、または、(d)撮像画像における撮像対象の位置を示すデータであってもよい。なお、(b)撮像画像における撮像対象の位置を示すデータは、例えば、上記実施形態において述べた、2つのマーカ座標の中点を示すデータであってもよい。2つのマーカ8aおよび8bを1つの撮像対象として見れば、当該中点の位置が撮像対象の位置とすることができるからである。また、(a)撮像画像のデータをコントローラ7から取得する場合、ゲーム装置3は、撮像画像から撮像対象の位置(例えば、上記中点の位置)を算出する処理を実行する必要がある。
【産業上の利用可能性】
【0189】
以上のように、本発明は、ユーザが手に持って使用する入力装置を用いて従来にはない新たな操作を行うこと等を目的として、例えばゲーム装置およびゲームプログラムに利用することが可能である。
【図面の簡単な説明】
【0190】
【図1】本発明の一実施形態に係る座標算出装置一例であるゲーム装置を含むゲームシステムの外観図
【図2】ゲーム装置3の機能ブロック図
【図3A】コントローラ7の斜視図
【図3B】コントローラ7の斜視図
【図4】コントローラ7を前方から見た図
【図5A】コントローラ7の内部構造を示す図
【図5B】コントローラ7の内部構造を示す図
【図6】コントローラ7の構成を示すブロック図
【図7】撮像画像の一例を示す図
【図8】コントローラ7を用いてゲーム操作するときの状態を概説する図解図
【図9】移動状態におけるゲーム画像を示す図
【図10】入替状態におけるゲーム画像を示す図
【図11】入替状態から移動状態へ移行した直後におけるゲーム画像を示す図
【図12】ゲーム装置3のメインメモリ13に記憶される主なデータを示す図
【図13】ゲーム装置3において実行される処理の流れを示すメインフローチャート
【図14】図13に示す移動処理(ステップS5)の詳細を示すフローチャート
【図15】ある状態において得られた撮像画像におけるマーカ座標の位置を示す図
【図16】図15に示すベクトルvを変換した場合のベクトルV’を示す図
【図17】図13に示す入替処理(ステップS6)の詳細を示すフローチャート
【図18】ステップS24の処理を説明するための図
【図19】第1の変形例におけるゲーム画像の一例を示す図
【図20】図19に示す状態から、候補文字画像73a〜73eの位置が入れ替えられた後のゲーム画像を示す図
【図21】第1の変形例において、ゲーム装置3のメインメモリ13に記憶される主なデータを示す図
【図22】第1の変形例においてゲーム装置3で実行される処理の流れを示すメインフローチャート
【図23】第1の変形例においてゲーム装置3で実行される処理の流れを示すメインフローチャート
【図24】第1の変形例の他の例におけるゲーム画像を示す図
【図25】第1の変形例の他の例におけるゲーム画像を示す図
【図26】第2の変形例におけるゲーム画像の一例を示す図
【図27】第2の変形例におけるゲーム画像の一例を示す図
【図28】第2の変形例において、ゲーム装置3のメインメモリ13に記憶される主なデータを示す図
【図29】第2の変形例においてゲーム装置3で実行される処理の流れを示すメインフローチャート
【図30】第3の変形例におけるゲーム画像の一例を示す図
【図31】図30に示す状態からコントローラ7の傾きを変化させる操作が行われた後の様子を示す図
【符号の説明】
【0191】
1 ゲームシステム
2 モニタ
3 ゲーム装置
4 光ディスク
5 外部メモリカード
7 コントローラ
8a,8b マーカ
10 CPU
13 メインメモリ
32 操作部
35 撮像情報演算部
36 通信部
37 加速度センサ
40 撮像素子
51 パネル
52,72,77 カーソル
53,74 枠
71a〜71j 候補文字群画像
73a〜73e 候補文字画像
81a〜81d ウィンドウ
【技術分野】
【0001】
本発明は、情報処理装置およびプログラムに関し、より特定的には、撮像装置を備える入力装置を用いてユーザが操作を行う情報処理装置およびプログラムに関する。
【背景技術】
【0002】
従来、光学式のポインティングシステムを用いて表示画面上の特定の位置を指定する技術が考えられている。例えば、特許文献1に記載の光学式ポインティングシステムは、複数の視聴者を対象とした会議等において用いられるシステムである。このシステムでは、表示画面の近傍に発光素子が設けられ、指示器には光電変換素子を用いた撮像装置が内蔵される。指示者が指示器を用いて表示画面の任意の位置を指定する場合、指示器は、撮像装置によって上記発光素子を撮像し、撮像された画像に基づいて指示器が指定する位置を算出する。算出された位置にマークが表示されることによって、指示者が指示したい位置がマークによって示されることとなる。
【0003】
また、上記と同様の光学式のポインティングシステムを用いたゲーム用コントローラが考えられている(例えば、特許文献2参照。)。このコントローラは、ガン(拳銃)型の形状を有しており、射撃ゲームに用いられる。この射撃ゲームは、画面に表示されている標的に向かってガンを用いて射撃させるゲームである。ガンは、画面上の任意の位置(弾が飛んでいく位置)を指定するために用いられる。ガン型のコントローラにはCCDカメラが内蔵されており、画面の周囲の4箇所に配置された発光体をCCDカメラが撮像する。コントローラは、撮像された画像を用いてガンの向きや回転や傾きを算出する。算出結果を用いて、画面に表示されている標的の向きをガンが正しく向いているか否かを検出することによって、標的に命中したか否かを判断する。以上の構成によって、プレイヤが手に持ったコントローラ(ガン)自体を動かしてゲーム操作を行うゲームシステムを実現することができる。
【特許文献1】特開平6−308879号公報
【特許文献2】特開平8−71252号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
上記の技術では、ユーザが手に持って使用する入力装置(上記指示器やガン型のコントローラ)は、表示画面上の位置を指定するために用いられるのみである。つまり、上記の指示器やガン型のコントローラでは、表示画面上の位置を指定するという単一の操作のみが可能であり、他の操作を行うことができなかった。例えば、上記入力装置をゲーム装置に用いる場合、表示画面上の位置を指定するという1種類の単純なゲーム操作しか行うことができない。そのため、ゲーム操作が単純であることからゲーム自体も単純な内容となってしまい、興趣性に欠けるものとなる。
【0005】
それゆえ、本発明の目的は、ユーザが手に持って使用する入力装置を用いて従来にはない新たな操作を行うことが可能な情報処理装置およびプログラムを提供することである。
【課題を解決するための手段】
【0006】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、本欄における括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【0007】
第1の発明は、撮像対象(マーカ8aおよび8b)を撮像するための撮像手段(撮像素子40)を備えた入力装置(コントローラ7)から操作データ(62)を取得し、当該操作データに応じてゲーム処理を行った結果を表示装置(モニタ2)の画面に表示させる情報処理装置(ゲーム装置3)である。操作データには、撮像手段によって撮像される撮像画像のデータ、当該撮像画像における撮像対象の所定の2箇所の位置を示すデータ(マーカ座標データ621)、当該2箇所の位置を結ぶ方向を示すデータ、および当該方向から算出される入力装置の傾きを示すデータ、の少なくともいずれかが含まれる。情報処理装置は、傾きデータ算出手段(S22、S39、またはS57を実行するCPU10等。以下、この欄においてはステップ番号のみを記載する。)と、入替手段(S25およびS26、S40、または、S58)とを備える。傾きデータ算出手段は、入力装置から取得された操作データから、入力装置の傾きを表す傾きデータ(636)を算出または取得する。入替手段は、傾きデータに基づいて、画面に表示されているオブジェクト(パネル51、候補文字画像73a〜73e、表76の欄、または、ウィンドウ81a〜81d)を他のオブジェクトに入れ替えて表示させる。
【0008】
第2の発明においては、入替手段は、画面に表示されている複数のオブジェクトの位置を入れ替えてもよい。
【0009】
第3の発明においては、操作データには、撮像手段によって撮像される撮像画像のデータ、当該撮像画像における撮像対象の所定の2箇所の位置を示すデータ(マーカ座標データ621)、および、当該撮像画像における撮像対象の位置を示すデータ、の少なくともいずれかが含まれていてもよい。このとき、情報処理装置は、指示位置算出手段(S11、S34、またはS52)と、選出手段(S12およびS13、S35およびS37、または、S53およびS54)とをさらに備えている。指示位置算出手段は、入力装置によって指し示される画面上の指示位置を操作データから算出する。選出手段は、画面に表示され得る複数のオブジェクトのうちから、入替の対象となる対象オブジェクトを指示位置を用いて複数選出する。入替手段は、複数の対象オブジェクトの位置を入れ替える。
【0010】
第4の発明においては、選出手段は、指示位置を含む所定の領域内(枠53によって囲まれる領域内)に含まれる複数のオブジェクトを対象オブジェクトとして選出するようにしてもよい。
【0011】
第5の発明においては、画面には、複数のオブジェクトからなるオブジェクト群を表すオブジェクト群画像(候補文字群画像71a〜71e)が複数表示されてもよい。このとき、選出手段は、所定のタイミング(候補文字決定ボタンが押下されたタイミング)において複数のオブジェクト群画像のいずれかと指示位置とが重なったか否かを判定し、指示位置と重なったオブジェクト群画像に対応する複数のオブジェクト(候補文字画像73a〜73e)を対象オブジェクトとして選出する。
【0012】
第6の発明においては、選出手段は、所定のタイミング(選択ボタンが押下されたタイミング)において、画面に表示されている複数のオブジェクト(表76の各欄)のいずれかと指示位置とが重なったか否かを判定し、当該指示位置と重なったオブジェクトを対象オブジェクトとして選出するようにしてもよい。このとき、入替手段は、複数のオブジェクトが対象オブジェクトとして選出されている場合、当該複数の対象オブジェクトの位置を入れ替える。
【0013】
第7の発明においては、入替手段は、複数のオブジェクト(対象パネル)の表示位置の中心(マーク54)を軸に回転移動させることによって当該複数のオブジェクトを入れ替えるようにしてもよい。
【0014】
第8の発明においては、入替手段は、所定期間(入替状態に移行した時点から現在までの期間)における、傾きデータにより示される傾きの変化に基づいてオブジェクトの入れ替えを行うようにしてもよい。
【0015】
第9の発明においては、入力装置は少なくとも1つの押圧可能な操作キー(操作キー32a〜32i)を有していてもよい。このとき、操作データは、操作キーが押されているか否かを示すキーデータ(操作キーデータ622)をさらに含んでいる。入替手段は、キーデータに基づいて所定期間を決定する。
【0016】
第10の発明においては、入替手段は、複数のオブジェクトの位置を循環的に入れ替えるようにしてもよい。このとき、入替手段による入替は、所定期間における傾きの変化量に応じた回数だけ行われる。
【0017】
第11の発明においては、入替手段は、予め定められた基準方向に対する傾きデータにより示される傾きの変化に基づいてオブジェクトの入れ替えを行ってもよい。
【0018】
第12の発明は、撮像対象(マーカ8aおよび8b)を撮像するための撮像手段(撮像素子40)と、少なくとも1つの押圧可能な操作キー(操作キー32a〜32i)とを備えた入力装置(コントローラ7)から操作データ(62)を取得し、当該操作データに応じてゲーム処理を行うゲーム装置(3)である。
操作データには、撮像手段によって撮像される撮像画像のデータ、当該撮像画像における撮像対象の所定の2箇所の位置を示すデータ、当該2箇所の位置を結ぶベクトルを示すデータ、および当該ベクトルから算出される入力装置の傾きを示すデータ、の少なくともいずれかである第1データ(マーカ座標データ621)と、操作キーが押されているか否かを示す第2データ(操作キーデータ622)とが含まれる。ゲーム装置は、操作データ取得手段(S3)と、傾き算出手段(S15およびS22)と、指示位置算出手段(S11)と、キー入力判定手段(S14およびS21)と、操作対象設定手段(S12およびS13)と、記憶手段(S15)と、変化量算出手段(S23)と、回転手段(S25)と、近似手段(S26)と、入替手段(S28)と、消去手段(S18)と、表示手段(S28)とを備えている。操作データ取得手段は、操作データを逐次取得する。傾き算出手段は、操作データに含まれる第1データから、入力装置の傾きを逐次算出または取得する。指示位置算出手段は、入力装置によって指し示される画面上の指示位置を、操作データに含まれる第1データから逐次算出する。キー入力判定手段は、操作データに含まれる第2データに基づき、操作キーが押されているか否かを判定する。操作対象設定手段は、ゲーム空間内に配置された、複数種類のグループに分類された複数のパズル要素(パネル)のうち、キーが押されたタイミングにおける指示位置に対応するゲーム空間内の位置を含む所定領域内(枠53の領域内)に配置されるパズル要素を操作対象(対象パネル)として設定する。記憶手段は、キーが押されたタイミングにおける入力装置の傾きを記憶する。変化量算出手段は、キーが押されている期間、記憶手段に記憶された傾きに対する傾き算出手段によって算出された傾きの変化量を逐次算出する。回転手段は、変化量に基づいた回転量で、操作対象のパズル要素を回転させる。近似手段は、キーが離されたタイミングにおける変化量を、操作対象のパズル要素の位置を循環的に入れ替えたときの回転量に近似する。入替手段は、近似された回転量だけ操作対象のパズル要素を回転させることにより、当該パズル要素の位置を循環的に入れ替える。消去手段は、入替手段によってパズル要素の位置を入れ替えた結果、同一グループに分類されるパズル要素がゲーム空間において所定個数以上並んだ場合に、当該並んだパズル要素を消去する。表示制御手段は、パズル要素を含むゲーム空間の画像を表示装置に逐次表示させる。
【0019】
第13の発明は、撮像対象(マーカ8aおよび8b)を撮像するための撮像手段(撮像素子40)と、第1の操作キーおよび第2の操作キーとを備えた入力装置(コントローラ7)から操作データ(62)を取得し、当該操作データに応じて文字入力を受け付ける文字入力受付装置(ゲーム装置3)である。操作データには、撮像手段によって撮像される撮像画像のデータ、当該撮像画像における撮像対象の所定の2箇所の位置を示すデータ、当該2箇所の位置を結ぶベクトルを示すデータ、および当該ベクトルから算出される入力装置の傾きを示すデータ、の少なくともいずれかである第1データ(マーカ座標データ621)と、操作キーが押されているか否かを示す第2データ(操作キーデータ622)とが含まれる。文字入力受付装置は、操作データ取得手段(S33)と、傾き算出手段(S39)と、指示位置算出手段(S34)と、キー入力判定手段(S36およびS38)と、第1表示制御手段(S42)と、第2表示制御手段(S42)と、入替手段(S40)と、入力受付手段(S41)と、第3表示制御手段(S42)とを備えている。操作データ取得手段は、操作データを逐次取得する。傾き算出手段は、操作データに含まれる第1データから、入力装置の傾きを逐次算出または取得する。指示位置算出手段は、入力装置によって指し示される画面上の指示位置を、操作データに含まれる第1データから逐次算出する。キー入力判定手段は、操作データに含まれる第2データに基づき、操作キーが押されているか否かを判定する。第1表示制御手段は、複数の文字からなる文字群を表す文字群画像(候補文字群画像71a〜71e)を表示装置に複数表示させる。第2表示制御手段は、第1の操作キーが押されたタイミングにおいて指示位置と重なっている文字群画像により表される文字群に含まれる各文字を文字毎に表す複数の文字画像(候補文字画像73a〜73e)を、それぞれ所定の位置関係となるように表示装置に表示させる。入替手段は、傾き算出手段によって算出される傾きに基づいて複数の文字画像の位置関係を入れ替える。入力受付手段は、第2の操作キーが押下された場合、複数の文字画像のうち、所定の位置に表示されている文字画像により表される文字の入力を受け付ける。第3表示制御手段は、入力受付手段によって入力が受け付けられた文字を表示装置に表示させる。
【0020】
また、本発明は、上記発明における機能を情報処理装置のコンピュータに実行させるためのプログラムの形態で提供されてもよい。
【発明の効果】
【0021】
第1の発明によれば、傾きデータ算出手段は、入力装置の傾きに応じて変化する傾きデータを算出し、入替手段は、算出された傾きデータに基づいてオブジェクトの入替を行う。これによれば、ユーザは、入力装置の傾きを変化させる操作を行うことによって、オブジェクトの入替を行うことができる。つまり、コントローラ7自体を回転させることによってオブジェクトを入れ替えるという、今までにない新規な操作をユーザに提供することができる。
【0022】
第2の発明によれば、複数のオブジェクトの位置を入れ替えるための操作を、コントローラ7自体を回転させるという今までにない新規な操作によって行うことができる。
【0023】
第3の発明によれば、指示位置算出手段によって算出される指示位置に基づいて入替の対象となる対象オブジェクトが選出される。したがって、ユーザは、オブジェクトを入れ替える操作に加えて、入替の対象となるオブジェクトを選出する操作をコントローラ7を用いて行うことができる。すなわち、ユーザは、コントローラ7自体を操作する操作方法によって2種類の異なる操作を行うことができる。このように第3の発明によれば、簡単な操作でユーザに2種類の操作を行わせることができ、操作性の良い情報処理装置をユーザに提供することができる。
【0024】
第4の発明によれば、指示位置を含む所定の領域内のオブジェクトが入替の対象となるので、ユーザは、入替の対象となるオブジェクトを直感的な操作で容易に選出することができる。
【0025】
第5の発明によれば、所定のタイミングにおいてオブジェクト群画像の位置に指示位置が位置する場合、当該オブジェクト群画像に対応する複数のオブジェクトが入替の対象となる。したがって、ユーザは、入替の対象とすべき所望のオブジェクト群を表すオブジェクト群画像を指定するという直感的な操作によって、入替の対象となるオブジェクトを容易に選出することができる。
【0026】
第6の発明によれば、所定のタイミングにおいて指示位置と重なったオブジェクトが入替の対象となる。これによれば、入替の対象とすべきオブジェクトを1つずつ選出することができるので、より自由度の高い入れ替え操作が可能となる。また、ユーザは、入替の対象となるオブジェクトを直感的な操作で容易に選出することができる。
【0027】
第7の発明によれば、入替の対象となるオブジェクトが回転されるので、入替が行われる様子をわかりやすくユーザに提示することができる。
【0028】
第8の発明によれば、コントローラ7の傾きの相対的な変化に基づいてオブジェクトの入替を行うことができる。
【0029】
第9の発明によれば、ユーザは、上記所定期間を操作キーによって自ら決定することができるので、入替の操作をより容易に行うことができる。
【0030】
第10の発明によれば、変化量の大きさに応じて入替が行われる回数が変化するので、ユーザは複数回の入替操作を容易に行うことができる。
【0031】
第11の発明によれば、コントローラ7の絶対的な傾きに基づいてオブジェクトの入替を行うことができる。
【0032】
第12の発明によれば、コントローラ7の指示位置を移動させることによって入替の対象となるパズル要素を指定するとともに、コントローラ7を回転させることによってパズル要素を入れ替えるという、直感的で、かつ、今までにない新規な操作方法のパズルゲームを提供することができる。
【0033】
第13の発明によれば、コントローラ7の指示位置を移動させることによって入力の候補となる文字群を指定するとともに、コントローラ7を回転させることによって入力する文字を決定するという、直感的で、かつ、今までにない新規な操作方法の文字入力受付装置を提供することができる。
【発明を実施するための最良の形態】
【0034】
図1を参照して、本発明の一実施形態に係る情報処理装置の一例であるゲーム装置を含むゲームシステム1について説明する。なお、図1は、当該ゲームシステム1を説明するための外観図である。以下、据置型のゲーム装置を一例にして、本発明の情報処理装置について説明する。
【0035】
図1において、ゲームシステム1は、家庭用テレビジョン受像機等のスピーカを備えたディスプレイ(以下、モニタと記載する)2に、接続コードを介して接続される据置型ゲーム装置(以下、単にゲーム装置と記載する)3および当該ゲーム装置3に操作データを与えるコントローラ7によって構成される。また、モニタ2の周辺(図では画面の上側)には、2つのマーカ8aおよび8bが設置される。マーカ8aおよび8bは、具体的には赤外LEDであり、それぞれモニタ2の前方に向かって赤外光を出力する。ゲーム装置3は、接続端子を介して受信ユニット6が接続される。受信ユニット6は、コントローラ7から無線送信される操作データを受信し、コントローラ7とゲーム装置3とは無線通信によって接続される。なお、他の実施形態においてはコントローラ7とゲーム装置3とは有線で接続されてもよい。また、ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着される。ゲーム装置3の上部主面には、当該ゲーム装置3の電源ON/OFFスイッチ、ゲーム処理のリセットスイッチ、およびゲーム装置3上部の蓋を開くOPENスイッチが設けられている。ここで、プレイヤがOPENスイッチを押下することによって上記蓋が開き、光ディスク4の脱着が可能となる。
【0036】
また、ゲーム装置3には、セーブデータ等を固定的に記憶するバックアップメモリ等を搭載する外部メモリカード5が必要に応じて着脱自在に装着される。ゲーム装置3は、光ディスク4に記憶されたゲームプログラムなどを実行することによって、その結果をゲーム画像としてモニタ2に表示する。さらに、ゲーム装置3は、外部メモリカード5に記憶されたセーブデータを用いて、過去に実行されたゲーム状態を再現して、ゲーム画像をモニタ2に表示することもできる。そして、ゲーム装置3のプレイヤは、モニタ2に表示されたゲーム画像を見ながら、コントローラ7を操作することによって、ゲームを楽しむことができる。
【0037】
コントローラ7は、その内部に備える通信部36(後述)から受信ユニット6が接続されたゲーム装置3へ、例えばBluetooth(ブルートゥース)(登録商標)の技術を用いて操作データを無線送信する。コントローラ7は、複数の操作キーからなる操作部が設けられている。また、後述により明らかとなるが、コントローラ7は、少なくとも直交2軸方向の加速度を検出する加速度センサ37(後述)を備えている。加速度センサ37によって検出された加速度を示すデータは上記操作データの一部としてゲーム装置3へ送信される。また、コントローラ7は、当該コントローラ7から見た画像を撮像するための撮像情報演算部35(後述)を備えている。撮像情報演算部35は、モニタ2の周辺に配置された各マーカ8aおよび8bを撮像対象として、各マーカ8aおよび8bの画像を撮像する。ゲーム装置3は、この画像に基づいた演算処理によってコントローラ7の位置および姿勢に応じた処理を実行する。
【0038】
次に、図2を参照して、ゲーム装置3の構成について説明する。なお、図2は、ゲーム装置3の機能ブロック図である。
【0039】
図2において、ゲーム装置3は、各種プログラムを実行する例えばリスク(RISC)CPU(セントラルプロセッシングユニット)10を備える。CPU10は、図示しないブートROMに記憶された起動プログラムを実行し、メインメモリ13等のメモリの初期化等を行った後、光ディスク4に記憶されているゲームプログラムを実行し、そのゲームプログラムに応じたゲーム処理等を行うものである。CPU10には、メモリコントローラ11を介して、GPU(Graphics Processing Unit)12、メインメモリ13、DSP(Digital Signal Processor)14、およびARAM(Audio RAM)15が接続される。また、メモリコントローラ11には、所定のバスを介して、コントローラI/F(インターフェース)16、ビデオI/F17、外部メモリI/F18、オーディオI/F19、およびディスクI/F21が接続され、それぞれ受信ユニット6、モニタ2、外部メモリカード5、スピーカ22、およびディスクドライブ20が接続されている。
【0040】
GPU12は、CPU10の命令に基づいて画像処理を行うものあり、例えば、3Dグラフィックスの表示に必要な計算処理を行う半導体チップで構成される。GPU12は、図示しない画像処理専用のメモリやメインメモリ13の一部の記憶領域を用いて画像処理を行う。GPU12は、これらを用いてモニタ2に表示すべきゲーム画像データやムービー映像を生成し、適宜メモリコントローラ11およびビデオI/F17を介してモニタ2に出力する。
【0041】
メインメモリ13は、CPU10で使用される記憶領域であって、CPU10の処理に必要なゲームプログラム等を適宜記憶する。例えば、メインメモリ13は、CPU10によって光ディスク4から読み出されたゲームプログラムや各種データ等を記憶する。このメインメモリ13に記憶されたゲームプログラムや各種データ等がCPU10によって実行される。
【0042】
DSP14は、ゲームプログラム実行時にCPU10において生成されるサウンドデータ等を処理するものであり、そのサウンドデータ等を記憶するためのARAM15が接続される。ARAM15は、DSP14が所定の処理(例えば、先読みしておいたゲームプログラムやサウンドデータの記憶)を行う際に用いられる。DSP14は、ARAM15に記憶されたサウンドデータを読み出し、メモリコントローラ11およびオーディオI/F19を介してモニタ2に備えるスピーカ22に出力させる。
【0043】
メモリコントローラ11は、データ転送を統括的に制御するものであり、上述した各種I/Fが接続される。コントローラI/F16は、例えば4つのコントローラI/Fで構成され、それらが有するコネクタを介して嵌合可能な外部機器とゲーム装置3とを通信可能に接続する。例えば、受信ユニット6は、上記コネクタと嵌合し、コントローラI/F16を介してゲーム装置3と接続される。上述したように受信ユニット6は、コントローラ7からの操作データを受信し、コントローラI/F16を介して当該操作データをCPU10へ出力する。なお、他の実施形態においては、ゲーム装置3は、受信ユニット6に代えて、コントローラ7から送信されてくる操作データを受信する受信モジュールをその内部に設ける構成としてもよい。この場合、受信モジュールが受信した送信データは、所定のバスを介してCPU10に出力される。ビデオI/F17には、モニタ2が接続される。外部メモリI/F18には、外部メモリカード5が接続され、その外部メモリカード5に設けられたバックアップメモリ等とアクセス可能となる。オーディオI/F19にはモニタ2に内蔵されるスピーカ22が接続され、DSP14がARAM15から読み出したサウンドデータやディスクドライブ20から直接出力されるサウンドデータをスピーカ22から出力可能に接続される。ディスクI/F21には、ディスクドライブ20が接続される。ディスクドライブ20は、所定の読み出し位置に配置された光ディスク4に記憶されたデータを読み出し、ゲーム装置3のバスやオーディオI/F19に出力する。
【0044】
次に、図3A〜図8を参照して、コントローラ7について説明する。図3A〜図4は、コントローラ7の外観構成を示す斜視図である。図3Aは、コントローラ7の上面後方から見た斜視図であり、図3Bは、コントローラ7を下面後方から見た斜視図である。図4は、コントローラ7を前方から見た図である。
【0045】
図3A〜図4において、コントローラ7は、例えばプラスチック成型によって形成されたハウジング31を有している。ハウジング31は、その前後方向(図3に示すZ軸方向)を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。プレイヤは、コントローラ7を用いることによって、それに設けられたボタンを押下すること、および、コントローラ7自体の位置や向きを変えること等によってゲーム操作を行うことができる。例えば、プレイヤは、長手方向を軸としてコントローラ7を回転させたり、コントローラ7によって指し示される画面上の位置を変えたりする操作によって、操作対象に対する操作を行うことができる。ここで、「コントローラ7によって指し示される画面上の位置」とは、理想的には、コントローラ7の前端部から上記長手方向に延ばした直線とモニタ2の画面とが交わる位置であるが、厳密に当該位置である必要はなく、その周辺の位置をゲーム装置3によって算出することができればよい。以下では、コントローラ7によって指し示される画面上の位置を「コントローラ7の指示位置」と呼ぶ。また、コントローラ7(ハウジング31)の長手方向を、「コントローラ7の指示方向」と呼ぶことがある。
【0046】
ハウジング31には、複数の操作キーが設けられる。ハウジング31の上面には、十字キー32a、Xボタン32b、Yボタン32c、Aボタン32i、セレクトスイッチ32e、メニュースイッチ32f、およびスタートスイッチ32gが設けられる。一方、ハウジング31の下面には凹部が形成されており、当該凹部の後面側傾斜面にはBボタン32dが設けられる。これらの各操作キー(ボタン)は、ゲーム装置3が実行するゲームプログラムに応じてそれぞれの機能が割り当てられるが、本発明の説明とは直接関連しないためここでは詳細な説明を省略する。また、ハウジング31の上面には、遠隔からゲーム装置3本体の電源をオン/オフするための電源スイッチ32hが設けられる。
【0047】
また、コントローラ7は撮像情報演算部35(図5B)を有しており、図4に示すように、ハウジング31前面には撮像情報演算部35の光入射口35aが設けられる。一方、ハウジング31の後面にはコネクタ33が設けられている。コネクタ33は、例えば32ピンのエッジコネクタであり、コントローラ7に他の機器を接続するために利用される。また、ハウジング31上面の後面側には複数のLED34が設けられる。ここで、コントローラ7には、他のコントローラ7と区別するためにコントローラ種別(番号)が付与される。LED34は、コントローラ7に現在設定されている上記コントローラ種別をプレイヤに通知するために用いられる。具体的には、コントローラ7からゲーム装置3へ操作データを送信する際、上記コントローラ種別に応じて複数のLED34のいずれか1つが点灯する。
【0048】
次に、図5Aおよび図5Bを参照して、コントローラ7の内部構造について説明する。図5Aおよび図5Bは、コントローラ7の内部構造を示す図である。なお、図5Aは、コントローラ7の上筐体(ハウジング31の一部)を外した状態を示す斜視図である。図5Bは、コントローラ7の下筐体(ハウジング31の一部)を外した状態を示す斜視図である。図5Bに示す基板300は、図5Aに示す基板300の裏面から見た斜視図となっている。
【0049】
図5Aにおいて、ハウジング31の内部には基板300が固設されており、当該基板300の上主面上に操作キー32a〜32h、加速度センサ37、LED34、水晶振動子46、無線モジュール44、およびアンテナ45等が設けられる。そして、これらは、基板300等に形成された配線(図示せず)によってマイクロコンピュータ(Micro Computer:マイコン)42(図6参照)に接続される。また、無線モジュール44およびアンテナ45によって、コントローラ7がワイヤレスコントローラとして機能する。なお、水晶振動子46は、後述するマイコン42の基本クロックを生成する。
【0050】
一方、図5Bにおいて、基板300の下主面上の前端縁に撮像情報演算部35が設けられる。撮像情報演算部35は、コントローラ7の前方から順に赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41によって構成されおり、それぞれ基板300の下主面に取り付けられる。また、基板300の下主面上の後端縁にコネクタ33が取り付けられる。そして、撮像情報演算部35の後方であって基板300の下主面上にAボタン32iが取り付けられていて、それよりさらに後方に電池47が収容される。電池47とコネクタ33との間の基板300の下主面上には、バイブレータ48が取り付けられる。このバイブレータ48は、例えば振動モータやソレノイドであってよい。バイブレータ48が作動することによってコントローラ7に振動が発生するので、それを把持しているプレイヤの手にその振動が伝達され、いわゆる振動対応ゲームを実現することができる。
【0051】
なお、図3A〜図5Bに示したコントローラ7の形状や、各操作キーの形状、数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であっても、本発明を実現することができることは言うまでもない。また、コントローラ7における撮像情報演算部35の位置(撮像情報演算部35の光入射口35a)は、ハウジング31の前面でなくてもよく、ハウジング31の外部から光を取り入れることができれば他の面に設けられてもかまわない。このとき、上記「コントローラ7の指示方向」は、光入射口に垂直な方向、すなわち、撮像素子40の撮像方向となる。
【0052】
図6は、コントローラ7の構成を示すブロック図である。コントローラ7は、操作部32(各操作キー)、撮像情報演算部35、通信部36、および加速度センサ37を備えている。
【0053】
撮像情報演算部35は、撮像手段が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを算出するためのシステムである。撮像情報演算部35は、例えば最大200フレーム/秒程度のサンプリング周期を有するので、比較的高速なコントローラ7の動きでも追跡して解析することができる。
【0054】
撮像情報演算部35は、赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を含んでいる。赤外線フィルタ38は、コントローラ7の前方から入射する光から赤外線のみを通過させる。ここで、モニタ2の表示画面近傍に配置されるマーカ8aおよび8bは、モニタ2の前方に向かって赤外光を出力する赤外LEDである。したがって、赤外線フィルタ38を設けることによってマーカ8aおよび8bの画像をより正確に撮像することができる。レンズ39は、赤外線フィルタ38を透過した赤外線を集光して撮像素子40へ入射させる。撮像素子40は、例えばCMOSセンサやあるいはCCDのような固体撮像素子であり、レンズ39が集光した赤外線を撮像する。したがって、撮像素子40は、赤外線フィルタ38を通過した赤外線だけを撮像して画像データを生成する。以下では、撮像素子40によって撮像された画像を撮像画像と呼ぶ。撮像素子40によって生成された画像データは、画像処理回路41で処理される。画像処理回路41は、撮像画像内における撮像対象(マーカ8aおよび8b)の位置を算出する。以下、図7を用いて撮像対象の位置の算出方法を説明する。
【0055】
図7は、撮像画像の一例を示す図である。図7に示す撮像画像A1においては、マーカ8aの画像8a’およびマーカ8bの画像8b’が左右に並んでいる。撮像画像が入力されると、まず、画像処理回路41は、撮像画像内において所定条件に合致する領域の位置を示す座標を当該領域毎に算出する。ここで、所定条件とは、撮像対象の画像(対象画像)を特定するための条件であり、所定条件の具体的な内容は、輝度が所定値以上の領域(高輝度領域)であり、かつ、領域の大きさが所定範囲内の大きさであることである。なお、所定条件は撮像対象を特定するための条件であればよく、他の実施形態においては、画像の色に関する条件を含んでいてもよい。
【0056】
対象画像の位置を算出する際、まず、画像処理回路41は、撮像画像の領域から上記高輝度領域を対象画像の候補として特定する。撮像画像の画像データにおいて対象画像は高輝度領域として現れるからである。次に、画像処理回路41は、特定された高輝度領域の大きさに基づいて、その高輝度領域が対象画像であるか否かを判定する判定処理を行う。撮像画像には、対象画像である2つのマーカ8aおよび8bの画像8a’および8b’の他、窓からの太陽光や部屋の蛍光灯の光によって対象画像以外の画像が含まれている場合がある。この場合、マーカ8aおよび8bの画像8a’および8b’以外の画像も高輝度領域として現れてしまう。上記の判定処理は、対象画像であるマーカ8aおよび8bの画像8a’および8b’とそれ以外の画像とを区別し、対象画像を正確に特定するための処理である。具体的には、当該判定処理においては、特定された高輝度領域が、予め定められた所定範囲内の大きさであるか否かが判定される。そして、高輝度領域が所定範囲内の大きさである場合、当該高輝度領域は対象画像を表すと判定され、高輝度領域が所定範囲内の大きさでない場合、当該高輝度領域は対象画像以外の画像を表すと判定される。
【0057】
さらに、上記の判定処理の結果、対象画像を表すと判定された高輝度領域について、画像処理回路41は当該高輝度領域の位置を算出する。具体的には、当該高輝度領域の重心位置を算出する。なお、重心位置は撮像素子40の解像度よりも詳細なスケールで算出することが可能である。ここでは、撮像素子40によって撮像された撮像画像の解像度が126×96であるとし、重心位置は1024×768のスケールで算出されるものとする。つまり、重心位置の座標は、(0,0)から(1024,768)までの整数値で表現される。なお、撮像画像における位置は、図7に示すように、撮像画像の左上を原点とし、下向きをy軸正方向とし、右向きをx軸正方向とする座標系(xy座標系)で表現されるものとする。
【0058】
以上のようにして、画像処理回路41は、撮像画像内において所定条件に合致する領域の位置を示す座標を当該領域毎に算出する。なお、以下では、画像処理回路41によって算出される座標をマーカ座標と呼ぶ。マーカ座標は、撮像画像に対応する平面上の位置を表すための座標系において撮像対象の位置を示す座標である。画像処理回路41は、マーカ座標を通信部36のマイコン42へ出力する。マーカ座標のデータは、マイコン42によって操作データとしてゲーム装置3に送信される。マーカ座標はコントローラ7自体の向き(姿勢)や位置に対応して変化するので、ゲーム装置3は当該座標値を用いてコントローラ7の向きや位置を算出することができる。なお、本実施形態では、撮像画像からマーカ座標を算出する処理までをコントローラ7の画像処理回路41および/またはマイコン42で行ったが、例えば撮像画像をゲーム装置3に送り、以降の処理と同等の処理をゲーム装置3のCPU10等で行わせることもできる。
【0059】
また、他の実施形態においては、2個のマーカ8aおよび8bに代えて、例えば細長形状の光源を用いてもよい。この光源の両端の位置を示す座標を算出することによって、上記マーカ座標と同等の座標を得ることができる。つまり、1個のマーカのうちの所定の2箇所の位置を算出することによって、上記マーカ座標と同等の座標を得ることができる。
【0060】
図6の説明に戻り、加速度センサ37は、コントローラ7の加速度(重力加速度を含む)を検出する、すなわち、コントローラ7に加わる力(重力を含む)を検出する。加速度センサ37は、当該加速度センサ37の検出部に加わっている加速度のうち、センシング軸方向に沿った直線方向の加速度の値を検出する。例えば、2軸または3軸の加速度センサの場合には、加速度センサの検出部に加わっている加速度として、各軸に沿った成分の加速度(直線加速度)をそれぞれ検出する。本実施形態では、加速度センサ37は、コントローラ7を基準とした上下方向(図3Aおよび図3Bに示すY軸方向)、左右方向(図3Aおよび図3Bに示すX軸方向)および前後方向(図3Aおよび図3Bに示すZ軸方向)の3軸方向に関してそれぞれ直線加速度を検出する。加速度センサ37は、各軸に沿った直線方向に関する加速度を検出するものであるため、加速度センサ37からの出力は、3軸それぞれの直線加速度の値を表すものとなる。すなわち、検出された加速度は、コントローラ7を基準に設定されるXYZ座標系における3次元のベクトルとして表される。加速度センサ37が検出した加速度を示すデータ(加速度データ)は、マイコン42へ出力される。なお、本実施形態では、加速度データはゲーム処理に用いられないので、コントローラ7は加速度センサ37を備えていない構成であってもよい。
【0061】
操作部32は、上述した十字キー32a等の各操作キー32a〜32iに相当し、各操作キー32a〜32iに対する入力状態(各操作キー32a〜32iが押下されたか否か)を示すデータを通信部36のマイコン42へ出力する。
【0062】
通信部36は、マイコン42、メモリ43、無線モジュール44、およびアンテナ45を含んでいる。マイコン42は、処理の際にメモリ43を記憶領域として用いながら、マイコン42が取得したデータを無線送信する無線モジュール44を制御する。
【0063】
操作部32および撮像情報演算部35(および加速度センサ37)からマイコン42へ出力されたデータは、一時的にメモリ43に格納される。ここで、通信部36から受信ユニット6への無線送信は所定の周期毎に行われるが、ゲームの処理は1/60秒を単位として(1フレーム時間として)行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。マイコン42は、受信ユニット6への送信タイミングが到来すると、メモリ43に格納されているデータを操作データとして無線モジュール44へ出力する。無線モジュール44は、例えばBluetooth(ブルートゥース)(登録商標)の技術を用いて、所定周波数の搬送波を操作データで変調し、その微弱電波信号をアンテナ45から放射する。つまり、操作データは、無線モジュール44で微弱電波信号に変調されてコントローラ7から送信される。微弱電波信号はゲーム装置3側の受信ユニット6で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置3は操作データを取得することができる。そして、ゲーム装置3のCPU10は、取得した操作データとゲームプログラムとに基づいて、ゲーム処理を行う。
【0064】
上記コントローラ7を用いることによって、プレイヤは、各操作キーを押下する従来の一般的なゲーム操作に加えて、コントローラ7の姿勢を変化させたり、コントローラ7自身の位置を動かしたり、コントローラ7を回転させたりするというゲーム操作を行うことができる。
【0065】
図8は、コントローラ7を用いてゲーム操作するときの状態を概説する図解図である。図8に示すように、ゲームシステム1でコントローラ7を用いてゲームをプレイする際、プレイヤは、一方の手でコントローラ7を把持する。ここで、マーカ8aおよび8bは、モニタ2の画面の横方向と平行に、画面の上側に配置されている。なお、他の実施形態においては、マーカ8aおよび8bの配置位置ならびに2つのマーカ8aおよび8bを配置する向きは任意であり、例えば、マーカ8aおよび8bが画面の下側に配置されてもよいし、2つのマーカ8aおよび8bが画面の縦方向に沿って配置されてもよい。プレイヤは、コントローラ7の前面(撮像情報演算部35が撮像する光の入射口側)がマーカ8aおよび8bの方向を向く状態でコントローラ7を把持する。この状態で、プレイヤは、コントローラ7の傾きを変化させたり(図8に示す矢印参照)、コントローラ7が指し示す画面上の位置(指示位置)を変更したり、コントローラ7と各マーカ8aおよび8bとの距離を変更したりすることによってゲーム操作を行う。
【0066】
以下、上述したゲームシステム1を用いて行われるゲームの具体例について説明する。まず、本実施形態では、ゲームシステム1を用いて行われるパズルゲームを例として説明する。
【0067】
図9〜図11は、本実施形態におけるパズルゲームのゲーム画像の一例を示す図である。本実施形態において、モニタ2の画面には、複数のパネル51、カーソル52、枠53、マーク54、残り時間画像55、および得点画像56が表示される。パネル51は縦6行、横5列に並んでおり、合計30個のパネルが表示されている。各パネルには番号が付されており、番号が同じものは同じ種類のパネルである。このパズルゲームにおいては、プレイヤは後述する入替操作によってパネルの位置を入れ替えることができる。入替操作によって同じ種類のパネルが縦または横に3つ以上並ぶと、並んだパネルが消去される。このパズルゲームは、予め定められた制限時間内にパネルを消した個数を競って遊ぶゲームである。なお、残り時間画像55は、制限時間が経過するまでの残り時間を示す。得点画像56は、現在の得点、すなわち、現在までにパネルを消した個数を示す。
【0068】
本実施形態におけるゲームにおいて、プレイヤは、カーソル52を移動させる操作である移動操作と、パネルを入れ替える操作である入替操作を行うことが可能である。すなわち、ゲーム装置3は、プレイヤによる移動操作および入替操作を受け付ける。以下では、移動操作が可能であるゲーム状態を移動状態と呼び、入替操作が可能であるゲーム状態を入替状態と呼ぶ。
【0069】
図9は、移動状態におけるゲーム画像を示す図である。移動状態においては、ゲーム装置3は、プレイヤによる移動操作に従って画面上においてカーソル52を移動させる。具体的には、ゲーム装置3は、コントローラ7から取得される操作データを用いてコントローラ7の指示位置を算出し、当該指示位置にカーソル52を表示させる。プレイヤは、移動操作として、コントローラ7の指示位置を変更するようにコントローラ7の位置および/または姿勢を変化させる操作を行う。
【0070】
移動状態において、プレイヤは、カーソル52を移動させることによって枠53を所望の位置に移動させる。枠53は、入替操作による入替の対象となるパネルを示すための画像である。枠53は、縦2行横2列に並んだ任意の4つのパネルを囲むように配置されている。本実施形態において、枠53によって囲まれる4つのパネルが入替の対象となるパネル(対象パネルと呼ぶ)である。枠53は、カーソル52の移動に応じて移動する。具体的には、枠53は、カーソル52が枠53の内部に常に位置するように移動する。例えば、図9に示す状態からカーソル52が左へ移動していき、カーソル52が枠53の左辺を超えそうになると、ゲーム装置3はパネル1列分だけ枠53を左に移動させる。このように、移動状態においては、プレイヤは、入替を行いたい所望の4つのパネルを囲むように枠53を移動させる。なお、マーク54は、枠53により囲まれる領域の中心位置を示す。
【0071】
移動状態において、コントローラ7の所定の入替指示ボタン(例えば、Bボタン32d)が押下されると、ゲーム装置3はゲーム状態を移動状態から入替状態へ移行させる。また、本実施形態では、入替指示ボタンが押下されている間はゲーム状態が入替状態に設定され、入替指示ボタンが離される(押下されなくなる)とゲーム状態は入替状態から移動状態へ戻る。つまり、プレイヤは、入替指示ボタンを押下し続ける間、入替操作を行うことができる。プレイヤは、移動状態において枠53を所望の位置に移動させることができれば、入替指示ボタンを押下して入替操作を開始すればよい。
【0072】
入替状態において、ゲーム装置3は、コントローラ7からの操作データから、コントローラ7の長手方向を軸とした回転に関する傾きを算出する。そして、当該傾きに応じて対象パネルを回転移動させる。入替操作は、コントローラ7を長手方向(図3Aおよび図3Bに示すZ軸方向)を軸として回転させる操作である。なお、以下における本実施形態の説明では、「コントローラ7の回転」とは「コントローラ7の長手方向を軸とした回転」を指し、「コントローラ7の傾き」とは「コントローラ7の長手方向を軸とした回転量に関する傾き」を指すものとする。
【0073】
図10は、入替状態におけるゲーム画像を示す図である。図10は、上記入替指示ボタンが押下された時点のコントローラ7の状態から、コントローラ7を右回りに約60°回転させた状態である。なお、本明細書では、コントローラ7に関する「右回り」および「左回り」とは、コントローラ7の後方(図3に示すZ軸負方向側)から見たときの回転方向を言うものとする。図10に示すように、対象パネルは、入替指示ボタンが押下された時点の状態(図9に示す状態)から、コントローラ7の傾きに応じた回転量でマーク54を中心に回転している。図10においては、対象パネルは図9に示す状態から右回りに約60°回転している。このように、入替状態においてゲーム装置3は、対象パネルをコントローラ7の傾きに応じて回転移動させる。
【0074】
なお、本実施形態では、ゲーム装置3は、入替状態に移行した時点における向きを基準(0°)として、右回りまたは左回りにそれぞれ最大270°まで対象パネルを回転させる。プレイヤは、右回りまたは左回りに、90°、180°または270°だけ対象パネルを回転させることによって、対象パネルである4つのパネルの配置位置を入れ替える。そして、当該4つの対象パネルの配置された位置が所望の位置となれば、入替指示ボタンを離してゲーム状態を移動状態へ移行させる。
【0075】
また、本実施形態において、移動状態においては30個のパネルは縦6行、横5列に整列されて配置されるものとする。つまり、入替状態終了時において対象パネルが整列されていなければ、ゲーム装置3は、入替状態終了時における対象パネルの位置を必要に応じて補正する。
【0076】
図11は、入替状態から移動状態へ移行した直後におけるゲーム画像を示す図である。図11は、図9における状態から、図10に示す入替操作によって対象パネルが右回りに90°回転移動された状態を示している。つまり、枠53内の1つのパネルについて見れば、入替操作によって、入替前のパネルが他のパネルに入れ替えられていることになる。例えば枠53内の左上の位置について見れば、入替操作によって、番号が“4”のパネルが番号が“3”のパネルに入れ替えられている。また、枠53内の4つのパネルについて見れば、4つのパネルの配置位置が入れ替えられていることになる。このように、本実施形態では、入替状態においてコントローラ7の傾きを変化させることで、画面に表示されたオブジェクト(パネル)の入替を行うことができる。
【0077】
また、本実施形態では、4つの対象パネルが循環的に入れ替えられている。ここで、「循環的に入れ替える」とは、入替の対象となる各オブジェクト(パネル)を、当該各オブジェクトの配置位置を所定の順番で循環して移動させるように入れ替えることである。このように、所定の規則に従ってパネルを移動させることによって、パズルゲームの戦略性が増し、より面白いパズルゲームを提供することができる。
【0078】
図11においては、上から4行目において同種類のパネル(番号が“2”のパネル)が3つ並んで配置されているので、これらの3つのパネルが消去される。なお、図11においては、これら3つのパネルが消去される様子を白黒を反転させた表示で表現している。また、3つのパネルが消去されたことによって得点が3点加算される(図11に示す得点画像56参照)。本実施形態においては、ゲーム装置3は、パネルが消去されると、消去されたパネルの位置に新たなパネルを追加する。以降において、プレイヤは、制限時間が経過するまで、移動操作と入替操作とを繰り返し行うことによってパネルを消去していく。
【0079】
以上のように、本実施形態では、プレイヤは、コントローラ7を長手方向を軸として回転させる入替操作によって、対象パネルの位置を入れ替えることができる。つまり、プレイヤは、コントローラ7自体を回転させることによって、画面に表示されているオブジェクト(パネル)の位置を入れ替えるという、今までにない新規な操作を味わうことができる。
【0080】
さらに本実施形態では、コントローラ7の指示位置を移動させることによって、入替の対象となるパネルを選出する操作を行うことができる。つまり、プレイヤは、コントローラ7自体を操作する操作方法によって2種類の異なる操作(移動操作および入替操作)を行うことができるので、簡単な操作でプレイヤに2種類の操作を行わせることができ、操作性の良いゲームをプレイヤに提供することができる。
【0081】
次に、本実施形態においてゲーム装置3で実行されるプログラム処理について説明する。まず、ゲーム処理において用いられる主なデータについて図12を用いて説明する。図12は、ゲーム装置3のメインメモリ13に記憶される主なデータを示す図である。図12に示すように、メインメモリ13には、ゲームプログラム61、操作データ62、およびゲーム処理用データ63等が記憶される。なお、メインメモリ13には、図12に示すデータの他、パズルゲームに登場するパネルやカーソルや枠等の画像データや、残り時間や得点を示すデータ等、ゲーム処理に必要なデータが記憶される。
【0082】
ゲームプログラム61は、ゲーム装置3に電源が投入された後の適宜のタイミングで光ディスク4からその一部または全部が読み込まれてメインメモリ13に記憶される。ゲームプログラム61には、後述するゲーム処理(図13)の実行に必要なプログラムが含まれている。
【0083】
操作データ62は、コントローラ7からゲーム装置3へ送信されてきて、メインメモリ13に記憶される。操作データ62には、マーカ座標データ621および操作キーデータ622が含まれる。マーカ座標データ623は、撮像情報演算部35の画像処理回路41によって算出される座標、すなわち上記マーカ座標を示すデータである。マーカ座標は、撮像画像に対応する平面上の位置を表すための座標系(図7に示すxy座標系)で表現される。また、操作キーデータ622は、各操作ボタン32a〜32iに対する入力状態(各操作ボタン32a〜32iが押下されたか否か)を示すデータである。なお、操作データ62には、必要に応じて、上記加速度センサ37によって検出される加速度(加速度ベクトル)を示す加速度データが含まれていてもよい。
【0084】
ゲーム処理用データ63は、後述するゲーム処理において用いられるデータである。ゲーム処理用データ63は、ゲーム状態データ631、パネル配列データ632、カーソルデータ633、枠データ634、対象パネルデータ635、傾きデータ636、基準傾きデータ637、および回転角データ638を含む。
【0085】
ゲーム状態データ631は、現在のゲーム状態を示すデータである。上述したように、本実施形態では、ゲーム状態には、移動状態および入替状態という2種類の状態がある。ゲーム状態データ631は、“移動状態”および“入替状態”のいずれかを示す。
【0086】
パネル配列データ632は、30個のパネルの配列を示すデータである。具体的には、パネル配列データ632は、第i行(1≦i≦6)の第j列(1≦j≦5)に配置されるパネルの種類(パネルの番号)を示す。
【0087】
カーソルデータ633は、上記カーソル52の画面上の位置、すなわち、コントローラ7の指示位置を示す。カーソルデータ633は、上記マーカ座標データ621に基づいて算出される。
【0088】
枠データ634は、上記枠53の画面上の位置を示す。本実施形態では、枠データ634は、枠53の中心位置(すなわち、マーク54の位置)の座標を示す。
【0089】
対象パネルデータ635は、画面に表示されている30個のパネルのうちで対象パネルとなっている4つのパネルを示す。本実施形態においては、4つの対象パネルのうちの例えば左上のパネルの位置を表す行数および列数のデータを対象パネルデータ635として記憶する。例えば、図9に示す状態おいては、対象パネルデータ635は、“第3行第3列”を示す。
【0090】
傾きデータ636は、コントローラ7の傾きに対応して変化する方向を示すデータである。本実施形態では、傾きデータ636により示される方向は、仮想の3次元座標系であるX’Y’Z’座標系(図18参照)を用いて表される。具体的には、当該方向は、X’Y’Z’座標系におけるX’Y’平面上のベクトルで表現される。傾きデータ636は、上記マーカ座標データ621に基づいて算出される。
【0091】
基準傾きデータ637は、入替操作が開始された時点(すなわち、移動状態から入替状態へ移行した時点)におけるコントローラ7の傾きに対応する方向を示すデータである。基準傾きデータ637は、上記傾きデータ636と同様、上記X’Y’Z’座標系におけるX’Y’平面上のベクトルのデータである。基準傾きデータ637は、入替操作が開始された時点において算出される傾きデータである。
【0092】
回転角データ638は、入替状態における対象パネルの回転角度を示す。対象パネルの回転角度θは、入替操作が開始された時点における対象パネルの向きを0°とし、右回りを正として、−270°≦θ≦270°の範囲の値で表現される。なお、他の実施例においては、対象パネルの回転角度をベクトルで表現してもよい。
【0093】
次に、ゲーム装置3において行われる処理の詳細を、図13〜図18を用いて説明する。図13は、ゲーム装置3において実行される処理の流れを示すメインフローチャートである。ゲーム装置3の電源が投入されると、ゲーム装置3のCPU10は、図示しないブートROMに記憶されている起動プログラムを実行し、これによってメインメモリ13等の各ユニットが初期化される。そして、光ディスク4に記憶されたゲームプログラムがメインメモリ13に読み込まれ、CPU10によって当該ゲームプログラムの実行が開始される。図13に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。
【0094】
まず、ステップS1において、以降の処理において用いられるデータの初期化処理が実行される。具体的には、“移動状態”を示すデータがゲーム状態データ631としてメインメモリ13に記憶される。本実施形態においては、ゲーム開始直後は移動状態とするからである。また、ゲーム開始時における各パネルの初期配置を示すデータがパネル配列データ632としてメインメモリ13に記憶される。各パネルの初期配置は、ゲームプログラム61において予め決められていてもよいし、ランダムに決定されてもよい。
【0095】
続くステップS2において、ゲーム空間が構築されてモニタ2に表示される。CPU10は、3次元または2次元のゲーム空間を構築し、パネル配列データ632に従って30個のパネルを配置する。以上のように構築されたゲーム空間を表すゲーム画像が生成され、生成されたゲーム画像がモニタ2に表示される。以降、ステップS3〜S7の処理ループが1フレーム毎に繰り返される(ステップS18およびS19が実行される場合を除く。)ことによって、ゲームが進行していく。
【0096】
ステップS3において、CPU10は、コントローラ7から操作データを取得する。すなわち、コントローラ7は所定時間間隔(例えば、1フレーム時間間隔以内)で操作データをゲーム装置3へ送信してくるので、CPU10は、送信されてきた操作データをメインメモリ13に記憶する。この操作データには、少なくとも上記マーカ座標データおよび操作キーデータが含まれている。CPU10は、マーカ座標データおよび操作キーデータをメインメモリ13に記憶する。なお、ステップS3の処理が所定時間間隔で実行されることによって、ゲーム装置3は、マーカ座標データおよび操作キーデータを逐次取得することができる。
【0097】
続くステップS4において、CPU10は、現在のゲーム状態が移動状態であるか否かを判定する。ステップS4の判定は、メインメモリ13に記憶されているゲーム状態データ631を参照することによって行われる。具体的には、ゲーム状態データ631が移動状態を示す場合、ステップS4の判定結果は肯定となり、ゲーム状態データ631が入替状態を示す場合、ステップS4の判定結果は否定となる。ステップS4の判定結果が肯定の場合、ステップS5の処理が実行される。一方、ステップS4の判定結果が否定の場合、後述するステップS6の処理が実行される。
【0098】
ステップS5においては、移動処理が実行される。移動処理とは、移動状態におけるゲーム処理であり、プレイヤによる移動操作に従ってカーソル52や枠53を移動させるための処理である。以下、図14を参照して移動処理の詳細について説明する。
【0099】
図14は、図13に示す移動処理(ステップS5)の詳細を示すフローチャートである。移動処理においては、まずステップS10において、CPU10は、パネルがそろったか否かを判定する。ステップS10の判定は、メインメモリ13に記憶されているパネル配列データ632を参照することによって行われる。すなわち、パネル配列データ632により示される各パネルの配列において、同じ種類のパネルが縦または横に3つ以上並んでいる場合、ステップS10の判定結果は肯定となり、同じ種類のパネルが縦または横に3つ以上並んでいない場合、ステップS10の判定結果は否定となる。ステップS10の判定結果が肯定の場合、後述するステップS18の処理が実行される。一方、ステップS10の判定結果が否定の場合、ステップS11の処理が実行される。
【0100】
ステップS11においては、カーソル52の画面上の位置、すなわち、コントローラ7の指示位置が算出される。具体的には、CPU10は、メインメモリ13に記憶されているマーカ座標データ623により示されるマーカ座標に基づいて、コントローラ7の指示位置を算出する。算出された指示位置のデータは、カーソルデータ633としてメインメモリ13に記憶される。ここで、コントローラ7の指示位置の算出方法はどのようなものであってもよいが、例えば次に示す方法が考えられる。
【0101】
以下、コントローラ7の指示位置の算出方法の一例を説明する。コントローラ7から取得されるマーカ座標データ623は、マーカ8aおよび8bに対応する2つのマーカ座標を示すので、まずCPU10は、マーカ座標データから2つのマーカ座標の中点を算出する。この中点の位置は、撮像画像に対応する平面上の位置を表すための上記xy座標系によって表現される。次に、上記2つのマーカ座標を結ぶベクトルがy軸に平行になるように、撮像画像の中心を軸として当該マーカ座標の中点を回転する補正を行う。本願発明は、コントローラ7の傾きを入力に用いるため、コントローラ7が傾いている場合等にも、正確に指示位置を算出するためにそのような補正が必要になる。次に、CPU10は、当該補正された中点の位置を示す座標を、モニタ2の画面上の位置を表すための座標系(x’y’座標系とする)の座標に変換する。この変換は、ある撮像画像から算出される中点の座標を、当該撮像画像が撮像される時のコントローラ7の実際の指示位置に対応する画面上の座標に変換する関数を用いて行うことができる。その際、コントローラ7の指示位置と、撮像画像内でのマーカ座標の位置とは逆方向に移動することになるので、上下左右が反転するような変換を行う。以上のようにして算出されたx’y’座標値により示される位置がコントローラ7の指示位置となる。
【0102】
続くステップS12において、CPU10は、入替を行う対象を変更するか否か、すなわち、枠53を移動させるか否かを判定する。ステップS12の判定は、メインメモリ13に記憶されているカーソルデータ633と枠データ634とを参照することによって行うことができる。すなわち、カーソルデータ633により示されるカーソル52の位置が、枠データ634によって決められる枠53の領域の内側である場合、ステップS12の判定結果は否定となる。逆に、カーソル52の位置が枠53の領域の外側である場合、ステップS12の判定結果は肯定となる。なお、本実施形態では枠53の大きさは予め決まっているので、枠データ634により枠53の中心位置を特定することができれば枠53の領域を算出することができる。ステップS12の判定結果が肯定の場合、ステップS13の処理が実行される。一方、ステップS12の判定結果が否定の場合、ステップS13の処理がスキップされてステップS14の処理が実行される。
【0103】
ステップS13においては、枠53が移動される。CPU10は、カーソルデータ633により示されるカーソル52の位置に応じて、左方向または右方向に1列分、あるいは、上方向または下方向に1行分だけ枠53を移動させる。すなわち、カーソル52が枠53よりも左側に位置する場合には左方向へ1列分だけ枠53を移動させ、カーソル52が枠53よりも右側に位置する場合には右方向へ1列分だけ枠53を移動させ、カーソル52が枠53よりも上側に位置する場合には上方向へ1行分だけ枠53を移動させ、カーソル52が枠53よりも下側に位置する場合には下方向へ1行分だけ枠53を移動させる。このとき、メインメモリ13に記憶されている枠データ634の内容は、移動後の枠53の位置を示すデータに更新して記憶される。また、対象パネルデータ635の内容は、移動後の枠53によって囲まれる4つのパネルを示すデータに更新して記憶される。以上のステップS13およびS14によって、30個の各パネルのうちで、入替処理における入替の対象として選出されるパネルが変更されたこととなる。
【0104】
ステップS14においては、CPU10は、プレイヤによって入替指示が行われたか否かを判定する。すなわち、入替指示ボタン(本実施形態では、Bボタン32d)が押下されたか否かを判定する。ステップS14の判定は、メインメモリ13に記憶されている操作キーデータ622を参照することによって行われる。すなわち、操作キーデータ622が、Bボタン32dが押下されたことを示す場合、ステップS14の判定結果は肯定となり、操作キーデータ622が、Bボタン32dが押下されていないことを示す場合、ステップS14の判定結果は否定となる。ステップS14の判定結果が肯定の場合、ステップS15の処理が実行される。一方、ステップS14の判定結果が否定の場合、ステップS15およびS16の処理がスキップされてステップS17の処理が実行される。
【0105】
ステップS15においては、基準傾きデータが算出されてメインメモリ13に記憶に記憶される。つまり、入替指示が行われた時点において取得された操作データに基づいて、コントローラ7の傾きに対応する方向が算出される。本実施形態では、この方向は、仮想の3次元座標系であるX’Y’Z’座標系におけるベクトルとして表現される。以下、図15および図16を用いて、基準傾きデータの算出方法の詳細を説明する。
【0106】
図15は、ある状態において得られた撮像画像におけるマーカ座標の位置を示す図である。図15においては、位置M1およびM2を示す2つのマーカ座標が撮像情報演算部35によって算出されたものとする。つまり、ゲーム装置3は、図15に示す位置のマーカ座標を示すデータを操作データとしてコントローラ7から取得したものとする。このとき、CPU10は、まず、2つのマーカ座標を結ぶベクトルvを算出する。なお、2つのマーカ座標のうちでいずれをベクトルの始点にしていずれをベクトルの終点にするかは、予め定められた所定のルールに従って決定される。例えば、2つのマーカ座標のうち、x成分の値が小さい方のマーカ座標を始点とするようにしてもよい。なお、算出されたベクトルvがx軸となす角度をθと表す。次にCPU10は、xy座標系におけるベクトルvを、X’Y’Z’座標系におけるベクトルV’に変換する。具体的には、ベクトルV’がX’Y’平面(Z’=0)上となり、かつ、ベクトルV’がX’軸となす角度がθとなるように変換する。また、ベクトルV’の大きさは1とする。図16は、図15に示すベクトルvを変換した場合のベクトルV’を示している。以上のようにして得られるベクトルV’は、コントローラ7の傾きに対応して変化し、コントローラ7の傾きを示している。以下では、このベクトルV’を傾きベクトルと呼ぶ。特に、上記入替指示が行われた時点において算出される傾きベクトルを基準傾きベクトルと呼ぶ。
【0107】
ステップS15において、以上のように算出された基準傾きベクトルV’のデータは、基準傾きデータ637としてメインメモリ13に記憶される。詳細は後述するが、本実施形態では、ステップS15で算出された基準傾きベクトルV’の方向を基準とした傾きベクトルの方向の変化に基づいて、パネルの入れ替えが行われる。ステップS15の後、ステップS16の処理が実行される。
【0108】
ステップS16においては、ゲーム状態が入替状態に設定される。具体的には、CPU10は、メインメモリ13に記憶されているゲーム状態データ631の内容を、入替状態を示すデータに書き換える。これによって、次のフレーム処理(ステップS3〜S7の処理)においてはステップS4の判定結果が肯定となるのでステップS6の入替処理が実行されることとなる。ステップS16の後、ステップS17の処理が実行される。
【0109】
ステップS17において、モニタ2にゲーム画像が表示される。すなわち、メインメモリ13に記憶されているパネル配列データ632により示される配列で30個のパネルが表示され、カーソルデータ633により示される位置にカーソル52が表示され、枠データ634により示される位置に枠53が表示される(図9参照)。また、残り時間画像55および得点画像56が表示される。ステップS17の処理が終了するとCPU10は移動処理を終了する。
【0110】
一方、ステップS18においては、縦または横に3つ以上並んだ同じ種類のパネルが消去される様子がモニタ2に表示される。続くステップS19において、パネルが消去された位置に新たなパネルを追加する様子がモニタ2に表示される。なお、ステップS18およびS19の表示処理は、複数のフレームにわたってアニメーションを表示することによって行われることが好ましい。ステップS19の処理が終了するとCPU10は移動処理を終了する。
【0111】
図13の説明に戻り、ステップS6においては、入替処理が実行される。入替処理とは、入替状態におけるゲーム処理であり、プレイヤによる回転操作に従ってパネルの位置を入れ替えるための処理である。以下、図17を参照して入替処理の詳細について説明する。
【0112】
図17は、図13に示す入替処理(ステップS6)の詳細を示すフローチャートである。入替処理においては、まずステップS21において、CPU10は、入替終了指示があったか否かを判定する。すなわち、入替指示ボタン(本実施形態では、Bボタン32d)に対する入力がなくなったかを判定する。ステップS21の判定は、メインメモリ13に記憶されている操作キーデータ622を参照することによって行われる。すなわち、操作キーデータ622が、Bボタン32dが押下されていないことを示す場合、ステップS21の判定結果は肯定となり、操作キーデータ622が、Bボタン32dが押下されていることを示す場合、ステップS21の判定結果は否定となる。ステップS21の判定結果が肯定の場合、後述するステップS26の処理が実行される。一方、ステップS21の判定結果が否定の場合、ステップS22の処理が実行される。
【0113】
ステップS22においては、現在のコントローラの傾きを示す傾きベクトルV’のデータ(すなわち傾きデータ)が算出される。傾きデータは、今回のフレーム処理におけるステップS3で取得されてメインメモリ13に記憶されたマーカ座標データ621を用いて算出される。傾きベクトルの算出方法は、上述したステップS15で説明した算出方法と同様である。なお、ステップS22において傾きベクトルを算出する場合、2つのマーカ座標のうち、前回のフレーム処理においてマーカ座標を結ぶベクトルの始点とされた座標に近い方のマーカ座標がベクトルの始点とされる。算出された傾きベクトルV’のデータは、傾きデータ636としてメインメモリ13に記憶される。
【0114】
続くステップS23において、基準傾きベクトルの方向(基準方向)を基準としたときの、ステップS22で算出された傾きベクトルの方向の変化量が算出される。この変化量は、ステップS22で算出された傾きベクトルと基準傾きベクトルとの内積値として表される。すなわち、CPU10は、ステップS22で算出された傾きベクトルと基準傾きベクトルとの内積を算出する。なお、他の実施形態においては、ステップS22で算出された傾きベクトルの方向と基準方向とのなす角の大きさ(°)を上記変化量として算出するようにしてもよい。上記変化量は、入替指示が行われた時点における状態からのコントローラ7の傾きの変化量を示す。つまり、ステップS23は、入替指示が行われた時点における状態からのコントローラ7の回転量を算出するための処理である。
【0115】
続くステップS24において、基準方向を基準としたときの、ステップS22で算出された傾きベクトルの方向が変化する向きが算出される。具体的には、CPU10は、基準傾きベクトルとステップS22で算出された傾きベクトルとの外積を算出する。図18は、ステップS24の処理を説明するための図である。図18においては、基準傾きベクトルをV1’とし、ステップS22で算出された傾きベクトルをV2’とする。上述したように、ベクトルV1’およびV2’はX’Y’平面上のベクトルである。図18においては、傾きベクトルは、入替指示が行われた時点における状態から、Z’軸正方向の向きに見て右回りに回転している。このとき、ベクトルV1’とベクトルV2’との外積は、ベクトルV3となる。一方、傾きベクトルが、入替指示が行われた時点における状態から、Z’軸正方向の向きに見て左回りに回転している場合、ベクトルV1’とベクトルV2’との外積は、ベクトルV3’となる。つまり、上記変化の向きが右回りである場合、外積のベクトルがZ’軸正方向を向き、上記変化の向きが左回りである場合、外積のベクトルがZ’軸負方向を向く。このように、外積のベクトルを算出し、当該ベクトルのZ’成分の値が正か負かによって、上記変化の向きを知ることができる。つまり、外積のベクトルのZ’成分の値が正か負かによって、コントローラ7の回転方向を知ることができる。
【0116】
続くステップS25において、対象パネルの回転角度が決定される。具体的には、CPU10は、まず、ステップS24で算出された向きに、ステップS23で算出された変化量だけ対象パネルを回転させる角度を算出する。なお、本実施形態では、所定の中心角度(0°、90°、180°または270°)に対して±α°の範囲を遊び範囲として設定しておく。CPU10は、上記算出した角度がこの遊び範囲内の値である場合、対象パネルの回転角度を、遊び範囲に対応する中心角度として決定する。また、上記算出した角度がこの遊び範囲内の値でない場合、上記算出した角度を回転角度として決定する。例えば、上記算出した角度が90°±αの範囲内の値となる場合、回転角度は90°に決定される。これにより、プレイヤは、上記中心角度に正確に対応するようにコントローラ7を操作しなくても、対象パネルを当該中心角度だけ回転させることができるので、ゲームの操作性を向上することができる。ステップS25で決定された角度のデータは、回転角データ638としてメインメモリ13に記憶される。ステップS25の後、後述するステップS28の処理が実行され、上記決定された角度だけ回転した対象パネルのゲーム画像がモニタ2に表示されることとなる。
【0117】
ステップS25に示したように、本実施形態では、所定の期間(入替状態に移行した時点から現在までの期間)において、傾きデータにより示される方向の変化量に基づいて対象パネルの入替を行った。すなわち、基準傾きベクトルと現在の傾きベクトルとの変化に基づいて対象パネルの入替を行った。ここで、他の実施形態においては、後述する第1の変形例のように、現在の傾きベクトルの値のみに基づいて対象パネルの入替を行うようにしてもよい。
【0118】
一方、ステップS26においては、対象パネルの現在の回転角度に一番近い中心角度となるように、対象パネルの回転角度が決定される。具体的には、CPU10は、上記中心角度(0°、90°、180°または270°)のうちで、対象パネルの現在の回転角度に最も近い中心角度を選択して、選択した中心角度を対象パネルの現在の回転角度として決定する。ここで、対象パネルの現在の回転角度は、その時点でメインメモリ13に記憶されている回転角データ638により示されている。本実施形態では、対象パネルの現在の回転角度は、前回のフレーム処理のステップS25で決定された回転角度であるが、他の実施形態では、対象パネルの現在の回転角度は、今回のフレーム処理におけるステップS26の前にステップS22〜S25の処理を実行することによって得られる回転角度であってもよい。ステップS25で決定された角度のデータは、回転角データ638としてメインメモリ13に記憶される。さらに、回転角度が決定されたことにより、当該角度に基づいて、パネルの配置が入れ替わるようにパネル配列データ632の内容を変更する。
【0119】
続くステップS27において、ゲーム状態が移動状態に設定される。具体的には、CPU10は、メインメモリ13に記憶されているゲーム状態データ631の内容を、移動状態を示すデータに書き換える。これによって、次のフレーム処理においてはステップS4の判定結果が否定となるのでステップS5の移動処理が実行されることとなる。
【0120】
ステップS25またはS27の次に、ステップS28の処理が実行される。ステップS28においては、入替状態におけるゲーム画面が表示される。すなわち、対象パネルについては、メインメモリ13に記憶されている回転角データ638により示される角度だけ回転した状態で表示される(図10参照)。なお、本実施形態では、対象パネルの回転と同じ角度だけ枠53も回転して表示される。ステップS28の処理が終了するとCPU10は入替処理を終了する。
【0121】
図6の説明に戻り、ステップS5またはS6の次に、ステップS7の処理が実行される。ステップS7において、CPU10はゲームを終了するか否かを判定する。ステップS7の判定は、例えば、ゲームの制限時間が経過したか否かによって行われる。ステップS7の判定結果が否定である場合、ステップS3の処理が再度実行され、以降、ゲームを終了すると判定されるまでステップS3〜S7の処理ループが実行される。一方、ステップS7の判定結果が肯定である場合、CPU10は図13に示す処理を終了する。以上で、本実施形態においてゲーム装置3において実行されるゲーム処理の説明を終了する。
【0122】
以上のように、本実施形態においては、プレイヤが入替指示を行うと、ゲーム状態は移動状態から入替状態に移行し(ステップS16)、コントローラ7の傾きに応じて対象パネルを回転させることが可能となる(ステップS22〜S25)。さらに、プレイヤによって入替終了指示が行われると(ステップS21でYes)、対象パネルは右回りまたは左回りに0°、90°、180°または270°だけ回転した状態となって(ステップS26)、ゲーム状態が入替状態から移動状態へ移行する(ステップS27)。したがって、入替処理によって、コントローラの傾きに応じて、4つの対象パネルについて、ある位置に表示されていたパネルが他のパネル(他の位置に表示されていたパネル)と入れ替えられたこととなる。すなわち、本実施形態においては、プレイヤは、コントローラ7自体を回転させることによって、画面に表示されているオブジェクト(パネル)を入れ替えるという、今までにない新規な操作を味わうことができる。
【0123】
また、本実施形態において、対象パネルが90°回転するような入替処理を1回の入替処理とすると、ゲーム装置3は、コントローラ7の傾きの変化量に応じた回数だけ入替処理を行うこととなる。これによって、プレイヤは複数回の入替操作を容易に行うことができる。
【0124】
なお、上記本実施形態では、入替処理において、1フレーム毎に対象パネルの回転角度が算出されて(ステップS22〜25)対象パネルの回転角度が1フレーム毎に変化された。これによって、コントローラ7の傾きに応じて対象パネルが回転移動するアニメーションが表示されることとなる。ここで、他の実施例においては、コントローラ7の傾きに応じて対象パネルを入れ替えるようにすればよく、上記アニメーションが表示されなくてもよい。
【0125】
また、本実施形態では、対象パネルを4個とし、コントローラ7の傾きに応じて4個のオブジェクトの位置を入れ替えることとしたが、対象パネルの数はいくつであってもよい。例えば、左右または上下に並ぶ2個のパネルを対象パネルとし、2個のパネルの位置を入れ替えるようにしてもよい。
【0126】
なお、本実施形態では、画面に表示されている複数個のオブジェクト(パネル)の位置を入れ替える場合を例として説明したが、本発明は、画面に表示されているオブジェクトを他のオブジェクトに入れ替えて表示させる種々の形態に適用することが可能である。以下、変形例として、他のゲーム例について説明する。
【0127】
(第1の変形例)
以下、第1の変形例として、文字入力を行う際に本発明を適用する場合の例を説明する。図19は、第1の変形例におけるゲーム画像の一例を示す図である。図19に示すゲーム画像は、ひらがなを入力する際にモニタ2の画面に表示される。すなわち、画面には、候補文字群画像71a〜71j、カーソル72、候補文字画像73a〜73e、枠74、および入力文字画像75が表示される。第1の変形例においては、ゲーム開始時や、ゲーム中において所定の条件が満たされた場合等に、図19に示す画像が表示される。
【0128】
図19において、カーソル72は、プレイヤによって操作され、プレイヤが画面上の任意の位置を指定するために用いられる。すなわち、ゲーム装置3は、コントローラ7の指示位置にカーソル72を表示する。なお、カーソル72の表示位置を算出する方法は上記実施形態と同様である。
【0129】
画面上部に表示されている候補文字群画像71a〜71jは、それぞれ、候補文字の集合(候補文字群)を示す画像である。例えば、“あ行”と記載された候補文字群画像71aは、“あ”〜“お”の5つの候補文字の集合を示す画像である。ここで、候補文字とは、入力可能な文字として画面に表示される文字である。つまり、候補文字として選択されている文字は、それに対応する画像(後述する候補文字画像)が画面に表示されることとなる。
【0130】
候補文字画像73a〜73eは、候補文字として現在選択されている文字を示す画像である。図19の状態においては、“あ”〜“お”の5つの文字が候補文字に選択されており、これら5つの候補文字の入力を行うことが可能である。第1の変形例においては、候補文字画像73a〜73eは環状に配置されている。コントローラ7の傾きを変化させる操作によって、候補文字画像73a〜73eの位置を入れ替えることができる。
【0131】
枠74は、候補文字のうちで、入力の対象となっている文字を示す。つまり、枠74によって囲まれる候補文字画像の文字が入力の対象となっている文字である。例えば、図19の状態において、プレイヤがコントローラ7の所定の入力決定ボタン(例えば、Aボタン32i)を押下すると、枠74によって囲まれている候補文字である“あ”が入力される。
【0132】
入力文字画像75は、すでに入力された文字(文字列)を示す画像である。図19の状態では、入力文字画像75は、“あ”の文字が入力済である状態を示している。
【0133】
図19に示す画像が表示されると、プレイヤはまず、コントローラ7を用いて第1の操作を行う。第1の操作は、候補文字群を選択するための操作である。具体的には、まず、プレイヤは、候補文字群画像71a〜71jのうちの所望の1つの画像にカーソル72が重なるようにカーソル72を移動させる。次に、プレイヤは、所望の候補文字群画像の位置にカーソル72を移動させると、所定の候補文字決定ボタン(例えば、Bボタン32d)を押下する。これによって、ゲーム装置3は、カーソル72によって指し示される候補文字群画像が選択されたと認識し、候補文字として選択される文字群を、当該候補文字群画像に対応する文字群に変更する。例えば、図19に示す状態において、“か行”の文字群に対応する候補文字群画像71bが選択された場合、“あ”〜“お”の5文字に変えて、“か”〜“こ”の5文字を候補文字として選択する。これによって、“あ”〜“お”の5文字の候補文字画像に代えて、“か”〜“こ”の5文字の候補文字画像が画面に表示される。以上のように、プレイヤは、所望の文字を入力する際、まず、第1の操作として、入力したい文字を候補文字として画面に表示させるために、カーソル72を用いて候補文字群画像を選択する操作を行う。
【0134】
第1の操作の次に、プレイヤは、候補文字のうちから、入力する文字を決定する操作を第2の操作として行う。ここで、第1の変形例では、ゲーム装置3は、コントローラ7の傾きに応じて候補文字画像73a〜73eの位置を入れ替える。例えば、図19に示す状態から、コントローラ7を長手方向を軸として右回りに回転させた場合、ゲーム装置3は、候補文字画像73a〜73eの位置を、図20に示すように入れ替える。図20は、図19に示す状態から、候補文字画像73a〜73eの位置が入れ替えられた後のゲーム画像を示す図である。図20においては、各候補文字画像73a〜73eは、循環的に位置が入れ替えられている。つまり、各候補文字画像73a〜73eは、右回りにそれぞれ1つずつずれるように表示位置が移動されている。
【0135】
以上のように、プレイヤは、コントローラ7の傾きを変化させる操作によって、枠74によって囲まれる位置にくる候補文字画像を入れ替えることができる。すなわち、入力の対象となる文字を入れ替えることができる。プレイヤは、所望の候補文字が枠74によって選択されている状態となれば、所定の入力決定ボタン(例えば、Aボタン32i)を押下する。これに応じてゲーム装置3は、選択されている文字が入力されたと認識し、入力文字画像75に当該文字を追加する。例えば、図20においては、図19に示す状態から“い”の文字が新たに入力された様子を示している。
【0136】
図21は、第1の変形例において、ゲーム装置3のメインメモリ13に記憶される主なデータを示す図である。図21に示すように、メインメモリ13には、ゲームプログラム61、操作データ62、およびゲーム処理用データ63等が記憶される。なお、図21において、上記実施形態と同様のデータについては図12と同じ参照符号を付し、詳細な説明を省略する。以下、図12との相違点を中心に図21について説明する。
【0137】
第1の変形例において、ゲーム処理用データ63は、カーソルデータ633、傾きデータ636、候補文字群データ640、および入力文字データ641を含んでいる。カーソルデータ633および傾きデータ636は上記実施形態と同様のデータである。
【0138】
候補文字群データ640は、現在の候補文字群、すなわち、候補文字として現在選択されている文字群を示すデータである。候補文字群データ640は、例えば配列の形式で表現される。また、この配列においてそれぞれの列の最初に格納される文字が現在入力の対象となる文字であり、配列の2番目以降には、アルファベット順に各文字が格納される。なお、現在の候補文字群のうちでアルファベットの順番が最後の文字の後は、当該候補文字群のうちでアルファベットの順番が最初の文字が格納され、それ以降にはアルファベット順に書く文字が格納される。例えば、候補文字群が“か”〜“こ”であり、現在入力の対象となっている文字が“く”である場合、配列は、[“く”,“け”,“こ”,“か”,“き”]となる。
【0139】
入力文字データ641は、すでに入力された文字(文字列)を示すデータである。図19に示す入力文字画像75は、入力文字データ641により示される文字(文字列)を示している。
【0140】
次に、第1の変形例においてゲーム装置3で行われる処理の詳細を、図22および図23を用いて説明する。図22および図23は、第1の変形例においてゲーム装置3で実行される処理の流れを示すメインフローチャートである。なお、図22および図23に示すフローチャートは、ゲーム開始時や、ゲーム中において所定の条件が満たされた場合等に開始される。
【0141】
まずステップS31において、以降の処理において用いられるデータの初期化処理が実行される。具体的には、候補文字群データ640および入力文字データ641の内容が初期化される。ここでは、初期状態においては、“あ”〜“お”の文字が候補文字群として選択されており、入力の対象となる文字が“あ”に設定されているとする。したがって、[“あ”,“い”,“う”,“え”,“お”]を示すデータが候補文字群データ640としてメインメモリ13に記憶される。
【0142】
続くステップS32において、ゲーム空間が構築されてモニタ2に表示される。すなわち、CPU10は、図19に示すようなゲーム画像を生成してモニタ2に表示させる。以降、ステップS33〜S43の処理ループが1フレーム毎に繰り返されることによって、ゲームが進行していく。
【0143】
ステップS33においては、CPU10は、コントローラ7から操作データを取得する。ステップS33の処理は上記ステップS3の処理と同じである。続くステップS34においては、カーソル72の画面上の位置、すなわち、コントローラ7の指示位置が算出される。ステップS34の処理は上記ステップS11の処理と同じである。
【0144】
ステップS35において、CPU10は、候補文字群画像71a〜71jのいずれかが指定されたか否かを判定する。具体的には、ステップS34で算出したカーソル72の位置が候補文字群画像71a〜71jのいずれかと重なっているか否かを判定する。判定の結果、カーソル72の位置が候補文字群画像71a〜71jのいずれかと重なっている場合、ステップS36の処理が実行される。一方、カーソル72の位置が候補文字群画像71a〜71jのいずれとも重なっていない場合、ステップS36〜S38の処理がスキップされてステップS38の処理が実行される。
【0145】
ステップS36においては、CPU10は、候補文字を指定する入力があったか否か、すなわち、所定の候補文字決定ボタン(例えば、Bボタン32d)が押下されたか否かを判定する。ステップS36の処理は、上記ステップS14の処理と同様である。ステップS36の判定結果が肯定の場合、ステップS37の処理が実行される。一方、ステップS36の判定結果が否定の場合、ステップS37およびS38の処理がスキップされてステップS38の処理が実行される。
【0146】
ステップS37においては、候補文字群が変更される。すなわち、CPU10は、ステップS35においてカーソル72と重なると判定された候補文字群画像に対応する候補文字群を、新たに選択された候補文字群とする。このとき、CPU10は、新たに選択された各候補文字を示す配列データを候補文字群データ640としてメインメモリ13に記憶する。なお、この時点では、新たに選択された候補文字のうち、アルファベット順で最初の文字が配列の先頭となる。以上のステップS37によって、入替の対象として選出されるオブジェクト(候補文字画像)が変更されたこととなる。
【0147】
ステップS38において、CPU10は、入力する文字を決定する指示があったか否か、すなわち、所定の入力決定ボタン(例えば、Aボタン32i)が押下されたか否かを判定する。ステップS38の具体的な処理は、上記ステップS14の処理に準ずる。ステップS38の判定結果が肯定の場合、後述するステップS41の処理が実行される。一方、ステップS38の判定結果が否定の場合、ステップS39の処理が実行される。
【0148】
ステップS39においては、コントローラの傾きを示す傾きベクトルのデータ(すなわち傾きデータ)が算出される。ステップS39の処理は、上記ステップS22と同様である。
【0149】
ステップS40においては、ステップS39で算出された傾きデータに基づいて、候補文字群の入替が行われる。候補文字群の入替は、例えば次のようにして行うことができる。すなわち、CPU10は、傾きベクトルの方向に基づいて、候補文字群データ640の配列の先頭にくる文字を決定する。より具体的には、傾きベクトルの方向を0°〜360°の角度で表現するとすれば、次に示す対応関係に従って候補文字画像を決定する。
0°以上72°未満のとき:アルファベット順で最初の候補文字(例えば“あ”)
72°以上144°未満のとき:アルファベット順で2番目の候補文字(例えば“い”)
144°以上216°未満のとき:アルファベット順で3番目の候補文字(例えば“う”)
216°以上288°未満のとき:アルファベット順で4番目の候補文字(例えば“え”)
288°以上360°未満のとき:アルファベット順で5番目の候補文字(例えば“お”)
上記の対応関係に基づいて配列の先頭の文字を決定することによって、配列に格納される文字の順番を決定することができる。なお、第1の変形例においては、候補文字群画像71jが選択されている場合には候補文字は“わ”、“を”、および“ん”の3つとなるので、上記対応関係とは異なる対応関係を用いる必要がある。
【0150】
なお、上記ステップS40においては、傾きベクトルの方向は、予め定められた方向を基準(0°)とした角度で表されるものであった。ここで、他の実施形態においては、上記実施形態と同様、所定のタイミング(例えば、候補文字群が選択されたタイミング)における傾きベクトルの方向を基準とした角度で表されてもよい。
【0151】
一方、ステップS41においては、現在入力の対象となっている文字が入力済みの文字(文字列)に追加される。すなわち、CPU10は、候補文字群データ640により示される配列の先頭の文字データを、入力文字データ641に含まれる文字データに追加するように、入力文字データ641の内容を更新する。
【0152】
ステップS40またはS41の次に、ステップS42の処理が実行される。すなわち、ステップS42においては、文字入力画面がモニタ2に表示される。このとき、メインメモリ13に格納される候補文字群データ640により示される配列の先頭の文字に対応する候補文字画像が枠74により囲まれる位置に表示される。また、配列に含まれる他の文字に対応する候補文字画像は、配列の順番に従って(例えば右回りに)環状に配置される(図19参照)。したがって、候補文字群データ640により示される配列における文字の順番を並び替えることによって、画面に表示されるオブジェクト(候補文字画像)の入替を行うことができる。
【0153】
続くステップS43において、CPU10は、文字入力を終了するか否かを判定する。例えば、CPU10は、文字入力を終了する旨の指示がプレイヤによって行われたことに応じて文字入力を終了する。ステップS43の判定結果が否定である場合、ステップS33の処理が再度実行され、以降、文字入力を終了すると判定されるまでステップS33〜S43の処理ループが実行される。一方、ステップS43の判定結果が肯定である場合、CPU10は図22および図23に示す処理を終了する。以上で、第1の変形例においてゲーム装置3において実行される処理の説明を終了する。
【0154】
以上のように、第1の変形例においても上記実施形態と同様、プレイヤは、コントローラ7を長手方向を軸として回転させる操作によって、候補文字画像の位置を入れ替えることができる。つまり、プレイヤは、コントローラ7自体を回転させることによって、画面に表示されているオブジェクト(候補文字画像)の位置を入れ替えるという、今までにない新規な操作を味わうことができる。
【0155】
さらに第1の変形例では、カーソル72を移動させることによって、候補文字として表示すべき文字群を変更させる操作を行うことができる。つまり、プレイヤは、コントローラ7自体を操作する操作方法によって2種類の異なる操作を行うことができるので、簡単な操作でプレイヤに2種類の操作を行わせることができ、2種類の操作の組み合わせによって、選択肢の多い候補文字からの選択を高速に行うことができるため、操作性の良い文字入力方法をプレイヤに提供することができる。
【0156】
なお、上記第1の変形例においては、環状に配置された複数のオブジェクトに対して入替を行ったが、例えば図24に示すように、直線状に配置された複数のオブジェクトに対して入替を行うものであってもよい。図24に示す場合も上記第1の変形例と同様、配列を示す候補文字群データ640を用いて候補文字画像73a〜73jの位置を管理することができる。例えば、ゲーム装置3は、配列の先頭の文字に対応する候補文字画像から順に上から下へ候補文字画像を並べて表示することによって、図24に示す画像を表示させることができる。この場合も入替の方法は上記第1の変形例と同様に行うことができる。
【0157】
また、上記第1の変形例においては、入替の対象となる複数のオブジェクト(候補文字画像)が同時に表示されていたが、他の例においては、入替の対象となるオブジェクトの1つのみが表示されている形態であってもよい。図25は、第1の変形例の他の例におけるゲーム画像を示す図である。図25においては、入替の対象となる候補文字画像のうちで、枠74に囲まれる画像のみを表示するようにしている。なお、図25に示す例は、枠74に囲まれる候補文字画像以外の候補文字画像が表示されない点を除いては第1の変形例と同様であり、コントローラ7の傾きに応じて、枠74に囲まれる候補文字画像が入れ替わる点は第1の変形例と同様である。図25に示す例では、コントローラ7の傾きに応じて候補文字画像73aが他の候補文字画像に入れ替わることになる。
【0158】
なお、上記第1の変形例では、ひらがなを入力する場合を例として説明したが、他の変形例では、例えばA〜Zのアルファベットを入力する場合に第1の変形例を用いることも可能である。この場合、例えばA〜Zのアルファベットを、A〜E、F〜J、K〜O、P〜T、U〜Zの5つのグループに分類し、各グループを示す候補文字群画像を表示すればよい。さらに、他の変形例においては、例えばメニュー画面においてアイテムを選択する場合に第1の変形例を用いることも可能である。具体的には、ゲーム装置3は、候補文字群画像に代えて、アイテムの種類(例えば武器、防具等)を示す画像を複数表示する。そして、カーソルによって当該画像のうちの1つが選択された場合には、ゲーム装置3は、選択された画像により示される種類に属するアイテムを示す画像を候補文字画像に代えて表示する。例えば、「武器」を示す画像がカーソルによって選択された場合、「剣」を示す画像や「槍」を示す画像が表示される。プレイヤは、コントローラ7を回転させることによって「剣」や「槍」を示す画像を入れ替えることができ、所望のアイテムを選択することができる。
【0159】
(第2の変形例)
以下、第2の変形例として、各キャラクタの隊列の順番を示すためのメニュー画面を表示する際に本発明を適用する場合の例を説明する。図26は、第2の変形例におけるゲーム画像の一例を示す図である。このゲーム画像は、キャラクタA〜キャラクタDという4つのキャラクタが登場するゲームにおいて、各キャラクタの隊列の順番、および、各キャラクタが装備しているアイテムを示す画像である。すなわち、
図26に示すゲームでは4つのキャラクタが一列になって隊列を組むものとし、画面には、各キャラクタとそのキャラクタの隊列における順番とを対応付けた表76が表示される。なお、この表76においては、キャラクタが装備しているアイテム(武器および防具)がキャラクタ毎に対応付けられている。また、画面には、コントローラ7の指示位置に応じて移動するカーソル77が表示される。
【0160】
第2の変形例において入替の対象となるオブジェクトは、表76のうちの、隊列の順番を示す数字が記載された各欄(セル)である。プレイヤは、これらの欄のうちで入替を行う欄を複数選択する。このゲーム例においては、入替の対象となる欄はプレイヤによって1つずつ選択される。具体的には、プレイヤは、入替の対象とする欄の位置にカーソル77を移動させ、当該欄がカーソル77によって指し示されている状態で所定の選択ボタン(例えば、Aボタン32i)を押下する。ゲーム装置3は、選択ボタンが押下されたことに応じて、押下された時点でカーソル77によって指し示されている欄を入替の対象として選択する。第2の変形例においては、入替の対象として選択された欄は太線で囲まれる。プレイヤは、カーソル77を移動させるとともに入替の対象となる欄を選択する操作を複数回繰り返す。これによって、入替の対象となる欄が複数選択された状態となる。図26に示す状態では、キャラクタAの隊列の欄(“1”と記載された欄)と、キャラクタCの隊列の欄(“3”と記載された欄)とが選択されている。
【0161】
欄が複数選択された状態において、プレイヤは、コントローラ7の傾きを変化させることによって、選択されている欄の内容を入れ替えることができる。すなわち、ゲーム装置3は、コントローラ7の傾きに応じて、選択されている欄の内容を入れ替える。例えば、図26に示す状態において、コントローラ7の傾きが変化されると、ゲーム装置3は、キャラクタAの隊列の欄と、キャラクタCの隊列の欄とを入れ替える。その結果、入れ替え後の表76においては、図27に示すように、キャラクタAの隊列の欄に“3”と記載され、キャラクタCの隊列の欄に“1”と記載されることとなる。これによって、隊列の前から1番前に位置するキャラクタはキャラクタCとなり、隊列前から3番目に位置するキャラクタはキャラクタAとなるように隊列が入れ替えられる。
【0162】
図28は、第2の変形例において、ゲーム装置3のメインメモリ13に記憶される主なデータを示す図である。図28に示すように、メインメモリ13には、ゲームプログラム61、操作データ62、およびゲーム処理用データ63等が記憶される。なお、図28において、上記実施形態と同様のデータについては図12と同じ参照符号を付し、詳細な説明を省略する。以下、図12との相違点を中心に図28について説明する。
【0163】
第2の変形例において、ゲーム処理用データ63は、カーソルデータ633、傾きデータ636、基準傾きデータ637、対象欄データ642、対象内容データ643、および隊列データ644を含んでいる。カーソルデータ633、傾きデータ636および基準傾きデータ637は上記実施形態と同様のデータである。
【0164】
対象欄データ642は、上記表76の各欄のうちで、入替の対象となっている欄を示すデータである。対象欄データ642は、第1の変形例における候補文字群データ640と同様、配列の形式で記憶される。この配列には、入替の対象として最初に選択された欄を示すデータが先頭に格納され、以降、選択された順番に欄を示すデータが格納される。例えば、図26に示す状態において、「キャラクタAの隊列」の欄が選択された後「キャラクタCの隊列」の欄が選択された場合、対象欄データ642の内容は、[「キャラクタAの隊列」,「キャラクタCの隊列」]となる。
【0165】
対象内容データ643は、入替の対象となっている欄の内容(すなわち、欄に記載されている順番)を示すデータである。対象内容データ643は、対象欄データ642と同様、配列の形式で記憶される。この配列には、入替の対象として最初に選択された欄に記載されたアイテムを示すデータが先頭に格納され、以降、選択された順番にアイテムを示すデータが格納される。例えば、図26に示す状態において、「キャラクタAの隊列」の欄が選択された後「キャラクタCの隊列」の欄が選択された場合、対象内容データ643の内容は、[“1”,“3”]となる。
【0166】
隊列データ644は、4つのキャラクタの隊列の順番を示すデータである。つまり、隊列データ644は、図26に示す表76の左側2列の内容を示すデータである。換言すれば、ゲーム装置3は、隊列データ644の内容に従って表76を表示する。
【0167】
次に、第2の変形例においてゲーム装置3で行われる処理の詳細を、図29を用いて説明する。図29は、第2の変形例においてゲーム装置3で実行される処理の流れを示すメインフローチャートである。なお、図29に示すフローチャートは、ゲーム中において所定の条件が満たされた場合(例えば、キャラクタの隊列の順番を変更する指示がプレイヤによって行われた場合)等に開始される。なお、図29に示す処理が開始される際、メインメモリ13に記憶されている対象欄データ642および対象内容データ643の配列は空にされる。
【0168】
第2の変形例においては、まず、ステップS51において、コントローラ7から操作データが取得され、続くステップS52において、カーソル77の画面上の位置、すなわち、コントローラ7の指示位置が算出される。ステップS51の処理は上記ステップS3の処理と同じであり、ステップS52の処理は上記ステップS11の処理と同じである。
【0169】
続くステップS53において、CPU10は、表76の各欄のうちのいずれかが指定されたか否かを判定する。この判定は、当該各欄のいずれかがカーソル77によって指し示されている状態であり、かつ、所定の選択ボタン(例えば、Aボタン32i)が押下されたか否かによって判定される。各欄のいずれかがカーソル77によって指し示されている状態であるか否かは、ステップS52で算出したカーソル77の位置が表76の各欄のうちのいずれかと重なっているか否かにより行われる。また、所定の選択ボタンが押下されたか否かは、メインメモリ13に記憶されている操作キーデータ622を参照することによって、上記ステップS38と同様の方法で行うことができる。ステップS53の判定の結果、表76の各欄のうちのいずれかが指定された場合、ステップS54の処理が実行される。一方、表76の各欄のうちのいずれも指定されていない場合、ステップS54およびS55の処理がスキップされてステップS56の処理が実行される。
【0170】
ステップS54においては、ステップS53で指定されたと判定された欄が入替対象として決定される。すなわち、CPU10は、指定された欄を示すデータ(例えば「キャラクタAの隊列」を示すデータ)を、対象欄データ642により示される配列の最後に追加する。また、指定された欄に記載されている内容を示すデータを、対象内容データ643により示される配列の最後に追加する。このステップS54によって、入替の対象としてオブジェクト(欄)が新たに選出されたこととなる。
【0171】
ステップS55においては、基準傾きデータが算出されてメインメモリ13に記憶に記憶される。ステップS55の処理は、上記ステップS15の処理と同じである。
【0172】
ステップS56においては、入替対象が複数決定されているか否かが判定される。この判定は、メインメモリ13に記憶されている対象欄データ642または対象内容データ643により示される配列に格納されているデータの数を参照することによって行うことができる。すなわち、当該数が0または1の場合、ステップS55の判定結果は否定となり、当該数が2以上の場合、ステップS55の判定結果は肯定となる。ステップS56の判定結果が肯定の場合、ステップS57の処理が実行される。一方、ステップS56の判定結果が否定の場合、ステップS57およびS58の処理がスキップされてステップS59の処理が実行される。
【0173】
ステップS57においては、現在のコントローラの傾きを示す傾きベクトルV’のデータ(すなわち傾きデータ)が算出される。ステップS57の処理は上記ステップS22の処理と同じである。
【0174】
続くステップS58において、入替対象として選択されている欄の内容が入れ替えられる。すなわち、CPU10は、対象内容データ643により示される配列に格納されているデータの順番を入れ替える。ここで、第2の変形例においては、以下に示す入替処理を処理単位としてアイテムの入替が行われる。すなわち、1回の入替処理においては、入替前において配列のi(iは2以上の整数)番目に格納されていたデータが(i−1)番目に格納されるとともに、入替前において配列の先頭に格納されていたデータが配列の最後に格納される。ステップS58において、CPU10は、上記入替処理を、コントローラ7の傾きに応じた回数だけ実行する。例えば、CPU10は、上記ステップS22〜S25の処理によって算出される回転角度を用いて、回転角度が30°増加する毎に1回の入替処理を行う。さらに、他の変形例においては、上記入替処理と逆の入替を行う処理を回転角度が30°減少する毎に行うようにしてもよい。以上の入替処理が実行されることによって、対象内容データ643により示される配列に格納されるデータの順番が入れ替えられることとなる。
【0175】
さらに、ステップS58において、CPU10は、入替処理が実行された後の対象内容データ643および対象欄データ642を参照して、表76の内容を入れ替える。具体的には、対象欄データ642の配列の第j番目(jは1以上の整数)に格納されている欄のデータと、対象内容データ643の配列の第j番目に格納されているとを対応付け、この対応関係に従って隊列データ644の内容を更新する。例えば、対象欄データ642の配列の先頭に「キャラクタAの隊列」を示すデータが格納されており、対象内容データ643の配列の先頭に“3”を示すデータが格納されている場合、キャラクタAの順番が前から3番目となるように隊列データ644の内容を更新する。
【0176】
以上のステップS58の処理によれば、ゲーム装置3は、任意の複数のオブジェクト(欄)を入れ替えることが可能である。なお、入替対象となる欄の数は、2つ以上であればよく、3つ以上であっても入れ替えは可能である。
【0177】
ステップS59においては、各キャラクタが装備しているアイテムを示すためのメニュー画面がモニタ2に表示される。このとき、画面に表示される表76の内容は、メインメモリ13に記憶されている隊列データ644の内容に従って生成される。
【0178】
続くステップS60においては、メニュー画面の表示を終了するか否かが判定される。例えば、CPU10は、メニュー画面の表示を終了する旨の指示がプレイヤによって行われたことに応じて当該表示を終了する。ステップS60の判定結果が否定である場合、ステップS51の処理が再度実行され、以降、メニュー画面の表示を終了すると判定されるまでステップS51〜S60の処理ループが実行される。一方、ステップS60の判定結果が肯定である場合、CPU10は図29に示す処理を終了する。以上で、第2の変形例においてゲーム装置3において実行される処理の説明を終了する。
【0179】
なお、上記第2の変形例においては、武器の欄および防具の欄についても隊列の欄と同様に入れ替えが可能としてもよいし、入れ替えが不可能な欄としてもよい。
【0180】
以上の第2の変形例に示したように、本発明においては、入れ替えの対象となるオブジェクトを、プレイヤが1つずつ選択するようにしてもよい。これによって、より自由度の高い入れ替え操作が可能となる。さらに、コントローラ7の指示位置を変更する操作によって入れ替えの対象となるオブジェクトを選択するようにすれば、入れ替え操作の操作性をより向上することができる。
【0181】
(第3の変形例)
以下、第3の変形例として、キャラクタの状態を示すためのメニュー画面を表示する際に本発明を適用する場合の例を説明する。図30は、第3の変形例におけるゲーム画像の一例を示す図である。このゲーム画像は、キャラクタA〜キャラクタDという4つのキャラクタが登場するゲームにおいてキャラクタの状態を示す画像である。すなわち、画面には、4つのウィンドウ81a〜81dが表示されている。1つのウィンドウには、そのウィンドウに対応するキャラクタについての状態として、レベル、体力値(HP)、魔法力値(MP)、および持っているアイテムの情報が記述されている。なお、4つのウィンドウ81a〜81dは重なって表示されているので、最前面に位置するウィンドウ(図30においてはウィンドウ81a)についてのみ内容が表示され、他のウィンドウについては内容が表示されない。他のウィンドウ81b〜81dについては、ウィンドウ上部のタブ部分のみが表示される。このタブ部分には、キャラクタの名称等が記載されている。
【0182】
図30のメニュー画面が表示されている状態において、プレイヤは、コントローラ7の傾きを変化させることによって、最前面に表示されるウィンドウを入れ替えることができる。すなわち、ゲーム装置3は、コントローラ7の傾きに応じて、最前面に表示するウィンドウを入れ替える。図31は、図30に示す状態からコントローラ7の傾きを変化させる操作を行ったことによって、キャラクタBのウィンドウが最前面に表示された様子を示す図である。図31においては、最前面に位置するウィンドウが、ウィンドウ81aからウィンドウ81bに入れ替えられている。このように、第3の変形例では、コントローラ7の傾きに応じて、表示されるウィンドウを入れ替えることができる。第3の変形例のように、本発明における入替は、画面の奥行き方向に関する位置を入れ替えるものであってもよい。
【0183】
なお、最前面に表示するウィンドウを決定する方法は、コントローラ7の傾きに基づいて決定する方法であればどのような方法でもよい。例えば、上記実施形態のように、基準傾きベクトルと傾きベクトルとの角度差に基づいて決定する方法でもよいし、上記第1の変形例のように、(基準傾きベクトルを用いずに)傾きベクトルのみに基づいて決定する方法であってもよい。
【0184】
また、第3の変形例において、最前面に位置するウィンドウを管理する方法としては、例えば、深さ方向(画面の奥行き方向)に関するウィンドウの位置を示す深さデータをウィンドウに対応付けておき、このデータに基づいてウィンドウを表示する方法が考えられる。この方法においてウィンドウの入替を行う場合、各ウィンドウに対応付けられる深さデータの内容を変更すればよい。
【0185】
上記実施形態および第1〜第3の変形例において示したように、本発明は、コントローラ7の傾きを変化させる操作によって、画面に表示されるオブジェクトに対して種々の入替操作を行うことができる。
【0186】
なお、上記実施形態では、コントローラ7の傾きを示すデータ(傾きデータ)として、仮想のX’Y’Z’座標系におけるベクトルのデータを用いたが、傾きデータは、コントローラ7の傾きに対応して変化するデータであればどのようなものであってもよい。例えば、上記マーカ座標を結ぶベクトル(図15に示すベクトルv)を傾きデータとして用い、傾きデータに基づいてオブジェクトの入替を行うようにしてもよい。
【0187】
また、上記実施形態では、ゲーム装置3は、コントローラ7から操作データとしてマーカ座標データを取得することとしたが、ゲーム装置3がコントローラ7から取得する操作データはこれに限らない。例えば、操作データは、(a)撮像画像のデータ、(b)2つのマーカ座標の位置を結ぶ方向を示すデータ、または(c)上記傾きデータであってもよい。なお、(a)撮像画像のデータをコントローラ7から取得する場合、ゲーム装置3は、撮像画像からマーカ座標を算出する処理を実行する必要がある。また、(b)2つのマーカ座標の位置を結ぶ方向を示すデータがゲーム装置3によって取得される場合、コントローラ7は、当該ベクトルを算出する処理を実行する必要がある。この場合、ゲーム装置3側においては、当該処理を実行する必要はない。なお、「方向を示すデータ」は、図15に示したベクトルvのように、ベクトルとして表現されてもよいし、角度値(°)として表現されてもよい。また、(c)傾きデータがゲーム装置3によって取得される場合、コントローラ7は、撮像画像から傾きデータを算出する処理(上記ステップS22)を実行する必要がある。このとき、ゲーム装置3側においては、当該処理を実行する必要はない。
【0188】
また、上記実施形態では、ゲーム装置3は、コントローラ7から操作データとして取得されるマーカ座標データに基づいてコントローラ7の指示位置を算出することとしたが、コントローラ7の指示位置を算出する方法はこれに限らない。例えば、上記実施形態のようにゲーム装置3がコントローラ7の指示位置を算出する場合には、操作データは、(a)撮像画像のデータ、または、(d)撮像画像における撮像対象の位置を示すデータであってもよい。なお、(b)撮像画像における撮像対象の位置を示すデータは、例えば、上記実施形態において述べた、2つのマーカ座標の中点を示すデータであってもよい。2つのマーカ8aおよび8bを1つの撮像対象として見れば、当該中点の位置が撮像対象の位置とすることができるからである。また、(a)撮像画像のデータをコントローラ7から取得する場合、ゲーム装置3は、撮像画像から撮像対象の位置(例えば、上記中点の位置)を算出する処理を実行する必要がある。
【産業上の利用可能性】
【0189】
以上のように、本発明は、ユーザが手に持って使用する入力装置を用いて従来にはない新たな操作を行うこと等を目的として、例えばゲーム装置およびゲームプログラムに利用することが可能である。
【図面の簡単な説明】
【0190】
【図1】本発明の一実施形態に係る座標算出装置一例であるゲーム装置を含むゲームシステムの外観図
【図2】ゲーム装置3の機能ブロック図
【図3A】コントローラ7の斜視図
【図3B】コントローラ7の斜視図
【図4】コントローラ7を前方から見た図
【図5A】コントローラ7の内部構造を示す図
【図5B】コントローラ7の内部構造を示す図
【図6】コントローラ7の構成を示すブロック図
【図7】撮像画像の一例を示す図
【図8】コントローラ7を用いてゲーム操作するときの状態を概説する図解図
【図9】移動状態におけるゲーム画像を示す図
【図10】入替状態におけるゲーム画像を示す図
【図11】入替状態から移動状態へ移行した直後におけるゲーム画像を示す図
【図12】ゲーム装置3のメインメモリ13に記憶される主なデータを示す図
【図13】ゲーム装置3において実行される処理の流れを示すメインフローチャート
【図14】図13に示す移動処理(ステップS5)の詳細を示すフローチャート
【図15】ある状態において得られた撮像画像におけるマーカ座標の位置を示す図
【図16】図15に示すベクトルvを変換した場合のベクトルV’を示す図
【図17】図13に示す入替処理(ステップS6)の詳細を示すフローチャート
【図18】ステップS24の処理を説明するための図
【図19】第1の変形例におけるゲーム画像の一例を示す図
【図20】図19に示す状態から、候補文字画像73a〜73eの位置が入れ替えられた後のゲーム画像を示す図
【図21】第1の変形例において、ゲーム装置3のメインメモリ13に記憶される主なデータを示す図
【図22】第1の変形例においてゲーム装置3で実行される処理の流れを示すメインフローチャート
【図23】第1の変形例においてゲーム装置3で実行される処理の流れを示すメインフローチャート
【図24】第1の変形例の他の例におけるゲーム画像を示す図
【図25】第1の変形例の他の例におけるゲーム画像を示す図
【図26】第2の変形例におけるゲーム画像の一例を示す図
【図27】第2の変形例におけるゲーム画像の一例を示す図
【図28】第2の変形例において、ゲーム装置3のメインメモリ13に記憶される主なデータを示す図
【図29】第2の変形例においてゲーム装置3で実行される処理の流れを示すメインフローチャート
【図30】第3の変形例におけるゲーム画像の一例を示す図
【図31】図30に示す状態からコントローラ7の傾きを変化させる操作が行われた後の様子を示す図
【符号の説明】
【0191】
1 ゲームシステム
2 モニタ
3 ゲーム装置
4 光ディスク
5 外部メモリカード
7 コントローラ
8a,8b マーカ
10 CPU
13 メインメモリ
32 操作部
35 撮像情報演算部
36 通信部
37 加速度センサ
40 撮像素子
51 パネル
52,72,77 カーソル
53,74 枠
71a〜71j 候補文字群画像
73a〜73e 候補文字画像
81a〜81d ウィンドウ
【特許請求の範囲】
【請求項1】
撮像対象を撮像するための撮像手段を備えた入力装置から操作データを取得し、当該操作データに応じてゲーム処理を行った結果を表示装置の画面に表示させる情報処理装置であって、
前記操作データには、前記撮像手段によって撮像される撮像画像のデータ、当該撮像画像における前記撮像対象の所定の2箇所の位置を示すデータ、当該2箇所の位置を結ぶ方向を示すデータ、および当該方向から算出される前記入力装置の傾きを示すデータ、の少なくともいずれかが含まれ、
前記入力装置から取得された操作データから、前記入力装置の傾きを表す傾きデータを算出または取得する傾きデータ算出手段と、
前記傾きデータに基づいて、前記画面に表示されているオブジェクトを他のオブジェクトに入れ替えて表示させる入替手段とを備える、情報処理装置。
【請求項2】
前記入替手段は、前記画面に表示されている複数のオブジェクトの位置を入れ替える、請求項1に記載の情報処理装置。
【請求項3】
前記操作データには、前記撮像手段によって撮像される撮像画像のデータ、当該撮像画像における前記撮像対象の所定の2箇所の位置を示すデータ、および、当該撮像画像における前記撮像対象の位置を示すデータ、の少なくともいずれかが含まれており、
前記情報処理装置は、
前記入力装置によって指し示される前記画面上の指示位置を前記操作データから算出する指示位置算出手段と、
前記画面に表示され得る複数のオブジェクトのうちから、入替の対象となる対象オブジェクトを前記指示位置を用いて複数選出する選出手段とをさらに備え、
前記入替手段は、複数の前記対象オブジェクトの位置を入れ替える、請求項2に記載の情報処理装置。
【請求項4】
前記選出手段は、前記指示位置を含む所定の領域内に含まれる複数のオブジェクトを前記対象オブジェクトとして選出する、請求項3に記載の情報処理装置。
【請求項5】
前記画面には、複数のオブジェクトからなるオブジェクト群を表すオブジェクト群画像が複数表示されており、
前記選出手段は、所定のタイミングにおいて前記複数のオブジェクト群画像のいずれかと前記指示位置とが重なったか否かを判定し、前記指示位置と重なったオブジェクト群画像に対応する複数のオブジェクトを前記対象オブジェクトとして選出する、請求項3に記載の情報処理装置。
【請求項6】
前記選出手段は、所定のタイミングにおいて、前記画面に表示されている複数のオブジェクトのいずれかと前記指示位置とが重なったか否かを判定し、当該指示位置と重なったオブジェクトを対象オブジェクトとして選出し、
前記入替手段は、複数のオブジェクトが前記対象オブジェクトとして選出されている場合、当該複数の対象オブジェクトの位置を入れ替える、請求項3に記載の情報処理装置。
【請求項7】
前記入替手段は、複数のオブジェクトの表示位置の中心を軸に回転移動させることによって当該複数のオブジェクトを入れ替える、請求項2に記載の情報処理装置。
【請求項8】
前記入替手段は、所定期間における、前記傾きデータにより示される傾きの変化に基づいてオブジェクトの入替を行う、請求項1から請求項3のいずれかに記載の情報処理装置。
【請求項9】
前記入力装置は少なくとも1つの押圧可能な操作キーを有し、
前記操作データは、前記操作キーが押されているか否かを示すキーデータをさらに含み、
前記入替手段は、前記キーデータに基づいて前記所定期間を決定する、請求項8に記載の情報処理装置。
【請求項10】
前記入替手段は、複数のオブジェクトの位置を循環的に入れ替え、
前記入替手段による入替は、前記所定期間における前記傾きの変化量に応じた回数だけ行われる、請求項8に記載の情報処理装置。
【請求項11】
前記入替手段は、予め定められた基準方向に対する前記傾きデータにより示される傾きの変化に基づいてオブジェクトの入替を行う、請求項1から請求項3のいずれかに記載の情報処理装置。
【請求項12】
撮像対象を撮像するための撮像手段と、少なくとも1つの押圧可能な操作キーとを備えた入力装置から操作データを取得し、当該操作データに応じてゲーム処理を行うゲーム装置であって、
前記操作データには、前記撮像手段によって撮像される撮像画像のデータ、当該撮像画像における前記撮像対象の所定の2箇所の位置を示すデータ、当該2箇所の位置を結ぶベクトルを示すデータ、および当該ベクトルから算出される前記入力装置の傾きを示すデータ、の少なくともいずれかである第1データと、前記操作キーが押されているか否かを示す第2データとが含まれ、
前記操作データを逐次取得する操作データ取得手段と、
前記操作データに含まれる第1データから、前記入力装置の傾きを逐次算出または取得する傾き算出手段と、
前記入力装置によって指し示される前記画面上の指示位置を、前記操作データに含まれる第1データから逐次算出する指示位置算出手段と、
前記操作データに含まれる第2データに基づき、前記操作キーが押されているか否かを判定するキー入力判定手段と、
ゲーム空間内に配置された、複数種類のグループに分類された複数のパズル要素のうち、前記キーが押されたタイミングにおける指示位置に対応するゲーム空間内の位置を含む所定領域内に配置されるパズル要素を操作対象として設定する操作対象設定手段と、
前記キーが押されたタイミングにおける入力装置の傾きを記憶する記憶手段と、
前記キーが押されている期間、前記記憶手段に記憶された傾きに対する前記傾き算出手段によって算出された傾きの変化量を逐次算出する変化量算出手段と、
前記変化量に基づいた回転量で、前記操作対象のパズル要素を回転させる回転手段と、
前記キーが離されたタイミングにおける変化量を、前記操作対象のパズル要素の位置を循環的に入れ替えたときの回転量に近似する近似手段と、
前記近似された回転量だけ前記操作対象のパズル要素を回転させることにより、当該パズル要素の位置を循環的に入れ替える入替手段と、
前記入替手段によって前記パズル要素の位置を入れ替えた結果、同一グループに分類されるパズル要素が前記ゲーム空間において所定個数以上並んだ場合に、当該並んだパズル要素を消去する消去手段と、
前記パズル要素を含む前記ゲーム空間の画像を表示装置に逐次表示させる表示制御手段とを備える、ゲーム装置。
【請求項13】
撮像対象を撮像するための撮像手段と、第1の操作キーおよび第2の操作キーとを備えた入力装置から操作データを取得し、当該操作データに応じて文字入力を受け付ける文字入力受付装置であって、
前記操作データには、前記撮像手段によって撮像される撮像画像のデータ、当該撮像画像における前記撮像対象の所定の2箇所の位置を示すデータ、当該2箇所の位置を結ぶベクトルを示すデータ、および当該ベクトルから算出される前記入力装置の傾きを示すデータ、の少なくともいずれかである第1データと、前記操作キーが押されているか否かを示す第2データとが含まれ、
前記操作データを逐次取得する操作データ取得手段と、
前記操作データに含まれる第1データから、前記入力装置の傾きを逐次算出または取得する傾き算出手段と、
前記入力装置によって指し示される前記画面上の指示位置を、前記操作データに含まれる第1データから逐次算出する指示位置算出手段と、
前記操作データに含まれる第2データに基づき、前記操作キーが押されているか否かを判定するキー入力判定手段と、
複数の文字からなる文字群を表す文字群画像を表示装置に複数表示させる第1表示制御手段と、
前記第1の操作キーが押されたタイミングにおいて前記指示位置と重なっている文字群画像により表される文字群に含まれる各文字を文字毎に表す複数の文字画像を、それぞれ所定の位置関係となるように前記表示装置に表示させる第2表示制御手段と、
前記傾き算出手段によって算出される傾きに基づいて前記複数の文字画像の位置関係を入れ替える入替手段と、
前記第2の操作キーが押下された場合、複数の文字画像のうち、所定の位置に表示されている文字画像により表される文字の入力を受け付ける入力受付手段と、
前記入力受付手段によって入力が受け付けられた文字を前記表示装置に表示させる第3表示制御手段とを備える、文字入力受付装置。
【請求項14】
撮像対象を撮像するための撮像手段を備えた入力装置から操作データを取得し、当該操作データに応じてゲーム処理を行った結果を表示装置の画面に表示させる情報処理装置のコンピュータに実行させるプログラムであって、
前記操作データには、前記撮像手段によって撮像される撮像画像のデータ、当該撮像画像における前記撮像対象の所定の2箇所の位置を示すデータ、当該2箇所の位置を結ぶ方向を示すデータ、および当該方向から算出される前記入力装置の傾きを示すデータ、の少なくともいずれかが含まれ、
前記入力装置から取得された操作データから、前記入力装置の傾きを表す傾きデータを算出または取得する傾きデータ算出ステップと、
前記傾きデータに基づいて、前記画面に表示されているオブジェクトを他のオブジェクトに入れ替えて表示させる入替ステップとを前記コンピュータに実行させる、情報処理プログラム。
【請求項15】
前記入替ステップにおいて、前記コンピュータは、前記画面に表示されている複数のオブジェクトの位置を入れ替える、請求項14に記載の情報処理プログラム。
【請求項16】
前記操作データには、前記撮像手段によって撮像される撮像画像のデータ、当該撮像画像における前記撮像対象の所定の2箇所の位置を示すデータ、および、当該撮像画像における前記撮像対象の位置を示すデータ、の少なくともいずれかが含まれており、
前記情報処理プログラムは、
前記入力装置によって指し示される前記画面上の指示位置を前記操作データから算出する指示位置算出ステップと、
前記画面に表示され得る複数のオブジェクトのうちから、入替の対象となる対象オブジェクトを前記指示位置を用いて複数選出する選出ステップとをさらに前記コンピュータに実行させ、
前記入替ステップにおいて、前記コンピュータは、複数の前記対象オブジェクトの位置を入れ替える、請求項15に記載の情報処理プログラム。
【請求項17】
前記選出ステップにおいて、前記コンピュータは、前記指示位置を含む所定の領域内に含まれる複数のオブジェクトを前記対象オブジェクトとして選出する、請求項16に記載の情報処理プログラム。
【請求項18】
前記画面には、複数のオブジェクトからなるオブジェクト群を表すオブジェクト群画像が複数表示されており、
前記選出ステップにおいて、前記コンピュータは、所定のタイミングにおいて前記複数のオブジェクト群画像のいずれかと前記指示位置とが重なったか否かを判定し、前記指示位置と重なったオブジェクト群画像に対応する複数のオブジェクトを前記対象オブジェクトとして選出する、請求項16に記載の情報処理プログラム。
【請求項19】
前記選出ステップにおいて、前記コンピュータは、所定のタイミングにおいて、前記画面に表示されている複数のオブジェクトのいずれかと前記指示位置とが重なったか否かを判定し、当該指示位置と重なったオブジェクトを対象オブジェクトとして選出し、
前記入替ステップにおいて、前記コンピュータは、複数のオブジェクトが前記対象オブジェクトとして選出されている場合、当該複数の対象オブジェクトの位置を入れ替える、請求項16に記載の情報処理プログラム。
【請求項20】
前記入替ステップにおいて、前記コンピュータは、複数のオブジェクトの表示位置の中心を軸に回転移動させることによって当該複数のオブジェクトを入れ替える、請求項15に記載の情報処理プログラム。
【請求項21】
前記入替ステップにおいて、前記コンピュータは、所定期間における、前記傾きデータにより示される傾きの変化に基づいてオブジェクトの入替を行う、請求項14から請求項16のいずれかに記載の情報処理プログラム。
【請求項22】
前記入力装置は少なくとも1つの押圧可能な操作キーを有し、
前記操作データは、前記操作キーが押されているか否かを示すキーデータをさらに含み、
前記入替ステップにおいて、前記コンピュータは、前記キーデータに基づいて前記所定期間を決定する、請求項21に記載の情報処理プログラム。
【請求項23】
前記入替ステップにおいて、前記コンピュータは、複数のオブジェクトの位置を循環的に入れ替え、
前記入替ステップにおける入替は、前記所定期間における前記傾きの変化量に応じた回数だけ行われる、請求項21に記載の情報処理プログラム。
【請求項24】
前記入替ステップにおいて、前記コンピュータは、予め定められた基準方向に対する前記傾きデータにより示される傾きの変化に基づいてオブジェクトの入替を行う、請求項14から請求項16のいずれかに記載の情報処理プログラム。
【請求項25】
撮像対象を撮像するための撮像手段と、少なくとも1つの押圧可能な操作キーとを備えた入力装置から操作データを取得し、当該操作データに応じてゲーム処理を行うゲーム装置のコンピュータに実行させるゲームプログラムであって、
前記操作データには、前記撮像手段によって撮像される撮像画像のデータ、当該撮像画像における前記撮像対象の所定の2箇所の位置を示すデータ、当該2箇所の位置を結ぶベクトルを示すデータ、および当該ベクトルから算出される前記入力装置の傾きを示すデータ、の少なくともいずれかである第1データと、前記操作キーが押されているか否かを示す第2データとが含まれ、
前記操作データを逐次取得する操作データ取得ステップと、
前記操作データに含まれる第1データから、前記入力装置の傾きを逐次算出または取得する傾き算出ステップと、
前記入力装置によって指し示される前記画面上の指示位置を、前記操作データに含まれる第1データから逐次算出する指示位置算出ステップと、
前記操作データに含まれる第2データに基づき、前記操作キーが押されているか否かを判定するキー入力判定ステップと、
ゲーム空間内に配置された、複数種類のグループに分類された複数のパズル要素のうち、前記キーが押されたタイミングにおける指示位置に対応するゲーム空間内の位置を含む所定領域内に配置されるパズル要素を操作対象として設定する操作対象設定ステップと、
前記キーが押されたタイミングにおける入力装置の傾きを前記ゲーム装置の記憶手段に記憶する記憶ステップと、
前記キーが押されている期間、前記記憶手段に記憶された傾きに対する前記傾き算出ステップにおいて算出された傾きの変化量を逐次算出する変化量算出ステップと、
前記変化量に基づいた回転量で、前記操作対象のパズル要素を回転させる回転ステップと、
前記キーが離されたタイミングにおける変化量を、前記操作対象のパズル要素の位置を循環的に入れ替えたときの回転量に近似する近似ステップと、
前記近似された回転量だけ前記操作対象のパズル要素を回転させることにより、当該パズル要素の位置を循環的に入れ替える入替ステップと、
前記入替ステップにおいて前記パズル要素の位置を入れ替えた結果、同一グループに分類されるパズル要素が前記ゲーム空間において所定個数以上並んだ場合に、当該並んだパズル要素を消去する消去ステップと、
前記パズル要素を含む前記ゲーム空間の画像を表示装置に逐次表示させる表示制御ステップとを前記コンピュータに実行させる、ゲームプログラム。
【請求項26】
撮像対象を撮像するための撮像手段と、第1の操作キーおよび第2の操作キーとを備えた入力装置から操作データを取得し、当該操作データに応じて文字入力を受け付ける文字入力受付装置のコンピュータに実行させるプログラムであって、
前記操作データには、前記撮像手段によって撮像される撮像画像のデータ、当該撮像画像における前記撮像対象の所定の2箇所の位置を示すデータ、当該2箇所の位置を結ぶベクトルを示すデータ、および当該ベクトルから算出される前記入力装置の傾きを示すデータ、の少なくともいずれかである第1データと、前記操作キーが押されているか否かを示す第2データとが含まれ、
前記操作データを逐次取得する操作データ取得ステップと、
前記操作データに含まれる第1データから、前記入力装置の傾きを逐次算出または取得する傾き算出ステップと、
前記入力装置によって指し示される前記画面上の指示位置を、前記操作データに含まれる第1データから逐次算出する指示位置算出ステップと、
前記操作データに含まれる第2データに基づき、前記操作キーが押されているか否かを判定するキー入力判定ステップと、
複数の文字からなる文字群を表す文字群画像を表示装置に複数表示させる第1表示制御ステップと、
前記第1の操作キーが押されたタイミングにおいて前記指示位置と重なっている文字群画像により表される文字群に含まれる各文字を文字毎に表す複数の文字画像を、それぞれ所定の位置関係となるように前記表示装置に表示させる第2表示制御ステップと、
前記傾き算出ステップにおいて算出される傾きに基づいて前記複数の文字画像の位置関係を入れ替える入替ステップと、
前記第2の操作キーが押下された場合、複数の文字画像のうち、所定の位置に表示されている文字画像により表される文字の入力を受け付ける入力受付ステップと、
前記入力受付ステップにおいて入力が受け付けられた文字を前記表示装置に表示させる第3表示制御ステップとを備える、文字入力受付プログラム。
【請求項1】
撮像対象を撮像するための撮像手段を備えた入力装置から操作データを取得し、当該操作データに応じてゲーム処理を行った結果を表示装置の画面に表示させる情報処理装置であって、
前記操作データには、前記撮像手段によって撮像される撮像画像のデータ、当該撮像画像における前記撮像対象の所定の2箇所の位置を示すデータ、当該2箇所の位置を結ぶ方向を示すデータ、および当該方向から算出される前記入力装置の傾きを示すデータ、の少なくともいずれかが含まれ、
前記入力装置から取得された操作データから、前記入力装置の傾きを表す傾きデータを算出または取得する傾きデータ算出手段と、
前記傾きデータに基づいて、前記画面に表示されているオブジェクトを他のオブジェクトに入れ替えて表示させる入替手段とを備える、情報処理装置。
【請求項2】
前記入替手段は、前記画面に表示されている複数のオブジェクトの位置を入れ替える、請求項1に記載の情報処理装置。
【請求項3】
前記操作データには、前記撮像手段によって撮像される撮像画像のデータ、当該撮像画像における前記撮像対象の所定の2箇所の位置を示すデータ、および、当該撮像画像における前記撮像対象の位置を示すデータ、の少なくともいずれかが含まれており、
前記情報処理装置は、
前記入力装置によって指し示される前記画面上の指示位置を前記操作データから算出する指示位置算出手段と、
前記画面に表示され得る複数のオブジェクトのうちから、入替の対象となる対象オブジェクトを前記指示位置を用いて複数選出する選出手段とをさらに備え、
前記入替手段は、複数の前記対象オブジェクトの位置を入れ替える、請求項2に記載の情報処理装置。
【請求項4】
前記選出手段は、前記指示位置を含む所定の領域内に含まれる複数のオブジェクトを前記対象オブジェクトとして選出する、請求項3に記載の情報処理装置。
【請求項5】
前記画面には、複数のオブジェクトからなるオブジェクト群を表すオブジェクト群画像が複数表示されており、
前記選出手段は、所定のタイミングにおいて前記複数のオブジェクト群画像のいずれかと前記指示位置とが重なったか否かを判定し、前記指示位置と重なったオブジェクト群画像に対応する複数のオブジェクトを前記対象オブジェクトとして選出する、請求項3に記載の情報処理装置。
【請求項6】
前記選出手段は、所定のタイミングにおいて、前記画面に表示されている複数のオブジェクトのいずれかと前記指示位置とが重なったか否かを判定し、当該指示位置と重なったオブジェクトを対象オブジェクトとして選出し、
前記入替手段は、複数のオブジェクトが前記対象オブジェクトとして選出されている場合、当該複数の対象オブジェクトの位置を入れ替える、請求項3に記載の情報処理装置。
【請求項7】
前記入替手段は、複数のオブジェクトの表示位置の中心を軸に回転移動させることによって当該複数のオブジェクトを入れ替える、請求項2に記載の情報処理装置。
【請求項8】
前記入替手段は、所定期間における、前記傾きデータにより示される傾きの変化に基づいてオブジェクトの入替を行う、請求項1から請求項3のいずれかに記載の情報処理装置。
【請求項9】
前記入力装置は少なくとも1つの押圧可能な操作キーを有し、
前記操作データは、前記操作キーが押されているか否かを示すキーデータをさらに含み、
前記入替手段は、前記キーデータに基づいて前記所定期間を決定する、請求項8に記載の情報処理装置。
【請求項10】
前記入替手段は、複数のオブジェクトの位置を循環的に入れ替え、
前記入替手段による入替は、前記所定期間における前記傾きの変化量に応じた回数だけ行われる、請求項8に記載の情報処理装置。
【請求項11】
前記入替手段は、予め定められた基準方向に対する前記傾きデータにより示される傾きの変化に基づいてオブジェクトの入替を行う、請求項1から請求項3のいずれかに記載の情報処理装置。
【請求項12】
撮像対象を撮像するための撮像手段と、少なくとも1つの押圧可能な操作キーとを備えた入力装置から操作データを取得し、当該操作データに応じてゲーム処理を行うゲーム装置であって、
前記操作データには、前記撮像手段によって撮像される撮像画像のデータ、当該撮像画像における前記撮像対象の所定の2箇所の位置を示すデータ、当該2箇所の位置を結ぶベクトルを示すデータ、および当該ベクトルから算出される前記入力装置の傾きを示すデータ、の少なくともいずれかである第1データと、前記操作キーが押されているか否かを示す第2データとが含まれ、
前記操作データを逐次取得する操作データ取得手段と、
前記操作データに含まれる第1データから、前記入力装置の傾きを逐次算出または取得する傾き算出手段と、
前記入力装置によって指し示される前記画面上の指示位置を、前記操作データに含まれる第1データから逐次算出する指示位置算出手段と、
前記操作データに含まれる第2データに基づき、前記操作キーが押されているか否かを判定するキー入力判定手段と、
ゲーム空間内に配置された、複数種類のグループに分類された複数のパズル要素のうち、前記キーが押されたタイミングにおける指示位置に対応するゲーム空間内の位置を含む所定領域内に配置されるパズル要素を操作対象として設定する操作対象設定手段と、
前記キーが押されたタイミングにおける入力装置の傾きを記憶する記憶手段と、
前記キーが押されている期間、前記記憶手段に記憶された傾きに対する前記傾き算出手段によって算出された傾きの変化量を逐次算出する変化量算出手段と、
前記変化量に基づいた回転量で、前記操作対象のパズル要素を回転させる回転手段と、
前記キーが離されたタイミングにおける変化量を、前記操作対象のパズル要素の位置を循環的に入れ替えたときの回転量に近似する近似手段と、
前記近似された回転量だけ前記操作対象のパズル要素を回転させることにより、当該パズル要素の位置を循環的に入れ替える入替手段と、
前記入替手段によって前記パズル要素の位置を入れ替えた結果、同一グループに分類されるパズル要素が前記ゲーム空間において所定個数以上並んだ場合に、当該並んだパズル要素を消去する消去手段と、
前記パズル要素を含む前記ゲーム空間の画像を表示装置に逐次表示させる表示制御手段とを備える、ゲーム装置。
【請求項13】
撮像対象を撮像するための撮像手段と、第1の操作キーおよび第2の操作キーとを備えた入力装置から操作データを取得し、当該操作データに応じて文字入力を受け付ける文字入力受付装置であって、
前記操作データには、前記撮像手段によって撮像される撮像画像のデータ、当該撮像画像における前記撮像対象の所定の2箇所の位置を示すデータ、当該2箇所の位置を結ぶベクトルを示すデータ、および当該ベクトルから算出される前記入力装置の傾きを示すデータ、の少なくともいずれかである第1データと、前記操作キーが押されているか否かを示す第2データとが含まれ、
前記操作データを逐次取得する操作データ取得手段と、
前記操作データに含まれる第1データから、前記入力装置の傾きを逐次算出または取得する傾き算出手段と、
前記入力装置によって指し示される前記画面上の指示位置を、前記操作データに含まれる第1データから逐次算出する指示位置算出手段と、
前記操作データに含まれる第2データに基づき、前記操作キーが押されているか否かを判定するキー入力判定手段と、
複数の文字からなる文字群を表す文字群画像を表示装置に複数表示させる第1表示制御手段と、
前記第1の操作キーが押されたタイミングにおいて前記指示位置と重なっている文字群画像により表される文字群に含まれる各文字を文字毎に表す複数の文字画像を、それぞれ所定の位置関係となるように前記表示装置に表示させる第2表示制御手段と、
前記傾き算出手段によって算出される傾きに基づいて前記複数の文字画像の位置関係を入れ替える入替手段と、
前記第2の操作キーが押下された場合、複数の文字画像のうち、所定の位置に表示されている文字画像により表される文字の入力を受け付ける入力受付手段と、
前記入力受付手段によって入力が受け付けられた文字を前記表示装置に表示させる第3表示制御手段とを備える、文字入力受付装置。
【請求項14】
撮像対象を撮像するための撮像手段を備えた入力装置から操作データを取得し、当該操作データに応じてゲーム処理を行った結果を表示装置の画面に表示させる情報処理装置のコンピュータに実行させるプログラムであって、
前記操作データには、前記撮像手段によって撮像される撮像画像のデータ、当該撮像画像における前記撮像対象の所定の2箇所の位置を示すデータ、当該2箇所の位置を結ぶ方向を示すデータ、および当該方向から算出される前記入力装置の傾きを示すデータ、の少なくともいずれかが含まれ、
前記入力装置から取得された操作データから、前記入力装置の傾きを表す傾きデータを算出または取得する傾きデータ算出ステップと、
前記傾きデータに基づいて、前記画面に表示されているオブジェクトを他のオブジェクトに入れ替えて表示させる入替ステップとを前記コンピュータに実行させる、情報処理プログラム。
【請求項15】
前記入替ステップにおいて、前記コンピュータは、前記画面に表示されている複数のオブジェクトの位置を入れ替える、請求項14に記載の情報処理プログラム。
【請求項16】
前記操作データには、前記撮像手段によって撮像される撮像画像のデータ、当該撮像画像における前記撮像対象の所定の2箇所の位置を示すデータ、および、当該撮像画像における前記撮像対象の位置を示すデータ、の少なくともいずれかが含まれており、
前記情報処理プログラムは、
前記入力装置によって指し示される前記画面上の指示位置を前記操作データから算出する指示位置算出ステップと、
前記画面に表示され得る複数のオブジェクトのうちから、入替の対象となる対象オブジェクトを前記指示位置を用いて複数選出する選出ステップとをさらに前記コンピュータに実行させ、
前記入替ステップにおいて、前記コンピュータは、複数の前記対象オブジェクトの位置を入れ替える、請求項15に記載の情報処理プログラム。
【請求項17】
前記選出ステップにおいて、前記コンピュータは、前記指示位置を含む所定の領域内に含まれる複数のオブジェクトを前記対象オブジェクトとして選出する、請求項16に記載の情報処理プログラム。
【請求項18】
前記画面には、複数のオブジェクトからなるオブジェクト群を表すオブジェクト群画像が複数表示されており、
前記選出ステップにおいて、前記コンピュータは、所定のタイミングにおいて前記複数のオブジェクト群画像のいずれかと前記指示位置とが重なったか否かを判定し、前記指示位置と重なったオブジェクト群画像に対応する複数のオブジェクトを前記対象オブジェクトとして選出する、請求項16に記載の情報処理プログラム。
【請求項19】
前記選出ステップにおいて、前記コンピュータは、所定のタイミングにおいて、前記画面に表示されている複数のオブジェクトのいずれかと前記指示位置とが重なったか否かを判定し、当該指示位置と重なったオブジェクトを対象オブジェクトとして選出し、
前記入替ステップにおいて、前記コンピュータは、複数のオブジェクトが前記対象オブジェクトとして選出されている場合、当該複数の対象オブジェクトの位置を入れ替える、請求項16に記載の情報処理プログラム。
【請求項20】
前記入替ステップにおいて、前記コンピュータは、複数のオブジェクトの表示位置の中心を軸に回転移動させることによって当該複数のオブジェクトを入れ替える、請求項15に記載の情報処理プログラム。
【請求項21】
前記入替ステップにおいて、前記コンピュータは、所定期間における、前記傾きデータにより示される傾きの変化に基づいてオブジェクトの入替を行う、請求項14から請求項16のいずれかに記載の情報処理プログラム。
【請求項22】
前記入力装置は少なくとも1つの押圧可能な操作キーを有し、
前記操作データは、前記操作キーが押されているか否かを示すキーデータをさらに含み、
前記入替ステップにおいて、前記コンピュータは、前記キーデータに基づいて前記所定期間を決定する、請求項21に記載の情報処理プログラム。
【請求項23】
前記入替ステップにおいて、前記コンピュータは、複数のオブジェクトの位置を循環的に入れ替え、
前記入替ステップにおける入替は、前記所定期間における前記傾きの変化量に応じた回数だけ行われる、請求項21に記載の情報処理プログラム。
【請求項24】
前記入替ステップにおいて、前記コンピュータは、予め定められた基準方向に対する前記傾きデータにより示される傾きの変化に基づいてオブジェクトの入替を行う、請求項14から請求項16のいずれかに記載の情報処理プログラム。
【請求項25】
撮像対象を撮像するための撮像手段と、少なくとも1つの押圧可能な操作キーとを備えた入力装置から操作データを取得し、当該操作データに応じてゲーム処理を行うゲーム装置のコンピュータに実行させるゲームプログラムであって、
前記操作データには、前記撮像手段によって撮像される撮像画像のデータ、当該撮像画像における前記撮像対象の所定の2箇所の位置を示すデータ、当該2箇所の位置を結ぶベクトルを示すデータ、および当該ベクトルから算出される前記入力装置の傾きを示すデータ、の少なくともいずれかである第1データと、前記操作キーが押されているか否かを示す第2データとが含まれ、
前記操作データを逐次取得する操作データ取得ステップと、
前記操作データに含まれる第1データから、前記入力装置の傾きを逐次算出または取得する傾き算出ステップと、
前記入力装置によって指し示される前記画面上の指示位置を、前記操作データに含まれる第1データから逐次算出する指示位置算出ステップと、
前記操作データに含まれる第2データに基づき、前記操作キーが押されているか否かを判定するキー入力判定ステップと、
ゲーム空間内に配置された、複数種類のグループに分類された複数のパズル要素のうち、前記キーが押されたタイミングにおける指示位置に対応するゲーム空間内の位置を含む所定領域内に配置されるパズル要素を操作対象として設定する操作対象設定ステップと、
前記キーが押されたタイミングにおける入力装置の傾きを前記ゲーム装置の記憶手段に記憶する記憶ステップと、
前記キーが押されている期間、前記記憶手段に記憶された傾きに対する前記傾き算出ステップにおいて算出された傾きの変化量を逐次算出する変化量算出ステップと、
前記変化量に基づいた回転量で、前記操作対象のパズル要素を回転させる回転ステップと、
前記キーが離されたタイミングにおける変化量を、前記操作対象のパズル要素の位置を循環的に入れ替えたときの回転量に近似する近似ステップと、
前記近似された回転量だけ前記操作対象のパズル要素を回転させることにより、当該パズル要素の位置を循環的に入れ替える入替ステップと、
前記入替ステップにおいて前記パズル要素の位置を入れ替えた結果、同一グループに分類されるパズル要素が前記ゲーム空間において所定個数以上並んだ場合に、当該並んだパズル要素を消去する消去ステップと、
前記パズル要素を含む前記ゲーム空間の画像を表示装置に逐次表示させる表示制御ステップとを前記コンピュータに実行させる、ゲームプログラム。
【請求項26】
撮像対象を撮像するための撮像手段と、第1の操作キーおよび第2の操作キーとを備えた入力装置から操作データを取得し、当該操作データに応じて文字入力を受け付ける文字入力受付装置のコンピュータに実行させるプログラムであって、
前記操作データには、前記撮像手段によって撮像される撮像画像のデータ、当該撮像画像における前記撮像対象の所定の2箇所の位置を示すデータ、当該2箇所の位置を結ぶベクトルを示すデータ、および当該ベクトルから算出される前記入力装置の傾きを示すデータ、の少なくともいずれかである第1データと、前記操作キーが押されているか否かを示す第2データとが含まれ、
前記操作データを逐次取得する操作データ取得ステップと、
前記操作データに含まれる第1データから、前記入力装置の傾きを逐次算出または取得する傾き算出ステップと、
前記入力装置によって指し示される前記画面上の指示位置を、前記操作データに含まれる第1データから逐次算出する指示位置算出ステップと、
前記操作データに含まれる第2データに基づき、前記操作キーが押されているか否かを判定するキー入力判定ステップと、
複数の文字からなる文字群を表す文字群画像を表示装置に複数表示させる第1表示制御ステップと、
前記第1の操作キーが押されたタイミングにおいて前記指示位置と重なっている文字群画像により表される文字群に含まれる各文字を文字毎に表す複数の文字画像を、それぞれ所定の位置関係となるように前記表示装置に表示させる第2表示制御ステップと、
前記傾き算出ステップにおいて算出される傾きに基づいて前記複数の文字画像の位置関係を入れ替える入替ステップと、
前記第2の操作キーが押下された場合、複数の文字画像のうち、所定の位置に表示されている文字画像により表される文字の入力を受け付ける入力受付ステップと、
前記入力受付ステップにおいて入力が受け付けられた文字を前記表示装置に表示させる第3表示制御ステップとを備える、文字入力受付プログラム。
【図1】
【図2】
【図3A】
【図3B】
【図4】
【図5A】
【図5B】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図2】
【図3A】
【図3B】
【図4】
【図5A】
【図5B】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【公開番号】特開2007−260116(P2007−260116A)
【公開日】平成19年10月11日(2007.10.11)
【国際特許分類】
【出願番号】特願2006−88741(P2006−88741)
【出願日】平成18年3月28日(2006.3.28)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
【公開日】平成19年10月11日(2007.10.11)
【国際特許分類】
【出願日】平成18年3月28日(2006.3.28)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
[ Back to top ]