以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム専用の情報処理装置に本発明が適用される実施形態を説明する。しかしながら、各種のコンピュータ、PDA(Personal Data Assistants)、携帯電話などの情報処理装置にも同様に本発明を適用することができる。すなわち、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。ここで、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することができる。従って、これらの実施形態も本発明の範囲に含まれる。
(第1の実施形態)
(情報処理装置の説明)
図1は、本発明の第1の実施形態に係るゲーム装置が実現される典型的な情報処理装置100の概要構成を示す模式図である。
情報処理装置100は、CPU(Central Processing Unit)101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、インターフェース104と、マット型コントローラ105と、外部メモリ106と、画像処理部107と、DVD(Digital Versatile Disk)−ROMドライブ108と、NIC(Network Interface Card)109と、音声処理部110と、RTC(Real Time Clock)111と、モニター112と、を備える。
ゲーム制御用のプログラムおよびデータを記憶したDVD−ROMがDVD−ROMドライブ108に装着されている状態において、情報処理装置100の電源が投入されると、ゲーム制御用のプログラムが実行される。これにより、本実施形態に係るゲーム装置が実現される。なお、本実施形態に係るゲーム装置は、ダンスゲームを制御するゲーム装置である。
CPU 101は、情報処理装置100全体の動作を制御する。CPU 101は、各構成要素と接続され、制御信号やデータをやりとりする。CPU 101は、各構成要素から、各種のデータを取得する。CPU 101は、当該各種のデータを、種々の演算により加工する。CPU 101は、加工結果を示すデータや制御信号を、各構成要素に供給する。CPU 101は、内部にキャッシュやレジスタを備える。CPU 101に取得された各種のデータは、一旦キャッシュに格納される。その後、当該各種のデータは、レジスタに取り出されてから各種の演算が施される。
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録される。IPLが実行されることにより、DVD−ROMに記録されたプログラムがRAM 103に読み出され、CPU 101によるプログラムの実行が開始される。また、ROM 102には、情報処理装置100全体の動作制御に必要なオペレーティングシステムのプログラムやデータが記録される。
RAM 103は、データやプログラムを一時的に記憶する。RAM 103には、DVD−ROMから読み出されたプログラムやデータなどが保持される。このほか、RAM 103は、外部機器に伝達する情報や、外部機器から伝達された情報も、一時的に記憶する。
マット型コントローラ105は、インターフェース104を介して情報処理装置100に接続される。マット型コントローラ105は、プレイヤーからの各種の操作入力を受け付ける。図2は、マット型コントローラ105の外観を示す説明図である。以下、本図を参照してマット型コントローラ105を説明する。
図2は、床面に設置されたマット型コントローラ105を真上から眺めたときのマット型コントローラ105の概略図である。マット型コントローラ105の所定領域には、「左」を指示する入力をプレイヤーから受け付ける方向ボタン201L、「下」を指示する入力をプレイヤーから受け付ける方向ボタン201D、「上」を指示する入力をプレイヤーから受け付ける方向ボタン201U、「右」を指示する入力をプレイヤーから受け付ける方向ボタン201R、「決定」を指示する入力をプレイヤーから受け付ける決定ボタン202、「取消」を指示する入力をプレイヤーから受け付ける取消ボタン203、がそれぞれ配置されている。プレイヤーは、方向ボタン201L、201D、201U、201R(以下、必要に応じて方向ボタン201と総称する。)、決定ボタン202、ならびに、取消ボタン203、を任意のタイミングで押圧することができる。CPU 101は、方向ボタン201、決定ボタン202、ならびに、取消ボタン203、のそれぞれについて、ボタンが押圧されている状態であるか否かを判別する。
本実施形態では、マット型コントローラ105は6個のボタンを備えているものとして説明する。しかしながら、ボタンの数は6個に限定されず、5個以下あるいは7個以上でもよい。また、マット型コントローラ105は、床面に配置する形状に限られない。例えば、マット型コントローラ105は、手に持って操作するいわゆるタッチパッドの形状や、手で把持する形状であってもよい。
外部メモリ106は、インターフェース104を介して、情報処理装置100に着脱自在に接続される。外部メモリ106には、ゲームの進行状態を示すデータなどが書き換え可能に記憶される。プレイヤーは、例えば、マット型コントローラ105を介して指示入力を行うことにより、これらのデータを適宜外部メモリ106に記録することができる。
DVD−ROMドライブ108は、CPU 101の制御によって、これに装着されたDVD−ROMに対する読み出し処理を行う。読み出し処理により読み出されたプログラムやデータは、RAM 103等に一時的に記憶される。DVD−ROMドライブ108に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随するデータ(画像データ、音声データなど)とが記録される。
画像処理部107は、DVD−ROMから読み出されたデータを加工する。画像処理部107は、画像演算プロセッサ(図示せず)と、フレームメモリ(図示せず)と、を備える。加工処理は、画像演算プロセッサによって実行される。加工されたデータ(画像情報)はフレームメモリ(図示せず)に記録される。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換される。ビデオ信号に変換された画像情報は、画像処理部107に接続されたモニター112に出力される。これにより、各種の画像表示が可能となる。
画像演算プロセッサは、2次元の画像の重ね合わせ演算、αブレンディング等の透過演算、ならびに、各種の飽和演算などを高速に実行する。また、画像演算プロセッサは、レンダリング画像を得る演算の高速実行も可能である。レンダリング画像は、所定の視点位置から三次元仮想空間に配置されたポリゴンを俯瞰した様子を表す画像である。レンダリング画像は、ポリゴン情報を、Zバッファ法によりレンダリングすることにより生成される。なお、ポリゴン情報は、三次元仮想空間に配置され、各種のテクスチャが付加されたポリゴンを表す情報である。画像演算プロセッサは、点光源や平行光源、円錐光源などの典型的な(正)光源によってポリゴンが照らされる度合を計算する機能を有する。これらの機能は、ライブラリ化もしくはハードウェア化されている。これにより、これらの計算の高速化が実現されている。
さらに、画像演算プロセッサは、文字の形状を定義するフォント情報にしたがって、文字列を、2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画したりする。画像演算プロセッサは、ROM 102に記録されている一般的なフォント情報を利用しても良いし、DVD−ROMに記録されている専用のフォント情報を利用してもよい。なお、画像演算プロセッサは、適宜、CPU 101と協調動作して、上述した各種の処理を実行する。
NIC 109は、情報処理装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものである。NIC 109は、例えば、LAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格に従うインターフェース(図示せず)により構成される。あるいは、NIC 109は、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、CPU 101との仲立ちを行うインターフェース(図示せず)により構成される。
音声処理部110は、DVD−ROMから読み出した音声データをアナログ音声信号に変換する。音声処理部110は、これに接続されたスピーカ(図示せず)にアナログ音声信号を供給し、当該アナログ音声信号に基づく音声をスピーカに出力させる。また、音声処理部110は、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。音声処理部110は、例えば、BGMやカラオケとして再生される楽曲の音や、プレイヤーのボタン操作に合わせて再生される効果音などを処理する。
RTC 111は、水晶振動子や発振回路などを備える計時用のデバイスである。RTC 111は、内蔵電池から電源を供給され、情報処理装置100の電源がオフのときでも動作し続ける。
モニター112は、画像処理部107から供給されたビデオ信号に従って画像を表示する。モニター112は、例えば、液晶ディスプレイ、プラズマディスプレイ、CRTなどにより構成される。
このほか、情報処理装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ108に装着されるDVD−ROM等と同じ機能を果たすように構成してもよい。なお、情報処理装置100は、汎用のパーソナルコンピュータとしても利用することができる。この場合、キーボード(図示せず)やマウス(図示せず)などが入力装置として利用される。
(ゲーム装置の説明)
次に、本実施形態に係るゲーム装置300の機能について、図面を参照して説明する。まず、図3を参照して、本発明の実施形態に係るゲーム装置300の構成を説明する。なお、本実施形態に係るゲーム装置300は、情報処理装置100と、ゲーム制御用のプログラムが格納されたDVD−ROMと、から構成される。つまり、DVD−ROMドライブ108に当該DVD−ROMが装着されている状態において、情報処理装置100の電源が投入されると、本実施形態に係るゲーム装置300が構成される。
図3に示すように、ゲーム装置300は、記憶部301と、表示部302と、受付部303と、算出部304と、を備える。
記憶部301には、プレイヤーが操作入力を与えるべき時刻を表す課題時刻が複数記憶される。記憶部301は、例えば、DVD−ROMドライブ108とDVD−ROMとにより構成される。
表示部302は、照準図形と標的図形と影図形とを画面に表示する。なお、表示部302は、照準図形と標的図形とのうちの少なくとも一方を、所定の移動経路に沿って、所定の移動速度で移動させる。ここで、表示部302は、課題時刻に、照準図形と標的図形とが重なるようにする。表示部302は、例えば、CPU 101と画像処理部107とモニター112とにより構成される。
受付部303は、プレイヤーからの操作入力を受け付ける。受付部303は、例えば、マット型コントローラ105により構成される。
算出部304は、操作時刻と課題時刻との時刻差を算出する。ここで、当該操作時刻は、操作入力が受け付けられた時刻である。また、当該課題時刻は、記憶部301に記憶されている複数の課題時刻のうち、当該操作時刻と最も近い課題時刻である。算出部304は、例えば、CPU 101とRTC 111とにより構成される。
ここで、表示部302は、複数の影図形のそれぞれを画面内に表示する位置を、当該影図形に対する標的図形が当該画面内において表示される位置から所定のシフト量だけずれた位置とする。当該所定のシフト量は、算出部により算出された時刻差に基づいて設定される。
次に、本実施形態に係るゲーム装置300により表示される画面について説明する。ゲーム装置300は、ダンスゲームに必要な種々の情報を表示する。ゲーム装置300は、例えば、ゲーム開始前に、楽曲リスト等を表示し、プレイヤーに所望の楽曲を選択するように促す。そして、楽曲が選択されると、ダンスゲームが開始される。そして、ゲーム装置300は、プレイヤーがダンスゲームをプレイしている間、例えば、図4に示すような画面400を表示する。
画面400には、照準図形401L、401D、401U、401R(以下、必要に応じてこれらを総称して照準図形401という。)、標的図形402L、402D、402U、402R(以下、必要に応じてこれらを総称して標的図形402という。)、影図形403L、403D、403U、403R(以下、必要に応じてこれらを総称して影図形403という。)、ゲージ画像404、スコア画像405などが表示される。
照準図形401は、照準を表す図形である。照準図形401は、踏まれるべき方向ボタン201の種類の分だけ用意される。具体的には、照準図形401として、照準図形401L、401D、401U、401Rの4種類が用意される。照準図形401は、画面400の固定位置に表示される。
標的図形402は、標的を表す図形である。標的図形402は、課題となる操作入力の種類やタイミング(方向ボタン201を踏むタイミング)をプレイヤーに示すための図形である。標的図形402は、例えば、演奏される楽曲に合わせて、画面400の下方から上方へ伸びる所定の経路上を所定の速度で移動する。また、標的図形402は、当該標的図形402に対応付けられる課題時刻になったときに、照準図形401と重なるように表示される。標的図形402は、踏まれるべき方向ボタン201の種類の分だけ用意される。具体的には、標的図形402として、標的図形402L、402D、402U、402Rの4種類が用意される。
影図形403は、標的図形402により表される標的の影を表す図形である。影図形403は、演奏される楽曲に合わせて、標的図形402とともに、例えば、画面400の下方から上方へスクロール表示される。影図形403は、踏まれるべき方向ボタン201の種類の分だけ用意される。具体的には、影図形403として、影図形403L、403D、403U、403Rの4種類が用意される。
なお、プレイヤーがゲームをプレイしている間、標的図形402が照準図形401に重なったタイミングで、踏まれるべき方向ボタン201がプレイヤーにより踏まれると、踏まれたタイミングの良さに応じた得点が加算される。
ゲージ画像404は、プレイ中の楽曲全体における現在演奏されている位置などを表すゲージを示す画像である。
スコア画像405は、現在の楽曲の演奏が開始されてから現在に至るまでに加算された得点の累計(以下「合計得点」という。)を示す画像である。
本実施形態では、このようなゲーム制御処理を実現するためのデータとして、楽曲データ列と課題データとが、例えば、DVD−ROMドライブ108に装着されるDVD−ROMにあらかじめ記録されており、必要に応じてRAM 103に読み出されるものとする。
楽曲データ列は、BGMとして再生される楽曲を表現するデータ列である。
課題データについては、図5を参照して詳細に説明する。図5は、RAM 103の課題データ領域に読み出された課題データの様子を示す模式図である。
本実施形態では、課題データ500は、複数のレコード502からなる表501と、優判定時間511(この値をTexとする。)と、良判定時間512(この値をTgdとする。)と、可判定時間513(この値をTokとする。)と、終了時刻521(この値をtendとする。)と、を含むデータである。各レコード502は、課題時刻503(この値をttaskとする。)、操作入力の種類504、標的の状態505を含む。
課題時刻503は、照準図形401と標的図形402とが完全に重なる時刻であって、プレイヤーが当該標的図形402について操作入力を行う(方向ボタン201を踏む)理想的な時刻を示す。
操作入力の種類504は、課題時刻503に至ったときに、プレイヤーが、方向ボタン201L、201D、201U、201Rのうち、どれを踏むべきかを、「1」〜「4」の数字により示すデータである。例えば、“左”を指示する操作入力をプレイヤーから受け付ける方向ボタン201Lは「1」、“下”を指示する操作入力をプレイヤーから受け付ける方向ボタン201Dは「2」、“上”を指示する操作入力をプレイヤーから受け付ける方向ボタン201Uは「3」、“右”を指示する操作入力をプレイヤーから受け付ける方向ボタン201Rは「4」でそれぞれ示される。
優判定時間511は、操作入力が受け付けられた時刻(以下「操作時刻(この値をtsとする。)」という。)と課題時刻503との時刻差(この値をTsubとする。)が、何以下である場合まで優れている(以下「優」という。)と判定されるかを示す閾時間である。
良判定時間512は、操作時刻と課題時刻503との時刻差が、何以下である場合まで良好である(以下「良」という。)と判定されるかを示す閾時間である。
可判定時間513は、操作時刻と課題時刻503との時刻差が、何以下である場合まで許容される(以下「可」という。)と判定されるかを示す閾時間である。
終了時刻521は、楽曲に対応するBGMの演奏が終了する時刻である。
課題時刻503、操作入力の種類504、標的の状態505、優判定時間511、良判定時間512、可判定時間513、ならびに、終了時刻521は、いずれもDVD−ROMからRAM 103に読み出される情報である。ここで、DVD−ROMには、標的の状態505として、「未処理」を表す「0」が記録されているものとする。なお、RAM 103に読み出された標的の状態505は、後述する処理で、「優」を表す「3」、「良」を表す「2」、「可」を表す「1」、「失敗」を表す「−1」等の値で上書きされる。なお、「優」、「良」、「可」は、いずれも「成功」を示すが、操作入力のタイミングの良さは「優」→「良」→「可」の順である。
課題時刻503、優判定時間511、良判定時間512、可判定時間513、ならびに、終了時刻521は、いずれもゲーム中画面400の表示更新レートである垂直同期割込の周期(典型的には1/60秒)を単位とした数値により表現される。なお、課題時刻503や終了時刻521は、いずれも、ゲームが開始されてからの垂直同期割込の回数により表現される。以下、本実施形態においては、時刻や時間の単位は、垂直同期割込の周期を単位とした数値により表現される。
ここで、図6を参照して、レコード502により表される課題に対する操作入力を判定する手法の一例について説明する。
ttaskにより表される課題時刻からTexにより表される優判定時間だけ前の時刻(以下「優判定開始時刻(この値をtexstという。)」という。)と、ttaskにより表される課題時刻からTexにより表される優判定時間だけ後の時刻(以下「優判定終了時刻(この値をtexendという。)」という。)と、の間の期間(以下「優判定期間」という。)に、適切な操作入力がなされた場合、「優」と判定される。
ttaskにより表される課題時刻からTgdにより表される良判定時間だけ前の時刻(以下「良判定開始時刻(この値をtgdstという。)」という。)と、ttaskにより表される課題時刻からTgdにより表される良判定時間だけ後の時刻(以下「良判定終了時刻(この値をtgdendという。)」という。)と、の間の期間のうち、優判定期間を除外した期間(以下「良判定期間」という。)に、適切な操作入力がなされた場合、「良」と判定される。
ttaskにより表される課題時刻からTokにより表される可判定時間だけ前の時刻(以下「可判定開始時刻(この値をtokstという。)」という。)と、ttaskにより表される課題時刻からTokにより表される可判定時間だけ後の時刻(以下「可判定終了時刻(この値をtokendという。)」という。)と、の間の期間のうち、良判定期間を除外した期間(以下「可判定期間」という。)に、適切な操作入力がなされた場合、「可」と判定される。
tokstにより表される可判定開始時刻と、tokendにより表される可判定終了時刻と、の間の期間以外の期間(以下「失敗判定期間」という。)に、適切な操作入力がなされた場合、「失敗」と判定される。
なお、本実施形態においては、操作入力の種類504により表される方向ボタン201が、プレイヤーにより踏まれた方向ボタン201と一致するレコード502のうち、課題時刻503が操作時刻と最も近いレコード502が判定対象のレコード502に設定される。ただし、標的の状態505が「未処理」でないレコード502は、判定対象から除外される。また、操作時刻と課題時刻503との時刻差が、所定の閾時間以上のレコード502は、判定対象から除外される。
次に、図7を参照して、画面400内における、影図形の位置を決定する手法について説明する。なお、本実施形態においては、三次元仮想空間内に配置される、主投影面、影投影面、視点、ならびに、光源を用いて、画面400に表示される画像を生成する例を説明する。
図7に示すように、三次元仮想空間内には、視点701、光源702、主投影面703、影投影面704が配置される。
視点701は、主投影面703を観察する視点である。
光源702は、主投影面703に投影されたオブジェクトを、さらに、影投影面704に投影させるために、主投影面703に光を照射する光源である。
主投影面703は、視点701を基準点とした場合に、三次元仮想空間に配置されたオブジェクトが、投影される面である。
影投影面704は、光源702を基準点とした場合に、主投影面703に投影されたオブジェクトが、さらに投影される面である。
図7には、三次元仮想空間に配置されるオブジェクトが標的である例を示す。このとき、主投影面703には、標的が投影され、標的図形402が描画される。また、影投影面704には、標的図形402が投影され、影図形403が描画される。
なお、光源702を平行光線を発する光源とした場合には、主投影面703と影投影面704との間隔が変化しない限り、影図形402は、標的図形402と同じ速度で移動する。
一方、光源702を点光源とした場合は、主投影面703と影投影面704との間隔が変化しなくとも、影図形402の移動速度は一定とはならないが、標的図形402に連動して移動することに変わりはない。
ここで、視点701から主投影面703に垂直に向かう方向を、視線方向とする。
光源702を平行光源とした場合には、光源702から出射される光は、視線方向とは異なる照射方向に向かって進むものとすることが望ましい。
光源702を点光源とした場合には、光源702から出射される光の殆どは、視線方向とは異なる照射方向に向かって進むものとなる。
また、影投影面704は、主投影面703を、視線方向に向かって、Dにより示される面間隔だけ移動したものである。なお、主投影面703に描画された画像と、影投影面704に描画された画像と、が合成された画像(以下「合成画像」という。)が、画面400に表示される。
ここで、合成画像においては、標的図形402と影図形403とが完全には重ならない。これは、視線方向と照射方向とが異なるためである。視点701、光源702および主投影面703の位置が不変であるものとすると、合成画像上における、標的図形402と影図形403との位置のずれ(シフト量)を示すDshiftは、影投影面704の位置、つまり、Dにより示される、主投影面703と影投影面704との面間隔に依存する。具体的には、DとDshiftとは比例する。ここで、DとDshiftとは、判定結果が良いほど小さい値となり、判定結果が悪いほど大きな値となる。
なお、影投影面704に描画された画像がRAM 103などに記憶されたのち、ゲージを表すオブジェクトやスコアを表すオブジェクトが三次元仮想空間に配置されることで、主投影面703にゲージ画像404やスコア画像405が投影(描画)される。その後、主投影面703に投影された画像とRAM 103などに記憶された画像とが合成されると、図4に示す画像が生成される。
なお、本実施形態においては、理解を容易にするため、適宜、主投影面703に投影されるオブジェクトを三次元仮想空間に配置して、主投影面703に投影することを、単に、主投影面703にオブジェクトを描画するという。
次に、本実施形態に係るゲーム装置300の動作について、図8を参照して説明する。図8は、本実施形態に係るゲーム装置300が実行するゲーム制御処理を示すフローチャートである。なお、図8に示すゲーム制御処理は、例えば、プレイヤーの操作入力により課題となる楽曲が選択された後に実行される。
まず、CPU 101は、課題データ500を、DVD−ROMからRAM 103の所定の課題データ領域に読み出す(ステップS101)。
CPU 101は、ステップS101の処理を完了すると、合計得点を初期化する(ステップS102)。具体的には、CPU 101は、RAM 103に記憶されている、合計得点を示す変数を0に初期化する。
CPU 101は、ステップS102の処理を完了すると、現在の画面更新回数(この値をtとする。)を0に初期化する(ステップS103)。具体的には、CPU 101は、RAM 103に記憶されている、画面更新回数を示す変数を0に初期化する。画面更新回数は、本実施形態では、垂直同期割込ごとに更新されて、1ずつ増加されることになる。
CPU 101は、ステップS103の処理を完了すると、音声処理部110に、課題データ500に対応付けられているBGMの再生を開始するように指示を出す(ステップS104)。BGMの音声データ列は、DVD−ROM内に、PCM(Pulse Code Modulation)形式、MP3(MPEG Layer 3)形式、Ogg Vorbis形式、MIDI(Musical Instrument Digital Interface)形式等で記録されている。
CPU 101は、ステップS104の処理を完了すると、判定処理を実行する(ステップS105)。判定処理については、図9に示すフローチャートを参照して、詳細に説明する。
まず、CPU 101は、踏まれた方向ボタン201があるか否かを判別する(ステップS201)。具体的には、CPU 101は、方向ボタン201L、201D、201U、201Rのそれぞれについて、踏まれていない状態から踏まれた状態になったか否かを判別する。
CPU 101は、踏まれた方向ボタン201があると判別すると(ステップS201:YES)、判定対象となるレコード502があるか否かを判別する(ステップS202)。判定対象となるレコード502があるか否かは、例えば、以下に示す(A)〜(D)の手順によって判別される。
(A)CPU 101は、表501を構成する全てのレコード502のうち、操作入力の種類504により表される方向ボタン201が、プレイヤーにより踏まれた方向ボタン201と一致するレコード502を抽出する。
(B)CPU 101は、(A)の手順によって抽出されたレコード502のうち、標的の状態505が「未処理」でないレコード502を抽出する。
(C)CPU 101は、(B)の手順によって抽出されたレコード502のうち、課題時刻503が、操作時刻と最も近いレコード502を抽出する。
(D)CPU 101は、操作時刻と(C)の手順によって抽出されたレコード502の課題時刻503との時刻差が、所定の閾時間未満であるか否かを判別する。
CPU 101は、(D)の手順によって、時刻差が所定の閾時間未満であると判別すると、判定対象となるレコード502があると判別する。
CPU 101は、判定対象となるレコード502があると判別すると(ステップS202:YES)、Tsub=|t−ttask|を算出する(ステップS203)。つまり、CPU 101は、操作時刻と判定対象となるレコード502の課題時刻503との時刻差を算出する。ここで、操作時刻は、現在の画面更新回数と等しく、tである。
CPU 101は、ステップS203の処理を完了すると、Tsub≦Texを満たすか否か、すなわち、プレイヤーによる操作が、優判定期間になされたか否かを判別する(ステップS204)。すなわち、CPU 101は、CPU 101は、Tsub≦Texを満たすと判別すると(ステップS204:YES)、判定対象となるレコード502の標的の状態505を「優」に更新する(ステップS205)。
一方、CPU 101は、Tsub≦Texを満たさないと判別すると(ステップS204:NO)、Tsub≦Tgdを満たすか否か、すなわち、プレイヤーによる操作が良判定区間になされたか否かを判別する(ステップS206)。CPU 101は、Tsub≦Tgdを満たすと判別すると(ステップS206:YES)、判定対象となるレコード502の標的の状態505を「良」に更新する(ステップS207)。
一方、CPU 101は、Tsub≦Tgdを満たさないと判別すると(ステップS206:NO)、Tsub≦Tokを満たすか否か、すなわち、プレイヤーによる操作が可判定区間になされたか否かを判別する(ステップS208)。CPU 101は、Tsub≦Tokを満たすと判別すると(ステップS208:YES)、判定対象となるレコード502の標的の状態505を「可」に更新する(ステップS209)。
CPU 101は、ステップS205の処理を終了した場合、ステップS207の処理を終了した場合、もしくは、ステップS209の処理を終了した場合、判定結果に対応した得点を合計得点に加算する(ステップS210)。判定結果に対応した得点は、例えば、「優」が300点、「良」が200点、「可」が100点とすることができる。CPU 101は、RAM 103に記憶されている合計得点に、当該判定結果に対応した得点を加算する。
CPU 101は、ステップS210の処理を終了すると、時刻差に応じて面間隔を更新する(ステップS211)。面間隔は、例えば、時刻差が大きいほど大きな値に設定され、時刻差が小さいほど小さな値に設定される。典型的には、面間隔は、時刻差に比例した値に設定される。面間隔を表す値は、例えば、RAM 103に記憶される。
一方、CPU 101は、Tsub≦Tokを満たさないと判別すると(ステップS208:NO)、判定対象となるレコード502の標的の状態505を「失敗」に更新する(ステップS212)。
CPU 101は、ステップS201でNOと判定した場合、ステップS202でNOと判定した場合、ステップS211の処理を終了した場合、もしくは、ステップS212の処理を終了した場合、表501内のレコード502を走査して、tokend<tを満たすレコード502が存在するか否か、すなわち、可判定終了期間内の標的がまだ残っているか否かを判別する(ステップS213)。
CPU 101は、tokend<tを満たすレコード502が存在すると判別した場合(ステップS213:YES)、標的の状態505が「未処理」であるか否かを判別する(ステップS214)。そして、CPU 101は、標的の状態505が「未処理」であると判別した場合(ステップS214:YES)、当該レコード502の標的の状態405を「失敗」に更新する(ステップS215)。
CPU 101は、tokend < tを満たすレコード502が存在しないと判別した場合(ステップS213:NO)、標的の状態505が「未処理」でないと判別した場合(ステップS214:NO)、もしくは、レコード502を失敗に更新する処理(ステップS215)を終了した場合、判定処理を終了する。
CPU 101は、判定処理(ステップS105)を終了すると、三次元仮想空間内に標的を再配置する(ステップS106)。具体的には、CPU 101は、主投影面703に投影される標的が、1画面更新回数分だけ上方に移動するように、仮想空間内に配置されている標的を移動する。ここで、主投影面703に標的が投影されると、主投影面703に標的図形402が描画され、さらに、影投影面704に標的図形402が投影されて、当該影投影面704に影図形403が描画される。なお、標的以外のオブジェクトは、影投影面704に投影されないように、一時的に、仮想空間内から除去される。
CPU 101は、ステップS106の処理を終了すると、影投影面704に投影された画像を、RAM 103に記憶させる(ステップS107)。
CPU 101は、ステップS107の処理を終了すると、三次元仮想空間内に標的以外のオブジェクトを再配置する(ステップS108)。標的以外のオブジェクトは、例えば、照準を表すオブジェクト、ゲージを表すオブジェクト、スコアを表すオブジェクト、背景を表すオブジェクトである。
CPU 101は、ステップS108の処理を終了すると、主投影面703に描画された画像に、ステップS107においてRAM 103に記憶された画像を合成する(ステップS109)。ここで、主投影面703には、照準図形401、標的図形402、ゲージ画像404、スコア画像405などが描画されている。一方、RAM 103に記憶された画像には、影画像403が描画されている。従って、CPU 101は、照準図形401、標的図形402、影図形403、ゲージ画像404、スコア画像405などが描画された合成画像を得る。
CPU 101は、ステップS109の処理を終了すると、ステップS109により得られた合成画像を表す画像信号を出力する(ステップS110)。すなわち、CPU 101は、画像処理部107を制御して、モニター112に、図4に示す画面400を表示させる信号を出力する。
CPU 101は、ステップS110の処理を終了すると、次の垂直同期まで待機する(ステップS111)。この待機の間に、ほかの処理を実行しても良い。そして、CPU 101は、次の垂直同期割り込みが発生したら、tを1つ増加させる(ステップS112)。
CPU 101は、ステップS112の処理が終了すると、t<tendであるか否か、すなわち、またBGMである楽曲の演奏が続いているか否かを、判別する(ステップS113)。CPU 101は、t<tendであると判別すると(ステップS113:YES)、ステップS105に処理を戻す。一方、CPU 101は、t<tendではないと判別すると(ステップS113:NO)、ゲーム制御処理を終了する。
ここで、標的の状態505が更新された場合、画面400において、影図形403の位置が変化する様子について説明する。
まず、画面400の初期状態として、図4に示すように、課題時刻503が900であるレコード502に対する操作入力がまさにされた状態であるものとする。このとき、課題時刻503が500であるレコード502(最後に標的の状態505が更新されたレコード)に対して求められた時刻差が中程度であったとする(典型的には、判定結果が「良」)。時刻差が中程度であった場合、主投影面703と影投影面704との面間隔Dは、図7に示す間隔であるものとする。
ここで、課題時刻503が900であるレコード502に対して求められた時刻差が大きくなったとすると(典型的には、判定結果が「可」)、主投影面703と影投影面704との面間隔Dは、図10に示すように広がる。この結果、画面400内における標的図形402から影図形403までのシフト量を示すDshiftは、図11に示すように増加する。
これに対し、課題時刻503が900であるレコード502に対して求められた時刻差が小さくなったとすると(典型的には、判定結果が「優」)、主投影面703と影投影面704との面間隔Dは、図12に示すように狭まる。この結果、画面400内における標的図形402から影図形403までのシフト量を示すDshiftは、図13に示すように減少する。
すなわち、図10および図12においては、影投影面704の移動前の位置705が点線で描かれ、移動後の影投影面704が実線で描かれている。ある判定以前には、主投影面703から面間隔Dだけ離れた位置705に影投影面704が利用されていたが、判定がなされた後は、両者の間隔が変化して、主投影面703と影投影面704が利用されるようになるのである。
図7から図10に移行した場合には、両者の面間隔Dが広くなっているので、図11に示すように、画面400に表示される標的図形402と影図形403の位置のずれも大きくなる。これは、プレイヤーの操作がより不正確になったことを意味する。
図7から図12に移行した場合には、両者の面間隔Dが狭くなっているので、図13に示すように、画面400に表示される標的図形402と影図形403の位置のずれも小さくなる。これは、プレイヤーの操作がより正確になったことを意味する。
本実施形態に係るゲーム装置300によれば、操作時刻と課題時刻503との時刻差に応じて、標的図形402に対する影図形403の画面400内における位置が変化する。このため、プレイヤーは、操作入力がどれくらい適切なタイミングでなされたかを直感的に認識することができる。なお、影図形403は、プレイヤーにより、標的図形402により表される標的の影を表す図形と認識されることが期待される。このため、本実施形態に係るゲーム装置300によれば、プレイヤーに違和感を与えずに、操作入力の適切さを知らせることができる。
(第2の実施形態)
第1の実施形態では、全ての標的図形402に、影図形403が付される例を示した。しかし、本発明において、特定の標的図形402のみに、影図形403が付されても良い。
影図形403が付される標的図形402を決定する手法は、任意である。例えば、CPU 101は、プレイヤーが注目していると考えられる標的図形402から優先的に影図形403を付すことができる。具体的には、CPU 101は、操作時刻から直後の所定個数の課題時刻503のそれぞれに対応付けられた標的図形402に影図形403を付す。なお、課題時刻503の小さい順にレコード502がソートされている場合、CPU 101は、課題時刻503の小さいレコード502から順に、操作時刻と当該レコードの課題時刻503とを比較し、操作時刻を初めて超えた課題時刻503を含むレコード502から順に抽出される所定個数のレコード502を、影図形403を付すレコード502に設定することができる。
図14に、本実施形態に係るゲーム装置300により表示される画面400を示す。
図14には、所定個数が1個である例、つまり、操作時刻の直後の課題時刻503に対応付けられた標的図形402Uのみに影図形403Uが付される例を示している。なお、本実施形態では、例えば、ステップS106において、当該標的図形402Uに対応する標的のみが三次元仮想空間に再配置され、ステップS108において、当該標的以外の全てのオブジェクトが三次元仮想空間に再配置される。
本実施形態に係るゲーム装置300によれば、プレイヤーが注目していると考えられる標的図形402に優先的に影図形403が付される。このため、表示される画面400に大幅な変更を加えることなく、プレイヤーに判定結果を分かり易く知らせることができる。
(第3の実施形態)
第1、2の実施形態では、1つの標的図形402に1つの影図形403が付される例を示した。しかし、本発明において、1つの標的図形402に複数の影図形403が付されても良い。
本実施形態では、三次元仮想空間内に、複数の光源702が配置される。ただし、複数の光源702のそれぞれから発光される光の照射方向は、互いに異なる方向である。
図15には、光源702が3個である例、つまり、1つの標的図形402に3つの影図形4031U、4032U、4033Uが付される例を示している。
ここで、標的図形402から影図形4031Uに向かう第1ベクトルの向き、標的図形402から影図形4032Uに向かう第2ベクトルの向き、および、標的図形402から影図形4033Uに向かう第3ベクトルの向きは、三次元仮想空間内に配置される3つの光源の位置に基づく。ただし、第1〜3ベクトルの大きさは、判定結果に応じて、適宜、変更される。なお、図15には、1つの標的図形402にのみ複数の影図形403が付される例を示しているが、複数の標的図形402のそれぞれに複数の影図形403を付されてもよい。
本実施形態に係るゲーム装置300によれば、標的図形402に複数の照明が当てられている様子を演出しながら、プレイヤーに判定結果を分かり易く知らせることができる。
(変形例)
本発明は、上述した第1〜3の実施形態に限られるものではなく、種々の変形が可能である。
第1の実施形態では、ステップS211において、最後に「成功」と判定されたときの1つの時刻差に基づいて、面間隔が更新される例を示した。しかし、面間隔は、最新の所定個数の時刻差に基づいて更新されてもよい。この場合、例えば、CPU 101は、ステップS211において、最新の時刻差をRAM 103などに記憶させるとともに、RAM 103に記憶されている、最新の所定個数分の時刻差の平均値に基づいて、面間隔を更新する。なお、時刻差の平均値は、単純平均値でもよいし、重み付け平均値でもよい。かかる構成によれば、最近なされた操作入力がどれくらい正確であったかをプレイヤーに知らせることができる。この場合において、標的図形402と影図形403との距離の変動は、比較的穏やかなものとなる。従って、プレイヤーの注意が影図形403の位置の変動に向きすぎて、ゲームへの集中力が散漫になることを抑制できる。
第1の実施形態では、主投影面703と影投影面704との面間隔は、1回の画面更新において、一気に変更される例を示した。しかし、当該面間隔は、複数回の画面更新によって、徐々に、変更されるようにしてもよい。かかる構成によれば、標的図形402と影図形403との距離の変動は、比較的穏やかなものとなる。従って、プレイヤーの注意が影図形403の位置の変動に向きすぎて、ゲームへの集中力が散漫になることを抑制できる。
第1の実施形態では、面間隔が、時間差に比例した値に設定される例を示した。しかし、面間隔に基づく、標的図形402と影図形403との距離により、時間差をプレイヤーに示すことが可能な構成であれば、面間隔が時間差に比例しなくてもよい。例えば、面間隔は、時間差に基づいて決定される離散値とされてもよい。具体的には、例えば、面間隔は、「優」と判定された場合1m、「良」と判定された場合2m、「可」と判定された場合5mとされる。このように、面間隔が離散値であっても、プレイヤーは、操作入力の正確さを知ることができる。
第1の実施形態では、三次元仮想空間に配置された視点701、光源702、主投影面703、影投影面704などを用いて、画面400内における影図形403の位置を決定する手法を示した。しかし、三次元仮想空間を用いず、二次元仮想空間内において、影図形403の位置を決定してもよい。例えば、画面400における標的図形402の位置から、画面400の横方向、縦方向、もしくは、斜め方向に、時間差に基づくシフト量だけ移動した位置に、影図形403が配置されるようにしてもよい。
また、標的図形402から影図形403に向かうベクトルは、時刻差に依存するベクトル成分と時刻差に依存しないベクトル成分との合成により得られるベクトルでもよい。例えば、画面400の横方向(もしくは縦方向)に伸びる、大きさが一定のベクトルと、画面400の縦方向(もしくは横方向)に伸びる、大きさが時刻差に依存するベクトルと、の合成ベクトルが、標的図形402から影図形403に向かうベクトルとなるようにする。
これらの伸びる方向と、時刻差に依存しないベクトル成分と、が、互いに異なれば、標的図形402と影図形403とは、常に異なるずれた位置に表示されるので、シフト量が明瞭に表示される。
このように、各種の技術を利用することによって、標的図形402と影図形403とのずれを見やすくプレイヤーに提示し、プレイヤーは、このずれによって、自身の操作入力の正確さを容易に知得することができるようになるのである。