(57)【要約】【課題】オブジェクトの動作の特徴に応じたフレームの画像を生成すること。【解決手段】プログラムは、画像を生成するフレームと前のフレームとの仮の時間間隔を取得する仮時間間隔取得手段、前記動作データに関連づけられた条件を満たす場合に、時間に応じたオブジェクトの姿勢を示す動作データに基づいて前記前のフレームから前記仮の時間間隔より短い時間間隔が経過した時点のオブジェクトの姿勢を取得する姿勢取得手段、および、前記取得されたオブジェクトの姿勢を示す画像を描画する画像描画手段、としてコンピュータを機能させる。【選択図】図２
2013235513.tif 000002
【特許請求の範囲】
【請求項１】
画像を生成するフレームと前のフレームとの仮の時間間隔を取得する仮時間間隔取得手段、
時間に応じたオブジェクトの姿勢を示す動作データに関連づけられた条件を満たす場合に、前記動作データに基づいて前記前のフレームから前記仮の時間間隔より短い時間間隔が経過した時点のオブジェクトの姿勢を取得する姿勢取得手段、および、
前記取得されたオブジェクトの姿勢を示す画像を描画する画像描画手段、
としてコンピュータを機能させるためのプログラム。
【請求項２】
前記姿勢取得手段は、前記動作データに関連付けられた時点が前記仮の時間間隔の内に含まれる場合に、前記関連づけられた時点のオブジェクトの姿勢を取得する、
ことを特徴とする請求項１に記載のプログラム。
【請求項３】
前記動作データは所与の期間における時間に応じた前記オブジェクトの姿勢を示し、
前記姿勢取得手段は、前記動作データにおける前記所与の期間の先頭の時点が前記仮の時間間隔の内に含まれる場合に、前記先頭の時点のオブジェクトの姿勢を取得する、
ことを特徴とする請求項２に記載のプログラム。
【請求項４】
前記動作データにおける前記所与の期間の先頭は、当該動作データに遷移する前の動作データにおける期間の終わりに連続している、
ことを特徴とする請求項３に記載のプログラム。
【請求項５】
前記姿勢取得手段は、前記動作データに関連付けれらた最大時間間隔が、前記仮の時間間隔より小さい場合に、前記前のフレームから前記最大時間間隔が経過した時点のオブジェクトの姿勢を取得する、
ことを特徴とする請求項１から４のいずれかに記載のプログラム。
【請求項６】
画像を生成するフレームと前のフレームとの仮の時間間隔を取得する仮時間間隔取得手段、
時間に応じたオブジェクトの姿勢を示す動作データに関連づけられた条件を満たす場合に、前記動作データに基づいて前記前のフレームから前記仮の時間間隔より短い時間間隔が経過した時点のオブジェクトの姿勢を取得する姿勢取得手段、および、
前記取得されたオブジェクトの姿勢を示す画像のデータを出力する画像出力手段、
としてコンピュータを機能させるためのプログラムを記憶するコンピュータ読取り可能な記憶媒体。
【請求項７】
画像を生成するフレームと前のフレームとの仮の時間間隔を取得する仮時間間隔取得手段と、
時間に応じたオブジェクトの姿勢を示す動作データに関連づけられた条件を満たす場合に、前記動作データに基づいて前記前のフレームから前記仮の時間間隔より短い時間間隔が経過した時点のオブジェクトの姿勢を取得する姿勢取得手段と、
前記取得されたオブジェクトの姿勢を示す画像のデータを出力する画像出力手段と、
を含むことを特徴とする画像生成装置。
【請求項８】
画像を生成するフレームと前のフレームとの仮の時間間隔を取得するステップと、
時間に応じたオブジェクトの姿勢を示す動作データに関連づけられた条件を満たす場合に、前記動作データに基づいて前記前のフレームから前記仮の時間間隔より短い時間間隔が経過した時点のオブジェクトの姿勢を取得するステップと、
前記取得されたオブジェクトの姿勢を示す画像のデータを出力するステップと、
を含むことを特徴とする画像生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像生成装置、画像生成方法、プログラム及び情報記憶媒体に関する。
【背景技術】
【０００２】
ユーザの入力に応じて物体（オブジェクト）の動きを表現する３次元の動画をリアルタイムに生成する画像生成装置がある。動画は、静止画をある時間が経過するごとに切替えることによって表現される。動画を構成する１つ１つの静止画を、フレームという。画像生成装置は、オブジェクトの時間に応じた姿勢の情報である動作データを用いてそれらのフレームの画像を生成する。画像生成装置はそのフレームに対応する時間（サンプリング時間）におけるオブジェクトの姿勢を動作データからサンプリングし、そのオブジェクトの姿勢を示すフレームの画像データを出力する。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
通常、あるフレームに対するサンプリング時間と次のフレームに対するサンプリング時間との間隔は、固定値であるか、あるいはフレームの画像を生成するための処理の実際の計算時間に応じて変化させている。
【０００４】
すると、オブジェクトの動作とサンプリング時間の間隔との関係によって、その動作の特徴が各フレームの画像に表われない場合がある。例えば、オブジェクトがジャンプする動作では、そのジャンプで最高点に達する瞬間を表現するフレームが存在せず、結果としてそのオブジェクトがジャンプの高さが表現されないことがある。さらに動作データからサンプリングされた結果を衝突判定に用いる場合には、起こるべき衝突または接触が起きなくなる恐れもある。他にも、例えば車輪が回転する運動の場合には、フレーム間の時間間隔が何らかの原因で長くなると逆回転に見えてしまう場合がある。
【０００５】
本発明は上記課題を鑑みてなされたものであって、その目的は、オブジェクトの動作の特徴に応じたフレームの画像を生成することのできる技術を提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明にかかるプログラムは、画像を生成するフレームと前のフレームとの仮の時間間隔を取得する仮時間間隔取得手段、時間に応じたオブジェクトの姿勢を示す動作データに関連づけられた条件を満たす場合に、前記動作データに基づいて前記前のフレームから前記仮の時間間隔より短い時間間隔が経過した時点のオブジェクトの姿勢を取得する姿勢取得手段、および、前記取得されたオブジェクトの姿勢を示す画像を描画する画像描画手段、としてコンピュータを機能させる。
【０００７】
また、本発明にかかるコンピュータ読み取り可能な記憶媒体は、上記プログラムを格納する。
【０００８】
また、本発明にかかる画像生成装置は、画像を生成するフレームと前のフレームとの仮の時間間隔を取得する仮時間間隔取得手段と、時間に応じたオブジェクトの姿勢を示す動作データに関連づけられた条件を満たす場合に、前記動作データに基づいて前記前のフレームから前記仮の時間間隔より短い時間間隔が経過した時点のオブジェクトの姿勢を取得する姿勢取得手段と、前記取得されたオブジェクトの姿勢を示す画像のデータを出力する画像出力手段と、を含むことを特徴とする。
【０００９】
また、本発明にかかる画像生成方法は、画像を生成するフレームと前のフレームとの仮の時間間隔を取得するステップと、時間に応じたオブジェクトの姿勢を示す動作データに関連づけられた条件を満たす場合に、前記動作データに基づいて前記前のフレームから前記仮の時間間隔より短い時間間隔が経過した時点のオブジェクトの姿勢を取得するステップと、前記取得されたオブジェクトの姿勢を示す画像のデータを出力するステップと、を含むことを特徴とする。
【００１０】
本発明によれば、オブジェクトの動作の特徴に応じたフレームの画像を生成することができる。
【００１１】
本発明の一態様では、前記姿勢取得手段は、前記動作データに関連付けられた時点が前記仮の時間間隔の内に含まれる場合に、前記関連づけられた時点のオブジェクトの姿勢を取得してもよい。
【００１２】
本発明の一態様では、前記動作データは所与の期間における時間に応じた前記オブジェクトの姿勢を示し、前記姿勢取得手段は、前記動作データにおける前記所与の期間の先頭の時点が前記仮の時間間隔の内に含まれる場合に、前記先頭の時点のオブジェクトの姿勢を取得してもよい。
【００１３】
本発明の一態様では、前記動作データにおける前記所与の期間の先頭は、当該動作データに遷移する前の動作データにおける期間の終わりに連続していてもよい。
【００１４】
本発明の一態様では、前記姿勢取得手段は、前記動作データに関連付けれらた最大時間間隔が、前記仮の時間間隔より小さい場合に、前記前のフレームから前記最大時間間隔が経過した時点のオブジェクトの姿勢を取得してもよい。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態にかかる画像生成装置の構成の一例を示す図である。
【図２】本発明の実施形態にかかる画像生成装置の機能ブロックを示す図である。
【図３】本発明の実施形態にかかる画像生成装置の処理フローの一例を示す図である。
【図４】フレームとそのフレームの画像を描画する実時間(actual time)との関係の一例を示す図である。
【図５】制御データの一例を示す図である。
【図６】動作データが示すアニメＡおよびＢにおけるオブジェクトの動作の一例を示す図である。
【図７】動作データが示すアニメＣにおけるオブジェクトの動作の一例を示す図である。
【図８】フレームレート保障部の処理フローの一例を示す図である。
【図９】先頭再生保障部の処理フローの一例を示す図である。
【図１０】サンプリング時間決定部の処理フローの一例を示す図である。
【図１１】先頭再生保障の処理が行われる場合のサンプリング時間の一例を示す図である。
【図１２】先頭再生保障フラグが有効となるアニメーションにおけるオブジェクトの動作の一例を示す図である。
【図１３】先頭再生保障の処理が行われない場合のサンプリング時間の一例を示す図である。
【図１４】図１３に示す場合におけるオブジェクトの動作の一例を示す図である。
【図１５】フレームレートが保障される場合の一例を示す図である。
【発明を実施するための形態】
【００１６】
以下では、本発明の実施形態について図面に基づいて説明する。出現する構成要素のうち同一機能を有するものには同じ符号を付し、その説明を省略する。
【００１７】
図１は本発明の実施形態に係る画像生成装置１の構成を示す図である。画像生成装置１は、中央制御部１１と、記憶部１２と、描画処理部１３と、入出力部１４とを含んでいる。画像生成装置１は、例えばパーソナルコンピュータや家庭用ゲーム機のように３次元画像を生成する機能を有する機器である。
【００１８】
中央制御部１１は、記憶部１２に格納されているプログラムに従って動作し、描画処理部１３や入出力部１４を制御する。なお、上記プログラムは、ＤＶＤ−ＲＯＭ等のコンピュータで読み取り可能な記憶媒体に格納されて提供されるものであってもよいし、インターネット等のネットワークを介して提供されるものであってもよい。
【００１９】
記憶部１２は、ＲＡＭやＲＯＭ等のメモリ素子およびハードディスクドライブ等によって構成されている。記憶部１２は、上記プログラムを格納する。また、記憶部１２は、各部から入力される情報や演算結果を格納する。
【００２０】
描画処理部１３は、記憶部１２に格納されるプログラムに従って並列的に数値演算を行う機能や、３次元の物体の表面を示す情報から２次元画像を描画する機能を有する。描画処理部１３は、その計算結果を記憶部１２や入出力部１４に出力する。
【００２１】
入出力部１４は、モニタ等の表示出力デバイスを制御する手段や、マウス等の入力デバイスを制御する手段などによって構成されている。入出力部１４は、中央制御部１１の制御に基づいて、描画処理部１３等で生成した画像データ等を表示出力デバイスに対して出力し、入力デバイスより操作者（ユーザ）からの情報を取得する。
【００２２】
図２は、本発明の実施形態にかかる画像生成装置１の機能ブロックを示す図である。画像生成装置１は機能的に、制御データ格納部２１、動作データ格納部２２、システム時間間隔取得部２３、姿勢取得部２４、画像描画部２５を含む。また、姿勢取得部２４は、遷移制御部２６、フレームレート保障部２７、先頭再生保障部２８、サンプリング時間決定部２９、サンプリング部３０，姿勢生成部３１を含む。これらの機能は、中央制御部１１や描画処理部１３が記憶部１２に格納されたプログラムを実行し、入出力部１４等を制御することによって実現される。なお、以下の記載では各機能が中央制御部１１の演算によって実現される旨で記載しているが、これらの機能を中央制御部１１と描画処理部１３とが協働することにより実現してもよい。中央制御部１１と描画処理部１３との間の役割分担は、開発者がプログラムを作成する際に、当該部分の処理の特性に応じて任意に決定すればよい。
【００２３】
図３は、本発明の実施形態にかかる画像生成装置１の処理フローの一例を示す図である。以下ではこの処理フローに従い画像生成装置１が有する機能を説明する。なお、この処理フローは１つのフレームにおける処理を示しており、画像生成装置１は、実際にはフレームごとに図３に示す処理が繰り返すことにより表示出力デバイス等に動画を表示させる。
【００２４】
システム時間間隔取得部２３は、中央制御部１１および記憶部１２を中心として実現される。システム時間間隔取得部２３は、前のフレームの画像を描画する処理の処理時間に基づいて、後述するサンプリングに用いる時間間隔の初期値であるシステム時間間隔ｓｙｓＤＴを取得する（ステップS１０１）。
【００２５】
図４は、フレームとそのフレームの画像を描画する実時間との関係の一例を示す図である。本実施形態にかかる画像生成装置１では、フレーム間の時間間隔がフレームの画像を描画する処理の計算時間に応じて変化する。このような方法は可変フレームレートと呼ばれている。図４では、右方向は時間軸を示し１つの目盛は１垂直帰線期間（この例では６０分の１秒）に相当する。図４の下方向に並ぶバーのそれぞれはフレームに対応しており、フレームの表示される順に並んでいる。それらのバーは、対応するフレームを描画するための処理が行われる実時間帯を示す。１つのフレームの処理は、主処理（図中「ｍａｉｎ」）と描画処理（図中「ｒｅｎｄｅｒｉｎｇ」）とに分けられる。主処理は、各オブジェクトの動作を決定する処理、動作データからそのオブジェクトの姿勢を取得する処理、物理計算を行い力学的な条件を姿勢に反映させる処理などからなる。描画処理は、主処理により決定したオブジェクトの姿勢やそのオブジェクトの表面を構成するポリゴンの情報を用いて画像そのものをビデオメモリに描画する処理を示す。描画が終わると、その画像は表示出力デバイスに表示される。本実施形態では、あるフレームにおける主処理は、処理遅れがなければ２垂直帰線期間以内で行われ、システム時間間隔ｓｙｓＤＴは１／３０ｓとなる。もし何らかの理由で主処理に時間がかかると、システム時間間隔ｓｙｓＤＴは１／６０ｓごと延びる。
【００２６】
姿勢取得部２４およびそれに含まれる遷移制御部２６等は、中央制御部１１および記憶部１２を中心として実現される。姿勢取得部２４は、動作データに基づいて、その動作データに関連づけられた制御データが示す条件（後述の再生保障フレームレートや先頭再生保障などの条件）を満たす場合には、前のフレームからシステム時間間隔ｓｙｓＤＴより短い時間が経過したサンプリング時間におけるオブジェクトの姿勢を取得する。一方、姿勢取得部２４は、条件を満たさない場合には前のフレームからシステム時間間隔ｓｙｓＤＴが経過した時点のオブジェクトの姿勢を取得する。
【００２７】
なお、サンプリング時間は、実時間とは異なるものであり、各オブジェクトが配置される仮想空間内における時間（以下では内部時間という）に相当する。よって、あるフレームを表示してから次のフレームを表示する実時間が１／２０秒の場合に、あるフレームについてのサンプリング時間と次のフレームについてのサンプリング時間との間隔が１／３０秒になる場合もある。内部時間とサンプリング時間とでは時間の進み方は同じである。以下では、全てのオブジェクトで共通の時間として内部時間の語を用いる。ここで、サンプリング時間や後述する再生進行時間ＡｎｉｍＴは再生中のアニメーションごとに定まるものとする。アニメーションのサンプリング時間や再生進行時間ＡｎｉｍＴは、内部時間におけるアニメーションの開始時からの経過時間として表される。
【００２８】
以下では、姿勢取得部２４の処理（ステップＳ１０２〜ステップＳ１１０）について説明する。はじめに、姿勢取得部２４は、時間残量を示す変数ＲＤＴにシステム時間間隔ｓｙｓＤＴを代入する（ステップＳ１０２）。変数ＲＤＴは、直前にサンプリングがされた内部時間から、表示するフレームに相当する内部時間までの時間間隔を示す。変数ＲＤＴは後述のフレームレート保障部２７や先頭再生保障部２８の処理によって強制的に減少させられる。なお、本実施形態にかかる画像生成装置１では、１つのフレームを表示するために、複数のサンプリングを行う場合がある。具体的には、前のフレームに相当する内部時間と今回表示するフレームに相当する内部時間との間で、アニメーションの遷移などが生じる場合が該当する。このような場合には、後述する姿勢生成部３１は、アニメーションを自然に接続させるために、前のフレームで再生中のアニメーションの最終のタイミングにおいてサンプリングされたオブジェクトの姿勢を利用している。１つのフレームを表示するために複数のサンプリングが行われる場合には、ステップＳ１０３からステップＳ１０８の処理が繰り返される。
【００２９】
次に、遷移制御部２６は、アニメーションの新規再生および遷移を制御する（ステップＳ１０３）。ここで、各オブジェクトの動作は、時間の進行に伴いあるアニメーションから別のアニメーションに遷移させることを繰返して表現されている。具体的な例としては、例えば、あるオブジェクトについて立つアニメーションが表現され、そのアニメーションが終了したら歩くアニメーションに遷移することがある。
【００３０】
図５は、制御データの一例を示す図である。制御データは、主に記憶部１２を中心として実現される制御データ格納部２１に格納されている。制御データはアニメーションごとの、再生時に用いる動作データのＩＤ、再生終了時に遷移する次のアニメーションのＩＤ、先頭再生保障をするか否かのフラグ、再生保障フレームレートの設定等を含む。再生保障フレームレートの欄に数字が入っている場合は、その逆数がフレーム間の最大時間間隔を示し、後述の処理で、フレーム間のサンプリング時間の間隔がその最大時間間隔を超えないように制御する。なお、再生保障フレームレートの指定がないアニメーションは、再生保障フレームレートによる制御も行われない。
【００３１】
遷移制御部２６は、処理時の内部時間においてあるアニメーションの再生が終了している場合は、制御データからそのアニメーションの次に再生するアニメーションの情報を取得し、再生中のアニメーションのリストに含まれるそのアニメーションの情報を次のアニメーションの情報に変更する。そうすることで再生が終了したアニメーションを次のアニメーションに遷移させる。そして、遷移したアニメーションの再生進行時間ＡｎｉｍＴを０に設定する。また、入出力部１４や他の機能等からいずれかのオブジェクトについて新規のアニメーションを再生する指示があった場合には、そのアニメーションを再生中のアニメーションのリストに追加し、そのアニメーションの再生進行時間ＡｎｉｍＴを０に設定する。
【００３２】
動作データは、アニメーションのそれぞれについての時間に応じたオブジェクトの姿勢を示すデータである。アニメーションごとに再生する時間の長さ（期間）は決まっている。図６は、動作データが示すアニメＡおよびＢにおけるオブジェクトの動作の一例を示す図である。例えば、アニメＡは人型のオブジェクト４０がジャンプしてから最高地点に達するまでの姿勢の変化のアニメーションであり、アニメＢはオブジェクト４０がジャンプで最高地点に達してから着地するまでのアニメーションである。図５の例と図６の例は対応しており、アニメＡの再生が終了すると遷移によりアニメＢが連続して再生される。アニメＡとアニメＢが連続的に再生されることで、ジャンプの一連の動作が表現される。図７は、動作データが示すアニメＣにおけるオブジェクトの動作の一例を示す図である。アニメＣは、車輪状のオブジェクト４１が回転する動作のアニメーションである。
【００３３】
次に、フレームレート保障部２７は、再生中のアニメーションについての再生保障フレームレートの条件を満たすように、ＲＤＴを調整する（ステップＳ１０４）。その処理内容について以下に示す。
【００３４】
図８は、フレームレート保障部２７の処理フローの一例を示す図である。フレームレート保障部２７は、再生中のアニメーションのうち順序に応じた１つについて、再生保障フレームレートの取得を試みる（ステップＳ２０１）。そして、再生保障フレームレートが取得でき（ステップＳ２０２のＹ）、かつ、再生保障フレームレートが示す最大時間間隔がＲＤＴより小さい（ステップＳ２０３のＹ）場合には、ＲＤＴに再生保障フレームレートが示す最大時間間隔を代入する（ステップＳ２０４）。もし再生保障フレームレートが取得できない（ステップＳ２０２のＮ）、あるいは、再生保障フレームレートが示す最大時間間隔がＲＤＴ以上（ステップＳ２０３のＮ）の場合には、ステップＳ２０４の処理はスキップする。そして、再生保障フレームレートが取得された再生中のアニメーションが最後のものでなければ（ステップＳ２０５のＮ）、ステップＳ２０１からループする。また再生保障フレームレートが取得されたアニメーションが最後のものであれば（ステップＳ２０５のＹ）、フレームレート保障部２７の処理を終了する。
【００３５】
このように処理することで、ＲＤＴは、再生中の複数のアニメーションのそれぞれに関連づけられた最大時間間隔のうち最小の値以下になる。これは、後述する特殊な場合を除いて、前のフレームのサンプリング時間と表示対象のフレームのサンプリング時間との間隔が、再生中のアニメーションについての再生保障フレームレートが示す最大時間間隔のうち最小の値以下となることに相当する。その結果、例えば車輪が回転する場合にフレーム間の内部時間の間隔が過大になることを事前に防ぎ、車輪が逆回転しているようにみえるなど、動作の特徴が表現されないような事態を防ぐことができる。
【００３６】
次に、先頭再生保障部２８は、再生中のアニメーションについて先頭再生保障フラグが示す条件を満たすようにＲＤＴを調整する（ステップＳ１０５）。その処理内容について以下に説明する。
【００３７】
図９は、先頭再生保障部２８の処理フローの一例を示す図である。先頭再生保障部２８は、再生中のアニメーションのうち順序に応じた１つについて、先頭再生フラグを取得する（ステップＳ３０１）。そして、先頭再生フラグが「有」で、先頭再生の有効を示し（ステップＳ３０２のＹ）、かつ、そのアニメーションの再生進行率が０％である（ステップＳ３０３のＹ）場合には、ＲＤＴに０を代入する（ステップＳ３０４）。もし先頭再生フラグが「無」で、先頭再生の無効を示し（ステップＳ３０２のＮ）、あるいは、そのアニメーションの再生進行率が０％でない（ステップＳ３０３のＮ）の場合には、ステップＳ３０４の処理はスキップする。そして、先頭再生フラグが取得された再生中のアニメーションが最後のものでなければ（ステップＳ３０５のＮ）、ステップＳ３０１からループする。また先頭再生フラグが取得された再生中のアニメーションが最後のものであれば（ステップＳ３０５のＹ）、先頭再生保障部２８の処理を終了する。ここで、再生進行率は、アニメーションの再生期間に対するアニメーションの開始から経過した内部時間の割合である。
【００３８】
これらの処理により、遷移したばかりのアニメーションが存在し、かつそのアニメーションの先頭再生フラグが「有」の場合には、ＲＤＴが０になる。このＲＤＴが０になると、表示するフレームに対応する内部時間が、その遷移したアニメーションの先頭のタイミングになり、多のアニメーションのサンプリング時間もその内部時間に対応するものになる。なお、複数のアニメーションのうち１つについてＲＤＴに０を代入する処理をした後は、その後の順序のアニメーションについてステップＳ３０１からステップＳ３０４の処理をしなくてもよい。
【００３９】
また、上述の処理の結果、前のフレームから表示するフレームまでのシステム時間間隔ｓｙｓＤＴの内に、動作データが示すアニメーションの先頭のタイミングが含まれ、かつ先頭再生保障フラグが有効である場合に、表示するフレームにおける各アニメーションについてのサンプリング時間はその先頭のタイミングとなり、後述するサンプリング処理でそのタイミングの姿勢が取得される。その具体例については後述する。
【００４０】
次に、サンプリング時間決定部２９は、ＲＤＴに基づいて各アニメーションに対応する動作データについてのサンプリング時間ＡｎｉｍＴを決定する（ステップＳ１０６）。図１０は、サンプリング時間決定部２９の処理フローの一例を示す図である。以下ではステップＳ１０６の処理の詳細について説明する。
【００４１】
はじめに、サンプリング時間決定部２９は、再生中のアニメーションのそれぞれについて、前回のサンプリング時間と、そのアニメーションの再生終了時間との時間間隔を取得し、その時間間隔の最小値ｉＭｉｎを取得する（ステップＳ４０１）。そしてサンプリング時間決定部２９は、サンプリング時間間隔を示す変数ｓＤＴにＲＤＴを代入する（ステップＳ４０２）。そして、ｉＭｉｎがＲＤＴより小さい場合には（ステップＳ４０３のＹ）、ｓＤＴにｉＭｉｎを代入する（ステップＳ４０４）。ｉＭｉｎがＲＤＴ以上の場合には（ステップＳ４０３のＮ）、ステップＳ４０４をスキップする。変数ｓＤＴは、前回サンプリングしてから次にサンプリングするまでの内部時間の時間間隔を示す。またｓＤＴはＲＤＴと、ｉＭｉｎとのうち小さい方の値になる。
【００４２】
そして、サンプリング時間決定部２９は、再生中の各アニメーションのサンプリング時間ＡｎｉｍＴをｓＤＴだけ増加させる（ステップＳ４０５）。サンプリング時間ＡｎｉｍＴは、再生中のアニメーションについて動作データからオブジェクトの姿勢をサンプリングするタイミングを示す。これにより、前回サンプリングしてからＲＤＴが経過するまでの間に再生中のいずれかのアニメーションの再生が終了する場合には、その終了のタイミングにおける各オブジェクトの姿勢がサンプリング対象になり、いずれのアニメーションも再生が終了しなければ、今回表示するフレームのタイミングにおける姿勢がサンプリング対象になる。
【００４３】
次に、姿勢取得部２４は、ＲＤＴをｓＤＴだけ減少させる（ステップＳ１０７）。またサンプリング部３０は、再生中の各アニメーションについて、そのアニメーションの動作データから、サンプリング時間ＡｎｉｍＴにおけるオブジェクトの姿勢をサンプリングする（ステップＳ１０８）。
【００４４】
そして、姿勢取得部２４は、ＲＤＴが０でない場合には（ステップＳ１０９のＮ）、まだステップＳ１０８でサンプリングしたタイミングは、表示するフレームの内部時間に到達していない可能性があるため、ステップＳ１０３から処理を繰り返し、次のサンプリングを行う。また、ＲＤＴが０である場合には（ステップＳ１０９のＹ）、ステップＳ１０８でサンプリングしたタイミングは、表示するフレームの内部時間に到達しているため、ステップＳ１１０以降の処理を行う。
【００４５】
図１１は、先頭再生保障の処理が行われる場合のサンプリング時間の一例を示す図である。本図も図５と対応しており、アニメＢが先頭再生保障の対象であるとする。図１１の例では、前のフレームにおける内部時間ｔＦ１からシステム時間間隔ｓｙｓＤＴより短い時間が経過した時点であり、かつ先頭再生保障フラグが有効を示しているアニメＢの先頭のタイミングが、今回のフレームの内部時間ｔＦ２となる。内部時間ｔＦ１からシステム時間間隔ｓｙｓＤＴが経過した時間は次のフレームに対するサンプリングがされる時間とならない。こうすることで、各動作データにおける特徴的な動作を表現することができる。
【００４６】
図１２は、先頭再生保障フラグが有効となるアニメーションにおけるオブジェクトの動作の一例を示す図である。本図は人型のオブジェクト４０がジャンプし、その最高点で車輪型のオブジェクト４１に衝突する例を示す。アニメＢの先頭は最高点に対応するため、オブジェクト４０が最高点に達したフレームの画像は必ず表示され、その結果、ユーザはオブジェクト４０とオブジェクト４１とが衝突したことを視認することが可能となる。またこのように特徴的な現象における衝突判定処理なども確実に行われるようになる。
【００４７】
一方、先頭再生保障の処理が行われない場合には、異なる結果となる。図１３は、先頭再生保障の処理が行われない場合のサンプリング時間の一例を示す図である。図１４は、図１３に示す場合におけるオブジェクトの動作の一例を示す図である。図１３および図１４については、仮にアニメＢについて先頭再生保障の処理をしないとする。この場合には、前のフレームにおける内部時間ｔＦ５１と今回表示するフレームにおける内部時間ｔＦ５２との間隔は、システム時間間隔ｓｙｓＤＴとなる。また、アニメＡの終了のタイミングｔＳでは、後述する姿勢生成部３１のためにオブジェクトの姿勢はサンプリングされるが、あくまで内部時間ｔＦ５２についてサンプリングされたオブジェクトの姿勢を主体として今回のフレームにおけるオブジェクトの姿勢が生成される。よって、図１４では、人型のオブジェクト４０が最高点に達することはなく、車輪型のオブジェクト４１との衝突は表現されない。
【００４８】
なお、必ずしも、アニメーションの先頭の再生のみを保障しなくてもよい。再生を保障する任意のタイミングをアニメーションの制御データとして格納し、その格納されたタイミングがシステム時間間隔ｓｙｓＤＴの内にある場合に、そのタイミングのオブジェクトの姿勢をサンプリングしてもよい。この場合、姿勢取得部２４は、その再生を保障するタイミングを意識して処理をすればよい。ただし、この場合は処理が複雑になり、速度の低下等が懸念される。これまでに説明した構成である、先頭の再生を保障する処理とアニメーションの遷移との組み合わせた構成の方が、柔軟かつ容易に上述の効果を実現できる。
【００４９】
なお、アニメーションの遷移と、遷移する側の再生保障フレームレートとを組み合わせても動作する。図１５は、フレームレートが保障される場合の一例を示す図である。前のフレームにおける内部時間ｔＦ２０にシステム時間間隔ｓｙｓＤＴを加えた時間をｔＳｙｓとすると、アニメーションが遷移するタイミングの内部時間ｔＳ２１とｔＳｙｓとの間隔が再生保障フレームレートが示す最大時間間隔ｓＭａｘより大きいと、今回表示するフレームに対する内部時間ｔＦ２２は、ｔＳ２１＋ｓＭａｘとなる。
【００５０】
ステップＳ１１０では、姿勢生成部３１が、表示するフレームにおける各オブジェクトの姿勢を生成する（ステップＳ１１０）。姿勢生成部３１は、前のフレームから今回の表示フレームまでの間にあるアニメーションから次のアニメーションに遷移した場合には、あるアニメーションのおわりのタイミングにおける姿勢と、次のアニメーションの姿勢とをブレンドして、そのフレームにおけるオブジェクトの姿勢を生成する。こうすることで、アニメーションの変化に伴う姿勢のずれによる不自然な表示を抑えることができる。この生成された各オブジェクトの姿勢が、姿勢取得部２４が取得し画像描画部２５に向けて出力する各オブジェクトの姿勢となる。
【００５１】
画像描画部２５は、中央制御部１１、描画処理部１３、記憶部１２および入出力部１４を中心として実現される。次に、画像描画部２５は、姿勢取得部２４が取得した各オブジェクトの姿勢を示す画像を描画する（ステップＳ１１１）。また、その描画された画像を表示出力デバイスが出力するように、その画像のデータを表示出力デバイスに向けて出力する。より具体的には、画像描画部２５は、その各オブジェクトを表示用の空間に配置し、あるオブジェクトと他のオブジェクトとの位置関係に応じて、オブジェクトの姿勢や配置を調整する。また、オブジェクトに含まれるスケルトンに対応するラグドールを用いて、各オブジェクトの物理的な挙動をシミュレーションする。そして、画像描画部２５は、シミュレーションの結果によりオブジェクトの姿勢や配置を修正し、いわゆるレンダリングエンジンの処理により、各オブジェクトの画像を描画する。
【符号の説明】
【００５２】
１  画像生成装置、１１  中央制御部、１２  記憶部、１３  描画処理部、１４  入出力部、２１  制御データ格納部、２２  動作データ格納部、２３  システム時間間隔取得部、２４  姿勢取得部、２５  画像描画部、２６  遷移制御部、２７  フレームレート保障部、２８  先頭再生保障部、２９  サンプリング時間決定部、３０  サンプリング部、３１  姿勢生成部、４０，４１  オブジェクト、ｓｙｓＤＴ  システム時間間隔、ｓＭａｘ  最大時間間隔。
【図１】
2013235513.tif 000003
【図２】
2013235513.tif 000004
【図３】
2013235513.tif 000005
【図４】
2013235513.tif 000006
【図５】
2013235513.tif 000007
【図６】
2013235513.tif 000008
【図７】
2013235513.tif 000009
【図８】
2013235513.tif 000010
【図９】
2013235513.tif 000011
【図１０】
2013235513.tif 000012
【図１１】
2013235513.tif 000013
【図１２】
2013235513.tif 000014
【図１３】
2013235513.tif 000015
【図１４】
2013235513.tif 000016
【図１５】
2013235513.tif 000017