説明

情報処理プログラムおよび情報処理装置

【構成】 ゲーム装置10はLCD12,14を含み、LCD12にはゲーム画面が表示され、LCD14上にはタッチパネル24が設けられる。予め設定された入力のタイミングと入力の種類とを教示するためのゲーム画面が表示されるとともに、入力のタイミングを教示するための音楽が出力される。プレイヤはゲーム画面を見たり、音楽を聴いたりして、タッチパネル24をタッチオンしたり、タッチオフしたり、弾き操作したり、擦り操作したりする。プレイヤの入力のタイミングおよび入力の種類と、予め設定された入力のタイミングおよび入力の種類とを比較し、比較結果に応じた演出がなされる。
【効果】 バリエーションの豊富な入力により、ゲームの面白さを増大させることができる。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は情報処理プログラムおよび情報処理装置に関し、特にたとえば、タッチパネルのようなポインティングデバイスを用いた、情報処理プログラムおよび情報理装置に関する。
【背景技術】
【0002】
背景技術の一例が特許文献1に開示されている。この特許文献1によれば、音楽演奏に合わせて、ゲーム画面にマーカ画像がその位置を可変的に表示されるとともに、当該マーカ画像のタッチタイミングを示すタイマサークル画像が表示される。プレイヤは、音楽演奏を聴き、また、タイマサークル画像を見て、タイミングを計り、タッチすべきマーカ画像をタッチする。タッチのタイミングとタッチの位置とに基づいてタッチの成功または失敗を評価し、タッチの評価が失敗である場合には、ゲーム画面をぶれさせる。
【特許文献1】特開2006−340744号公報[A63F 13/00, A63F 13/12]
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし、特許文献1に開示された技術では、タッチ(タッチオン)の評価を行うだけであり、ユーザに求める入力のパターンに限りがあり、タッチすべきマーカ画像を可変的にゲーム画面に表示したとしても、入力が単調になりがちであった。
【0004】
それゆえに、この発明の主たる目的は、新規な、情報処理プログラムおよび情報処理装置を提供することである。
【0005】
また、この発明の他の目的は、入力のバリエーションを増加させて操作性を向上できる、情報処理プログラムおよび情報処理装置を提供することである。
【課題を解決するための手段】
【0006】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【0007】
第1の発明は、ポインティングデバイスからの入力を受け取り可能な情報処理装置のコンピュータで実行される情報処理プログラムであって、コンピュータに、指示座標記憶ステップ、入力決定ステップ、入力比較ステップ、および処理実行ステップを実行させる。指示座標記憶ステップは、ポインティングデバイスによって指示された指示座標を記憶手段に記憶する。入力決定ステップは、指示座標記憶ステップによって記憶された指示座標に基づいて、入力のタイミングと当該入力の種類とを決定する。入力比較ステップは、予め定められた入力のタイミングおよび入力の種類と、入力決定ステップによって決定された入力のタイミングおよび入力の種類との比較を行う。そして、処理実行ステップは、入力比較ステップによって比較された結果に応じて、所定の処理を実行する。
【0008】
第1の発明では、情報処理プログラムは、ポインティングデバイス(24)からの入力を受けつけ可能な情報処理装置(10)のコンピュータ(34,44,46)で実行される。この情報処理プログラムは、コンピュータに、指示座標記憶ステップ(34,S121)、入力決定ステップ(34,S129,S131)、入力比較ステップ(34,S85,S87)、および処理実行ステップ(34,S89,S93,S95)を実行させる。指示座標記憶ステップは、ポインティングデバイスによって指示された指示座標を記憶手段(42,74)に記憶する。入力決定ステップは、指示座標記憶ステップによって記憶された指示座標に基づいて、入力のタイミングと当該入力の種類とを決定する。つまり、ユーザないしプレイヤの入力のタイミングが決定されるとともに、その入力の種類が判別される。入力比較ステップは、予め定められた入力のタイミングおよび入力の種類と、入力決定ステップによって決定された入力のタイミングおよび入力の種類との比較を行う。つまり、正しいタイミングで正しい入力がされたか否かを判断するのである。そして、処理実行ステップは、入力比較ステップによって比較された結果に応じて、所定の処理を実行する。たとえば、正しいタイミングで正しい入力があった場合には、入力が成功であることについての所定の処理が実行される。また、正しいタイミングではあるが、入力の種類が異なる場合、または、正しくないタイミングで入力された場合には、入力が失敗であることについての所定の処理が実行される。
【0009】
第1の発明によれば、入力のタイミングのみならず、指示座標に基づいて入力の種類を判断するので、バリエーションの豊富な入力を行うことができ、入力操作が単調になるのを防止することができる。
【0010】
第2の発明は第1の発明に従属し、ポインティングデバイスはタッチパネルである。
【0011】
第2の発明では、ポインティングデバイスとして、タッチパネルが用いられる。
【0012】
第2の発明によれば、タッチパネルを用いるので、ユーザないしプレイヤは、たとえば、タッチペン(スタイラスペン)や指などで、タッチオン,タッチオフ、スライド(ドラッグ)操作のような様々な種類の操作を簡単に行うことができる。
【0013】
第3の発明は第2の発明に従属し、入力の種類とは、タッチパネルがタッチされているか否かの状態の遷移が生じた際の状況により判別されたものを少なくとも含む。
【0014】
第3の発明では、入力の種類は、タッチパネルがタッチされているか否かの状態の遷移が生じた際の状況により、すなわちタッチオンからタッチオフに変化した際の状況やタッチオフからタッチオンに変化した際の状況により、判別されたものを少なくとも含む。
【0015】
第3の発明では、タッチの状態が遷移したときに、その状況に応じて入力の種類を判別するので、様々な種類の入力を判別することができる。つまり、バリエーション豊富な入力が可能である。
【0016】
第4の発明は、第3の発明に従属し、入力決定ステップによって決定された入力のタイミングとは、タッチパネルがタッチされているか否かの状態の遷移が生じたタイミングを少なくとも含む。
【0017】
第4の発明では、入力決定ステップによって決定された入力のタイミングとは、タッチパネルがタッチされているか否かの状態の遷移が生じたタイミング、すなわちタッチオンからタッチオフに遷移したタイミングやタッチオフからタッチオンに遷移したタイミングを少なくとも含む。
【0018】
第4の発明によれば、タッチされているか否かの状態の遷移が生じたタイミングを入力のタイミングとして決定するので、入力のタイミングの検出が簡単である。
【0019】
第5の発明は第2または第3の発明を含み、タッチパネルをタッチしていない状態からタッチしている状態へと遷移したことを判定するタッチオン判定ステップ、およびタッチパネルをタッチしている状態からタッチしていない状態へと遷移したことを判定するタッチオフ判定ステップをコンピュータにさらに実行させ、入力決定ステップは、タッチオン判定ステップで遷移したと判定された場合に入力の種類を第1の種類に決定し、タッチオフ判定ステップで遷移したと判定された場合に入力の種類を第2の種類に決定する。
【0020】
第5の発明では、タッチオン判定ステップ(34,S127,S141)は、タッチパネルをタッチしていない状態(タッチオフの状態)からタッチしている状態(タッチオンの状態)へと遷移したことを判定する。タッチオフ判定ステップ(34,S127,S171)は、タッチパネルをタッチしている状態(タッチオンの状態)からタッチしていない状態(タッチオフの状態)へと遷移したことを判定する。入力決定ステップは、タッチオン判定ステップで遷移したと判定された場合に(S127で“YES”かつS141で“NO”)、入力の種類を第1の種類に決定する。また、入力決定ステップは、タッチオフ判定ステップで遷移したと判定された場合に(S127で“NO”かつS171で“YES”)、入力の種類を第2の種類に決定する。
【0021】
第5の発明では、タッチオンの状態とタッチオフの状態との遷移に応じて入力の種類を決定するので、入力のバリエーションを簡単に決定(判別)することができる。
【0022】
第6の発明は、第5の発明に従属し、入力決定ステップによって決定された入力のタイミングは、入力の種類が第1の種類である場合には、タッチオン判定ステップで遷移したと判定されたタイミングであり、入力の種類が第2の種類である場合には、タッチオフ判定ステップで遷移したと判定されたタイミングである。
【0023】
第6の発明では、入力のタイミングは、入力の種類に応じて、入力決定ステップによって決定される。たとえば、入力の種類が第1の種類である場合には、タッチオン判定ステップによって遷移したと判定されたタイミングである。つまり、タッチオフの状態からタッチオンの状態に遷移したと判定されたタイミングである。また、入力の種類が第2の種類である場合には、タッチオフ判定ステップによって遷移したと判定されたタイミングである。つまり、タッチオンの状態からタッチオフの状態に遷移したと判定されたタイミングである。
【0024】
第6の発明によれば、タッチの状態が遷移したと判定されたタイミングを入力のタイミングとするので、タイミングの判定が簡単である。
【0025】
第7の発明は、第6の発明に従属し、タッチオフ判定ステップで遷移したと判定された際に、指示座標記憶ステップによって記憶された指示座標に基づいて、タッチオフ判定ステップで遷移したと判定される直前のタッチパネル上における移動量を算出する移動量算出ステップをコンピュータにさらに実行させ、入力決定ステップは、移動量算出ステップによって算出された移動量が所定値以下の場合に入力の種類を第2の種類に決定し、移動量算出ステップで算出された移動量が所定値より大きい場合に入力の種類を第3の種類に決定する。
【0026】
第7の発明では、移動量算出ステップ(34,S123,S125,S172)は、タッチオフ判定ステップで遷移したと判定された際に、指示座標記憶ステップによって記憶された指示座標に基づいて、タッチオフ判定ステップで遷移したと判定される直前のタッチパネル上における移動量を算出する。たとえば、時間的に連続して検出される指示座標間の距離が算出されるのである。入力決定ステップは、移動量が所定値以下の場合には、入力の種類を第2の種類に決定するが、移動量が所定値より大きい場合には、入力の種類を第3の種類に決定する。
【0027】
第7の発明によれば、タッチオンからタッチオフの状態に遷移したと判定される直前のタッチパネルの移動量を算出し、タッチオフしたときの指示座標とその直前の移動量に応じて入力の種類が決定(判別)されるので、入力のバリエーションを増加させることができる。
【0028】
第8の発明は第7の発明従属し、入力決定ステップによって決定された入力のタイミングとは、入力の種類が第1の種類である場合には、タッチオン判定ステップで遷移したと判定されたタイミングであり、入力の種類が第2の種類および第3の種類である場合には、タッチオフ判定ステップで遷移したと判定されたタイミングである。
【0029】
第8の発明では、入力のタイミングは、入力の種類に応じて、入力決定ステップによって決定される。たとえば、入力の種類が第1の種類である場合には、タッチオン判定ステップで遷移したと判定されたタイミングである。また、入力の種類が第2の種類および第3の種類である場合には、タッチオフ判定ステップで遷移したと判定されたタイミングである。
【0030】
第8の発明によれば、タッチの状態が遷移したと判定されたタイミングを入力のタイミングとするので、タイミングの判定が簡単である。
【0031】
第9の発明は、第2または第3の発明に従属し、タッチパネルをタッチしている状態からタッチしていない状態へと遷移したことを判定するタッチオフ判定ステップ、およびタッチオフ判定ステップで遷移したと判定された際に、指示座標記憶ステップによって記憶された指示座標に基づいて、タッチオフ判定ステップで遷移したと判定される直前のタッチパネル上における移動量を算出する移動量算出ステップをコンピュータにさらに実行させ、入力決定ステップは、移動量算出ステップで算出された移動量が所定値以下の場合に入力の種類を第1の種類に決定し、移動量算出ステップで算出された移動量が所定値より大きい場合に入力の種類を第2の種類に決定する。
【0032】
第9の発明では、タッチオフ判定ステップ(34,S127,S171)は、タッチパネルをタッチしている状態(タッチオンの状態)からタッチしていない状態(タッチオフの状態)へと遷移したことを判定する。移動量算出ステップ(34,S123,S125,S172)は、タッチオフ判定ステップで遷移したと判定された際に、指示座標記憶ステップによって記憶された指示座標に基づいて、タッチオフ判定ステップで遷移したと判定される直前のタッチパネル上における移動量を算出する。たとえば、時間的に連続して検出される指示座標間の距離が算出されるのである。入力決定ステップは、移動量算出ステップで算出された移動量が所定値以下の場合(S173で“YES”)に入力の種類を第1の種類に決定し、移動量算出ステップで算出された移動量が所定値より大きい場合(S173で“NO”)に入力の種類を第2の種類に決定する。
【0033】
第9の発明によれば、タッチオフしたときの直前の移動量に応じて入力の種類を決定(判別)するので、入力のバリエーションを豊富にすることができる。
【0034】
第10の発明は、第9の発明に従属し、入力決定ステップによって決定された入力のタイミングとは、第1の種類および第2の種類についてはタッチオフ判定ステップで遷移したと判定されたタイミングである。
【0035】
第10の発明では、入力のタイミングは、入力の種類が第1の種類および第2の種類である場合には、入力決定ステップによって、タッチオフ判定ステップで遷移したと判定されたタイミングに決定される。
【0036】
第10の発明によれば、タッチの状態が遷移したと判定されたタイミングを入力のタイミングとするので、タイミングの判定が簡単である。
【0037】
第11の発明は、第1の発明に従属し、コンピュータは、入力比較ステップおよび処理実行ステップを第1タスクで実行し、指示座標記憶ステップおよび入力決定ステップを第1タスクとは異なる第2タスクで実行し、第2タスクの処理周期は、第1タスクの処理周期よりも短く設定される。
【0038】
第11の発明では、コンピュータは、入力比較ステップおよび処理実行ステップを第1タスクで実行する。また、コンピュータは、指示座標記憶ステップおよび入力決定ステップを第1タスクとは異なる第2タスクで実行する。第1タスクは、たとえば、1フレーム(画面更新単位時間)の処理周期で実行され、第2タスクは1フレームよりも短い処理周期で実行される
第11の発明によれば、第2タスクの処理周期を第1タスクの処理周期よりも短くするので、ユーザの入力の取りこぼしを軽減することができる。
【0039】
第12の発明は、第1または第11の発明に従属し、入力決定ステップによって決定された入力のタイミングと入力の種類とを記憶手段に記憶する入力バッファ記憶ステップ、および入力比較ステップおよび処理実行ステップが実行された後に、記憶手段に記憶された入力のタイミングと入力の種類とを消去する入力バッファ消去ステップをコンピュータにさらに実行させ、入力比較ステップおよび処理実行ステップは、記憶手段に記憶されたすべての入力のタイミングと入力の種類とを処理対象とする。
【0040】
第12の発明では、情報処理プログラムは、入力バッファ記憶ステップ(34,S149,S157,S175,S177)および入力バッファ消去ステップ(34,S99)を、コンピュータにさらに実行させる。入力バッファステップは、入力決定ステップによって決定された入力のタイミングと入力の種類とを記憶手段に記憶する。入力消去ステップは、入力比較ステップおよび処理実行ステップが実行された後に、記憶手段に記憶された入力のタイミングと入力の種類とを消去する。入力比較ステップおよび処理実行ステップは、記憶手段に記憶されたすべての入力のタイミングと入力の種類とを処理対象とする(S83,S97)。
【0041】
第12の発明によれば、記憶手段に記憶された入力のタイミングと入力の種類とをすべて処理対象とするので、ユーザの入力を確実に処理することができる。
【0042】
第13の発明は、第1の発明に従属し、処理実行ステップは、入力比較ステップによって比較された結果に応じて、入力を評価する評価ステップを含み、評価ステップの評価に応じて所定の処理を実行する。
【0043】
第13の発明では、情報処理プログラムは、処理実行ステップ(34,S89,S93,S95)は、入力比較ステップによって比較された結果に応じて、入力を評価する評価ステップ(34,S85,S87,S93)を含み、その評価に応じて所定の処理を実行する。
【0044】
第13の発明によれば、評価に応じた処理を実行するので、当該処理によってユーザは入力についての評価を知ることができる。
【0045】
第14の発明は、第1の発明に従属し、入力比較ステップは、予め定められた入力のタイミングおよび入力の種類と、入力決定ステップによって決定された入力のタイミングおよび入力の種類との一致度を検出する一致度検出ステップを含み、処理実行ステップは、一致度検出ステップによって検出された一致度に応じて、所定の処理を実行する。
【0046】
第14の発明では、一致度検出ステップ(34,S85,S87)は、予め定められた入力のタイミングおよび入力の種類と、入力決定ステップによって決定された入力のタイミングおよび入力の種類との一致度を検出する。正しい入力のタイミングで正しい種類の入力がなされたかどうかを検出するのである。一致度は、たとえば、入力のタイミングのずれである。処理実行ステップは、その一致度に応じて、所定の処理を実行する。
【0047】
第14の発明によれば、入力の一致度に応じた処理が実行されるので、それによってユーザないしプレイヤは自分の入力の正しさなどを知ることができる。
【0048】
第15の発明は、第14の発明に従属し、処理実行ステップは、入力比較ステップによって比較された結果に応じて、入力を評価する評価ステップを含み、評価ステップの評価に応じて、所定の処理を実行する。
【0049】
第15の発明では、処理実行ステップは、入力比較ステップによって比較された結果に応じて、入力を評価する評価ステップ(34,S85,S87,S93)を含み、その評価に応じて、所定の処理を実行する。
【0050】
第15の発明によれば、評価に応じた処理を実行するので、当該処理によってユーザは入力についての評価を知ることができる。
【0051】
第16の発明は、第15の発明に従属し、評価ステップは、一致度検出ステップによって検出された一致度が高いほど、評価ステップは高い評価をする。
【0052】
第16の発明では、評価ステップは、一致度が高いほど、高い評価をする。したがって、所定の処理も評価の違いに応じた内容で実行される。
【0053】
第16の発明によれば、評価に応じた処理を実行するので、当該処理によってユーザは入力についての評価を知ることができる。
【0054】
第17の発明は、第1の発明に従属し、予め定められた入力のタイミングと入力の種類とを教示する教示ステップをコンピュータにさらに実行させ、入力比較ステップは、教示ステップによって教示された入力のタイミングおよび入力の種類と、入力決定ステップによって決定された入力のタイミングおよび入力の種類との比較を行う。
【0055】
第17の発明では、教示ステップ(34,S3)は、予め定められた入力のタイミングと入力の種類とを教示する。したがって、入力比較ステップは、教示ステップによって教示された入力のタイミングおよび入力の種類と、入力決定ステップによって決定された入力のタイミングおよび入力の種類との比較を行う。
【0056】
第17の発明よれば、予め定められた入力のタイミングと入力の種類とをユーザやプレイヤに教示するので、これによって、ユーザやプレイヤはタイミングを計るとともに、正しい入力を行うように操作するので、操作し易い。
【0057】
第18の発明は第17の発明に従属し、教示ステップは、音楽および映像の少なくとも一方を出力することにより、予め定められた入力のタイミングと入力の種類とを教示する。
【0058】
第18の発明では、教示ステップは、予め定められた入力のタイミングに合わせた音楽を再生したり、予め定められた入力のタイミングと入力の種類とに合わせた映像を出力(画面表示)したりすることにより、ユーザないしプレイヤに教示する。
【0059】
第18の発明によれば、音楽や映像により、入力のタイミングと入力の種類とを教示するので、簡単に操作することができる。
【0060】
第19の発明は、ポインティングデバイスからの入力を受け取り可能な情報処理装置であって、指示座標記憶手段、入力決定手段、入力比較手段、および処理実行手段を備える。指示座標記憶手段は、ポインティングデバイスによって指示された指示座標を記憶手段に記憶する。入力決定手段は、指示座標記憶手段によって記憶された指示座標に基づいて、入力のタイミングと当該入力の種類とを決定する。入力比較手段は、予め定められた入力のタイミングおよび入力の種類と、入力決定ステップによって決定された入力のタイミングおよび入力の種類との比較を行う。そして、処理実行手段は、入力比較手段によって比較された結果に応じて、所定の処理を実行する。
【0061】
第19の発明においても、第1の発明と同様に、入力のタイミングのみならず、指示座標に基づいて入力の種類を判断するので、バリエーションの豊富な入力を行うことができ、入力操作が単調になるのを防止することができる。
【発明の効果】
【0062】
この発明によれば、指示座標の履歴に基づいて入力の種類を判断するので、バリエーションの豊富な入力を行うことができ、入力操作が単調になるのを防止することができる。つまり、操作性を向上することができる。
【0063】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【0064】
図1を参照して、この発明の実施例であるゲーム装置10は、後述するように、画像処理プログラムを記憶することにより、画像処理装置としても機能する。このゲーム装置10は、第1の液晶表示器(LCD)12および第2のLCD14を含む。LCD12およびLCD14は、所定の配置位置となるようにハウジング16に収納される。この実施例では、ハウジング16は、上側ハウジング16aと下側ハウジング16bとによって構成され、LCD12は上側ハウジング16aに収納され、LCD14は下側ハウジング16bに収納される。したがって、LCD12とLCD14とは縦(上下)に並ぶように近接して配置される。
【0065】
なお、この実施例では、表示器としてLCDを用いるようにしてあるが、LCDに代えて、EL(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるようにしてもよい。
【0066】
図1からも分かるように、上側ハウジング16aは、LCD12の平面形状よりも少し大きな平面形状を有し、一方主面からLCD12の表示面を露出するように開口部が形成される。一方、下側ハウジング16bは、その平面形状が上側ハウジング16aと略同じであり、その略中央部にLCD14の表示面を露出するように開口部が形成される。下側ハウジング16bのLCD14の左方には電源スイッチ18が設けられる。
【0067】
また、上側ハウジング16aには、LCD12を挟んで左右に、スピーカ36aおよび36b(図2)のための音抜き孔20aおよび20bが形成される。そして、下側ハウジング16bには、マイク(図示せず)のためのマイク孔20cが形成されるとともに、操作スイッチ22(22a,22b,22c,22d,22e,22f,22g,22Lおよび22R)が設けられる。
【0068】
また、上側ハウジング16aと下側ハウジング16bとは、上側ハウジング16aの下辺(下端)と下側ハウジング16bの上辺(上端)の一部とが回動可能に連結されている。したがって、たとえば、ゲームをプレイしない場合には、LCD12の表示面とLCD14の表示面とが対面するように、上側ハウジング16aを回動させて折りたたんでおけば、LCD12の表示面およびLCD14の表示面に傷がつくなどの破損を防止することができる。ただし、上側ハウジング16aと下側ハウジング16bとは、回動可能に連結せずに、それらを一体的(固定的)に設けたハウジング16を形成するようにしてもよい。
【0069】
操作スイッチ22は、方向指示スイッチ(十字スイッチ)22a,スタートスイッチ22b、セレクトスイッチ22c、動作スイッチ(Aボタン)22d、動作スイッチ(Bボタン)22e、動作スイッチ(Xボタン)22f、動作スイッチ(Yボタン)22g、動作スイッチ(Lボタン)22Lおよび動作スイッチ(Rボタン)22Rを含む。スイッチ22aは、下側ハウジング16bの一方主面であり、LCD14の左側に配置される。その他のスイッチ22b−22gは、下側ハウジング16bの一方主面であり、LCD14の右側に配置される。さらに、スイッチ22Lおよびスイッチ22Rは、それぞれ、上側ハウジング16aとの連結部を挟む下側ハウジング16bの上側面の左右角部に配置される。
【0070】
方向指示スイッチ22aは、ディジタルジョイスティックとして機能し、4つの押圧部の1つを操作することによって、ユーザないしプレイヤによって操作可能なプレイヤキャラクタ(またはプレイヤオブジェクト)の移動方向を指示したり、カーソルの移動方向を指示したりする等に用いられる。また、各押圧部には、特定の役割を割り当てることができ、4つの押圧部の1つを操作することによって、割り当てられた役割を指示(指定)することができる。
【0071】
スタートスイッチ22bは、プッシュボタンで構成され、ゲームを開始(再開)したり、一時停止(Pause)したりする等に用いられる。また、セレクトスイッチ22cは、プッシュボタンで構成され、ゲームモードの選択等に用いられる。
【0072】
動作スイッチ22dすなわちAボタンは、プッシュボタンで構成され、方向指示以外の動作、すなわち、プレイヤキャラクタに打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプするなどの任意のアクションをさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。動作スイッチ22eすなわちBボタンは、プッシュボタンで構成され、セレクトスイッチ22cで選択したゲームモードの変更やAボタン22dで決定したアクションの取り消し等のために用いられる。
【0073】
動作スイッチ22fすなわちXボタン、および動作スイッチ22gすなわちYボタンは、プッシュボタンで構成され、Aボタン22dとBボタン22eだけでは、ゲーム進行ができないときに、補助的な操作に用いられる。ただし、Xボタン22fおよびYボタン22gは、Aボタン22dおよびBボタン22eと同様の操作に用いることも可能である。もちろん、ゲームプレイにおいてXボタン22fとYボタン22gとを必ずしも使用しなくてよい。
【0074】
動作スイッチ22L(左押しボタン)および動作スイッチ22R(右押しボタン)は、プッシュボタンで構成され、左押しボタン(Lボタン)22Lおよび右押しボタン(Rボタン)22Rは、Aボタン22dおよびBボタン22eと同様の操作に用いることができ、また、Aボタン22dおよびBボタン22eの補助的な操作に用いることができる。さらに、Lボタン22LおよびRボタン22Rは、方向スイッチ22a、Aボタン22d,Bボタン22e,Xボタン22f,Yボタン22gに割り当てられた役割を、他の役割に変更することができる。
【0075】
また、LCD14の上面には、タッチパネル24が装着される。タッチパネル24としては、たとえば、抵抗膜方式、光学式(赤外線方式)および静電容量結合式のいずれかの種類のものを用いることができる。また、タッチパネル24は、その上面をスティック26ないしはペン(スタイラスペン)或いは指(以下、これらを「スティック26等」という場合がある。)で、押圧したり、撫でたり、触れたりすることにより操作(タッチ操作)すると、スティック26等の操作位置の座標を検出して、検出した座標(検出座標)に対応する座標データを出力する。
【0076】
なお、この実施例では、LCD14(LCD12も同じ、または略同じ。)の表示面の解像度は256dot×192dotであり、タッチパネル24の検出精度も表示画面に対応して256dot×192dotとしてあるが、タッチパネル24の検出精度は表示画面の解像度よりも低くてもよく、高くてもよい。
【0077】
LCD12およびLCD14には異なるゲーム画面が表示されてもよい。たとえば、レースゲームでは一方のLCDに運転席からの視点による画面を表示し、他方のLCDにレース(コース)全体の画面を表示することができる。また、RPGでは、一方のLCDにマップやプレイヤキャラクタ等のキャラクタを表示し、他方のLCDにプレイヤキャラクタが所有するアイテムを表示することができる。さらに、一方のLCD(この実施例では、LCD14)にゲームの操作画面(ゲーム画面)を表示し、他方のLCD(この実施例では、LCD12)に当該ゲームに関する情報(得点やレベルなど)を含む他のゲーム画面を表示することができる。さらには、2つのLCD12およびLCD14を合わせて1つの画面として用いることにより、プレイヤキャラクタが倒さなければならない巨大な怪物(敵キャラクタ)を表示することもできる。
【0078】
したがって、プレイヤはスティック26等でタッチパネル24を操作することにより、LCD14の画面に表示されるプレイヤキャラクタ、敵キャラクタ、アイテムキャラクタ、操作オブジェクトなどの画像を指示(操作)したり、コマンドを選択(入力)したりすることができる。また、3次元ゲーム空間に設けられる仮想カメラ(視点)の方向(視線の向き)を変化させたり、ゲーム画面(マップ)のスクロール(徐々に移動表示)方向を指示したりすることもできる。
【0079】
なお、ゲームの種類によっては、タッチパネル24を用いることにより、その他の入力指示も可能である。たとえば、座標入力指示を入力したり、LCD14において文字,数字,記号等を手書き入力したりすることができる。
【0080】
このように、ゲーム装置10は、2画面分の表示部となるLCD12およびLCD14を有し、いずれか一方(この実施例では、LCD14)の上面にタッチパネル24が設けられるので、2画面(12,14)と2系統の操作部(22,24)とを有する構成になっている。
【0081】
また、この実施例では、スティック26は、たとえば下側ハウジング16bに設けられる収納部(図示せず)に収納することができ、必要に応じて取り出される。ただし、スティック26を設けない場合には、その収納部も設ける必要はない。
【0082】
さらに、ゲーム装置10はメモリカード(またはカートリッジ)28を含み、このメモリカード28は着脱自在であり、下側ハウジング16bの裏面ないしは下端(底面)に設けられる挿入部30(図1では点線で示す)に挿入される。図1では省略するが、挿入部30の奥部には、メモリカード28の挿入方向先端部に設けられるコネクタ(図示せず)と接合するためのコネクタ32(図2参照)が設けられており、したがって、メモリカード28が挿入部30に挿入されると、コネクタ同士が接合され、ゲーム装置10のCPUコア34(図2参照)がメモリカード28にアクセス可能となる。
【0083】
なお、図1では表現できないが、上側ハウジング16aの音抜き孔20aおよび20bと対応する位置であり、この上側ハウジング16aの内部にはスピーカ36aおよび36b(図2参照)が設けられる。
【0084】
また、図1では省略するが、たとえば、下側ハウジング16bの裏面側には、電池収容ボックスが設けられ、また、下側ハウジング16bの底面側には、音量スイッチ、外部拡張コネクタおよびイヤフォンジャックなどが設けられる。
【0085】
図2はゲーム装置10の電気的な構成を示すブロック図である。図2を参照して、ゲーム装置10は電子回路基板38を含み、この電子回路基板38には上述のCPUコア34等の回路コンポーネントが実装される。CPUコア34は、バス40を介して前述のコネクタ32に接続されるとともに、RAM42、第1のグラフィック処理ユニット(GPU)44、第2のGPU46、入出カインターフエース回路(以下、「I/F回路」という。)48およびLCDコントローラ50が接続される。
【0086】
コネクタ32には、上述したように、メモリカード28が着脱自在に接続される。メモリカード28は、ROM28aおよびRAM28bを含み、図示は省略するが、ROM28aおよびRAM28bは、互いにバスで接続され、さらに、コネクタ32と接合されるコネクタ(図示せず)に接続される。したがって、上述したように、CPUコア34は、ROM28aおよびRAM28bにアクセスすることができるのである。
【0087】
ROM28aは、ゲーム装置10で実行すべきゲームのためのゲームプログラム、画像データ(文字やオブジェクトの画像、背景画像、アイテム画像、アイコン(ボタン)画像、メッセージ画像など)およびゲームに必要な音(音楽)のデータ(音データ)等を予め記憶する。RAM(バックアップRAM)28bは、そのゲームの途中データやゲームの結果データなどを記憶(セーブ)する。
【0088】
RAM42は、バッファメモリないしはワーキングメモリとして使用される。つまり、CPUコア34は、メモリカード28のROM28aに記憶されたゲームプログラム、画像データおよび音データ等をRAM42にロードし、ロードしたゲームプログラムを実行する。また、CPUコア34は、ゲームの進行に応じて一時的に発生するデータ(ゲームデータやフラグデータ)をRAM42に記憶しつつゲーム処理を実行する。
【0089】
なお、ゲームプログラム、画像データおよび音データ等は、ROM28aから一度に全部、または部分的かつ順次的に読み出され、RAM42に記憶(ロード)される。
【0090】
ただし、メモリカード28のROM28aには、ゲーム以外の他のアプリケーションについてのプログラムおよび当該アプリケーションの実行に必要な画像データが記憶される。また、必要に応じて、音(音楽)データが記憶されてもよい。かかる場合には、ゲーム装置10では、当該アプリケーションが実行される。
【0091】
GPU44およびGPU46は、それぞれ、描画手段の一部を形成し、たとえばシングルチップASICで構成され、CPUコア34からのグラフィックスコマンド(作画命令)を受け、そのグラフィックスコマンドに従って画像データを生成する。ただし、CPUコア34は、グラフィックスコマンドに加えて、画像データの生成に必要な画像生成プログラム(ゲームプログラムに含まれる。)をGPU44およびGPU46のそれぞれに与える。
【0092】
また、GPU44には、第1のビデオRAM(以下、「VRAM」という。)52が接続され、GPU46には、第2のVRAM54が接続される。GPU44およびGPU46が作画コマンドを実行するにあたって必要なデータ(画像データ:ポリゴンやテクスチャ等のデータ)は、GPU44およびGPU46が、それぞれ、第1のVRAM52および第2のVRAM54にアクセスして取得する。
【0093】
なお、CPUコア34は、描画に必要な画像データをGPU44およびGPU46を介して第1のVRAM52および第2のVRAM54に書き込む。GPU44はVRAM52にアクセスして描画のための画像データを作成し、GPU46はVRAM54にアクセスして描画のための画像データを作成する。
【0094】
VRAM52およびVRAM54は、LCDコントローラ50に接続される。LCDコントローラ50はレジスタ56を含み、レジスタ56はたとえば1ビットで構成され、CPUコア34の指示によって「0」または「1」の値(データ値)を記憶する。LCDコントローラ50は、レジスタ56のデータ値が「0」である場合には、GPU44によって作成された画像データをLCD12に出力し、GPU46によって作成された画像データをLCD14に出力する。また、LCDコントローラ50は、レジスタ56のデータ値が「1」である場合には、GPU44によって作成された画像データをLCD14に出力し、GPU46によって作成された画像データをLCD12に出力する。
【0095】
なお、LCDコントローラ50は、VRAM52およびVRAM54から直接画像データを読み出したり、GPU44およびGPU46を介してVRAM52およびVRAM54から画像データを読み出したりする。
【0096】
I/F回路48には、操作スイッチ22,タッチパネル24およびスピーカ36a,36bが接続される。ここで、操作スイッチ22は、上述したスイッチ22a,22b,22c,22d,22e,22f,22g,22Lおよび22Rであり、操作スイッチ22が操作されると、対応する操作信号(操作データ)がI/F回路48を介してCPUコア34に入力される。また、タッチパネル24からの座標データがI/F回路48を介してCPUコア34に入力される。さらに、CPUコア34は、ゲーム音楽(BGM)、効果音またはゲームキャラクタの音声(擬制音)などのゲームに必要な音データをRAM42から読み出し、I/F回路48を介してスピーカ36a,36bから出力する。
【0097】
図3は、この実施例の仮想ゲームをプレイする場合に、図1に示したゲーム装置10の使用例を示す図解図である。図3から分かるように、この実施例では、ゲーム装置10は、図1に示した状態から反時計周り(左周り)に90度回転させた状態で使用される。したがって、LCD12とLCD14(タッチパネル24)とが横並びに配置される。LCD12には、後述するように、ゲーム画面が表示され、LCD14にはメニュー画面が表示される。このLCD12に表示されるゲーム画面は、予め設定された入力のタイミング(設定入力タイミング)と入力の種類(設定入力種類)とを教示するための画像(映像)およびプレイの入力に従う画像(映像)が表示され、LCD14の上面に装着されたタッチパネル24が、このLCD12に表示される画像(映像)に対して入力を行う入力装置として用いられる。また、LCD14に表示されるメニュー画面は、主として、プレイするゲームを選択するための画面であり、ゲーム中においては、LCD14には何ら画像(映像)を表示させない、またはLCD12に抽象的なグラフィックを表示するようにしてある。ここで、他の実施形態においては、LCD14に表示される画像(映像)は何でもよく、たとえば、LCD12に表示される、予め設定された入力のタイミング(設定入力タイミング)と入力の種類(設定入力種類)とを教示するための画像(映像)に関連した画像(映像)であってもよい。
【0098】
図4(A),図4(B)および図5は、この実施例の仮想ゲームをプレイする場合に、LCD12に表示されるゲーム画面100の例が示される。このゲーム画面100には、ノンプレイヤオブジェクト102,104,106およびプレイヤオブジェクト108が表示される。ノンプイレヤオブジェクト102は、指揮者のオブジェクトであり、ノンプレイヤオブジェクト104,106は、コーラスする3人のうちの2人のオブジェクトである。そして、プレイヤオブジェクト108は、コーラスする3人のうちの1人のオブジェクトである。
【0099】
図4(A),(B)および図5に示す仮想ゲームでは、たとえば、演奏に合わせて、ノンプレイヤオブジェクト104,106およびプレイヤオブジェクト108の順に発声する。プレイヤは、演奏される音楽やノンプレイヤオブジェクト104,106の発声に基づいて、発声するタイミングを図るとともに、発声する音(音声)の種類と長さを認識する。ただし、演奏される音楽やノンプレイヤオブジェクト104,106が発声する音(音声)は、スピーカ20a,20bから出力されることにより、プレイヤに教示(提示)される。
【0100】
プレイヤは、ゲーム画面100を見たり、音楽を聴いたり、ノンプレイヤオブジェクト104,106の発生を聴いたりして、入力するタイミングと入力の種類(方法)と長さとを認識し、入力操作を行う。ここでは、スティック26等でタッチパネル24をオン(タッチオン)すると、プレイヤオブジェト108は発声しない(発声を停止する)。つまり、プレイヤがタッチパネル24をタッチオンした状態が継続すると、プレイヤオブジェクト108が発声しない状態も継続する。
【0101】
一方、プレイヤがタッチパネル24からスティック26等をオフ(タッチオフ)すると、プレイヤオブジェクト108は発声する。このとき、発声される音声は、タッチオンされてからタッチオフされるまでのプレイヤの入力履歴に応じて決定される。
【0102】
ここでは、今回検出された指示座標(タッチオフする直前の指示座標)と前回検出された指示座標との差分(移動量)に応じてプレイヤが発声する音(音声)を決定する。差分が所定値未満であれば、単にタッチオフしたと判断して、第1の音声(たとえば、「あ」)を出力する。一方、差分が所定値以上であれば、スティック26等でタッチパネル24を弾くように操作(以下、「弾き操作」という。)したと判断して、第1の音声とは異なる第2の音声(たとえば、「ぎゃ」)を出力する。
【0103】
また、プレイヤがタッチオフした状態が継続すると、それに従って発声中の音声も継続して出力される。つまり、第1の音声または第2の音声が長音で出力される。この発声を停止させるためには、上述したように、プレイヤは、タッチパネル24を再度タッチオンする。つまり、プレイヤは、発声する音の長さのタイミングも計る必要がある。
【0104】
なお、この実施例では、タッチオン、タッチオフおよび弾き操作の他に、擦り操作も可能であるが、図4(A),(B)および図5に示す仮想ゲームでは、擦り操作を行ったとしても、プレイヤオブジェクト108は何ら発声しない。ただし、擦り操作とは、スティック26等でタッチパネル24をタッチオンした状態で(タッチオフせずに)、このタッチパネル24上で往復するようにスティック26等をスライド操作する場合の往路または復路に相当する1回のスライド操作を意味する。
【0105】
図示は省略するが、何ら入力を行わなかったり、入力を行ったにも関わらず、発声を開始するタイミングが大幅にずれたり、発声を停止(終了)するタイミングが大幅にずれたり、発声する音声を誤った場合には、失敗処理が実行される。たとえば、図4(A),(B)および図5に示すような場合に、失敗処理が実行されると、プレイヤオブジェクト108がノンプレイヤオブジェクト104,106からにらまれる様子がゲーム画面100で表示される。また、発声の開始タイミングが大幅にずれている場合には、さらに音程がずれた音が出力される。たとえば、音程のずれた音は、鍵盤では弾くことのできない音(音程が四分の1ずれた音)や不協和音である。
【0106】
ただし、この実施例では、発声を開始(タッチオフ)するタイミングおよび発声を終了(タッチオン)するタイミングが、成功(丁度,少しずれている)か、失敗(大幅にずれているか)の判定は、演奏する音楽に対応するMIDIデータについてのティック数を参照して判定するようにしてある。たとえば、後述するように、プレイヤが入力をするべきタイミング(ティック数)に対応して、実行するべき入力の種類(タッチオン,タッチオフ,弾く操作,擦り操作)が記述されたテーブル(設定入力テーブル)が用意されている(図10(B)参照)。この設定入力テーブルに従って、入力が成功であるか、失敗であるかを判定(評価)するが、設定入力テーブルに記述されたタイミングと完全に一致するタイミングで入力した場合にのみ、入力が成功であると判定するようにすると、ほとんどの場合に、入力が失敗であると判定されてしまう。
【0107】
このため、この実施例では、或る一定の幅を設けて、入力が成功であるか、失敗であるかを判定するようにしてある。具体的には、演奏開始からのティック数が現在のフレーム数に基づいて算出され、現在のティック数が入力の成功または失敗を判定する区間(チェック区間)になると、テーブルに記述された設定入力種類と、入力バッファの入力の種類(実入力種類)とが一致するかどうかを判断する。
【0108】
たとえば、図6に示すように、チェック区間は、設定入力タイミングのティック数の前後に、一定のティック数(+α,−α)を設定することにより規定される。このチェック区間内において、プレイヤの入力が有り、その実入力種類が設定入力種類と一致する場合には、入力が成功であると判定される。ただし、チェック区間内において、プレイヤの入力が無い場合や、チェック区間内にプレイヤの入力が有るが、その実入力種類が設定入力種類と一致しない場合には、入力が失敗であると判定される。
【0109】
また、チェック区間は、2種類の区間に分割されている。図6において網掛け模様を付して示す1つの区間(第1区間)は、設定入力タイミングを含み、チェック区間内の内側(たとえば、中央)に設けられる。また、図6において斜線模様を付して示す他の2つの区間(第2区間)は、チェック区間内の第1区間を除く区間であり、第1区間の両側に設けられる。
【0110】
したがって、チェック区間のうちの第1区間に、プレイヤの入力が有り、当該入力の種類(実入力種類)が、設定入力テーブルに記述された入力の種類(設定入力種類)と同じである場合には、正しい音を正しい音程で発声する演出がなされる。具体的には、正しいタイミングで発声する様子のゲーム画面100がLCD12に表示されるとともに、正しい音程の正しい音がスピーカ36a,36bから出力される。
【0111】
また、チェック区間のうちの第2区間に、プレイヤの入力があり、この実入力種類が、設定入力種類と同じである場合には、半音ずれた音を発声する演出がなされる。具体的には、正しいタイミングで発声する様子のゲーム画面100がLCD12に表示されるが、半音ずれた音程の正しい音(♯,♭)がスピーカ36a,36bから出力される。
【0112】
ただし、チェック区間に、プレイヤの入力が有るが、この実入力種類が、設定入力種類と異なる場合には、プレイヤの入力に応じた音が発声され、入力の種類が誤っている(失敗している)ことを示す演出がなされる。かかる場合には、図示は省略するが、上述したように、ノンプイレヤオブジェクト104,106がプレイヤオブジェクト108をにらんでいる様子のゲーム画面100がLCD12に表示されるとともに、プレイヤの入力に応じた音がスピーカ36a,36bから出力される。
【0113】
また、プレイヤの実入力タイミングがチェック区間の前後である場合には、実入力種類が設定入力種類と一致する場合であっても、入力が失敗であることを示す演出がなされる。具体的には、プレイヤの実入力タイミングで、プレイヤオブジェクト108が発声する様子のゲーム画面100がLCD12に表示されるとともに、正しい音に対して音程が全音の4分の1だけ異なる音や不協和音のような不快な音がスピーカ36a,36bから出力される。その後、ノンプレイヤオブジェクト104、106がプレイヤオブジェクト108をにらむ様子のゲーム画面100がLCD12に表示される。
【0114】
さらに、チェック区間内において、プレイヤが何ら入力しなかった(見逃した)場合には、入力が無かったことを示す演出がなされる。具体的には、プレイヤの入力が無いため、プレイヤオブジェクト108が(ノンプレイヤオブジェクト104,106も)発声しない様子のゲーム画面100がLCD12に表示され、プレイヤオブジェクト108の音声に対応する音はスピーカ36a,36bから出力されない。その後、ノンプレイヤオブジェクト104、106がプレイヤオブジェクト108をにらむ様子のゲーム画面100がLCD12に表示される。
【0115】
このように、プレイヤの入力が成功である場合の演出と、プレイヤの入力が失敗である場合の演出とが例示されるが、これらに限定される必要はなく、他の演出が採用されてよい。たとえば、プレイヤが入力を失敗した場合において、発声のタイミングが早い場合と、発声のタイミングが遅い場合とで、異なる演出をしてよい。また、プイレヤが入力を失敗した場合には、ノンプレイヤオブジェクト104,106がプレイヤオブジェクト108をにらむ様子のゲーム画面100を表示するようにしたが、指揮者のノンプレイヤオブジェクト102がプレイヤオブジェクト108を怒る様子のゲーム画面100を表示するようにしてもよい。
【0116】
また、図7には、他の仮想ゲームのゲーム画面200の例が示される。このゲーム画面200では、打撃装置のようなプレイヤオブジェクト202、杭のようなノンプレイヤオブジェクト204および中央に孔の開いた板のノンプレイヤオブジェクト206が表示される。たとえば、この他の仮想ゲームでは、2つのノンプレイヤオブジェクト206が、音楽の演奏に合わせて、所定のタイミング(ティック数)で、画面のほぼ中央で重なるように、それぞれ、画面の左右から転がって移動される。
【0117】
プレイヤは、ゲーム画面200を見たり、音楽の演奏を聴いたりすることにより、2つのノンプレイヤオブジェクト206が重なるタイミングで、打撃の指示を入力する。この実施例では、プレイヤはスティック26等により、タッチパネル24上で弾き操作をする。すると、ノンプレイヤオブジェクト202のアーム202bが動き、それに連結される打撃部202aがノンプレイヤオブジェクト204を打撃するように移動される。そして、ノンプレイヤオブジェクト204は打撃により、その長手方向であり、画面の左斜め上方に移動される。
【0118】
この他の仮想ゲームでは、入力が成功すると、プレイヤオブジェクト202によってノンプレイヤオブジェクト204は打撃され、画面のほぼ中央で重なる2つのノンプレイヤオブジェクト206を貫くように、ノンプレイヤオブジェクト204が2つのノンプレイヤオブジェクト206に突き刺さる。これによって、ノンプレイヤオブジェクト204と2つのノンプレイヤオブジェクト206とが一体的に形成されたノンプレイヤオブジェクト210が生成され、生成されたノンプレイヤオブジェクト210は、ベルトコンベアのようなノンプレイヤオブジェクト220上を画面の左斜め上方に向けて移動される。
【0119】
ただし、プレイヤの入力が成功であるか、失敗であるかは、図6に示したようなチェック区間に基づいて判定される。プレイヤの実入力タイミングがチェック区間における第1区間内であり、実入力種類が設定入力種類と一致する場合には、入力が成功であり、上述したように、ノンプレイヤオブジェクト210が生成される。
【0120】
また、実入力タイミングがチェック区間の第2区間内であり、実入力種類が設定入力種類と一致する場合には、入力は成功であり、プレイヤオブジェクト202によってノンプレイヤオブジェクト204は打撃されるが、ノンプレイヤオブジェクト204は、2つのノンプレイヤオブジェクト206に衝突して、2つのノンプレイヤオブジェクト206は乱雑に落下し、ノンプレイヤオブジェクト204のみがベルトコンベア220を流れていく。
【0121】
また、プレイヤの実入力タイミングがチェック区間の前であり、実入力種類が設定入力種類と一致する場合には、入力は失敗であり、その実入力タイミングでプレイヤオブジェクト202によってノンプレイヤオブジェクト204は打撃されるが、ノンプレイヤオブジェクト204は、2つのノンプレイヤオブジェクト206には衝突せずに、そのままベルトコンベア200を流れて行く。また、このとき、2つのノンプレイヤオブジェクト206はさらに転がって、穴212および穴214にそれぞれ落ちる。
【0122】
ただし、プレイヤがチェック区間に何ら入力しなった場合(チェック区間の後に入力が有る場合も含む。)には、入力は失敗であり、ノンプレイヤオブジェクト204は、プレイヤオブジェクト202によって打撃されないため、そのままの状態であり、2つのノンプレイヤオブジェクト206は転がって穴212,214にそのまま落ちる。
【0123】
また、プレイヤの実入力タイミングがチェック区間内であるが、実入力種類が設定入力種類と一致しない場合には、入力は失敗であり、プレイヤオブジェクト202は動作せず、ノンプレイヤオブジェクト204はプレイヤオブジェクト202によって打撃されない。この場合にも、ノンプレイヤオブジェクト204はそのままの状態であり、2つのノンプレイヤオブジェクト206は転がって穴212,214にそのまま落ちる。
【0124】
また、図8には、その他の仮想ゲームのゲーム画面300の例が示される。このゲーム画面300には、男性のノンプレイヤオブジェクト302と、女性のプレイヤオブジェクト304と、フラスコのような器具のノンプレイヤオブジェクト306とが表示されるとともに、3つのハートマークで示されるインジケータ308が表示される。
【0125】
このその他の仮想ゲームでは、ノンプレイヤオブジェクト302の左側かノンプレイヤオブジェクト306が飛んで来る。ノンプレイヤオブジェクト302は、ノンプレイヤオブジェクト306をキャッチして、所定回数振った後に、プレイヤオブジェクト304の方に(右側に)投げる。プレイヤの操作により、ノンプイレヤオブジェクト302と同様の動作をさせることができた場合には、ハートが生まれて、インジケータ308のハート型が塗り潰される。しかし、ノンプレイヤオブジェクト306のキャッチに失敗したり、ノンプレイヤオブジェクト306を振ることに失敗したり、ノンプイレヤオブジェクト306を投げることに失敗したりした場合には、ハートは生まれない。したがって、インジケータ308のハート型も塗りつぶされない。
【0126】
なお、実際の仮想ゲームにおいては、或る制限の中で、インジケータ308のハート型が全部塗り潰されると、プレイヤオブジェクト304の恋が成就し、インジケータ308のハート型において塗り潰されていない部分が有る場合には、プレイヤオブジェクト304の恋は成就しないことになる。
【0127】
プイレヤは、プレイヤオブジェクト304にノンプイレヤオブジェクト306をキャッチさせる場合には、スティック26等によって、タッチパネル24をタッチオンする。また、プレイヤは、プレイヤオブジェクト304にノンプレイヤオブジェクト306を振らせる場合には、スティック26等によって、タッチパネル24上で擦り操作を行う。そして、プレイヤは、プレイヤオブジェクト304にノンプレイヤオブジェクト306を投げさせる場合には、スティック26等によって、タッチパネル24上で弾き操作を行う。
【0128】
これらのすべての入力に成功した場合には、上述したように、ハートが生まれるが、いずれか1つでも入力に失敗した場合(見逃した場合も含む。)には、ハートは生まれない。詳細な説明は省略するが、これらの入力のそれぞれについても、上述したように、図6に示したようなチェック区間に従ってプレイヤの入力が判定される。ただし、このその他の仮想ゲームでは、3つの入力に成功する必要あるが、1番目の入力(タッチオン)すなわちノンプレイヤオブジェクト306のキャッチに失敗すると、その後の擦り操作およびタッチオフについては判定されずに、ハートが生成されない様子のゲーム画面300がLCDに表示される。また、同様に、2番目の入力(擦り操作)すなわちノンプレイヤオブジェクト306を振ることに失敗すると、その後の弾き操作については判定されない。
【0129】
図9は図2に示したRAM42のメモリマップ70の一例を示す図解図である。図9に示すように、RAM42は、プログラム記憶領域72およびデータ記憶領域74を含む。プログラム記憶領域72には、ゲームプログラム(情報処理プログラム)が記憶され、このゲームプログラムは、メイン処理プログラム720、画像生成プログラム722、画像表示プログラム724、音再生プログラム726、入力判定プログラム728および入力バッファ処理プログラム730などによって構成される。
【0130】
メイン処理プログラム720は、この実施例の仮想ゲームのメインルーチンを処理するためのプログラムである。画像生成プログラム722は、後述する画像データ742を用いて、LCD12(14)に表示するゲーム画面(100,200、300など)に対応するゲーム画像を生成するためのプログラムである。画像表示プログラム724は、画像生成プログラム722に従って生成されたゲーム画像をLCD12(14)に表示するためのプログラムである。
【0131】
音再生プログラム726は、後述する音データ744を用いて、プレイヤオブジェクト(108,202,304など)やノンプレイヤオブジェクト(104,106,204,206,210,302,306など)が発生ないし発声する音(効果音,音声,擬声音)やプレイヤに入力のタイミングを提示ないし教示するための音ないし音楽を再生するためのプログラムである。この音再生プログラム726に従って再生された音ないし音楽は、スピーカ36a,36bから出力される。
【0132】
入力判定プログラム728は、プレイヤの実入力タイミングと実入力種類とに基づいて、入力が成功したか、失敗したかを判定するためのプログラムである。ただし、プレイヤの実入力種類は、次の入力バッファ処理プログラム730に従って判別(決定)され、その判別結果が入力バッファ740に記憶される。
【0133】
入力バッファ処理プログラム730では、タッチパネル24からの座標データ(入力座標データ)を検出して入力バッファ740に記憶するためのプログラムである。ただし、この実施例では、1フレーム期間(フレーム:画面更新単位時間(1/60秒))において、入力座標データは4回検出される。また、入力バッファ処理プログラム730は、入力バッファ740に記憶されている入力座標データの履歴に基づいてプレイヤの入力の種類を判別し、判別結果とともに、その入力があったときのティック数(現在ティック数データ752が示す現在ティック数)を入力ティック数として、入力バッファ740に記憶(追加)する。
【0134】
なお、図示は省略するが、ゲームプログラムには、得点集計プログラムやバックアッププログラムなども含まれる。得点集計プログラムは、プレイヤの入力に成功や失敗に応じて、得点(スコア)を加算したり、減算したりするためのプログラムであり、また、プレイヤオブジェクトないしプレイヤのゲームレベルも算出する。バックアッププログラムは、この実施例の仮想ゲームについてのゲームデータ(途中データ,結果データ)をメモリカード28のRAM28bに保存(セーブ)するためのプログラムである。
【0135】
図10(A)は、図9に示したデータ記憶領域74の詳細な内容を示す図解図である。図10(A)に示すように、データ記憶領域74には、入力バッファ740が設けられる。この入力バッファ740には、入力座標データが記憶されるとともに、判別された実入力種類(タッチオン,タッチオフ,弾き操作,擦り操作)のデータおよびその入力ティック数のデータが記憶される。
【0136】
また、データ記憶領域74には、画像データ742,音データ744,設定入力テーブルデータ746,チェック区間データ748,現在タイミングデータ750,現在ティック数データ752,現在タッチ位置データ754,前回タッチ位置データ756,移動量データ758が記憶される。さらに、データ記憶領域74には、タイミングカウンタ760が設けられるとともに、タッチフラグ762および擦り検知フラグ764等が設けられる。
【0137】
画像データ742は、ゲーム画像を生成するための画像データであり、ポリゴンデータやテクスチャデータなどのデータである。音データ744は、プレイヤオブジェクト(108,202,304など)やノンプレイヤオブジェクト(104,106,204,206,210,302,306など)が発生ないし発声する音(効果音,音声,擬声音)やプレイヤに入力のタイミングを教示するための音楽についてのデータ(たとえば、MIDIデータ)である。
【0138】
設定入力テーブルデータ746は、設定入力タイミング(ティック数)と当該設定入力タイミングにおける設定入力種類(アクション種類)とを予め設定したテーブルのデータである。以下、設定入力タイミングと設定入力種類とをまとめて「設定入力情報」と呼ぶことがある。具体的には、設定入力テーブルでは、図10(B)に示すように、ID(シリアル番号)に対応して、設定入力情報、すなわち、設定入力タイミングを示すティック数および設定入力種類を示すアクション種類が記述される。ただし、ティック数は、音楽の再生開始からのティック数である。たとえば、図10(B)によれば、IDが「1」の場合には、ティック数が「480」のタイミングで入力の種類として「タッチオン」が教示ないし評価される。また、IDが「2」の場合には、ティック数が「960」のタイミングで、入力の種類として「タッチオフ」が教示ないし評価される。
【0139】
なお、図10(B)に示す設定入力テーブルは単なる一例であり、仮想ゲームの種類や再生する音楽データの種類に応じて異なる設定入力テーブルが用意されるのである。
【0140】
図10(A)に戻って、チェック区間データ748は図6に示したようなチェック区間を規定するためのデータである。具体的には、設定入力テーブルにおいて、現在タイミングデータ750が示すIDに対応する設定入力タイミングのティック数の±αの区間をチェック区間として設定する。したがって、チェック区間データ748として、設定入力タイミングのティック数−αをチェック区間の開始ティック数とし、設定入力タイミングのティック数+αをチェック区間の終了ティック数とするデータが記憶される。このため、現在タイミングデータ750が示すIDが更新されると、つまり判定するべき設定入力情報が更新されると、チェック区間データ748も更新される。
【0141】
現在タイミングデータ750は、設定入力テーブルに記述された設定入力情報のうち、いずれの設定入力情報が比較対象となっているかを判断するためのデータであり、具体的には、比較対象となっている設定入力情報(設定入力タイミングおよび設定入力種類)のデータである。現在ティック数データ752は、現在のティック数を示すデータであり、音楽の再生開始から時間の経過に従って更新される。
【0142】
現在タッチ位置データ754は、タッチパネル24から入力される座標データのうち、最も新しい入力座標データである。つまり、現在のタッチ位置に対応する入力座標データである。この現在タッチ位置データ754は、入力バッファ740に記憶された入力座標データのうち、最も新しい入力座標データの複製であり、入力バッファ740に入力座標データが入力される度に、更新される。
【0143】
前回タッチ位置データ756は、現在タッチ位置データ754の1つ前に入力バッファ740に記憶された入力座標データである。つまり、前回のタッチ位置に対応する入力座標データである。この前回タッチ位置データ756は、現在タッチ位置データ754が更新されるときに、当該現在タッチ位置データ754の複製が前回タッチ位置データ756として記憶されることによって、更新される。
【0144】
移動量データ758は、前回タッチ位置データ756が示す前回のタッチ位置と、現在タッチ位置データ754が示す現在のタッチ位置との差分(距離)についてのデータである。ただし、差分ないし距離は絶対値である。
【0145】
タイミングカウンタ760は、設定入力テーブルに記憶された設定入力情報のIDをカウントするためのカウンタである。つまり、設定入力テーブルのIDを1から順にカウントする。
【0146】
タッチフラグ762は、タッチ状態(タッチオン,タッチオフ)を示すフラグであり、1ビットのレジスタで構成される。タッチフラグ762がオン(成立)であれば、レジスタにデータ値「1」が設定され、タッチフラグ762がオフ(不成立)であれば、レジスタにデータ値「0」が設定される。ただし、タッチフラグ762は、タッチ状態がタッチオフからタッチオンに変化したときに、オンされる。一方、タッチフラグ762は、タッチ状態がタッチオンからタッチオフに変化したときに、オフされる。
【0147】
擦り検知フラグ764は、擦り操作を検知可能な状態か否かを判別するためのフラグである。この擦り検知フラグ764もまた、1ビットのレジスタで構成される。擦り検知フラグ764がオンされると、レジスタにデータ値「1」が設定され、擦り検知フラグ764がオフされると、レジスタにデータ値「0」が設定される。ただし、擦り検知フラグ764は、移動量データ758が示す移動量(差分)が所定値A未満であれば、オンされ、移動量データ758が示す移動量が所定値A以上であれば、オフされる。
【0148】
なお、図示は省略するが、データ記憶領域74には、ゲームプログラムの実行に必要な他のデータが記憶されるとともに、ゲームプログラムの実行に必要な他のカウンタや他のフラグが設けられる。
【0149】
図11は、図2に示したCPUコア34のメイン処理のフロー図である。図11に示すように、CPUコア34は、メイン処理を開始すると、ステップS1で、後述する初期処理(図12参照)を実行し、次のステップS3で、音楽の再生を開始する。つまり、音データ744に含まれる音楽のデータが再生され、再生された音楽がスピーカ36a,36bから出力される。この音楽の再生開始と同時或いはほぼ同時に、CPUコア34は、別のタスクで実行する、入力バッファ処理(図15参照)を開始する。
【0150】
なお、図示は省略するが、音楽の再生を開始するとともに、ゲーム画像の生成も開始され、ゲーム画面(100,200,300など)がLCD12に表示される。また、ゲーム画面(100,200,300など)は、1フレーム毎に更新される。
【0151】
ステップS5では、現在フレーム数に対応する現在ティック数(現在ティック数データ752)を算出する。つまり、音楽の再生開始からのフレーム数に相当する時間をティック数に換算するのである。そして、ステップS7では、チェック区間がNULLかどうかを判断する。ここでは、設定入力テーブルに記述されているすべての設定入力情報についての判定をすべて終了したかどうかどうかを判断するのである。
【0152】
ステップS7で“YES”であれば、つまりチェック区間がNULLであれば、判定するべき設定入力情報が無いと判断して、そのままステップS19に進む。一方、ステップS7で“NO”であれば、つまりチェック区間がNULLでなければ、判定するべき設定入力情報が有ると判断して、ステップS9で、入力が無く、現在ティック数データ752が示す現在ティック数がチェック区間を超えたかどうかを判断する。つまり、プレイヤが入力のタイミングを逃してしまったかどうかを判断する。
【0153】
ステップS9で“NO”であれば、つまり、現在ティック数がチェック区間を超えていなければ、そのままステップS15に進む。一方、ステップS9で“YES”であれば、つまり、入力が無く、現在ティック数がチェック区間を超えていれば、ステップS11で、入力失敗処理を実行して、ステップS13で、後述するタイミング更新処理(図13参照)を実行して、ステップS15に進む。ただし、ステップS11の入力失敗処理は、何も入力しないでチェック区間が過ぎた場合についての失敗処理であり、上述したように、仮想ゲーム毎に異なる演出がなされる。
【0154】
ステップS15では、チェック区間がNULLであるかどうかを判断する。ここで、ステップS7と同じ処理を実行するのは、ステップS9−ステップS13の処理によって、設定入力テーブルに記述されているすべての設定入力情報についての判定処理を終了してしまい、タイミング更新処理によって、チェック区間にNULLが代入される場合があるからである。ステップS15で“YES”であれば、つまりチェック区間がNULLであれば、そのままステップS19に進む。一方、ステップS15で“NO”であれば、つまりチェック区間がNULLでなければ、ステップS17で、後述する入力判定処理(図14参照)を実行して、ステップS19に進む。
【0155】
ステップS19では、音楽の再生が終了したかどうかを判断する。ステップS19で“NO”であれば、つまり音楽の再生が終了していなければ、そのままステップS5に戻って、仮想ゲームを続行する。一方、ステップS19で“YES”であれば、つまり音楽の再生が終了すれば、仮想ゲームの終了と判断して、メイン処理を終了する。
【0156】
ただし、この図11に示すメイン処理のスキャンタイムは、1フレームである。また、図示は省略するが、メイン処理にて、ステップS19で“YES”となり、メイン処理を終了するときに、入力バッファ処理のタスクも終了される。
【0157】
図12は、図11に示したステップS1の初期処理のフロー図である。図12に示すように、初期処理を開始すると、ステップS31で、タッチフラグ762をオフし、ステップS33で、前回タッチ位置をクリアする。つまり、ステップS33では、前回タッチ位置データ756として、たとえばNULLを書き込む。
【0158】
続いて、ステップS35で、擦り検知フラグ764をオンし、ステップS37で、入力バッファ740をクリアし、ステップS39で、音楽についての音データ744を読み込み、ステップS41で、タイミングカウンタ760をリセットする。ここでは、タイミングカウンタ760のカウント値が初期値「0」に設定される。
【0159】
次に、ステップS43では、現在タイミングデータ750をリセットし、ステップS45で、チェック区間データ748をリセットし、そして、ステップS47で、後述するタイミング更新処理を実行して、初期処理を終了する。たとえば、ステップS43では、現在タイミングデータ750としてNULLを設定し、また、ステップS45では、チェック区間データ748としてNULLを設定する。
【0160】
図13は、図11のステップS13および図12のステップS47に示したタイミング更新処理のフロー図である。図13に示すように、CPUコア34は、タイミング更新処理を開始すると、ステップS61で、タイミングカウンタ760に1加算する。続いて、ステップS63では、設定入力テーブルにタイミングカウンタ760のカウント値が示すIDの設定入力情報が有るかどうかを判断する。つまり、判定するべき設定入力情報が有るかどうかを判断するのである。
【0161】
ステップS63で“YES”であれば、つまり設定入力テーブルにタイミングカウンタ760のカウント値が示すIDの設定入力情報が有る場合には、つまり判定するべき設定入力情報が有れば、ステップS65で、当該設定入力情報を現在タイミングデータ750に代入する。つまり、ステップS65では、設定入力情報が示す設定入力タイミングおよび設定入力種類についてのデータを現在タイミングデータ750として設定するのである。そして、ステップS67では、現在タイミングデータ750が示すティック数(設定入力タイミングのティック数)の±αの区間をチェック区間に設定して、タイミング更新処理を終了する。つまり、ステップS67では、設定入力タイミングのティック数−αをチェック区間の開始とし、設定入力タイミングのティック数+αをチェック区間の終了とするチェック区間データ748が設定される。
【0162】
一方、ステップS63で“NO”であれば、つまり設定入力テーブルにタイミングカウンタ760のカウント値が示すIDの設定入力情報が無い場合には、判定するべき設定入力情報が無ければ、ステップS69で、現在タイミングデータ750にNULLを代入し、ステップS71で、チェック区間データ748にNULLを代入して、タイミング更新処理を終了する。
【0163】
図14は、図11に示したステップS17の入力判定処理のフロー図である。図14に示すように、CPUコア34は、入力判定処理を開始すると、ステップS81で、入力バッファ740にデータ(入力座標データ)が有るかどうかを判断する。ステップS81で“NO”であれば、つまり入力バッファ740にデータが無ければ、そのままステップS97に進む。一方、ステップS81で“YES”であれば、つまり入力バッファ740にデータあれば、ステップS83で、入力バッファ740を読み込み、ステップS85で、実入力種類のデータとともに記憶されている入力ティック数のデータが示す入力ティック数が、チェック区間データ748が示すチェック区間内かどうかを判断する。
【0164】
ステップS85で“NO”であれば、つまり入力ティック数が、チェック区間データ748が示すチェック区間内でなければ、ステップS93に進む。一方、ステップS85で“YES”であれば、つまり入力ティック数が、チェック区間データ748が示すチェック区間内であれば、ステップS87で、現在タイミングデータ750が示す設定入力種類と、入力バッファ740に当該入力ティック数とともに記憶された実入力種類とが一致するかどうかを判断する。
【0165】
ステップS87で“NO”であれば、つまり現在タイミングデータ750が示す設定入力種類と、入力バッファ740に当該入力ティック数とともに記憶された実入力種類とが一致しなければ、ステップS93に進む。一方、ステップS87で“YES”であれば、つまり現在タイミングデータ750が示す設定入力種類と、入力バッファ740に当該入力ティック数とともに記憶された実入力種類とが一致すれば、ステップS89で、入力成功処理を実行し、ステップS91で、図13に示すフロー図を用いて説明したタイミング更新処理を実行して、ステップS97に進む。
【0166】
ステップS93では、入力失敗かどうかを判断する。たとえば、プレイヤの入力がチェック区間外に有り、タイミングのずれにより入力失敗と判断されたり、プイレヤの入力がチェック区間内に有るが、入力種類の誤りにより入力失敗と判断されたりする場合がある。ただし、図8のゲーム画面300の例を用いて説明した仮想ゲームの場合のように、3つの入力を連続して成功させる必要がある場合に、1番目や2番目の入力に失敗すると、その後の入力は無視または無効にされるため、ステップS93で、入力失敗かどうかを判断して、入力を無視または無効にする場合には、ステップS93で“NO”と判断するようにしてある。また、たとえば、弾き操作のみを入力とするゲームをプレイする場合であっても、弾き操作の前には、必ずタッチオンの入力が検出される。したがって、このように、弾き操作のみを入力とするゲームにおいては、タッチオンの入力は無視または無効にされ、かかる場合にも、ステップS93で“NO”と判断するようにしてある。同様に、タッチオン(またはタッチオフ)のみを入力とするゲームをプレイする場合には、その前に検出されるタッチオフ(またはタッチオン)の入力は無視または無効にされる。
【0167】
ステップS93で“NO”であれば、つまり入力失敗で無く、入力を無視または無効にする場合には、そのままステップS97に進む。一方、ステップS93で“YES”であれば、つまり入力失敗であれば、ステップS95で、入力失敗処理を実行して、ステップS97に進む。ただし、ステップS95の入力失敗処理は、入力がチェック区間外に有った場合や、入力がチェック区間内に有るが、当該入力種類が誤っている場合についての失敗処理であり、上述したように、仮想ゲーム毎に異なる演出がなされる。
【0168】
ステップS97では、入力バッファ740に、未読データが有るかどうかを判断する。つまり、CPU34は、入力判定を行っていないデータが入力バッファ740内に存在するかどうかを判断するのである。ステップS97で“YES”であれば、つまり入力バッファ740に、未読データが有れば、当該未読データの入力判定を行うべく、ステップS83に戻る。一方、ステップS97で“NO”であれば、つまり入力バッファ740に、未読データが無ければ、入力バッファ740内のすべてのデータについて入力判定を行ったと判断して、ステップS99で、入力バッファ740をクリア(消去)して、入力判定処理を終了する。
【0169】
図15は、図2に示すCPUコア34の入力バッファ処理のフロー図である。上述したように、この入力バッファ処理は、メイン処理とは別のタスクで実行され、そのスキャンタイムはメイン処理(1フレーム)の4分の1である。この入力バッファ処理によって、入力座標が検出されるとともに、実入力種類が判別される。
【0170】
図15に示すように、入力バッファ処理を開始すると、ステップS121で、座標入力を検出する。つまり、タッチパネル24からの入力座標データが有るか否かを検出し、入力座標データが有る場合には、当該入力座標データを入力バッファ740に記憶する。
【0171】
続くステップS123では、現在タッチ位置を前回タッチ位置に代入する。つまり、CPUコア34は、現在タッチ位置データ754の複製を全体タッチ位置データ756としてデータ記憶領域74に記憶する(更新する)。次に、ステップS125では、検出した座標位置を現在タッチ位置に代入する。つまり、CPUコア34は、今回検出して入力バッファ740に記憶された最新の入力座標データを、現在タッチ位置データ754としてデータ記憶領域74に記憶する(更新する)。
【0172】
そして、ステップS127では、タッチしているかどうかを判断する。つまり、ステップS121で、入力座標データが検出されたかどうかを判断する。ステップS127で“YES”であれば、つまり入力座標データが検出され、タッチしていると判断した場合には、ステップS129で、後述する接触処理(図16参照)を実行して、ステップS121に戻る。一方、ステップS127で“NO”であれば、つまり入力座標データが検出されず、タッチしていないと判断した場合には、ステップS131で、後述する非接触処理(図17参照)を実行して、ステップS121に戻る。
【0173】
図16は、図15に示したステップS129の接触処理のフロー図である。図16に示すように、CPUコア34は接触処理を開始すると、ステップS141で、タッチフラグ762がオンであるかどうかを判断する。つまり、CPU34は、タッチオンの状態が継続しているかどうかを判断するのである。ステップS141で“YES”であれば、つまりタッチフラグ762がオンであれば、タッチオンの状態が継続していると判断して、ステップS143で、前回タッチ位置と現在タッチ位置との差分により移動量を算出する。つまり、CPUコア34は、前回タッチ位置データ756が示す前回タッチ位置と、現在タッチ位置データ754が示す現在タッチ位置との差分から、移動量データ758を算出する。以下、同様である。
【0174】
続くステップS145では、擦り検知フラグ764がオンであるかどうかを判断する。ステップS145で“YES”であれば、つまり擦り検知フラグ764がオンであれば、ステップS147で、移動量データ758が示す移動量が所定値A以上かどうかを判断する。つまり、タッチオンした状態が継続しており、一定時間(ここでは、1/4フレーム)における移動量が所定値A以上であれば、一定の速度以上になったと判断して、擦り操作の開始を検出する。つまり、所定値A(一定の速度)は擦り操作の開始を検出するための値であり、試験等によって経験的に得られる。ただし、タッチパネル24上をプレイヤが繰り返し往復するようにスライド操作する場合における1回の往路または復路に相当するスライド操作を擦り操作として判断するため、後述するように、CPUコア34は、一定の速度未満になるまでは(S153で“YES”)、1回の擦り操作が継続していると判断する。
【0175】
ステップS147で“NO”であれば、つまり移動量データ758が示す移動量が所定値A未満であれば、擦り操作を開始していない或いは擦り操作ではないと判断して、そのまま接触処理を終了する。つまり、図15に示した入力バッファ処理にリターンする。一方、ステップS147で“YES”であれば、つまり移動量データ758が示す移動量が所定値A以上であれば、実入力種類が擦り操作であると判別して、ステップS149で、入力ティック数とともに「擦り」を入力バッファ740に追加登録する。つまり、ここでは、図15に示したステップS121で検出された入力座標データに対して、入力ティック数のデータおよび「擦り操作」の情報(識別情報など)を追加する。以下、入力種類を入力バッファ740に追加登録する場合について同様である。そして、ステップS151で、擦り検知フラグ764をオフして、入力バッファ処理にリターンする。
【0176】
また、ステップS145で“NO”であれば、つまり擦り検知フラグ764がオフであれば、擦り操作中であると判断して、ステップS153で、移動量データ758が示す移動量が所定値A未満かどうかを判断する。ここでは、CPUコア34は、上述したように、1回の擦り操作が終了したかどうかを判断するのである。ステップS153で“NO”であれば、つまり移動量データ758が示す移動量が所定値A以上であれば、擦り操作が継続している判断して、そのまま入力バッファ処理にリターンする。一方、ステップS153で“YES”であれば、つまり移動量データ758が示す移動量が所定値A未満であれば、擦り操作を終了したと判断して、次の擦り操作を検知可能にするべく、ステップS155で、擦り検知フラグ764をオンして、入力バッファ処理にリターンする。
【0177】
また、ステップS141で“NO”であれば、つまりタッチフラグ762がオフであれば、タッチオフの状態からタッチオンされたと判断する。つまり、実入力種類がタッチオンであると判別する。したがって、ステップS157で、入力ティック数とともに「タッチオン」を入力バッファ740に追加登録する。次のステップS159では、擦り検知フラグ764をオンし、ステップS161で、移動量データ758をクリアし、そして、ステップS163で、タッチフラグ762をオンして、入力バッファ処理にリターンする。つまり、ステップS159−S163の処理によって、擦り操作の検知可能な状態にしてある。
【0178】
図17は、図15に示したステップS131の非接触処理のフロー図である。図17に示すように、CPUコア34は非接触処理を開始すると、ステップS171で、タッチフラグ762がオンであるかどうかを判断する。ここでは、CPUコア34は、タッチオンの状態からタッチオフになったかどうかを判断する。ステップS171で“NO”であれば、つまりタッチフラグ762がオフであれば、タッチオフの状態が継続しており、何ら入力が無いと判断して、非接触処理を終了する。つまり、図15に示した入力バッファ処理にリターンする。
【0179】
一方、ステップS171で“YES”であれば、つまりタッチフラグ762がオンであれば、タッチオンの状態からタッチオフになったと判断して、ステップS172で、前回タッチ位置と現在タッチ位置との差分により移動量(移動量データ758)を算出する。そして、ステップS173で、移動量データ758が示す移動量が所定値B以下であるかどうかを判断する。ここで、所定値Bは弾き操作かどうかを判別するための値であり、試験等により経験的に決定される。便宜上、所定値Aと所定値Bとは異なる値のように表記してあるが、同じ値であることも有り得る。
【0180】
ステップS173で“YES”であれば、つまり移動量データ758が示す移動量が所定値B以下であれば、実入力種類がタッチオフであると判別して、ステップS175で、入力ティック数とともに「タッチオフ」を入力バッファ740に追加登録し、ステップS179で、タッチフラグ762をオフして、入力バッファ処理にリターンする。一方、ステップS173で“NO”であれば、つまり移動量データ758が示す移動量が所定値Bを超えていれば、実入力種類が弾き操作であると判別して、ステップS177で、入力ティック数とともに「弾き」を入力バッファに追加登録して、ステップS179に進む。
【0181】
この実施例によれば、ゲーム画面や音楽に合わせて、単にタッチオンするだけでなく、タッチオフしたり、弾き操作したり、擦り操作したりするので、入力のバリエーションが豊富であり、ゲームの面白さを増大させることができる。
【0182】
また、この実施例によれば、プレイヤの入力のタイミングおよび入力の種類が、予め設定されている入力のタイミングおよび入力の種類と一致する度合いに応じて異なる処理を実行するので、単にタイミングを計るだけでなく、入力種類の正確さもその後の処理に反映させることができる。
【0183】
なお、この実施例では、ポインティングデバイスとして、タッチパネルを用いるようにしたが、ペンタブレット、タッチパッド、コンピュータマウスのような他のポインティングデバイスを用いることも可能である。ただし、ペンタブレットやコンピュータマウスを用いる場合には、タッチオン、タッチオフ、弾き操作および擦り操作の判別方法を変更する必要がある。
【0184】
また、ゲーム装置の構成は、上述の実施例の構成に限定されるべきでない。たとえば、LCDは1つでもよく、タッチパネルは2つのLCDのそれぞれに設けるようにしてもよい。さらには、タッチパネルはゲーム装置に接続される周辺機器であっても良い。
【図面の簡単な説明】
【0185】
【図1】図1はこの発明のゲーム装置の一実施例を示す図解図である。
【図2】図2は図1に示すゲーム装置の電気的な構成を示すブロック図である。
【図3】図3は図1に示すゲーム装置を用いてゲームプレイする場合の使用状態を示す図解図である。
【図4】図4は図3に示すゲーム装置に表示される或る仮想ゲームのゲーム画面の例を示す図解図である。
【図5】図5は図3に示すゲーム装置に表示される或る仮想ゲームのゲーム画面の他の例を示す図解図である。
【図6】図6はプレイヤの実入力タイミングをチェックするためのチェック区間を説明するための図解図である。
【図7】図7は他の仮想ゲームのゲーム画面の例を示す図解図である。
【図8】図8はその他の仮想ゲームのゲーム画面の例を示す図解図である。
【図9】図9は図2に示すRAMのメモリマップの一例を示す図解図である。
【図10】図10は図9に示すデータ記憶領域の具体的な内容と設定入力テーブルの内容とを示す図解図である。
【図11】図11は図2に示すCPUコアのメイン処理のフロー図である。
【図12】図12は図2に示すCPUコアの初期処理のフロー図である。
【図13】図13は図2に示すCPUコアのタイミング更新処理のフロー図である。
【図14】図14は図2に示すCPUコアの入力判定処理のフロー図である。
【図15】図15は図2に示すCPUコアの入力バッファ処理のロー図である。
【図16】図16は図2に示すCPUコアの接触処理のフロー図である。
【図17】図17は図2に示すCPUコアの非接触処理のフロー図である。
【符号の説明】
【0186】
10 …ゲーム装置
12,14 …LCD
16,16a,16b …ハウジング
22 …操作スイッチ
24 …タッチパネル
26 …スティック
28 …メモリカード
28a …ROM
28b,42 …RAM
34 …CPUコア
36a,36b …スピーカ
44,46 …GPU
48 …I/F回路
50 …LCDコントローラ
52,54 …VRAM

【特許請求の範囲】
【請求項1】
ポインティングデバイスからの入力を受け取り可能な情報処理装置のコンピュータで実行される情報処理プログラムであって、
前記コンピュータに、
前記ポインティングデバイスによって指示された指示座標を記憶手段に記憶する指示座標記憶ステップ、
前記指示座標記憶ステップによって記憶された指示座標に基づいて、入力のタイミングと当該入力の種類とを決定する入力決定ステップ、
予め定められた入力のタイミングおよび入力の種類と、前記入力決定ステップによって決定された入力のタイミングおよび入力の種類との比較を行う入力比較ステップ、および
前記入力比較ステップによって比較された結果に応じて所定の処理を実行する処理実行ステップを実行させる、情報処理プログラム。
【請求項2】
前記ポインティングデバイスはタッチパネルである、請求項1記載の情報処理プログラム。
【請求項3】
前記入力の種類とは、前記タッチパネルがタッチされているか否かの状態の遷移が生じた際の状況により判別されたものを少なくとも含む、請求項2記載の情報処理プログラム。
【請求項4】
前記入力決定ステップによって決定された入力のタイミングとは、前記タッチパネルがタッチされているか否かの状態の遷移が生じたタイミングを少なくとも含む、請求項3記載の情報処理プログラム。
【請求項5】
前記タッチパネルをタッチしていない状態からタッチしている状態へと遷移したことを判定するタッチオン判定ステップ、および
前記タッチパネルをタッチしている状態からタッチしていない状態へと遷移したことを判定するタッチオフ判定ステップを前記コンピュータにさらに実行させ、
前記入力決定ステップは、前記タッチオン判定ステップで遷移したと判定された場合に前記入力の種類を第1の種類に決定し、前記タッチオフ判定ステップで遷移したと判定された場合に前記入力の種類を第2の種類に決定する、請求項2または3記載の情報処理プログラム。
【請求項6】
前記入力決定ステップによって決定された入力のタイミングは、前記入力の種類が第1の種類である場合には、前記タッチオン判定ステップで遷移したと判定されたタイミングであり、前記入力の種類が第2の種類である場合には、前記タッチオフ判定ステップで遷移したと判定されたタイミングである、請求項5記載の情報処理プログラム。
【請求項7】
前記タッチオフ判定ステップで遷移したと判定された際に、前記指示座標記憶ステップによって記憶された指示座標に基づいて、前記タッチオフ判定ステップで遷移したと判定される直前の前記タッチパネル上における移動量を算出する移動量算出ステップを前記コンピュータにさらに実行させ、
前記入力決定ステップは、前記移動量算出ステップによって算出された移動量が所定値以下の場合に前記入力の種類を前記第2の種類に決定し、前記移動量算出ステップで算出された移動量が所定値より大きい場合に前記入力の種類を第3の種類に決定する、請求項6記載の情報処理プログラム。
【請求項8】
前記入力決定ステップによって決定された入力のタイミングとは、前記入力の種類が前記第1の種類である場合には、前記タッチオン判定ステップで遷移したと判定されたタイミングであり、前記入力の種類が前記第2の種類および前記第3の種類である場合には、前記タッチオフ判定ステップで遷移したと判定されたタイミングである、請求項7記載の情報処理プログラム。
【請求項9】
前記タッチパネルをタッチしている状態からタッチしていない状態へと遷移したことを判定するタッチオフ判定ステップ、および
前記タッチオフ判定ステップで遷移したと判定された際に、前記指示座標記憶ステップによって記憶された指示座標に基づいて、前記タッチオフ判定ステップで遷移したと判定される直前の前記タッチパネル上における移動量を算出する移動量算出ステップを前記コンピュータにさらに実行させ、
前記入力決定ステップは、前記移動量算出ステップで算出された移動量が所定値以下の場合に前記入力の種類を第1の種類に決定し、前記移動量算出ステップで算出された移動量が所定値より大きい場合に前記入力の種類を第2の種類に決定する、請求項2または3記載の情報処理プログラム。
【請求項10】
前記入力決定ステップによって決定された入力のタイミングとは、前記第1の種類および前記第2の種類については前記タッチオフ判定ステップで遷移したと判定されたタイミングである、請求項9記載の情報処理プログラム。
【請求項11】
前記コンピュータは、
前記入力比較ステップおよび前記処理実行ステップを第1タスクで実行し、
前記指示座標記憶ステップおよび入力決定ステップを前記第1タスクとは異なる第2タスクで実行し、
前記第2タスクの処理周期は、前記第1タスクの処理周期よりも短く設定される、請求項1記載の情報処理プログラム。
【請求項12】
前記入力決定ステップによって決定された入力のタイミングと入力の種類とを前記記憶手段に記憶する入力バッファ記憶ステップ、および
前記入力比較ステップおよび前記処理実行ステップが実行された後に、前記記憶手段に記憶された入力のタイミングと入力の種類とを消去する入力バッファ消去ステップを前記コンピュータにさらに実行させ、
前記入力比較ステップおよび前記処理実行ステップは、前記記憶手段に記憶されたすべての入力のタイミングと入力の種類とを処理対象とする、請求項1または11記載の情報処理プログラム。
【請求項13】
前記処理実行ステップは、前記入力比較ステップによって比較された結果に応じて、前記入力を評価する評価ステップを含み、前記評価ステップの評価に応じて前記所定の処理を実行する、請求項1記載の情報処理プログラム。
【請求項14】
前記入力比較ステップは、予め定められた入力のタイミングおよび入力の種類と、前記入力決定ステップによって決定された入力のタイミングおよび入力の種類との一致度を検出する一致度検出ステップを含み、
前記処理実行ステップは、前記一致度検出ステップによって検出された一致度に応じて、前記所定の処理を実行する、請求項1記載の情報処理プログラム。
【請求項15】
前記処理実行ステップは、前記入力比較ステップによって比較された結果に応じて、前記入力を評価する評価ステップを含み、前記評価ステップの評価に応じて、前記所定の処理を実行する、請求項14記載の情報処理プログラム。
【請求項16】
前記評価ステップは、前記一致度検出ステップによって検出された一致度が高いほど、前記評価ステップは高い評価をする、請求項15記載の情報処理プログラム。
【請求項17】
予め定められた入力のタイミングと入力の種類とを教示する教示ステップを前記コンピュータにさらに実行させ、
前記入力比較ステップは、前記教示ステップによって教示された入力のタイミングおよび入力の種類と、前記入力決定ステップによって決定された入力のタイミングおよび入力の種類との比較を行う、請求項1記載の情報処理プログラム。
【請求項18】
前記教示ステップは、音楽および映像の少なくとも一方を出力することにより、前記予め定められた入力のタイミングと入力の種類とを教示する、請求項17記載の情報処理プログラム。
【請求項19】
ポインティングデバイスからの入力を受け取り可能な情報処理装置であって、
前記ポインティングデバイスによって指示された指示座標を記憶手段に記憶する指示座標記憶手段、
前記指示座標記憶手段によって記憶された指示座標に基づいて、入力のタイミングと当該入力の種類とを決定する入力決定手段、
予め定められた入力のタイミングおよび入力の種類と、前記入力決定ステップによって決定された入力のタイミングおよび入力の種類との比較を行う入力比較手段、および
前記入力比較手段によって比較された結果に応じて所定の処理を実行する処理実行手段を備える、情報処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2009−276829(P2009−276829A)
【公開日】平成21年11月26日(2009.11.26)
【国際特許分類】
【出願番号】特願2008−124807(P2008−124807)
【出願日】平成20年5月12日(2008.5.12)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】