説明

動画像生成装置、ゲーム装置、動画像生成方法、ならびに、プログラム

【課題】キャラクタを適切に表示するのに好適な動画像生成装置を提供する。
【解決手段】所定期間に含まれるいずれかの時刻が与えられると、当該時刻に対応付けられるキャラクタの形状を計算する形状計算部201、所定期間の先頭から末尾までを等間隔に区切る区切り時刻のそれぞれに対応付けられる生成時刻を決定する決定部202、区切り時刻のそれぞれに対応付けられる生成時刻を形状計算部201に与えて計算させ、当該計算されたキャラクタの形状から当該区切り時刻において表示すべきキャラクタの画像を生成する生成部203を備える。先頭の区切り時刻に対応付けられる生成時刻は当該先頭の区切り時刻に等しい。末尾の区切り時刻に対応付けられる生成時刻は当該末尾の区切り時刻に等しい。区切り時刻を時間の経過順に並べ、その順序で当該区切り時刻に対応付けられる生成時刻を並べると、時間の経過順となる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、キャラクタを適切に表示するのに好適な動画像生成装置、ゲーム装置、動画像生成方法、ならびに、これらをコンピュータにより実現するためのプログラムに関する。
【背景技術】
【0002】
従来、楽曲のリズムや画面の表示にタイミングを合わせて、プレイヤーがボタンやフットスイッチを操作する音楽ゲームが知られている。このような音楽ゲームにおいては、例えば、演奏される楽曲に同調して所定のオブジェクトが順次画面の下方から現れてそれぞれ画面の上方に移動する。一方、プレイヤーは、これらのオブジェクトが判定の基準となる判定ラインに到達したタイミングでボタンを押圧する。そして、ボタンが押圧されたタイミングが到達タイミングに合っている場合、得点が加算されるとともにプレイヤーの操作入力が成功したことを示す図形が表示される。
【0003】
このような音楽ゲームには、プレイヤーがゲームをプレイしている間、バックダンサーのように楽曲のリズムに合ったモーションをとるキャラクタが表示されるものがある。このように、楽曲のリズムに合ったモーションをとるキャラクタが表示されると、プレイヤーはあたかもキャラクタと一緒にダンスをしているように感じることができる。このような音楽ゲームは、例えば、特許文献1に開示されている。
【0004】
このような音楽ゲームでは、楽曲が決定されると表示されるキャラクタのモーションも決定され、プレイヤーの操作入力の上手下手にかかわらず、キャラクタが楽曲のリズムに合わせて正確にモーションをとっていた。また、複数のキャラクタを表示するタイプの音楽ゲームにおいては、複数のキャラクタの全てが、プレイヤーの操作入力の上手下手にかかわらず、楽曲のリズムに合わせて正確に全く同じモーションをとっていた。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第3245147号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、実際のバックダンサー達は、同じモーションを担当する場合であっても、全員が全く同じモーションをとることはなく、多少のばらつきがあるものである。また、実際のバックダンサー達は、メインボーカル(上述した音楽ゲームにおいてはプレイヤーに相当する。)のリズムが崩れると、これに伴ってリズムを乱してしまうことが一般的である。従って、キャラクタのモーションを、実際のバックダンサーのモーションになるべく近くなるように、変化させたいという要望が強かった。
【0007】
本発明は、上記問題に鑑みてなされたものであり、キャラクタを適切に表示するのに好適な動画像生成装置、ゲーム装置、動画像生成方法、ならびに、これらをコンピュータにより実現するためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するために、本発明の第1の観点に係る動画像生成装置は、形状計算部、決定部、生成部を備え、以下のように構成する。
【0009】
まず、形状計算部は、所定期間に含まれるいずれかの時刻が与えられると、当該時刻に対応付けられるキャラクタの形状を計算する。すなわち、形状計算部は、時刻Bから時刻Eまでの所定期間に含まれるいずれかの時刻tが与えられると、当該時刻tに対応付けられるキャラクタの形状を計算する。つまり、形状計算部は、仮想空間上で所定期間内に所定の振り付けを行うキャラクタの各時刻における形状を計算する。形状計算部は、キャラクタの形状に加えてキャラクタの色彩などを計算しても良い。以下、本明細書において、キャラクタの形状には、キャラクタの色彩などが含まれうるものとして説明する。なお、生成部は、仮想空間上のキャラクタを所定の視点を基準として所定の投影面に投影したときに得られる画像を生成するが、当該所定期間は、同じ視点を基準としている期間(以下、必要に応じて「シーン」という。)に設定することができる。
【0010】
そして、決定部は、所定期間の先頭から末尾までを等間隔に区切る区切り時刻のそれぞれに対応付けられる生成時刻を決定する。すなわち、決定部は、Nを自然数として、所定期間を等間隔に区切る区切り時刻B=D[0],D[1],…,D[N]=Eのそれぞれに対応付けられる生成時刻G[0],G[1],…,G[N]を決定する。当該間隔は、表示部の表示更新レートである垂直同期割り込みの周期(典型的には1/60秒)にすることができる。
【0011】
また、生成部は、区切り時刻のそれぞれに対応付けられる生成時刻を形状計算部に与えてキャラクタの形状を計算させる。そして、生成部は、当該計算されたキャラクタの形状から当該区切り時刻において表示すべきキャラクタの画像を生成する。すなわち、生成部は、整数i=0,1,…,Nのそれぞれについて、区切り時刻D[i]に対応付けられる生成時刻G[i]を形状計算部に与えて計算させ、当該計算されたキャラクタの形状から当該区切り時刻D[i]において表示すべきキャラクタの画像を生成する。なお、生成部が生成した区切り時刻毎のキャラクタの画像を、区切り時刻の時間の経過順に並べるとキャラクタの動画像となる。
【0012】
ここで、区切り時刻のうち先頭の区切り時刻と、当該先頭の区切り時刻に対応付けられる生成時刻と、が、いずれも所定期間の先頭の時刻と等しくなるようにする。また、区切り時刻のうち末尾の区切り時刻と、当該末尾の区切り時刻に対応付けられる生成時刻と、が、いずれも所定期間の末尾の時刻と等しくなるようにする。さらに、区切り時刻を時間の経過順に並べ、その順序で当該区切り時刻に対応付けられる生成時刻を並べると、時間の経過順となるようにする。すなわち、決定部は、G[0]=B且つG[N]=Eが成立し、整数j=0,1,…,N−1のそれぞれと、整数k=j+1,j+2,…,Nのそれぞれと、について、G[j]がG[k]に先行するように決定する。このように、区切り時刻の順序と当該区切り時刻に対応付けられる生成時刻の順序とが入れ替わらないように生成時刻が決定される。言い換えれば、ある区切り時刻に対応付けられる生成時刻は、当該区切り時刻よりも早い区切り時刻に対応付けられる生成時刻よりも早い時刻に決定される。
【0013】
以下、区切り時刻を形状計算部に与えて計算されたキャラクタの形状に基づいて当該区切り時刻において表示すべきキャラクタの画像が生成されたときに、模範となる速さで振り付けに従った動作を実行するキャラクタ(以下「模範キャラクタ」という。)の動画像が生成される場合を例にして説明する。
【0014】
まず、G[0]=Bが成立するのであるから、模範キャラクタを表示するために時刻Bにおいて表示すべきキャラクタの画像と同じ画像が、時刻Bにおいて表示すべきキャラクタの画像として生成される。同様に、G[N]=Eが成立するのであるから、模範キャラクタを表示するために時刻Eにおいて表示すべきキャラクタの画像と同じ画像が、時刻Eにおいて表示すべきキャラクタの画像として生成される。また、整数j=0,1,…,N−1のそれぞれと、整数k=j+1,j+2,…,Nのそれぞれと、について、G[j]がG[k]に先行するのであるから、振り付けに従った各動作の順序そのものは変化しないようにキャラクタの画像が生成される。すなわち、先頭の区切り時刻および末尾の区切り時刻以外の区切り時刻において表示されるキャラクタは、模範キャラクタが当該区切り時刻においてとる動作よりも振り付け上で前もしくは後の動作をとるが、当該区切り時刻よりも前の区切り時刻に表示されるキャラクタがとる動作よりも振り付け上で前の動作をとらず、また、当該区切り時刻よりも後の区切り時刻に表示されるキャラクタがとる動作よりも振り付け上で後の動作をとらない。従って、シーンの最初と最後以外はキャラクタが模範となる速さよりも速く又は遅く振り付けに従った動作を実行するような動画像、すなわち、シーンの最初と最後以外はキャラクタの動作速度に揺らぎがあるような動画像が生成される。ただし、キャラクタが振り付けに従った動作を実行するのにかかるトータルの時間が、キャラクタが模範となる速さで振り付けに従った動作を実行した場合と同じ時間になるように動画像が生成される。このため、シーンの繋ぎ目でキャラクタの動作が不自然に変化しないようにすることができる。
【0015】
以上説明したように、本発明の動画像生成装置によれば、キャラクタが振り付けに従った動作を実行するのにかかるトータルの時間を変えることなく、振り付けに従った動作中の動作の速さを変化させた動画像を生成することができる。従って、本発明の動画像生成装置によれば、キャラクタが揺らぎのあるモーションをとる動画像を生成することができる。
【0016】
また、本発明の動画像生成装置において、決定部は、区切り時刻と、当該区切り時刻に対応付けられる生成時刻と、の差を、乱数に基づいて決定するように構成することができる。このように構成することにより、振り付けに従った動作中の動作の速さをランダムに変化させることができる。
【0017】
また、本発明の動画像生成装置において、生成部は、複数のキャラクタの画像を生成してもよい。この場合、決定部は、複数のキャラクタ毎に生成時刻を決定する。なお、決定部が乱数を用いて生成時刻を決定する場合、生成時刻はキャラクタ毎にランダムに決定される。この場合、各キャラクタがキャラクタ毎に異なる速さで振り付けに従った動作を実行する動画像が生成される。従って、複数のキャラクタが互いに異なる揺らぎかたでモーションをとる動画像を生成することができる。
【0018】
本発明の動画像生成装置によれば、複数のキャラクタのそれぞれが揺らぎのあるモーションをとる動画像を生成することができる。
【0019】
また、本発明の動画像生成装置において、決定部は、先頭の区切り時刻と末尾の区切り時刻とを含むように区切り時刻から所定の個数の区切り時刻(以下「代表時刻」という。)を選択し、以下の(A)〜(D)に示すように生成時刻を決定してもよい。
まず、(A)代表時刻のうち先頭の区切り時刻に対応付けられる生成時刻を当該先頭の区切り時刻と等しくなるように決定する。
そして、(B)代表時刻のうち末尾の区切り時刻に対応付けられる生成時刻を当該末尾の区切り時刻と等しくなるように決定する。
さらに、(C)代表時刻のうち先頭の区切り時刻と末尾の区切り時刻と以外の区切り時刻と、当該区切り時刻に対応付けられる生成時刻と、の差を、乱数に基づいて決定する。
そして、(D)代表時刻を時間の経過順に並べたときに隣り合う2つの代表時刻の間の区切り時刻に対応付けられる生成時刻を、当該生成時刻の間隔が等間隔になるように決定する。
【0020】
本発明の動画像生成装置によれば、特定の生成時刻についてのみ乱数に基づいて決定され、その他の生成時刻については当該乱数を用いて決定された生成時刻に基づいて決定されるため、全ての生成時刻が乱数に基づいて決定される場合に比べ、処理速度の向上が期待できる。また、乱数に基づいて決定された隣り合う2つの生成時刻の間の生成時刻は等間隔になるように決定される。これにより、表示されるキャラクタの動作速度が短時間で極端に変化しないようにする、すなわち、キャラクタの動作速度の揺らぎの周期を大きくすることができる。
【0021】
また、本発明の動画像生成装置において、区切り時刻と、当該区切り時刻に対応付けられる生成時刻と、の差の基準値を区切り時刻毎に記憶する記憶部、をさらに備えてもよい。
この場合、決定部は、区切り時刻と、当該区切り時刻に対応付けられる生成時刻と、の差を、記憶部に記憶されている区切り時刻毎の基準値に基づいて決定する。
【0022】
本発明の動画像生成装置によれば、あらかじめ定められた基準値に基づいて生成時刻が決定されるため、生成時刻が乱数に基づいて決定される場合に比べ、処理速度の向上が期待できる。
【0023】
上記目的を達成するために、本発明のその他の観点に係るゲーム装置は、受付部、判定部、表示部を備え、以下のように構成する。
【0024】
まず、受付部は、プレイヤーからの指示入力を受け付ける。例えば、プレイヤーがゲーム装置のコントローラに用意された各種のボタン(フットスイッチなど手や足で操作するものが典型的である。)やレバーを操作したり、各種の楽器に模したコントローラの部材を操作したり、プレイヤーが所定の動作をしたことが各種のセンサで検知されることによって、これらが指示入力として受け付けられる。
【0025】
そして、判定部は、受付部により受け付けられた指示入力に基づいて、プレイヤーの成績を判定する。例えば、当該ゲーム装置がリズムゲームを実行するゲーム装置である場合、プレイヤーにより所定のタイミングで所定のボタンが押された場合に得点が加算され、所定の期間内における得点に基づいてプレイヤーの成績が判定される。
【0026】
また、表示部は、上述した動画像生成装置により生成された動画像を表示する。従って、表示部は、所定の振り付けに従った動作を実行するキャラクタを表示する。
【0027】
ここで、リズムゲームを実行するゲーム装置においては、バックダンサーとして楽曲のリズムに合わせて所定の振り付けに従った動作を実行する複数のキャラクタが表示部に表示される場合も多い。このようなゲーム装置において、これらの複数のキャラクタが全く同じ振り付けを全く同じ動作速度で実行するように表示されると、リアリティーに欠け、いかにもゲームであるという印象をプレイヤーに与えてしまう場合がある。そこで、このようなゲーム装置に本発明を適用することにより、表示されるキャラクタの動作速度に揺らぎをもたせることができ、プレイヤーがあたかも本物のバックダンサーとともにダンスをしているように演出することができる。
【0028】
本発明において、決定部は、区切り時刻と、当該区切り時刻に対応付けられる生成時刻と、の差を、乱数に基づいて決定し、判定されたプレイヤーの成績に応じて、乱数のとりうる範囲を変化させることができる。ここで、例えば、乱数のとりうる範囲が広く設定された場合、区切り時刻と当該区切り時刻に対応付けられる生成時刻との差の期待値が大きくなる。従って、表示されるキャラクタの振り付けに従った動作中の動作の速さのムラが大きくなる。このため、表示されるキャラクタのとるモーションの揺らぎは大きくなる。一方、例えば、乱数のとりうる範囲が狭く設定された場合、区切り時刻と当該区切り時刻に対応付けられる生成時刻との差の期待値が小さくなる。従って、表示されるキャラクタの振り付けに従った動作中の動作の速さのムラが小さくなる。このため、表示されるキャラクタのとるモーションの揺らぎが小さくなる。
【0029】
なお、乱数のとりうる範囲をプレイヤーの成績に応じてどのように変化させるかは適宜調整することが可能であるが、例えば、リズムゲームの場合、プレイヤーの成績が良いほど乱数のとりうる範囲を狭く設定する。このようにすると、プレイヤーの成績が良いほど表示されるキャラクタの振り付けに従った動作中の動作の速さのムラが小さくなる。従って、プレイヤーの成績が良いほど適切な速さで振り付けに従った動作を実行するキャラクタが表示される。
【0030】
本発明のゲーム装置によれば、表示されるキャラクタのとるモーションの揺らぎの大きさをプレイヤーの成績に応じて変化させることができる。これにより、プレイヤーがあたかも本物のバックダンサーとともにダンスをしているように演出することができる。
【0031】
上記目的を達成するために、本発明のその他の観点に係る動画像生成方法は、形状計算部、決定部、生成部を備える動画像生成装置が実行する動画像生成方法であって、形状計算工程、決定工程、生成工程を備え、以下のように構成する。
【0032】
すなわち、形状計算工程では、形状計算部が、所定期間に含まれるいずれかの時刻が与えられると、当該時刻に対応付けられるキャラクタの形状を計算する。
【0033】
そして、決定工程では、決定部が、所定期間の先頭から末尾までを等間隔に区切る区切り時刻のそれぞれに対応付けられる生成時刻を決定する。
【0034】
また、生成工程では、生成部が、区切り時刻のそれぞれに対応付けられる生成時刻を形状計算部に与えて計算させ、当該計算されたキャラクタの形状から当該区切り時刻において表示すべきキャラクタの画像を生成する。
【0035】
ここで、区切り時刻のうち先頭の区切り時刻と、当該先頭の区切り時刻に対応付けられる生成時刻と、が、いずれも所定期間の先頭の時刻と等しくなるようにする。また、区切り時刻のうち末尾の区切り時刻と、当該末尾の区切り時刻に対応付けられる生成時刻と、が、いずれも所定期間の末尾の時刻と等しくなるようにする。さらに、区切り時刻を時間の経過順に並べ、その順序で当該区切り時刻に対応付けられる生成時刻を並べると、時間の経過順となるようにする。
【0036】
本発明の他の観点に係るプログラムは、コンピュータを、上記の動画像生成装置もしくはゲーム装置の各部として機能させ、または、コンピュータに、上記の動画像生成方法の各工程を実行させるように構成する。
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記録媒体に記録することができる。上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記録媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【0037】
本発明によれば、キャラクタを適切に表示するのに好適な動画像生成装置、ゲーム装置、動画像生成方法、ならびに、これらをコンピュータにより実現するためのプログラムを提供することができる。
【図面の簡単な説明】
【0038】
【図1】第1〜3の実施形態に係るゲーム装置が実現される典型的な情報処理装置の概要構成を示す模式図である。
【図2】第1〜3の実施形態に係るゲーム装置の構成を示すブロック図である。
【図3】第1〜3の実施形態に係るゲーム装置の表示画面を説明するための図である。
【図4】RAMに記憶されるデータの様子を示す説明図である。
【図5】第1の実施形態に係るゲーム装置により決定される生成時刻を説明するための図である。
【図6】各キャラクタの動作を説明するための第1の図である。
【図7】各キャラクタの動作を説明するための第2の図である。
【図8】第1〜3の実施形態に係るゲーム装置が実行するキャラクタ表示制御処理を示すフローチャートである。
【図9】第1の実施形態に係るゲーム装置が実行する生成時刻決定処理を示すフローチャートである。
【図10】第2の実施形態に係るゲーム装置により決定される生成時刻を説明するための図である。
【図11】第2の実施形態に係るゲーム装置が実行する生成時刻決定処理を示すフローチャートである。
【図12】第3の実施形態に係るゲーム装置により決定される生成時刻を説明するための図である。
【図13】第3の実施形態に係るゲーム装置が実行する生成時刻決定処理を示すフローチャートである。
【発明を実施するための形態】
【0039】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム専用の情報処理装置に本発明が適用される実施形態を説明するが、各種のコンピュータ、PDA(Personal Data Assistants)、携帯電話などの情報処理装置においても同様に本発明を適用することができる。すなわち、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【0040】
(第1の実施形態)
(情報処理装置の説明)
図1は、本発明の第1の実施形態に係るゲーム装置が実現される典型的な情報処理装置の概要構成を示す模式図である。本実施形態に係るゲーム装置は動画像生成装置としての機能を備え、プレイヤーがゲームのプレイ中に所定のキャラクタをモニターに表示する。
【0041】
情報処理装置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と、を備える。
【0042】
ゲーム用のプログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ108に装着して、情報処理装置100の電源を投入することにより、プログラムが実行され、本実施形態のゲーム装置が実現される。
【0043】
CPU 101は、情報処理装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。CPU 101は、各構成要素から各種のデータを取得し、当該各種のデータを種々の演算により加工して各構成要素にデータや制御信号として与える。CPU 101では、各種のデータは一旦CPU 101が備えるキャッシュに格納され、さらにCPU 101が備えるレジスタに取得されてから各種の演算が施される。
【0044】
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録され、これが実行されることにより、DVD−ROMに記録されたプログラムをRAM 103に読み出してCPU 101による実行が開始される。また、ROM 102には、情報処理装置100全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【0045】
RAM 103は、データやプログラムを一時的に記憶するためのもので、DVD−ROMから読み出したプログラムやデータ、その他ゲームの進行や通信に必要なデータが保持される。このほか、情報処理装置100に接続される各種の機器から伝達される種々の情報や、各種の機器に伝達すべき種々の情報も、一時的に格納される。
【0046】
インターフェース104を介して接続されたマット型コントローラ105は、プレイヤーがゲーム実行の際に行う操作入力を受け付ける。マット型コントローラ105の所定領域には、“左”、“下”、“上”、“右”のそれぞれを指示する入力をプレイヤーから受け付けるボタンがそれぞれ配置されている。プレイヤーは、各ボタンを任意のタイミングで押圧することができる。なお、CPU 101は、ボタン毎に、プレイヤーによって押圧されているか否かを判別する。
【0047】
本実施形態では、マット型コントローラ105は4個のボタンを備えているものとして説明するが、ボタンの数は4個に限定されず、3個以下あるいは5個以上でもよい。また、マット型コントローラ105は、床面に配置する形状に限られず、手に持って操作するいわゆるタッチパッドの形状や、手で把持する形状であってもよい。
【0048】
インターフェース104を介して着脱自在に接続された外部メモリ106には、ゲームの進行状態を示すデータなどが書き換え可能に記憶される。プレイヤーは、例えば、マット型コントローラ105を介して指示入力を行うことにより、これらのデータを適宜外部メモリ106に記録することができる。
【0049】
DVD−ROMドライブ108に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。CPU 101の制御によって、DVD−ROMドライブ108は、これに装着されたDVD−ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはRAM 103等に一時的に記憶される。
【0050】
画像処理部107は、DVD−ROMから読み出されたデータをCPU 101や画像処理部107が備える画像演算プロセッサ(図示せず)によって加工処理した後、これを画像処理部107が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部107に接続されたモニター112へ出力される。これにより、各種の画像表示が可能となる。
【0051】
画像演算プロセッサは、2次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。また、仮想3次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から仮想3次元空間に配置されたポリゴンを俯瞰したレンダリング画像を得る演算の高速実行も可能である。特に、点光源や平行光源、円錐光源などの典型的な(正)光源によってポリゴンが照らされる度合を計算する機能が、ライブラリ化もしくはハードウェア化され、高速に計算できるようになっている。
【0052】
さらに、CPU 101と画像演算プロセッサとが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画したりすることが可能である。フォント情報は、ROM 102に記録されているが、DVD−ROMに記録された専用のフォント情報を利用することも可能である。
【0053】
NIC 109は、情報処理装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものであり、LAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integraged Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line Modem)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェース(図示せず)により構成される。
【0054】
音声処理部110は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ(図示せず)から出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。音声処理部110からは、たとえば、BGMやカラオケとして再生される楽曲の音や、プレイヤーのボタン操作に合わせて再生される効果音などを変換する。
【0055】
RTC 111は、水晶振動子や発振回路などを備える計時用のデバイスである。RTC 111は、内蔵電池から電源を供給され、情報処理装置100の電源がオフのときでも動作し続ける。
【0056】
モニター112は、画像処理部107から供給されたビデオ信号に従って画像を表示する。モニター112は、例えば、液晶ディスプレイ、プラズマディスプレイ、CRTなどにより構成される。
【0057】
このほか、情報処理装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ108に装着されるDVD−ROM等と同じ機能を果たすように構成してもよい。
【0058】
(ゲーム装置の説明)
次に、本発明の実施形態に係るゲーム装置の機能について、図面を参照して説明する。まず、図2を参照して、本発明の実施形態に係るゲーム装置200の構成を説明する。
【0059】
図2に示すように、ゲーム装置200は、形状計算部201と、決定部202と、生成部203と、受付部204と、判定部205と、表示部206と、を備える。
【0060】
形状計算部201は、仮想空間上で所定期間内に所定の振り付けを行うキャラクタの各時刻における形状を計算する。ここで、所定期間の先頭の時刻を時刻B、所定期間の末尾の時刻を時刻E、所定期間に含まれるいずれかの時刻を時刻tとする。具体的には、形状計算部201は、時刻Bから時刻Eまでの所定期間に含まれるいずれかの時刻tが与えられると、当該時刻tに対応付けられるキャラクタの形状を計算する。形状計算部201は、CPU 101などにより実現される。
【0061】
決定部202は、所定期間の先頭から末尾までを等間隔に区切る区切り時刻のそれぞれに対応付けられる生成時刻を決定する。具体的には、決定部202は、Nを自然数として、所定期間を等間隔に区切る区切り時刻B=D[0],D[1],…,D[N]=Eのそれぞれに対応付けられる生成時刻G[0],G[1],…,G[N]を決定する。ここで、決定部202は、G[0]=B且つG[N]=Eが成立し、整数j=0,1,…,N−1のそれぞれと、整数k=j+1,j+2,…,Nのそれぞれと、について、G[j]がG[k]に先行するように決定する。決定部202は、例えば、乱数を発生させて生成時刻を決定する。決定部202は、CPU 101などにより実現される。
【0062】
生成部203は、区切り時刻のそれぞれに対応付けられる生成時刻を形状計算部201に与えてキャラクタの形状を計算させ、当該計算されたキャラクタの形状から当該区切り時刻において表示すべきキャラクタの画像を生成する。つまり、生成部203は、整数i=0,1,…,Nのそれぞれについて、区切り時刻D[i]に対応付けられる生成時刻G[i]を形状計算部201に与えて計算させる。そして、生成部203は、計算されたキャラクタの形状から当該区切り時刻D[i]において表示すべきキャラクタの画像を生成する。生成部203は、複数のキャラクタの画像を生成する場合、キャラクタ毎の生成時刻を決定部202に決定させ、当該キャラクタ毎の生成時刻を形状計算部201に与えて計算されたキャラクタ毎の形状から各区切り時刻において表示すべき各キャラクタの画像を生成する。生成部203は、生成した画像を、例えば、当該画像を示すビデオ信号として出力する。生成部203は、CPU 101、画像処理部107、RTC 111などにより実現される。
【0063】
受付部204は、プレイヤーからの指示入力(操作入力)を受け付ける。受付部204は、例えば、CPU 101、インターフェース104ならびにマット型コントローラ105から構成される。
【0064】
判定部205は、受付部204により受け付けられた指示入力に基づいて、プレイヤーの成績を判定する。判定部205は、例えば、CPU 101により構成される。
【0065】
表示部206は、生成部203により生成された画像を表示する。具体的には、表示部206は、生成部203から供給されたビデオ信号により表現される画像を表示する。表示部206は、例えば、モニター112により構成される。
【0066】
ここで、ゲーム装置200の動作の一例について簡単に説明する。
【0067】
まず、生成部203は、区切り時刻になる前に当該区切り時刻に対応づけられる生成時刻を決定部202に生成させる。そして、決定部202は、判定部205により判定されたプレイヤーの成績に応じて、区切り時刻に対応付ける生成時刻を生成する。ここで、生成部203は、決定部202により生成された生成時刻を示す信号を形状計算部201に供給する。そして、形状計算部201は、供給された生成時刻に対応付けるキャラクタの形状を計算する。ここで、生成部203は、形状計算部201により計算されたキャラクタの形状に基づいて、区切り時刻において表示すべきキャラクタの画像を生成する。そして、生成部203は、区切り時刻になると、生成したキャラクタの画像を表示部206に供給する。表示部206は、供給された画像を表示する。
【0068】
次に、本実施形態に係るゲーム装置200の表示画面について、図3を参照して説明する。なお、ゲーム装置200は、ダンスゲームを実行するゲーム装置に適用されているものとして説明する。
【0069】
ゲーム装置200は、ダンスゲームに必要な種々の情報を表示する。例えば、ゲーム装置200は、ゲーム開始前に、楽曲リスト等を表示し、プレイヤーに所望の楽曲を選択するように促す。そして、楽曲が選択されてゲームが開始されると、ゲーム装置200は、例えば、図3に示すようなゲーム画面を表示する。
【0070】
このゲーム画面において、静止マーク301L、301D、301U、301R(以下、必要に応じてこれらを総称して静止マーク301という。)は、踏み動作のタイミングをプレイヤーに示すための固定画像である。一方、標的302L、302D、302U、302R(以下、必要に応じてこれらを総称して標的302という。)は、課題となる踏み動作をプレイヤーに示すための画像であり、演奏される楽曲に合わせて、例えば、画面の下方から上方へスクロール表示される。そして、標的302が静止マーク301に到達した際(標的302が静止マーク301の同じ画像と重なった際)に、要求される踏み動作がプレイヤーにより行われると、得点が得られる。
【0071】
ここで、本実施形態では、このような処理を実現するためのデータとして、課題データと、楽曲データ列と、音声データ列と、を用意しておく。これらのデータは、例えば、DVD−ROMドライブ108に装着されるDVDにあらかじめ記憶されており、必要に応じてRAM 103に読み出される。
【0072】
課題データについては、図4を参照して詳細に説明する。図4は、RAM 103の課題データ領域に読み出された課題データの様子を示す模式図である。
【0073】
課題データ400は、音楽の分野における楽譜に相当するデータである。本実施形態では、課題データ400は、複数のレコード402からなる表401と、閾時間411(この値をdとする。)と、終了時間421(この値をEとする。)と、を含むデータである。各レコード402には、課題時間403(この値をTとする。)と、操作入力の種類404と、標的の状態405と、を記録する領域がある。各レコード402は、音符に相当する。課題時間403は、標的302がゲーム開始から静止マーク301に到達するまでの時間であって、ゲーム開始からどれだけ時間が経過したときにプレイヤーが当該標的302について操作入力を行う(ボタンを踏む)べきかを示す時間である。課題データ400は、標的302の数だけ課題時間403を含む。操作入力の種類404は、課題時間403に対応付けられているデータであり、ゲーム開始から当該操作入力の種類404に対応する課題時間403が経過したときに、マット型コントローラ105のどのボタンをプレイヤーが踏むべきかを示すデータである。標的の状態405は、標的302の状態を数値により表す。標的302の状態は、「未処理」が「0」、「成功」が「1」、「失敗」が「2」により表される。閾時間411は、ゲーム開始からプレイヤーがボタンを踏むまでの時間と課題時間403とがどの程度ずれている場合まで操作入力が成功したとみなすかを示す時間である。終了時間421は、ゲームが開始されてからゲームが終了するまでの時間を示すデータである。
【0074】
課題時間403、閾時間411、終了時間421などは、msなどを単位として数値で表現されていてもよいし、画面の表示更新レートである垂直同期割込の周期(典型的には1/60秒)を単位とした数値で表現されていてもよい。楽曲データ列は、BGMとして再生される楽曲を表現するデータ列である。音声データ列は、プレイヤーがマット型コントローラ105のボタンを踏んだときに発せられる音声を表現するデータ列である。
【0075】
また、ゲーム画面においては、3人のキャラクタ、すなわち、第1キャラクタ303、第2キャラクタ304、ならびに、第3キャラクタ305、がバックダンサーとして表示される。各キャラクタは、楽曲のリズムに合った振り付けに応じたモーションをとる。なお、振り付けは、楽曲のシーン毎にあらかじめ定められている。ここで、各キャラクタがとるモーションは、プレイヤーの成績が良ければ良いほど互いに近いモーションとなる。以下、図5乃至7を参照してキャラクタがとるモーションについて説明する。
【0076】
まず、図5を参照して、区切り時刻に対応付ける生成時刻を決定する手法について説明する。なお、区切り時刻は、所定期間を等間隔に区切るそれぞれの時刻である。また、生成時刻は、区切り時刻のそれぞれに対応付けられて決定される時刻であり、キャラクタ毎に生成される。さらに、所定期間は、例えば、1シーンに相当する期間である。以下の説明では、Nを任意の自然数として、区切り時刻をD[0],D[1],…,D[N]、第1キャラクタ303について決定される生成時刻をG1[0],G1[1],…,G1[N]、第2キャラクタ304について決定される生成時刻をG2[0],G2[1],…,G2[N]、第3キャラクタ305について決定される生成時刻をG3[0],G3[1],…,G3[N]、とする。また、所定期間をTp、所定期間の先頭の時刻をB、所定期間の末尾の時刻をEとする。さらに、時系列上で隣接する区切り時刻間の間隔(以下、「区切り時間」という。)をTsとする。区切り時間は、例えば、垂直同期割込の周期(典型的には1/60秒)とすることができる。
【0077】
図5に示す例では、区切り時刻は、D[0]=B,D[1],…,D[6]であり、所定期間を6つの期間に等間隔に区切る7つの時刻である。図5には、所定期間が6つの期間に区切られる例を示しているが、一般的には所定期間はより多くの期間に区切られる。例えば、所定期間が5秒であり、区切り時間が1/60秒である場合に、所定期間は300の区間に区切られ、区切り時刻の個数は301個となる。
【0078】
ここで、各区切り時刻に対応付ける生成時刻は、プレイヤーの成績に応じて決定される。各区切り時刻に対応付ける生成時刻を決定する手法は任意であるが、以下に示す(A)〜(C)の制約を満たす必要がある。すなわち、(A)区切り時刻のうち先頭の区切り時刻と、当該先頭の区切り時刻に対応付けられる生成時刻と、は、いずれも所定期間の先頭の時刻に等しい。(B)区切り時刻のうち末尾の区切り時刻と、当該末尾の区切り時刻に対応付けられる生成時刻と、は、いずれも所定期間の末尾の時刻に等しい。(C)区切り時刻を時間の経過順に並べ、その順序で当該区切り時刻に対応付けられる生成時刻を並べると、時間の経過順となる。
【0079】
図5に示す例では、(A)の制約を満たすため、D[0]=G1[0]=G2[0]=G3[0]=Bとする。また、(B)の制約を満たすため、D[6]=G1[6]=G2[6]=G3[6]=Eとする。さらに、(C)の制約を満たすため、jならびにkを任意の整数として、j=0,1,…,5のそれぞれと、整数k=j+1,j+2,…,6のそれぞれと、について、G1[j]がG1[k]に先行し、G2[j]がG2[k]に先行し、G3[j]がG3[k]に先行するようにする。
【0080】
生成時刻は、キャラクタ毎に決定されるが、まず、第1キャラクタ303について決定される生成時刻すなわちG1[0],G1[1],…,G1[6]について説明する。なお、本明細書においては、早い時刻ほど値が小さいものとして不等号を使用する。
【0081】
本実施形態においては、乱数を用いて、時刻の早いほうから順番にG1[0],G1[1],…,G1[6]が決定される。まず、G1[0]=D[0]に決定される。次に、乱数を用いてG1[1]〜G1[5]が決定される。具体的には、まず、プレイヤーの成績に応じて乱数の発生範囲が決定される。ここで、発生させる乱数をR、乱数の振れ幅をRmax(ただし、Rmaxは正の数)とすると、乱数の発生範囲は、−Rmax≦R≦Rmaxとなる。ここで、プレイヤーの成績が良ければ良いほど乱数の振れ幅が小さな値に設定される。なお、乱数は、時間(例えば、ミリ秒)を単位とした数値として扱う。そして、区切り時刻から乱数により示される時間だけ経過させた時刻が生成時刻の候補に決定される。決定された生成時刻の候補が上述した(C)の制約を満たさない場合は、再度乱数が取得されて生成時刻の候補が再度決定される。決定された生成時刻の候補が上述した(C)の制約を満たすまで、乱数が取得されて生成時刻の候補が決定される処理が繰り返される。一方、決定された生成時刻の候補が上述した(C)の制約を満たす場合は当該生成時刻の候補が生成時刻に設定される。
【0082】
例えば、G1[1]については、まず、−Rmax≦R1≦Rmaxの範囲でR1が取得される。次に、D[1]+R1がG1[1]の候補に決定される。ここで、D[1]+R1≧D[0]、D[1]+R1≦D[6]のいずれかが満たされない場合は、再度R1が取得されてD[1]+R1が再度決定される。そして、D[1]+R1≧D[0]、D[1]+R1≦D[6]の両方が満たされるまで、R1が取得されてD[1]+R1が決定される処理が繰り返される。一方、D[1]+R1≧D[0]、D[1]+R1≦D[6]の両方が満たされる場合は、D[1]+R1がG1[1]に決定される。
【0083】
G1[1]が決定されると、同様の手法によってG1[2]が決定される。すなわち、まず、−Rmax≦R2≦Rmaxの範囲でR2が取得される。次に、D[2]+R2がG1[2]の候補に決定される。ここで、D[2]+R2≧D[1]、D[2]+R2≦D[6]のいずれかが満たされない場合は、再度R2が取得されてD[2]+R2が再度決定される。そして、D[2]+R2≧D[1]、D[2]+R2≦D[6]の両方が満たされるまで、R2が取得されてD[2]+R2が決定される処理が繰り返される。一方、D[2]+R2≧D[1]、D[2]+R2≦D[6]の両方が満たされる場合は、D[2]+R2がG1[2]に決定される。
【0084】
同様にして、G1[3]〜G1[5]が決定される。そして、G1[6]=D[6]に決定される。第2キャラクタ304、ならびに、第3キャラクタ305についても、同様に生成時刻が決定される。このようにして決定される生成時刻は、通常は対応付けられる区切り時刻とは異なる時刻となり、また、キャラクタ毎に異なる時刻となる。
【0085】
次に、図6を参照して、各キャラクタがどのようなモーションをとるかを説明する。図6には、各区切り時刻すなわちD[0]=B,D[1],…,D[6]において、各キャラクタがどのように表示されるかを示している。なお、図6には、各区切り時刻において、模範キャラクタ500がどのように表示されるかについても示している。模範キャラクタ500は、模範的な速さで楽曲のリズムに合った振り付けに従ったモーションをとるキャラクタである。各キャラクタは、区切り時刻と当該区切り時刻に対応付けられる生成時刻とが全て一致する場合に、模範キャラクタ500と同じ模範的な速さでモーションをとる。
【0086】
図6に示す例では、模範キャラクタ500は、所定期間において、D[0]で起立し、D[1]で向かって左側の手を挙げ、D[2]で向かって右側の手を挙げ、D[3]で向かって左側の足を挙げ、D[4]で向かって左側の手を下げ、D[5]で向かって右側の手を下げ、D[6]で向かって左側の足を下げる、というモーションをとる。ここで、区切り時刻に対応付けられて第1キャラクタ303について決定される生成時刻は、当該区切り時刻と異なる時刻に決定される。区切り時刻に対応付けられる生成時刻を決定する手法は任意であるが、例えば、乱数発生器が発生する乱数に基づいて決定することができる。具体的には、区切り時刻と当該区切り時刻に対応付けられる生成時刻との差が、乱数発生器が発生した乱数により示される時間となるように、生成時刻を決定する。ここで、乱数が0の場合は、再度乱数を発生させて乱数が0以外の値になるようにする。これにより、区切り時刻に対応付けられる生成時刻が当該区切り時刻と異なる時刻に決定される。従って、第1キャラクタ303は、模範キャラクタ500とは異なるタイミングで各動作を行うようなモーションをとる。具体的には、第1キャラクタ303は、模範キャラクタ500よりも早いタイミングもしくは遅いタイミングに各モーションをとる。ただし、第1キャラクタ303は、所定期間の先頭の時刻と所定期間の末尾の時刻では、模範キャラクタ500と同じタイミングでモーションをとる。
【0087】
同様に、第2キャラクタ304ならびに第3キャラクタ305も、模範キャラクタ500とは異なるタイミングで各モーションをとる。また、生成時刻は、キャラクタ毎に決定されるため、各キャラクタは、いずれも他のキャラクタとは異なるタイミングで各モーションをとることになる。従って、表示画面には、それぞれが異なるタイミングで各モーションをとる3つのキャラクタが表示されることになる。また、区切り時刻に対応付けられる生成時刻は、プレイヤーの成績が良ければ良いほど、当該区切り時刻に時系列上で近い時刻に決定される。このため、プレイヤーの成績が良ければ良いほど、3つのキャラクタの各モーションをとるタイミングのばらつきが小さくなる。
【0088】
ここで、図7を参照して、各キャラクタが各区切り時刻においてどのようなモーションをとるかを説明する。
【0089】
例えば、第1キャラクタ303は、D[0]においては、G1[0]=D[0]において模範キャラクタ500がとる動作と同じ動作をとる。そして、第1キャラクタ303は、D[1]においては、D[1]に対応付けられて決定されたG1[1]において模範キャラクタ500がとる動作と同じ動作をとる。ここで、G1[1]>D[1]であるため、D[1]の時点では、第1キャラクタ303は、模範キャラクタ500よりも先行した動作をとる。そして、第1キャラクタ303は、D[2]においては、D[2]に対応付けられて決定されたG1[2]において模範キャラクタ500がとる動作と同じ動作をとる。ここで、G1[2]>D[2]であるため、D[2]の時点でも、第1キャラクタ303は、模範キャラクタ500よりも先行した動作をとる。
【0090】
また、例えば、第2キャラクタ304は、D[0]においては、G2[0]=D[0]において模範キャラクタ500がとる動作と同じ動作をとる。そして、第2キャラクタ304は、D[1]においては、D[1]に対応付けられて決定されたG2[1]において模範キャラクタ500がとる動作と同じ動作をとる。ここで、G2[1]>D[1]であるため、D[1]の時点では、第2キャラクタ304は、模範キャラクタ500よりも先行した動作をとる。そして、第2キャラクタ304は、D[2]においては、D[2]に対応付けられて決定されたG2[2]において模範キャラクタ500がとる動作と同じ動作をとる。ここで、G2[2]<D[2]であるため、D[2]の時点では、第2キャラクタ304は、模範キャラクタ500よりも遅れた動作をとる。
【0091】
以上説明したように、各キャラクタは、各区切り時刻において、模範キャラクタならびに他のキャラクタと異なる動作をとる。
【0092】
次に、本実施形態に係るゲーム装置200の動作について、図8ならびに図9を参照して説明する。図8は、本実施形態に係るゲーム装置200が実行するキャラクタ表示制御処理を示すフローチャートである。また、図9は、本実施形態に係るゲーム装置200が実行する生成時刻決定処理を示すフローチャートである。
【0093】
課題データ500の初期値は、DVD−ROMドライブ108に装着されるDVD−ROMに記憶されているが、ゲームを開始すると、CPU 101は、課題データ400を、DVD−ROMからRAM 103の所定の課題データ領域に読み出して初期化する(ステップS101)。また、CPU 101は、ゲーム開始後の最初のシーンにおける区切り時刻に対応付ける生成時刻を、当該区切り時刻に決定する。
【0094】
次に、CPU 101は、音声処理部110に、当該課題データに対応付けられたBGMの再生を開始するように指示を出す(ステップS102)。BGMの音声データ列は、DVD−ROM内に、PCM(Pulse Code Modulation)形式、MP3(MPEG Layer 3)形式、Ogg Vorbis形式、MIDI(Musical Instrument Digital Interface)形式等で記録されている。
【0095】
そして、CPU 101は、操作入力の有無を確認する(ステップS103)。具体的には、CPU 101は、マット型コントローラ105の各ボタンの押圧操作の状況を調べる。なお、押圧操作され始めたボタンがある場合、当該ボタンが押圧されたことを示す音声を表現する音声データ列の再生を行うように、音声処理部110に対して指示を出してもよい。当該音声データ列としては、上記のような各種の音声データ列を利用することができるが、処理の高速化を図るため、あらかじめRAM 103に読み出しておくことが望ましい。また、これらの音声データ列の保存形式として、MIDI形式等、データ量が少ない形式を利用することができる。
【0096】
次に、CPU 101は、操作入力の判定を行う(ステップS104)。具体的には、CPU 101は、課題時間403と、操作入力の種類404と、閾時間411とに基づいて、成功した操作入力があるか否か、ならびに、失敗した操作入力があるか否かを判定する。すなわち、CPU 101は、当該区切り時刻(当該垂直同期割り込みがなされた時刻)において押されるべきボタンが押されたか、ならびに、当該区切り時刻において押されるべきではないボタンが押されたかを確認する。CPU 101は、成功した操作入力がある場合は、得点を加算する。
【0097】
そして、CPU 101は、キャラクタの形状を取得する(ステップS105)。具体的には、CPU 101は、ステップS108で決定される生成時刻(ゲーム開始後の最初のシーンにおいては、ステップS101で決定された生成時刻(区切り時刻))に基づいてキャラクタの形状を計算する。なお、振り付けは、シーン毎にあらかじめ定められている。従って、シーン中の区切り時刻に対応付けられる生成時刻が決定すると、当該区切り時刻におけるキャラクタの形状も定まる。CPU 101は、当該区切り時刻で表示されるキャラクタの形状を、キャラクタ毎に求める。
【0098】
次に、CPU 101は、キャラクタを表示する(ステップS106)。具体的には、CPU 101は、画像処理部107を制御して、ステップS105で取得したキャラクタの形状で各キャラクタを表示させるビデオ信号を生成し、当該生成したビデオ信号をモニター112に供給する。
【0099】
そして、CPU 101は、現在の区切り時刻が現在のシーンに含まれる最後の区切り時刻か否か、すなわち、現在のシーンが終了したか否かを判別する(ステップS107)。CPU 101は、現在のシーンが終了していないと判別すると(ステップS107:NO)、次の区切り時刻まで待機する処理に移行する(ステップS109)。一方、CPU 101は、現在のシーンが終了したと判別すると(ステップS107:YES)、生成時刻決定処理に移行する(ステップS108)。
【0100】
生成時刻決定処理については、図9に示すフローチャートを参照して詳細に説明する。
【0101】
まず、CPU 101は、現在のシーンにおけるプレイヤーの成績を求める(ステップS201)。典型的には、ステップS104でなされた操作入力の判定結果に基づいて加算された得点のうち、現在のシーンにおいて加算された得点を取得する。
【0102】
次に、CPU 101は、ステップS201において求めたプレイヤーの成績に応じて乱数の発生範囲を設定する(ステップS202)。ここで、乱数の発生範囲は、プレイヤーの成績が良ければ良いほど狭くなるように設定される。
【0103】
そして、CPU 101は、第1キャラクタ303、第2キャラクタ304、ならびに、第3キャラクタ305の3つのキャラクタから1つのキャラクタを選択する(ステップS203)。
【0104】
次に、CPU 101は、区切り時刻を1つ選択する(ステップS204)。例えば、CPU 101は、早い時刻から順番に区切り時刻を選択する。
【0105】
そして、CPU 101は、ステップS204において選択された区切り時刻がシーンの先頭又は末尾の区切り時刻であるか否かを判別する(ステップS205)。CPU 101は、ステップS204において選択された区切り時刻がシーンの先頭又は末尾の区切り時刻であると判別した場合(ステップS205:YES)、当該区切り時刻を当該区切り時刻に対応付ける生成時刻に決定する(ステップS206)。
【0106】
一方、CPU 101は、ステップS204において選択された区切り時刻がシーンの先頭又は末尾の区切り時刻のいずれでもないと判別した場合(ステップS205:NO)、ステップS202において設定された範囲において乱数を発生させて乱数を取得する(ステップS207)。
【0107】
そして、CPU 101は、乱数の取得(ステップS207)を終了すると、ステップS204において選択された区切り時刻に対応付ける生成時刻の候補を決定する(ステップS208)。具体的には、CPU 101は、ステップS204において選択された区切り時刻から、ステップS207において取得した乱数により示される時間だけ経過させた時刻を、生成時刻の候補に決定する。なお、乱数が負の値である場合は、生成時刻の候補は、区切り時刻よりも早い時刻となる。
【0108】
次に、CPU 101は、ステップS208において決定した生成時刻の候補が制約条件を満たすか否かを判別する(ステップS209)。CPU 101は、生成時刻の候補が制約条件を満たすと判別すると(ステップS209:YES)、生成時刻の候補を生成時刻に決定する(ステップS210)。一方、CPU 101は、生成時刻の候補が制約条件を満たさないと判別すると(ステップS209:NO)、乱数を取得する処理(ステップS207)に処理を戻す。
【0109】
CPU 101は、区切り時刻を生成時刻に決定する処理(ステップS206)、または、生成時刻の候補を生成時刻に決定する処理(ステップS210)を終了すると、全ての区切り時刻を選択したか否かを判別する(ステップS211)。CPU 101は、いずれかの区切り時刻を選択していないと判別すると(ステップS211:NO)、区切り時刻を選択する処理(ステップS204)に処理を戻す。一方、CPU 101は、全ての区切り時刻を選択したと判別すると(ステップS211:YES)、全てのキャラクタを選択したか否かを判別する(ステップS212)。CPU 101は、いずれかのキャラクタを選択していないと判別すると(ステップS212:NO)、キャラクタを選択する処理(ステップS203)に処理を戻す。一方、CPU 101は、全てのキャラクタを選択したと判別すると(ステップS212:YES)、生成時刻決定処理を終了する。
【0110】
CPU 101は、シーン終了ではないと判別(ステップS107:NO)、または、生成時刻決定処理(ステップS108)を終了すると、次の区切り時刻、すなわち、次の垂直同期まで待機する(ステップS109)。この待機の間に、ほかの処理を実行しても良い。そして、CPU 101は、ゲーム終了時刻か否かを判別する(ステップS110)。ゲーム終了時刻であるか否かは、ゲームを開始してからの経過時間が、課題データ400に含まれるゲーム時間を超えているか否かを判別することができる。CPU 101は、ゲーム終了時刻であると判別すると(ステップS110:YES)、キャラクタ表示制御処理を終了する。一方、CPU 101は、ゲーム終了時刻ではないと判別すると(ステップS110:NO)、操作入力の有無を確認する処理(ステップS103)に処理を戻す。
【0111】
本実施形態に係るゲーム装置によれば、振り付けに従った動作を実行するトータルの時間を変化させずに、当該振り付けに従った動作中の動作の速さをキャラクタ毎に変化させることができる。これにより、各キャラクタは、シーン内で完結すべき動作を、シーン内のあるタイミングでは早送り再生し、また、シーン内の別のタイミングではスロー再生しながらも、シーン内で完結するように表示される。なお、早送り再生もしくはスロー再生するタイミングは、キャラクタ毎に異なる。従って、各キャラクタが各々の再生速度で振り付けに従った動作を実行する動画像が表示される。そして、プレイヤーの成績が良ければ良いほど、各動作を実行するタイミングのばらつきを少なくすることができる。これにより、プレイヤーの成績が良いほど、すなわち、プレイヤーがダンスのステップを上手に踏むほど、バックダンサーとしての各キャラクタが振り付けに従った各動作を揃って実行し、プレイヤーの成績が悪いほど、すなわち、プレイヤーがダンスのステップを下手に踏むほど、バックダンサーとしてのキャラクタが振り付けに従った各動作をばらばらに実行するように、各キャラクタを表示することができる。
【0112】
(第2の実施形態)
第1の実施形態では、1つの生成時刻を決定するために、その都度乱数を発生させる例を示した。しかし、本発明によれば、全ての区切り時刻から代表となる区切り時刻(以下「代表時刻」という。)を選択し、代表時刻に対応付ける生成時刻のみ乱数を発生させることにより決定し、代表時刻以外の区切り時刻に対応付ける生成時刻については、代表時刻に対応付けられた生成時刻を補完するように決定しても良い。以下、第2の実施形態に係るゲーム装置について説明するが、第2の実施形態に係るゲーム装置の構成は、第1の実施形態に係るゲーム装置の構成と同様であるため説明を省略する。
【0113】
まず、図10を参照して、生成時刻を決定する手法について説明する。以下、第1キャラクタ303について生成時刻を決定する手法について説明するが、他のキャラクタについても同様の手法により生成時刻を決定する。図10に示す例では、区切り時刻は、D[0]=B,D[1],…,D[30]=Eであり、所定期間を30個の期間に区切る31個の時刻である。ここで、第1キャラクタ303についてD[0],D[1],…,D[30]のそれぞれに対応付ける生成時刻をG1[0],G1[1],…,G1[30]とする。
【0114】
ここで、時系列上で隣接する代表時刻間の間隔が等間隔になるように、全ての区切り時刻の中から複数の代表時刻を選択する。図10に示す例では、先頭と末尾の区切り時刻を含むように全ての区切り時刻の中から9個おきに選択されたD[0]、D[10]、D[20]、D[30]の4個の区切り時刻が代表時刻である。
【0115】
まず、選択された代表時刻であるD[0]、D[10]、D[20]、D[30]のそれぞれに対応付ける生成時刻であるG1[0]、G1[10]、G1[20]、G1[30]が決定される。具体的には、まず、G1[0]=D[0]に決定される。次に、乱数を用いてG1[10]とG1[20]とが決定される。具体的には、まず、プレイヤーの成績に応じて乱数の発生範囲が決定される。ここで、プレイヤーの成績が良ければ良いほど乱数の振れ幅が狭く設定される。ただし、本実施形態では、乱数を用いて決定された生成時刻が必ず制約条件を満たすように乱数の振れ幅が設定される。すなわち、プレイヤーの成績が最も悪い場合であっても、所定期間の1/6以下になるように乱数の振れ幅が設定される。そして、代表時刻から乱数により示される時間だけ経過させた時刻が生成時刻に決定される。
【0116】
例えば、G1[10]について、−Rmax≦R3≦Rmaxの範囲でR3が取得された場合、D[10]+R3がG1[10]に決定される。同様にして、G1[20]について、−Rmax≦R4≦Rmaxの範囲でR4が取得された場合、D[20]+R4がG1[20]に決定される。
【0117】
そして、代表時刻以外の区切り時刻に対応付ける生成時刻が決定される。代表時刻以外の区切り時刻に対応付けられる生成時刻は、代表時刻に対応付けられた生成時刻間を等間隔に区切る時刻に決定される。具体的には、G1[0]からG1[10]までの時間を10等分する時刻のそれぞれが、G1[1]〜G1[9]に設定される。同様に、G1[10]からG1[20]までの時間を10等分する時刻のそれぞれが、G1[11]からG1[19]に設定される。同様に、G1[20]からG1[30]までの時間を10等分する時刻のそれぞれが、G1[21]からG1[29]に設定される。
【0118】
次に、本実施形態に係るゲーム装置200の動作について説明する。なお、本実施形態に係るゲーム装置200が実行するキャラクタ表示制御処理は、生成時刻決定処理を除き、第1の実施形態と同様である。従って、以下では、図11を参照して、本実施形態に係るゲーム装置200が実行する生成時刻決定処理について説明する。
【0119】
まず、CPU 101は、現在のシーンにおけるプレイヤーの成績を求める(ステップS301)。次に、CPU 101は、ステップS301において求めたプレイヤーの成績に応じて乱数の発生範囲を設定する(ステップS302)。そして、CPU 101は、第1キャラクタ303、第2キャラクタ304、ならびに、第3キャラクタ305の3つのキャラクタから1つのキャラクタを選択する(ステップS303)。
【0120】
次に、CPU 101は、区切り時刻の代表時刻を1つ選択する(ステップS304)。本実施形態では、CPU 101は、早い時刻から順番に代表時刻を選択する。
【0121】
そして、CPU 101は、ステップS304において選択された代表時刻がシーンの先頭又は末尾の区切り時刻か否かを判別する(ステップS305)。CPU 101は、ステップS304において選択された代表時刻がシーンの先頭又は末尾の区切り時刻であると判別した場合(ステップS305:YES)、当該代表時刻を当該代表時刻である区切り時刻に対応付ける生成時刻に決定する(ステップS306)。
【0122】
一方、CPU 101は、ステップS304において選択された代表時刻がシーンの先頭又は末尾の区切り時刻のいずれでもないと判別した場合(ステップS305:NO)、ステップS302において設定された範囲において乱数を発生させて乱数を取得する(ステップS307)。
【0123】
そして、CPU 101は、乱数の取得(ステップS307)を終了すると、ステップS304において選択された代表時刻である区切り時刻に対応付ける生成時刻を決定する(ステップS308)。具体的には、CPU 101は、ステップS304において選択された代表時刻から、ステップS307において取得した乱数により示される時間だけ経過させた時刻を、当該区切り時刻に対応付ける生成時刻に決定する。
【0124】
CPU 101は、代表時刻を生成時刻に決定する処理(ステップS306)、または、生成時刻を決定する処理(ステップS308)を終了すると、全ての代表時刻を選択したか否かを判別する(ステップS309)。CPU 101は、いずれかの代表時刻を選択していないと判別すると(ステップS309:NO)、区切り時刻を選択する処理(ステップS304)に処理を戻す。一方、CPU 101は、全ての代表時刻を選択したと判別すると(ステップS309:YES)、代表時刻間の区切り時刻に対応付ける生成時刻を決定する(ステップS310)。
【0125】
具体的には、CPU 101は、代表時刻を時系列に並べたときに隣接する2つの代表時刻のそれぞれに対応付けられた生成時刻間の時間を、(当該隣接する2つの代表時刻間に存在する区切り時刻の数+1)個に等間隔に区切る時刻のそれぞれを、当該隣接する2つの代表時刻間に存在する区切り時刻のそれぞれに対応付ける生成時刻として決定する。CPU 101は、代表時刻間の区切り時刻に対応付ける生成時刻を決定する処理(ステップS310)を終了すると、全てのキャラクタを選択したか否かを判別する(ステップS311)。CPU 101は、いずれかのキャラクタを選択していないと判別すると(ステップS311:NO)、キャラクタを選択する処理(ステップS303)に処理を戻す。一方、CPU 101は、全てのキャラクタを選択したと判別すると(ステップS311:YES)、生成時刻決定処理を終了する。
【0126】
本実施形態に係るゲーム装置200によれば、代表時刻についてのみ乱数を用いて生成時刻が決定され、代表時刻以外の区切り時刻については代表時刻に対応付けられた生成時刻の間を補完するように生成時刻が決定される。これにより、表示されるキャラクタのモーションがスムーズになる。また、かかる構成によれば乱数の発生範囲をある程度大きくしても制約条件が満たされることになる。さらに、制約条件を満たすか否かを判別し、再度乱数を発生させる処理をなくすことができるため、処理時間の短縮が期待できる。
【0127】
(第3の実施形態)
第1、2の実施形態では、乱数を用いて生成時刻を決定してたが、区切り時刻と当該区切り時刻に対応付ける生成時刻の当該区切り時刻からのシフト量とが対応付けられたテーブルをあらかじめ用意しておき、当該テーブルを用いて生成時刻を決定するようにしてもよい。以下、第3の実施形態に係るゲーム装置200について説明するが、第3の実施形態に係るゲーム装置200の構成は、第1ならびに第2の実施形態に係るゲーム装置200の構成と同様であるため説明を省略する。
【0128】
まず、図12を参照して、生成時刻を決定する手法について説明する。以下、第1キャラクタ303について生成時刻を決定する手法について説明するが、他のキャラクタについても同様の手法により生成時刻を決定する。図12に示す例では、区切り時刻は、D[0]=B,D[1],…,D[8]=Eであり、所定期間を8個の期間に区切る9個の時刻である。ここで、第1キャラクタ303についてD[0],D[1],…,D[8]のそれぞれに対応付ける生成時刻をG1[0],G1[1],…,G1[8]とする。
【0129】
ここで、外部メモリ106などにあらかじめ記憶されている、区切り時刻と当該区切り時刻に対応付ける生成時刻の当該区切り時刻からのシフト量とが対応付けられたテーブルに基づいて、生成時刻が決定される。なお、シフト量は、区切り時刻と当該区切り時刻に対応付ける生成時刻との差の時間を示す量である。このテーブルにおいて、先頭の区切り時刻に対応付けられているシフト量と末尾の区切り時刻に対応付けられているシフト量とがともに0であり、区切り時刻の変化に従ってシフト量が徐々に変化するように、区切り時刻とシフト量とが対応付けられていることが望ましい。このテーブルは、区切り時刻を変数として当該区切り時刻に対応付けるシフト量が所定の関数の値になるように、当該変数の離散値と当該関数の値の離散値とを対応付けて記憶するものでもよい。図12を参照して、区切り時刻に対応付けるシフト量が当該区切り時刻を変数とする正弦関数の値となるように区切り時刻にシフト量が対応付けられたテーブルに基づいて生成時刻を決定する例について説明する。
【0130】
図12に示す例では、D[0]に対応付けられるG1[0]のシフト量とD[8]に対応付けられるG1[8]のシフト量とは0である。ここで、Smaxは正弦関数の振幅とする。なお、D[2]に対応付けられるG1[2]のシフト量が最大(Smax)であり、D[6]に対応付けられるG1[6]のシフト量が最小(−Smax)である。
【0131】
ここで、プレイヤーの成績に応じてシフト量のゲインが決定される。具体的には、プレイヤーの成績が良ければ良いほどゲインは小さな値に設定される。そして、区切り時刻から、当該区切り時刻に対応付けられているシフト量にゲインを乗じた値だけ経過させた時刻(シフトさせた時刻)を生成時刻に決定する。なお、シフト量とゲインとは、上述した制約を満たすように設定される。
【0132】
また、ゲインは各キャラクタで共通のものを用いてもよいが、テーブルはキャラクタ毎に別々のものを用意することが望ましい。これにより、プレイヤーの成績が良ければ良いほど、振り付けに従った各動作を各キャラクタが実行するタイミングのばらつきが小さくなるように表示され、プレイヤーの成績が悪ければ悪いほど、振り付けに従った各動作を各キャラクタが実行するタイミングのばらつきが大きくなるように表示される。
【0133】
次に、本実施形態に係るゲーム装置200の動作について説明する。なお、本実施形態に係るゲーム装置200が実行するキャラクタ表示制御処理は、生成時刻決定処理を除き、第1ならびに第2の実施形態のものと同様である。従って、以下では、図13を参照して、本実施形態に係るゲーム装置200が実行する生成時刻決定処理について説明する。
【0134】
まず、CPU 101は、現在のシーンにおけるプレイヤーの成績を求める(ステップS401)。次に、CPU 101は、ステップS401において求めたプレイヤーの成績に応じてシフト量のゲインを決定する(ステップS402)。そして、CPU 101は、第1キャラクタ303、第2キャラクタ304、ならびに、第3キャラクタ305の3つのキャラクタから1つのキャラクタを選択する(ステップS403)。
【0135】
次に、CPU 101は、キャラクタに対応付けられたテーブルを外部メモリ106から読み出す(ステップS404)。なお、このテーブルには、区切り時刻とシフト量とが対応付けられて記憶されている。
【0136】
次に、CPU 101は、区切り時刻を1つ選択する(ステップS405)。例えば、CPU 101は、早い時刻から順番に区切り時刻を選択する。
【0137】
そして、CPU 101は、ステップS405で選択した区切り時刻に対応付ける生成時刻を決定する(ステップS406)。具体的には、CPU 101は、ステップS405で選択した区切り時刻から、ステップS402で決定したゲインとステップS404で読み出したテーブル中の当該区切り時刻に対応付けられているシフト量との積だけ経過させた時刻を当該区切り時刻に対応付ける生成時刻に決定する。
【0138】
CPU 101は、生成時刻を決定する処理(ステップS406)を終了すると、全ての区切り時刻を選択したか否かを判別する(ステップS407)。CPU 101は、いずれかの区切り時刻を選択していないと判別すると(ステップS407:NO)、区切り時刻を選択する処理(ステップS405)に処理を戻す。一方、CPU 101は、全ての区切り時刻を選択したと判別すると(ステップS407:YES)、全てのキャラクタを選択したか否かを判別する(ステップS408)。CPU 101は、いずれかのキャラクタを選択していないと判別すると(ステップS408:NO)、キャラクタを選択する処理(ステップS403)に処理を戻す。一方、CPU 101は、全てのキャラクタを選択したと判別すると(ステップS408:YES)、生成時刻決定処理を終了する。
【0139】
本実施形態に係るゲーム装置によれば、区切り時刻に対応付ける生成時刻を乱数を発生させることなくキャラクタ毎に異なる生成時刻に決定することができる。これにより、処理速度の向上が期待できる。
【0140】
(変形例)
本発明は、上述した第1〜3の実施形態に限られるものではなく、種々の変形が可能である。
【0141】
第1〜3の実施形態では、各シーンにおいて各キャラクタがとるモーションのばらつきの度合いを、前のシーンのプレイヤーの成績に応じて変化させるようにしていた。しかしながら、各シーンにおいて各キャラクタがとるモーションのばらつきの度合いを、ゲーム開始後の任意の期間のプレイヤーの成績に応じて変化させてもよい。
【0142】
第1〜3の実施形態では、プレイヤーの成績に応じて、各キャラクタがとるモーションのばらつきを変化させるようにしていたが、プレイヤーの成績とは無関係に各キャラクタがとるモーションを変化させるようにしてもよい。
【0143】
第3の実施形態では、区切り時刻と当該区切り時刻に対応付ける生成時刻の当該区切り時刻からの時間軸上のシフト量と対応付けるテーブルをあらかじめ外部メモリ106に記憶しておき、当該テーブルを用いて、生成時刻を決定した。しかし、テーブルは、プログラム中にあらかじめ記憶されているものでもよい。また、テーブルを用いずに、区切り時刻を変数としてシフト量を求めるような所定の関数を用いて、生成時刻を決定するようにしてもよい。この場合、先頭の区切り時刻に対応付ける生成時刻が当該先頭の区切り時刻に決定され、末尾の区切り時刻に対応付ける生成時刻が当該末尾の区切り時刻に決定されるような関数を採用する。
【産業上の利用可能性】
【0144】
以上説明したように、本発明によれば、キャラクタを適切に表示するのに好適な動画像生成装置、ゲーム装置、動画像生成方法、ならびに、これらをコンピュータにより実現するためのプログラムを提供することができる。
【符号の説明】
【0145】
100 情報処理装置
101 CPU
102 ROM
103 RAM
104 インターフェース
105 マット型コントローラ
106 外部メモリ
107 画像処理部
108 DVD−ROMドライブ
109 NIC
110 音声処理部
111 RTC
112 モニター
200 ゲーム装置
201 形状計算部
202 決定部
203 生成部
204 受付部
205 判定部
206 表示部
301L、301D、301U、301R 静止マーク
302L、302D、302U、302R 標的
303 第1キャラクタ
304 第2キャラクタ
305 第3キャラクタ
400 課題データ
401 表
402 レコード
403 課題時間
404 操作入力の種類
405 標的の状態
411 閾時間
421 終了時間
500 模範キャラクタ

【特許請求の範囲】
【請求項1】
所定期間に含まれるいずれかの時刻が与えられると、当該時刻に対応付けられるキャラクタの形状を計算する形状計算部、
前記所定期間の先頭から末尾までを等間隔に区切る区切り時刻のそれぞれに対応付けられる生成時刻を決定する決定部、
前記区切り時刻のそれぞれに対応付けられる生成時刻を前記形状計算部に与えて計算させ、当該計算されたキャラクタの形状から当該区切り時刻において表示すべきキャラクタの画像を生成する生成部
を備える動画像生成装置であって、
前記区切り時刻のうち先頭の区切り時刻と、当該先頭の区切り時刻に対応付けられる生成時刻と、は、いずれも前記所定期間の先頭の時刻に等しく、
前記区切り時刻のうち末尾の区切り時刻と、当該末尾の区切り時刻に対応付けられる生成時刻と、は、いずれも前記所定期間の末尾の時刻に等しく、
前記区切り時刻を時間の経過順に並べ、その順序で当該区切り時刻に対応付けられる生成時刻を並べると、時間の経過順となる
ことを特徴とする動画像生成装置。
【請求項2】
請求項1に記載の動画像生成装置であって、
前記決定部は、前記区切り時刻と、当該区切り時刻に対応付けられる生成時刻と、の差を、乱数に基づいて決定する
ことを特徴とする動画像生成装置。
【請求項3】
請求項1又は2に記載の動画像生成装置であって、
前記生成部は、複数のキャラクタの画像を生成し、
前記決定部は、前記複数のキャラクタ毎に生成時刻を決定する
ことを特徴とする動画像生成装置。
【請求項4】
請求項2に記載の動画像生成装置であって、
前記決定部は、前記先頭の区切り時刻と前記末尾の区切り時刻とを含むように前記区切り時刻から所定の個数の区切り時刻(以下「代表時刻」という。)を選択し、
(A)前記代表時刻のうち前記先頭の区切り時刻に対応付けられる生成時刻を当該先頭の区切り時刻と等しくなるように決定し、
(B)前記代表時刻のうち前記末尾の区切り時刻に対応付けられる生成時刻を当該末尾の区切り時刻と等しくなるように決定し、
(C)前記代表時刻のうち前記先頭の区切り時刻と前記末尾の区切り時刻と以外の区切り時刻と、当該区切り時刻に対応付けられる生成時刻と、の差を、乱数に基づいて決定し、
(D)前記代表時刻を時間の経過順に並べたときに隣り合う2つの代表時刻の間の区切り時刻に対応付けられる生成時刻を、当該生成時刻の間隔が等間隔になるように決定する
ことを特徴とする動画像生成装置。
【請求項5】
請求項1に記載の動画像生成装置であって、
前記区切り時刻と、当該区切り時刻に対応付けられる生成時刻と、の差の基準値を区切り時刻毎に記憶する記憶部、をさらに備え、
前記決定部は、前記区切り時刻と、当該区切り時刻に対応付けられる生成時刻と、の差を、前記記憶部に記憶されている区切り時刻毎の基準値に基づいて決定する
ことを特徴とする動画像生成装置。
【請求項6】
プレイヤーからの指示入力を受け付ける受付部、
前記受け付けられた指示入力に基づいて、前記プレイヤーの成績を判定する判定部、
請求項1に記載の動画像生成装置により生成された動画像を表示する表示部
を備えることを特徴とするゲーム装置。
【請求項7】
請求項6に記載のゲーム装置であって、
前記決定部は、前記区切り時刻と、当該区切り時刻に対応付けられる生成時刻と、の差を、乱数に基づいて決定し、前記判定されたプレイヤーの成績に応じて、前記乱数のとりうる範囲を変化させる
ことを特徴とするゲーム装置。
【請求項8】
形状計算部、決定部、生成部を備える動画像生成装置が実行する動画像生成方法であって、
前記形状計算部が、所定期間に含まれるいずれかの時刻が与えられると、当該時刻に対応付けられるキャラクタの形状を計算する形状計算工程、
前記決定部が、前記所定期間の先頭から末尾までを等間隔に区切る区切り時刻のそれぞれに対応付けられる生成時刻を決定する決定工程、
前記生成部が、前記区切り時刻のそれぞれに対応付けられる生成時刻を前記形状計算部に与えて計算させ、当該計算されたキャラクタの形状から当該区切り時刻において表示すべきキャラクタの画像を生成する生成工程
を備える動画像生成方法であって、
前記区切り時刻のうち先頭の区切り時刻と、当該先頭の区切り時刻に対応付けられる生成時刻と、は、いずれも前記所定期間の先頭の時刻に等しく、
前記区切り時刻のうち末尾の区切り時刻と、当該末尾の区切り時刻に対応付けられる生成時刻と、は、いずれも前記所定期間の末尾の時刻に等しく、
前記区切り時刻を時間の経過順に並べ、その順序で当該区切り時刻に対応付けられる生成時刻を並べると、時間の経過順となる
ことを特徴とする動画像生成方法。
【請求項9】
コンピュータを、
所定期間に含まれるいずれかの時刻が与えられると、当該時刻に対応付けられるキャラクタの形状を計算する形状計算部、
前記所定期間の先頭から末尾までを等間隔に区切る区切り時刻のそれぞれに対応付けられる生成時刻を決定する決定部、
前記区切り時刻のそれぞれに対応付けられる生成時刻を前記形状計算部に与えて計算させ、当該計算されたキャラクタの形状から当該区切り時刻において表示すべきキャラクタの画像を生成する生成部
として機能させるプログラムであって、
前記区切り時刻のうち先頭の区切り時刻と、当該先頭の区切り時刻に対応付けられる生成時刻と、は、いずれも前記所定期間の先頭の時刻に等しく、
前記区切り時刻のうち末尾の区切り時刻と、当該末尾の区切り時刻に対応付けられる生成時刻と、は、いずれも前記所定期間の末尾の時刻に等しく、
前記区切り時刻を時間の経過順に並べ、その順序で当該区切り時刻に対応付けられる生成時刻を並べると、時間の経過順となる
ことを特徴とするプログラム。

【図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