(57)【特許請求の範囲】
【請求項１】
所与の動作の種類に対応する動作データから、オブジェクトを構成する複数の要素のそれぞれと、当該要素に接続されかつ前記オブジェクトを構成する他の要素との相対配置を取得する配置取得手段、
前記複数の要素のうちいずれかと当該要素に接続される要素との相対配置を変更する配置変更手段、
複数の動作の種類のそれぞれと前記複数の要素のうちいずれかに応じた点とを関連づける情報に基づいて前記所与の動作の種類に関連づけられかつ前記要素のうちいずれか１つに応じた点を取得し、前記配置取得手段が取得した相対配置が示す前記取得された点の位置に基づいて、前記相対配置が変更された複数の要素の配置を補正する配置補正手段、および、
前記補正された要素の配置に基づいて、前記オブジェクトの画像を描画する画像描画手段、
としてコンピュータを機能させるためのプログラム。
【請求項２】
前記配置補正手段は、前記取得された点の位置であって前記補正された相対配置が示す位置が、前記配置取得手段が取得した相対配置が示す前記取得された点の位置となるように、前記複数の要素の配置を補正する、
ことを特徴とする請求項１に記載のプログラム。
【請求項３】
前記配置補正手段は、前記複数の要素のそれぞれと当該要素に接続される要素との拘束条件に基づいて、前記複数の要素の配置を補正する、
ことを特徴とする請求項２に記載のプログラム。
【請求項４】
前記配置補正手段は、前記取得された点に対応する要素に接続される要素と、前記接続される要素に接続される他の要素とを接続する点の位置が変化しないように、前記複数の要素の配置を補正する、
ことを特徴とする請求項３に記載のプログラム。
【請求項５】
前記配置補正手段は、前記取得された点の位置であって前記補正された相対配置が示す位置が、前記配置取得手段が取得した相対配置が示す前記取得された点の位置に時間が経つにつれて近づくように、前記複数の要素の配置を補正する、
ことを特徴とする請求項２に記載のプログラム。
【請求項６】
所与の動作の種類に対応する動作データから、オブジェクトを構成する複数の要素のそれぞれと、当該要素に接続されかつ前記オブジェクトを構成する他の要素との相対配置を取得する配置取得手段と、
前記複数の要素のうちいずれかと当該要素に接続される要素との相対配置を変更する配置変更手段と、
複数の動作の種類のそれぞれと前記複数の要素のうちいずれかに応じた点とを関連づける情報に基づいて前記所与の動作の種類に関連づけられかつ前記要素のうちいずれか１つに応じた点を取得し、前記配置取得手段が取得した相対配置が示す前記取得された点の位置に基づいて、前記相対配置が変更された複数の要素の配置を補正する配置補正手段と、
前記補正された要素の配置に基づいて、前記オブジェクトの画像を描画する画像描画手段と、
を含むことを特徴とする画像生成装置。
【請求項７】
所与の動作の種類に対応する動作データから、オブジェクトを構成する複数の要素のそれぞれと、当該要素に接続されかつ前記オブジェクトを構成する他の要素との相対配置を取得するステップと、
前記複数の要素のうちいずれかと当該要素に接続される要素との相対配置を変更するステップと、
複数の動作の種類のそれぞれと前記複数の要素のうちいずれかに応じた点とを関連づける情報に基づいて前記所与の動作の種類に関連づけられかつ前記要素のうちいずれか１つに応じた点を取得し、前記配置取得手段が取得した相対配置が示す前記取得された点の位置に基づいて、前記相対配置が変更された複数の要素の配置を補正するステップと、
前記補正された要素の配置に基づいて、前記オブジェクトの画像を描画するステップと、
を含むことを特徴とする画像生成方法。
【請求項８】
所与の動作の種類に対応する動作データから、オブジェクトを構成する複数の要素のそれぞれと、当該要素に接続されかつ前記オブジェクトを構成する他の要素との相対配置を取得する配置取得手段、
前記複数の要素のうちいずれかと当該要素に接続される要素との相対配置を変更する配置変更手段、
複数の動作の種類のそれぞれと前記複数の要素のうちいずれかに応じた点とを関連づける情報に基づいて前記所与の動作の種類に関連づけられかつ前記要素のうちいずれか１つに応じた点を取得し、前記要素のうちいずれか１つに応じた点を取得し、前記配置取得手段が取得した相対配置が示す前記取得された点の位置に基づいて、前記相対配置が変更された複数の要素の配置を補正する配置補正手段、および、
前記補正された要素の配置に基づいて、前記オブジェクトの画像を描画する画像描画手段、
としてコンピュータを機能させるためのプログラムを格納したコンピュータ読取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像生成装置、画像生成方法、プログラムおよびコンピュータ読取り可能な記憶媒体に関する。
【背景技術】
【０００２】
仮想空間内に配置された物体（オブジェクト）の動きを表現する３次元画像のアニメーションをリアルタイムに生成する技術がある。オブジェクトの姿勢は複数のスケルトンの配置により決定し、オブジェクトの表面の画像はスケルトンの配置に応じて定まる皮膚メッシュを用いて生成される。
【０００３】
スケルトンのそれぞれは予め長さが定められた棒状の形状を有し、オブジェクトを構成する要素の一種である。通常はスケルトンの両端にジョイントが配置され、そのジョイントはそのスケルトンと他のスケルトンとを接続する。１つのオブジェクトは複数のジョイントを含み、ジョイントのそれぞれは、そのジョイントにより接続される２つのスケルトン間の相対配置（例えば角度）を決めるものである。オブジェクトの姿勢は、その相対配置が時間に応じて変化することによって変化する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
オブジェクトの姿勢を柔軟に変化させるために、はじめに全てのジョイントに対応するスケルトン間の基礎となる相対配置を取得し、その取得された相対配置のうち一部のジョイントに対応する相対配置を変更する方法がある。そうすることで、アニメーション用のデータを減らしつつ、オブジェクトを柔軟に動作させることが可能となる。なお、以下ではスケルトン間の基礎となる相対配置が示すスケルトンの配置を、オブジェクトの基礎姿勢と記す。
【０００５】
ここで、一部のジョイントに対応する相対配置を変更する場合、一般的にはそのジョイントに接続するスケルトンの位置だけでなく、さらにその先に接続されるスケルトンの位置も変化する。ここで、スケルトンの位置とは、相対配置に基づいてスケルトンが配置されるオブジェクトの座標系における位置である。例えば、腰を動かすように一部のスケルトンの間の相対配置を変更すると手先や足先の位置も移動する。それに起因して、変更後のスケルトンの配置が不自然になる場合がある。例えば、立つ姿勢となる基礎姿勢で腰を動かすよう変更すると足の位置がずれてしまい、相撲の仕切りのようにかがむ姿勢となる基礎姿勢で腰を曲げるよう変更すると地面に対する手の位置がずれてしまう。相対配置の変更の仕方を調整するだけでは、このような現象の発生を確実に抑えられなかった。
【０００６】
本発明は上記課題を鑑みてなされたものであって、その目的は、オブジェクトを構成する複数の要素のうちいくつかの間の相対配置を変更した場合に、そのオブジェクトの全体の姿勢が不自然になる現象を抑える技術を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明にかかるプログラムは、オブジェクトを構成する複数の要素のそれぞれと、当該要素に接続されかつ前記オブジェクトを構成する他の要素との相対配置を取得する配置取得手段、前記複数の要素のうちいずれかと当該要素に接続される要素との相対配置を変更する配置変更手段、前記要素のうちいずれか１つに応じた所定の点の位置であって、前記配置取得手段が取得した相対配置が示す位置に基づいて、前記相対配置が変更された複数の要素の配置を補正する配置補正手段、および、前記補正された要素の配置に基づいて、前記オブジェクトの画像を描画する画像描画手段、としてコンピュータを機能させる。
【０００８】
また、本発明にかかる画像生成装置は、オブジェクトを構成する複数の要素のそれぞれと、当該要素に接続されかつ前記オブジェクトを構成する他の要素との相対配置を取得する配置取得手段と、前記複数の要素のうちいずれかと当該要素に接続される要素との相対配置を変更する配置変更手段と、前記要素のうちいずれか１つに応じた所定の点の位置であって、前記配置取得手段が取得した相対配置が示す位置に基づいて、前記相対配置が変更された複数の要素の配置を補正する配置補正手段と、前記補正された要素の配置に基づいて、前記オブジェクトの画像を描画する画像描画手段と、を含むことを特徴とする。
【０００９】
また、本発明にかかる画像生成方法は、オブジェクトを構成する複数の要素のそれぞれと、当該要素に接続されかつ前記オブジェクトを構成する他の要素との相対配置を取得するステップと、前記複数の要素のうちいずれかと当該要素に接続される要素との相対配置を変更するステップと、前記要素のうちいずれか１つに応じた所定の点の位置であって、前記配置取得手段が取得した相対配置が示す位置に基づいて、前記相対配置が変更された複数の要素の配置を補正するステップと、前記補正された要素の配置に基づいて、前記オブジェクトの画像を描画するステップと、を含むことを特徴とする。
【００１０】
また、本発明にかかるコンピュータ読取り可能な記憶媒体は、上述のプログラムを格納する。
【００１１】
本発明によれば、オブジェクトを構成する複数の要素のうちいくつかの間の相対配置を変更した場合に、そのオブジェクトの姿勢が不自然になる現象を抑えることができる。
【００１２】
本発明の一態様では、前記配置補正手段は、前記要素のうちいずれか１つに応じた所定の点の位置であって前記補正された相対配置が示す位置が、前記配置取得手段が取得した相対配置が示す前記所定の点の位置となるように、前記複数の要素の配置を補正してもよい。
【００１３】
本発明の一態様では、前記配置補正手段は、前記複数の要素のそれぞれと当該要素に接続される要素との拘束条件に基づいて、前記複数の要素の配置を補正してもよい。
【００１４】
本発明の一態様では、前記配置補正手段は、前記所定の点に対応する要素に接続される要素と、前記接続される要素に接続される他の要素とを接続する点の位置が変化しないように、前記複数の要素の配置を補正してもよい。
【００１５】
本発明の一態様では、前記配置補正手段は、前記所定の点の位置であって前記補正された相対配置が示す位置が、前記配置取得手段が取得した相対配置が示す前記所定の点の位置に時間が経つにつれて近づくように、前記複数の要素の配置を補正してもよい。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態にかかる画像生成装置の構成の一例を示す図である。
【図２】本発明の実施形態にかかる画像生成装置の機能ブロックを示す図である。
【図３】本発明の実施形態にかかる画像生成装置の処理フローの一例を示す図である。
【図４】配置取得部および配置変更部がオブジェクトの姿勢を生成する方法の一例を示す図である。
【図５】動作の種類と動作データや再生条件との関係を示す再生条件データの一例である。
【図６】取得されるスケルトンの配置の一例を示す図である。
【図７】配置変更部の処理フローの一例を示す図である。
【図８】部分的な動作の種類に対応する変更データを示す変更条件データの一例を示す図である。
【図９】配置変更部の処理結果が示すスケルトンの配置の一例を示す図である。
【図１０】配置補正部の処理フローの一例を示す図である。
【図１１】補正されたスケルトンの配置の一例を示す図である。
【図１２】補正されたスケルトンの配置と変更後のスケルトンの配置とを合成した例を示す図である。
【発明を実施するための形態】
【００１７】
以下では、本発明の実施形態について図面に基づいて説明する。出現する構成要素のうち同一機能を有するものには同じ符号を付し、その説明を省略する。
【００１８】
図１は本発明の実施形態に係る画像生成装置１の構成を示す図である。画像生成装置１は、中央制御部１１と、記憶部１２と、描画処理部１３と、入出力部１４とを含んでいる。画像生成装置１は、例えばパーソナルコンピュータや家庭用ゲーム機のように３次元画像を生成する機能を有する機器である。
【００１９】
中央制御部１１は、記憶部１２に格納されているプログラムに従って動作し、描画処理部１３や入出力部１４を制御する。なお、上記プログラムは、ＤＶＤ−ＲＯＭ等のコンピュータで読み取り可能な記憶媒体に格納されて提供されるものであってもよいし、インターネット等のネットワークを介して提供されるものであってもよい。
【００２０】
記憶部１２は、ＲＡＭやＲＯＭ等のメモリ素子およびハードディスクドライブ等によって構成されている。記憶部１２は、上記プログラムを格納する。また、記憶部１２は、各部から入力される情報や演算結果を格納する。
【００２１】
描画処理部１３は、記憶部１２に格納されるプログラムに従って並列的に数値演算を行う機能や、３次元の物体の表面を示す情報から２次元画像を描画する機能を有する。描画処理部１３は、その計算結果を記憶部１２や入出力部１４に出力する。
【００２２】
入出力部１４は、モニタ等の表示出力デバイスを制御する手段や、マウス等の入力デバイスを制御する手段などによって構成されている。入出力部１４は、中央制御部１１の制御に基づいて、描画処理部１３等で生成した画像データ等を表示出力デバイスに対して出力し、入力デバイスより操作者（ユーザ）からの情報を取得する。
【００２３】
図２は、本発明の実施形態にかかる画像生成装置１の機能ブロックを示す図である。画像生成装置１は機能的に、動作決定部２１、配置取得部２２、配置変更部２３、配置補正部２４、画像描画部２５、動作再生条件格納部３０、および、動作データ格納部３１を含む。これらの機能は、中央制御部１１や描画処理部１３が記憶部１２に格納されたプログラムを実行し、入出力部１４等を制御することによって実現される。なお、以下に示す各機能の説明では中央制御部１１および描画処理部１３のうち中央制御部１１のみが処理を行う旨で記載しているが、一部の処理を描画処理部１３が行ってもよい。中央制御部１１と描画処理部１３との間の役割分担は、開発者がプログラムを作成する際に、当該部分の処理の特性に応じて任意に決定すればよい。
【００２４】
図３は、本発明の実施形態にかかる画像生成装置１の処理フローの一例を示す図である。以下ではこの処理フローに従い画像生成装置１が有する機能を説明する。なお、この処理フローはあるフレームにおける処理を示しており、実際にはフレームが変化するごとに処理フローに示す処理が繰り返されることによってアニメーションが表示される。
【００２５】
動作決定部２１は、中央制御部１１、記憶部１２および入出力部１４を中心として実現される。動作決定部２１は、処理中のフレームにおけるオブジェクトの状態に応じて、オブジェクトの動作を決定する（ステップＳ１０１）。このオブジェクトの状態は、例えば他のオブジェクトとの接触や近接などの関係や、ユーザが入力デバイスを用いて入力する情報である。決定されるオブジェクトの動作は、より具体的には、「走る」、「かがむ」、「立つ」といった基礎となる動作の種類や、「下を向く」、「腰を動かす」といった部分的な動作の種類、またこれらの動作の種類における動作開始からの経過時間などである。
【００２６】
配置取得部２２および配置変更部２３は、中央制御部１１および記憶部１２を中心として実現される。配置取得部２２は、決定された動作について、オブジェクトを構成するスケルトンの配置を取得する（ステップＳ１０２）。また、配置変更部２３は、スケルトンのうち一部の間の相対配置を変更する（ステップＳ１０３）。
【００２７】
スケルトンは、オブジェクトを構成する要素の一種である。スケルトンは画像を生成する対象となるオブジェクトの骨格に相当し、それぞれのスケルトンは他のスケルトンとジョイントを介して接続される関係を有する。なお、複数の皮膚メッシュは、オブジェクトの表面を囲むように配置されている。皮膚メッシュのそれぞれは複数の頂点を有するポリゴンである。皮膚メッシュの配置はスケルトンの配置に応じて定まる。以下ではオブジェクトを構成するスケルトンの配置を「姿勢」ともよぶ。
【００２８】
スケルトンの時間ごとの相対配置を示す動作データや、スケルトンの相対配置の変更内容を示す変更データは、動作データ格納部３１に格納されている。ここで、動作データ格納部３１は主に記憶部１２により実現される。
【００２９】
以下では、配置取得部２２および配置変更部２３の処理について詳細に説明する。図４は、配置取得部２２および配置変更部２３がオブジェクトの姿勢を生成する順序の一例を示す図である。本図において「Ｂａｓｅ１」や「Ｂａｓｅ２」はオブジェクトを構成する全てのスケルトンの基礎となる相対配置を示す情報を示し、「Ａｄｄ１」や「Ａｄｄ２」はスケルトンのうち一部の間の相対配置を変更する情報を示す。
【００３０】
はじめに配置取得部２２は、動作データ格納部３１に格納された動作データのうち決定された動作の種類に対応する動作データから、スケルトンの相対配置を取得する。スケルトンの相対配置は、より具体的にはオブジェクトを構成する複数のスケルトンのそれぞれと、そのスケルトンに接続されるスケルトンとの相対配置である。さらに具体的には、２つのスケルトンの間の相対配置は、例えばその２つのスケルトンがジョイントにおいてなす角度等である。ジョイントは、接続する２つのスケルトンの間の拘束条件でもある。
【００３１】
図５は、動作の種類と動作データや再生条件との関係を示す再生条件データの一例である。再生条件データは、動作再生条件格納部３０に格納されている。なお、動作再生条件格納部３０は主に記憶部１２により実現される。本図の場合、例えば「立つ」動作に対しては、基礎となる姿勢を示す動作データとして動作データＩＤが「ｂ＿ｍｏｔｉｏｎ３」となる動作データが用いられることを示す。なお、決定された動作の種類に対応する動作データが複数ある場合もある。この場合には、配置取得部２２はその複数の動作データから抽出された姿勢を合成した結果を、以降の処理に用いるスケルトンの相対配置として取得する。図４の「合成１」はこの処理を示す。姿勢が合成される例としては、歩く動作の動作データが示す姿勢と走る動作の動作データが示す姿勢とを合成して「早歩き」の動作の姿勢を生成することがある。
【００３２】
図６は、取得されたスケルトンの配置の一例を示す図である。本図は、決定された動作が「立つ」場合のスケルトンの配置の例である。本図にある複数の直線のそれぞれは、スケルトンを示し、黒丸はジョイントを示す。また円はオブジェクトの頭部に相当する複数のスケルトンを模式的に表したものである。それらのスケルトンが配置される座標系は、オブジェクトごとに存在する。以下で「位置」という場合は、特に断りのない限りそのオブジェクトの座標系における絶対位置を示す。
【００３３】
なお、ジョイントにより接続されるスケルトンには、親子関係がある。つまりジョイントにより接続される２つのスケルトンのうち一方が親であり、もう一方が子となる関係を有する。通常の親子関係では、あるスケルトンは複数の子をもってもよいが、ある子スケルトンは複数の親をもたず、親子関係はツリー状になる。
【００３４】
次に、配置取得部２２は、取得されたスケルトンの配置を記憶部１２に格納する。この格納されるスケルトンの配置を「基礎姿勢」とも呼ぶ。記憶部１２に配置するスケルトンの配置は全てのスケルトンについての相対配置であってもよいし、後述する再生条件データが示す基礎固定箇所に相当するジョイントの位置やスケルトン内の点の位置でもよい。
【００３５】
図７は、配置変更部２３の処理フローの一例を示す図である。配置変更部２３は、はじめに動作決定部２１が決定した部分的な動作の種類のリストを取得する（ステップＳ１３１）。次に、変数ｉに１を設定する（ステップＳ１３２）。次に、リストのｉ番目となる部分的な動作の種類が存在すれば（ステップＳ１３３のＹ）、動作データ格納部３１からリストのｉ番目の部分的な動作に対応する変更データを読み出す（ステップＳ１３４）。
【００３６】
図８は部分的な動作の種類と、それに対応する変更データを示す変更条件データの一例を示す図である。変更条件データは、部分的動作の種類と、変更データのＩＤとを紐づけて格納される。変更条件データは、動作再生条件格納部３０に格納されている。配置変更部２３は、変更条件データを用いてｉ番目の部分的動作の種類に対応する変更データを特定し、動作データ格納部３１から変更データを取得する。ここで、変更データは、時間ごとの変更対象となる相対配置や、その相対配置の変更量を示す情報である。例えば変更対象となるジョイントや、そのジョイントが接続する２つのスケルトンがなす角度に加算または減算する量を含んでいる。
【００３７】
次に配置変更部２３は、読み出した変更データに従い、スケルトンの一部の間の相対配置を変更する（ステップＳ１３５）。より具体的には、これまでの処理で取得あるいは変更された最新のスケルトン間の相対配置のうち、変更データが変更対象として示すジョイントが接続するスケルトンの相対配置を示す角度を、変更データが示す量だけ加算あるいは減算する。次に変数ｉの値を１だけ増やし（ステップＳ１３６）、ステップＳ１３３の処理から繰り返す。
【００３８】
また、ステップＳ１３３において、リストのｉ番目に部分的動作の種類が存在しない場合には（ステップＳ１３３のＮ）、これまでの変更後の各スケルトンの相対配置を示すデータを保存する（ステップＳ１３７）。なお、これらの処理は図４における「変更１」〜「変更Ｎ」である。以下ではこれらの相対配置の変更が行われた後（変更後）の各スケルトンの配置を「変更後姿勢」ともよぶ。
【００３９】
図９は、配置変更部２３の処理結果が示すスケルトンの配置の一例を示す図である。本図の実線が変更後のスケルトンのそれぞれを示し、破線が変更前のスケルトンのそれぞれを示す。図９の例では、部分的動作として、「腰を動かす」ための変更が行われている。この例では、オブジェクトの頭から見て背骨を図９の右側に動かしており、また、腰の角度が変わっている。「腰を動かす」動作の例では、腰と足との相対的な配置が変化しないため、足先の位置Ａ１，Ｂ１が、それぞれ位置Ａ２，Ｂ２に動いてしまっている。なお、その動作により足が地面にめりこむ現象も生じている。
【００４０】
配置補正部２４は中央制御部１１および記憶部１２を中心として実現される。配置補正部２４は、ある要素により定まる固定箇所（点）である１または複数の基礎固定箇所であって、予め定められた基礎固定箇所の変更前の位置に基づいて、複数のスケルトンの配置を補正する（ステップＳ１０４）。
【００４１】
図１０は、配置補正部２４の処理フローの一例を示す図である。図１０は、基礎固定箇所が１つの場合についての処理フローを示している。複数の基礎固定箇所を処理する場合は、配置補正部２４は、図１０に示す処理を繰返してもよいし、それぞれ１つの基礎固定箇所について図１０に示す処理をする複数のスレッドを用いて並列的に実行してもよい。以下では１つの基礎固定箇所についての処理について説明する。
【００４２】
はじめに、配置補正部２４は、再生条件データから補正において変更前の位置に固定するべき基礎固定箇所を取得する（ステップＳ１４１）。この基礎固定箇所は、スケルトンの位置に応じて定まる点であり、例えばジョイントによってあらわされる。図５および図９の例では「立つ」動作に対し「両足首」に対応するジョイントが基礎固定箇所となる。基礎固定箇所は必ずしもジョイントでなくてもよい。例えば、スケルトンの端や真ん中といった位置で指定してもよい。なお、再生条件データが示す全ての基礎固定箇所を取得しなくてもよい。例えば、配置変更部２３が相対配置を変更する対象となったジョイントは基礎固定箇所から外してもよい。
【００４３】
配置補正部２４は、配置変更部２３が相対配置を変更する前の基礎姿勢における基礎固定箇所の位置を取得する（ステップＳ１４２）。次に配置補正部２４は再生条件データが示す基礎固定箇所に対応し、変更後の位置のまま固定する変更後固定箇所となるジョイントを決定する（ステップＳ１４３）。より具体的には、基礎固定箇所のジョイントが接続するスケルトンのうち親となるスケルトンを基準スケルトンとし、基準スケルトンの親のスケルトンを第１の親スケルトン、第１の親スケルトンの親のスケルトンを第２の親スケルトンと定義すると、配置補正部２４は第１の親スケルトンと第２の親スケルトンとを接続するジョイント（点）を変更後固定箇所として決定する。配置補正部２４は、配置変更部２３がスケルトンの相対配置を変更した後における変更後固定箇所の位置を取得する（ステップＳ１４４）。
【００４４】
そして配置補正部２４は、オブジェクトの座標系において、補正後における基礎固定箇所の位置が変更前の基礎固定箇所の位置となり、変更後固定箇所の位置が変更後の変更後固定箇所の位置になるように、各スケルトンの配置を補正する（ステップＳ１４５）。より具体的には、基礎固定箇所と変更後固定箇所を用いて、第１の親スケルトンと第２の親スケルトンについていわゆる２ボーンＩＫの処理を行う。配置補正部２４は、２ボーンＩＫを用いて、２つの固定箇所の間にある２つのスケルトンについて、スケルトンとジョイントの相対的な位置関係が変化しないという拘束条件を満たしつつ、また固定箇所が与えられた位置となり、かつ、スケルトンの補正量がより小さいスケルトンの配置を算出する。なお、基準スケルトンの子となるスケルトンや、さらにその何代目かの子となる子孫スケルトンの補正後の配置は、変更前のスケルトンの相対配置に合わせてもよいし、変更後のスケルトンの相対配置に合わせてもよい。前者の方法によれば、配置が不自然になる現象をより軽減することができる。なお、２ボーンＩＫ以外の方法を用いれば、変更後固定箇所が異なっていてもよいし、変更後固定箇所を必ずしも用いなくてもよい。
【００４５】
図１１は、補正されたスケルトンの配置の一例を示す図である。本図は、図９における変更後（補正前）の足首の位置Ａ２を変更前の足首の位置Ａ１に補正する例である。実線は補正されたスケルトンを示し、破線は変更後（補正前）のスケルトンを示す。オブジェクトの左側の足首に相当するジョイントの位置が、位置Ａ２から位置Ａ１になるようにスケルトンの配置が補正されている。これにより、足首の位置のずれが解消される。
【００４６】
配置補正部２４は、それぞれの基礎固定箇所について補正をした後に、補正されたスケルトンの配置と、変更後姿勢のスケルトンの配置とを合成する（ステップＳ１０５）。より具体的には、配置補正部２４は、２ボーンＩＫによって補正されたスケルトンと、補正の対象にならなかったスケルトンとを合成する処理を行う。
【００４７】
図１２は、補正されたスケルトンの配置と変更後のスケルトンの配置とを合成した例を示す図である。本図の例は、複数の基礎固定箇所について補正された結果を合成した場合の例である。図１２の上側の部分にある破線のスケルトンは変更後のスケルトンを示し、左側の部分の実線のスケルトンは左側の足首を基礎固定箇所として補正された左側の足のスケルトンを示す。また右側の部分の実線のスケルトンは、右側の足首を基礎固定箇所として補正された右側の足のスケルトンを示す。基礎固定箇所ごとに補正されたスケルトンの配置と、補正されなかったスケルトンの配置とを合成することで、最終的な補正後のスケルトンの配置が生成される。図１２の例では、「立つ」動作にあわせて足の位置が動かないことが表現され、また腰の配置の変更による足の姿勢の変化も表現される。
【００４８】
また、補正されたスケルトンについて、補正前の配置と補正後の配置とを合成してもよい。時間が進むにつれて補正後の配置を合成する割合が増えるように合成すれば、基礎固定箇所について、最終的な補正後の位置が補正前の位置から時間が立つにつれて近づくようになる。このように補正することで、補正に伴うスケルトンの配置の急激な変化を抑え、表示になんらかの乱れが生じることを防ぐことができる。
【００４９】
画像描画部２５は、中央制御部１１、描画処理部１３、記憶部１２および入出力部１４を中心として実現される。画像描画部２５は、補正されたオブジェクトを含む複数のオブジェクトを表示用の空間に配置し、それらの配置を調整する（ステップＳ１０６）。またそれらのオブジェクトの画像を描画する（ステップＳ１０７）。そして、画像描画部２５は、その描画された画像を表示出力デバイスが出力するように、その画像の信号を表示出力デバイスに向けて出力する。より具体的には、画像描画部２５は、あるオブジェクトと他のオブジェクトとの位置関係に応じて、オブジェクトを構成するスケルトンの配置を調整し、また、各スケルトンに対応するラグドールを用いて、各オブジェクトの物理的な挙動をシミュレーションする。そして、画像描画部２５は、シミュレーションの結果によりスケルトンの配置を修正し、いわゆるレンダリングエンジンの処理により、各オブジェクトの画像を描画する。この描画には、各スケルトンの配置と関連づけられ、かつオブジェクトの表面を示す皮膚メッシュが用いられる。
【符号の説明】
【００５０】
１  画像生成装置、１１  中央制御部、１２  記憶部、１３  描画処理部、１４  入出力部、２１  動作決定部、２２  配置取得部、２３  配置変更部、２４  配置補正部、２５  画像描画部、３０  動作再生条件格納部、３１  動作データ格納部。
【図１】
0005957278.tif 000002
【図２】
0005957278.tif 000003
【図３】
0005957278.tif 000004
【図４】
0005957278.tif 000005
【図５】
0005957278.tif 000006
【図６】
0005957278.tif 000007
【図７】
0005957278.tif 000008
【図８】
0005957278.tif 000009
【図９】
0005957278.tif 000010
【図１０】
0005957278.tif 000011
【図１１】
0005957278.tif 000012
【図１２】
0005957278.tif 000013