説明

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

【課題】キャラクターの特定の姿勢や動作から任意の姿勢や動作を求めて、その画像を生成する画像生成装置等を提供する。
【解決手段】画像生成装置301において、姿勢受付部303は、姿勢パラメータ値を受け付け、姿勢計算部304は、当該姿勢パラメータ値が、第1の姿勢パラメータ値と第2の姿勢パラメータ値とを内分する姿勢内分比を求め、姿勢混合部305は、第1の姿勢パラメータ値に対応付けて記憶部302に記憶される第1の姿勢ボーン情報と、第2の姿勢パラメータ値に対応付けて記憶部302に記憶される第2の姿勢ボーン情報と、を姿勢内分比でブレンドし、生成部309は、ブレンド結果に基づいてキャラクターの画像を生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、キャラクターの特定の姿勢や動作から任意の姿勢や動作を求めて、その画像を生成するのに好適な画像生成装置、画像生成方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【0002】
従来から、仮想空間内に配置されるオブジェクトの外観を表す画像を生成する技術が種々提案されている。たとえば、特許文献1に開示される技術では、オブジェクトの形状が、ボーン、制御点、頂点、ポリゴンを用いて形成される。
【0003】
ボーンは、人間でいう骨に相当するものであり、ボーン同士は、連結点で互いに連結される。隣接するボーン同士の相対的な位置や向きを変化させると、オブジェクトの概形が変形する。
【0004】
典型的には、ボーンは、ボーンをノードとする木構造的な階層によって管理される。木構造の根ノードに対するボーン(以下「根ボーン」という。)の位置や向きは、仮想空間におけるオブジェクト全体の位置や向きを表す。親ノードのボーン(以下「親ボーン」という。)と子ノードのボーン(以下「子ボーン」という。)は直接連結されており、親ボーンに対する子ボーンの向きを変化させることで、ボーン同士の相対的な位置や向きを変化させる。
【0005】
オブジェクトの外観は、ボーンの変形に伴って移動する頂点を結ぶポリゴンにテクスチャを貼ることによって形成される。このポリゴンによって形成される表面をスキンと呼ぶ。
【0006】
各ボーンには、複数の制御点が対応付けられており、これらの制御点は、そのボーンと連動して動作する。すなわち、ボーンが位置や向きを変えたとしても、制御点のボーンに対する相対的な位置は、変化しない。
【0007】
各頂点は、複数の制御点に重み付きで対応付けられている。ボーンが位置や向きを変化させたときの各頂点の位置は、その頂点に対応付けられた制御点の位置に、重みを付けて平均した位置とする。
【0008】
また、各ボーンには初期位置、初期向きが定められており、ボーンが初期位置、初期向きをとるときには、各頂点と、その頂点に対応付けられる制御点と、が、同じ位置で重なるように構成するのが典型的である。
【0009】
このような処理を行うことで、オブジェクトが変形したときに、スキンに不自然なくびれや潰れが生じることを防止することができる。
【0010】
このようなオブジェクトは、仮想空間内に配置されるキャラクターやモンスターが互いに戦闘するようなゲーム等において、キャラクターやモンスターの外観を表す際にも使用されている。
【0011】
また、モーションキャプチャの技術を適用すれば、キャラクターが特定の姿勢や特定の動作をとるときの、ボーンの位置や動きの変化を得ることができる。たとえば、人間が刀を上段の構えから下に振り下ろす様子をモーションキャプチャすることによって、キャラクターが上段の構えをとる姿勢や、キャラクターが刀を上から下に振り下ろす動作をとるときのボーンの位置や向きの変化を定めることができる。
【0012】
したがって、キャラクターが基本的な構えから基本的な動作をとるときのボーンの位置や向き、ならびにこれらの変化は、モーションキャプチャにより取得することができる。たとえば、人間に対して、上段、右中段、右下段、左下段、左中段の構えをとらせて5種類の姿勢を取得し、これらの構えから正面を通過するように刀を振らせて5種類の動作を取得すれば、キャラクターに5種類の姿勢、5種類の動作をとらせることができるようになる。
【先行技術文献】
【特許文献】
【0013】
【特許文献1】特許第4011285号公報
【発明の概要】
【発明が解決しようとする課題】
【0014】
しかしながら、ありとあらゆる姿勢や動作のモーションキャプチャをあらかじめ行うことは不可能である。そこで、キャラクターの既存の姿勢や動作から、キャラクターの新たな姿勢や動作を生成するような技術が求められている。たとえば、上段および右中段の姿勢や、そこから正面を通過するように刀を降る動作から、これらの中間的な姿勢、すなわち、右斜め上に刀を構える姿勢や、そこから左斜め下に刀を振り下ろす動作を生成するような技術に対する要望は強い。
【0015】
さらに、プレイヤがコントローラを利用してキャラクターの姿勢や動作を定める場合に、モーションキャプチャにより、何種類か既定の姿勢や動作を用意しておき、それらから、プレイヤの操作に基づいて、新たな姿勢や動作を生成できるようにすることとして、ゲームの開発効率を向上させ、メモリの消費量等を抑制したい、という要望もある。
【0016】
本発明は、上記のような課題を解決するもので、キャラクターの特定の姿勢や動作から任意の姿勢や動作を求めて、その画像を生成するのに好適な画像生成装置、画像生成方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【0017】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【0018】
本発明の第1の観点に係る画像生成装置は、複数の互いに連結されるボーンを有するキャラクターの姿勢を定めるために、当該複数のボーンの相対的な位置および向きを表す姿勢ボーン情報を使用して、当該キャラクターの画像を生成する。
【0019】
ボーンはキャラクターの骨格に相当するものであり、一般には、ボーン同士の連結位置は変化しない。したがって、まず、いずれか1つのボーンの位置と向きを定め、次に、その位置と向きが定められたボーンに対して、直接連結されている他のボーンの位置と向きを定めることを繰り返せば、ボーン全体の形状が一意に定まる。ボーン全体の形状は、デサイナーが設計することもあるし、モーションキャプチャにより取得されることもある。
【0020】
画像生成装置は、記憶部、姿勢受付部、姿勢計算部、姿勢混合部、生成部を備える。
【0021】
ここで、記憶部には、キャラクターが第1の姿勢をとるときの第1の姿勢ボーン情報が、第1の姿勢パラメータ値に対応付けて記憶され、当該キャラクターが第2の姿勢をとるときの第2の姿勢ボーン情報が、第2の姿勢パラメータ値に対応付けて記憶される。
【0022】
たとえば、キャラクターが刀を構える姿勢を考えると、姿勢パラメータ値としては、キャラクターの正面中央から見て、刀の先端が鉛直線下向きとなす角度、すなわち、キャラクターと正対し、キャラクターの中段中央を中心としたときに、中心から刀の先端への方向と、中心から鉛直下向きとの方向と、が、なす半時計周りの角度、を採用することができる。
【0023】
この例では、姿勢パラメータ値は、
(a)右下段の構えでは0度、
(b)右中段の構えでは90度、
(c)上段の構えでは180度、
(d)左中段の構えでは270度、
(e)左下段の構えでは360度
となる。ここで、右下段と左下段を区別しているのは、剣道においては、両者の手首の捻りの向きが異なるからである。
【0024】
それぞれの姿勢のボーンのボーン情報は、モーションキャプチャ等によって用意され、姿勢パラメータ値に対応付けて、記憶部に記憶されている。
【0025】
なお、姿勢パラメータ値としては、上記の角度のみならず、キャラクターの姿勢を表す任意のスカラー量を採用することができる。
【0026】
一方、姿勢受付部は、キャラクターがとるべき姿勢を表す姿勢パラメータ値の入力を受け付ける。
【0027】
上記の例では、姿勢パラメータ値は、構えの角度を表すものである。ジョイスティックを傾けたときの傾ける方向や、タッチパッド、トラックパッド、マウスなどで指示する位置が、その中央からどれだけずれた角度であるか、によって、姿勢パラメータ値が入力される。
【0028】
以下の説明では、姿勢パラメータ値として、90度と180度の間の角度としてθ度が入力されたものとし、第1の姿勢を右中段の構え(姿勢パラメータ値は90度)、第2の姿勢を上段の構え(姿勢パラメータ値は180度)とする。すなわち、キャラクターは、右斜め上に刀を構える姿勢をとるべきことになる。任意の角度が姿勢パラメータ値として入力される態様については、後述する。
【0029】
たとえば、θ = 120としたときには、刀を右中段より少し上に構えたことになるし、θ = 150としたときには、さらに刀を上に構えたことになる。
【0030】
さらに、姿勢計算部は、受け付けられた姿勢パラメータ値が、第1の姿勢パラメータ値と、第2の姿勢パラメータ値と、を内分する姿勢内分比を計算する。
【0031】
上記の例においては、入力された姿勢パラメータ値はθ度であるから、姿勢内分比は、(θ-90):(180-θ)となる。
【0032】
一般に、第1の姿勢パラメータ値をα、第2の姿勢パラメータ値をβ(α<β)、入力された姿勢パラメータ値をθとすると、α≦θ≦βが成立し、姿勢内分比は、(θ-α):(β-θ)となる。
【0033】
さらに、姿勢混合部は、計算された姿勢内分比で、第1の姿勢ボーン情報と、第2の姿勢ボーン情報と、を、ブレンドすることにより、第3の姿勢ボーン情報を得る。
【0034】
上記のように、ボーン情報は、ボーン同士の相対的な位置および向きを指定するものである。一般に、1つのボーンには1つ以上の連結点があるが、そのボーンにおける連結点の位置は、キャラクターが姿勢を変化させたとしても、移動しない。これは、キャラクターの骨の長さが、急激には変化しないことに相当する。
【0035】
したがって、そのボーンに連結された他のボーンの向きを第1の姿勢ボーン情報の場合と、第2の姿勢ボーン情報の場合と、で、対比し、その向きを表す情報を、姿勢内分比で内分すれば、第3の姿勢ボーン情報における当該他のボーンの向きをブレンドした結果が得られることになる。なお、内分の手法としては、後述するオイラー角やクォータニオンを使用するのが一般的である。
【0036】
さらに、生成部は、得られた第3の姿勢ボーン情報により、キャラクターの形状を定め、定められた形状により、当該キャラクターを表す画像を生成する。
【0037】
すなわち、生成部は、一般には、ボーン情報から、ボーンに連動する制御点の位置を求め、制御点同士を重み付け平均することで、頂点の位置を求め、頂点同士を結ぶポリゴンにテクスチャを貼り付ける。そして、テクスチャが貼り付けられたポリゴンによってスキンを形成して、キャラクターの画像を生成する。生成された画像は、画面に表示されるのが典型的である。
【0038】
本発明によれば、キャラクターの2つの姿勢から、その2つの姿勢の中間的な姿勢を求めて、そのキャラクターが中間的な姿勢をとる様子を表す画像を生成することができる。
【0039】
また、本発明の画像生成装置において、複数のボーンは、各ボーンをノードとし、連結された2つのボーンのうち、一方のボーンを親ノードに、他方のボーンを子ノードに、それぞれ割り当てた木構造に階層化され、姿勢ボーン情報は、親ノードのボーン(以下「親ボーン」という。)に対する相対的な子ノードのボーン(以下「子ボーン」という。)の位置および向きを指定することにより、表現されるように構成することができる。
【0040】
本発明は上記発明の好適実施形態に係るものである。本発明においては、キャラクターの位置および向きとして根ボーンの位置および向きを採用する。根ボーンから木構造の親子関係をたどり、親ボーンに対する子ボーンの位置および向きを定めることによって、キャラクターの形状全体が定められる。なお、上記のように、一般には、ボーンの長さ、すなわち、ボーンにおける連結点の間の距離は、一定とする。
【0041】
本発明によれば、ボーンを階層的に管理することで、キャラクターの姿勢を容易に変化させることができるようになる。
【0042】
また、本発明の画像生成装置において、子ボーンの位置および向きは、親ボーンに固定された座標系において子ボーンが親ボーンに連結される連結点の座標、ならびに、当該座標系における子ボーンの向きを表すオイラー角もしくはクォータニオンにより表現され、姿勢混合部は、第1の姿勢ボーン情報と、第2の姿勢ボーン情報と、において各々対応するボーンのオイラー角もしくはクォータニオンを計算された姿勢内分比で内分することによって、第3の姿勢ボーン情報を得るように構成することができる。
【0043】
上記のように、ボーンの長さは一般には固定されている。この場合、親ボーンに固定された座標系において、子ボーンが親ボーンに連結される連結点の座標は固定されている。
【0044】
したがって、当該座標系において、子ボーンの向きを指定すれば、親ボーンに対する子ボーンの相対的な位置および向きが確定することになる。
【0045】
本発明では、向きを定めるために、オイラー角もしくはクォータニオンを用いることとしている。2つの姿勢における各オイラー角同士を姿勢内分比で内分したり、クォータニオンの各要素を姿勢内分比で内分することによって、第3の姿勢におけるオイラー角やクォータニオンが得られる。
【0046】
本発明によれば、ボーンの向きをあらわすオイラー角やクォータニオンを姿勢内分比で内分することによって、容易に中間姿勢のボーン情報を得ることができるようになる。
【0047】
また、本発明の画像生成装置において、姿勢ボーン情報は、時間の経過とともに変化する情報であり、姿勢混合部は、各時点での、第1の姿勢ボーン情報と第2の姿勢ボーン情報とをブレンドし、生成部は、各時点での画像を生成することにより、動画像を生成するように構成することができる。
【0048】
たとえば、キャラクターが刀を構えている場合には、キャラクターの呼吸に合わせて、刀が微小に動く様子を採用したいことがある。本発明はこのような状況に対応するものである。
【0049】
この場合、あらかじめ、刀を構えた人間の呼吸の1周期分を、所定の時間間隔でモーションキャプチャする。そして、当該周期内の各時点におけるキャラクターのボーンの位置や向きを、モーションキャプチャされたデータから定める。そして、時間の経過に合わせて、各時点におけるボーンの位置や向きを適宜選択し、その位置や向きをブレンドする。
【0050】
上記の例では、刀を上段に構えたときの1呼吸分の姿勢ボーン情報と、刀を右中段に構えたときの1呼吸分の姿勢ボーン情報と、から、刀を右斜め上に構えたときの1呼吸分の姿勢ボーン情報を得るのである。
【0051】
なお、姿勢ボーン情報の時間経過に伴う変化は、典型的には周期的な変化であるが、必ずしもこれに限られない。
【0052】
本発明によれば、キャラクターの2種類の動作からその中間の動作を生成して、その動作をとるキャラクターの様子を表す画像を生成することができる。
【0053】
また、本発明の画像生成装置は、キャラクターが動作するときの形状の変化を定めるために、複数のボーンの相対的な位置および向きの時間経過に対する変化量を表す動作ボーン情報をさらに使用する。
【0054】
上記発明では、時間経過にともなう各時点におけるキャラクターの姿勢を表す情報を姿勢ボーン情報としていたが、本発明では、各時点におけるキャラクターの姿勢の差分を表す情報を動作ボーン情報とするのである。すなわち、ある時点における姿勢ボーン情報に、動作ボーン情報を加算すると、次の時点における姿勢ボーン情報が得られるのである。
【0055】
そして、本発明の画像生成装置は、動作受付部、向き計算部、変化混合部、開始姿勢取得部をさらに備え、以下のように構成する。
【0056】
すなわち、記憶部には、キャラクターが第1の向きに動作するときの第1の動作ボーン情報が、第1の向きパラメータ値に対応付けてさらに記憶され、当該キャラクターが第2の向きに動作するときの第2の動作ボーン情報が、第2の向きパラメータ値に対応付けてさらに記憶される。
【0057】
たとえば、キャラクターが刀を振る方向を表す角度を向きパラメータ値として採用することができる。以下では、上記の例に合わせて、向きパラメータ値として、
(a)右下から振り上げる動作では0度、
(b)右から左に振る動作では90度、
(c)上から下に振る動作では180度、
(d)左から右に振る動作では270度、
(e)左下から振り上げる動作では360度
のような例をあげて説明する。
【0058】
姿勢パラメータ値も向きパラメータ値も90度の状況は、キャラクターが、右中段の構えから左に刀を振る動作をとる状況を表すことになる。姿勢パラメータ値も向きパラメータ値も180度の状況は、キャラクターが、上段の構えから下に刀を振る動作をとる状況を表すことになる。
【0059】
このように、姿勢パラメータ値と向きパラメータ値が同じ値であるときには、刀の先端の軌跡は、キャラクターの中段中央を通過することになる。
【0060】
一方、動作受付部は、キャラクターが動作すべき向きを表す向きパラメータ値の入力を受け付ける。
【0061】
これは、刀を振る方向に相当するパラメータ値であり、姿勢パラメータ値とは独立して入力されることとするのが典型的である。なお、姿勢パラメータ値と向きパラメータ値とが一致する場合は、上記の「時間の経過により変化する姿勢ボーン情報」を採用した場合と、実質的に等価である。
【0062】
さらに、向き計算部は、受け付けられた向きパラメータ値が、第1の向きパラメータ値ならびに第2の向きパラメータ値を内分する向き内分比を計算する。向き内分比の計算は、姿勢内分比の計算と同様に行われる。
【0063】
そして、変化混合部は、計算された向き内分比で、第1の動作ボーン情報と、第2の動作ボーン情報と、を、ブレンドすることにより、第3の動作ボーン情報を得る。
【0064】
姿勢混合部は、2つの姿勢ボーン情報を内分比で内分してブレンドしたが、変化混合部は、2つの動作ボーン情報を内分比で内分してブレンドする。動作ボーン情報は、上記のようにオイラー角の差分や、クォータニオンの差分として表現される。したがって、これらを要素ごとに内分すれば、ブレンド後の動作ボーン情報が得られる。
【0065】
そして、開始姿勢取得部は、キャラクターが動作を開始する時点の姿勢を定める第4の姿勢ボーン情報を取得する。
【0066】
最も単純には、開始姿勢取得部において、第3の姿勢ボーン情報が、第4の姿勢ボーン情報として取得される。すなわち、向きパラメータ値の入力が受け付けられた瞬間のキャラクターの姿勢が、動作の開始姿勢となる。
【0067】
さらに、生成部は、キャラクターを、取得された第4の姿勢ボーン情報により定められる姿勢から、得られた第3の動作ボーン情報により定められる動作で時間経過とともに動作させ、当該キャラクターが時間経過とともに形状を変化させる様子を表す動画像を生成する。
【0068】
上記のように、本発明では、動作ボーン情報として、静止している姿勢ボーン情報の差分を採用している。このため、たとえば、右斜め上の構え(姿勢パラメータ値が120度や150度等)から下に刀を振り下ろし(向きパラメータ値が180度)、刀の先端が、キャラクターの右寄りを通過するような動作についても画像を生成することができる。
【0069】
本発明によれば、キャラクターの2つの動作からその中間的な動作を生成することにより、中間的な動作をとるキャラクターを表す動画像を容易に生成することができるようになる。
【0070】
また、本発明の画像生成装置は、以下のように構成することができる。
【0071】
すなわち、キャラクターが有する複数のボーンのいずれか一つの代表用ボーンには、代表点が固定される。
【0072】
たとえば、上記の例では、刀の先端に代表点を設定する。
【0073】
一方、動作ボーン情報には、当該キャラクターが姿勢を開始し始めようとする時点の姿勢を表す姿勢ボーン情報が対応付けられる。すなわち、本発明では、構えの姿勢とは独立に、動作の開始時の姿勢が用意され、両者にずれがある場合を想定している。
【0074】
そして、開始姿勢取得部は、第1の動作ボーン情報に対応付けられる姿勢ボーン情報と、第2の動作ボーン情報に対応付けられる姿勢ボーン情報と、を、向き内分比でブレンドすることにより得られる第5の姿勢ボーン情報における代表点の位置が、第3の姿勢ボーン情報における代表点の位置にできるだけ近付くように、第5の姿勢ボーン情報を補正する。
【0075】
すなわち、本発明では、構えの姿勢の代表点の位置が、姿勢のブレンドによって求められる。動作開始時の代表点の位置が、動作のブレンドによって求められる。そして、両者の位置が近付くように、動作開始時の代表点の位置を補正する。
【0076】
さらに、開始姿勢取得部において、当該補正により得られた姿勢ボーン情報が、第4の姿勢ボーン情報として取得される。
【0077】
本発明によれば、キャラクターの静止時の姿勢と、キャラクターの動作時の開始時点の姿勢と、にずれがある場合であっても、自然な動画像を生成することができるようになる。
【0078】
また、本発明の画像生成装置において、開始姿勢取得部は、所定の拘束条件を採用したインバースキネマティクスを用いて、第5の姿勢ボーン情報における代表点の位置を、第3の姿勢ボーン情報における代表点の位置に重ねることにより、補正を行うように構成することができる。
【0079】
代表点が刀の先端の場合には、刀の先端を重ねるようにインバースキネマティクスの手法を用いる。インバースキネマティクスとは、ボーンの木構造を葉から根の方にたどりながら、各ボーンの位置や向きを修正していく技術であり、本例では、刀、刀を持っている手首、下腕、上腕、肩、背骨上部、腰のように、順にボーンの向きが補正されていく。
【0080】
本発明は、上記発明の好適実施形態に係るものであり、代表点の位置を重ねることによって、キャラクターの静止時の姿勢と、キャラクターの動作時の開始時点の姿勢と、のずれをできるだけ小さくすることができるようになる。
【0081】
また、本発明の画像生成装置において、開始姿勢取得部は、キャラクターが有する複数のボーンのうち、いずれか2つの直接連結されるボーンの相対的な向きを変化させることにより、第5の姿勢ボーン情報における代表点の位置を、第3の姿勢ボーン情報における代表点の位置にできるだけ近付けるように構成することができる。
【0082】
たとえば、キャラクターの腰と背骨上部との相対的な向きを変える状況を考える。本発明では、連結点から構えに基づく代表点に向かう半直線と、連結点から動作の開始時点に基づく代表点に向かう半直線と、が、重なるように、キャラクターの腰と背骨上部との相対的な向きのみを変更する。すなわち、インバースキネマティクスでは、修正すべきボーンの向きの情報が多数となるが、本発明では、1つの向きのみを修正するのである。
【0083】
本発明は、上記発明の好適実施形態に係るものであり、キャラクターの静止時の姿勢と、キャラクターの動作時の開始時点の姿勢と、のずれを、簡易な計算によって、できるだけ小さくすることができるようになる。
【0084】
また、本発明の画像生成装置は、以下のように構成することができる。
【0085】
すなわち、記憶部には、複数の姿勢パラメータ値のそれぞれに対応付けて姿勢ボーン情報が記憶される。たとえば、上記のように、5種類のキャラクターの構えが記憶される。
【0086】
一方、所定範囲内の位置がユーザにより指定されるコントローラにおいて、当該所定範囲の周縁に含まれる位置が指定されると、姿勢受付部は、当該所定範囲の中心位置から見た当該位置の向きを、姿勢パラメータ値の入力とする。たとえば、上記のように、ジョイスティックやタッチパッド等によって、姿勢パラメータ値が入力される。
【0087】
第1の姿勢パラメータ値ならびに第2の姿勢パラメータ値は、記憶部に記憶される複数の姿勢パラメータ値のうち、当該受け付けられた姿勢パラメータ値を直近に挟む2つの姿勢パラメータ値である。
【0088】
ここで、入力された姿勢パラメータ値θを記憶部に記憶される姿勢パラメータ値α,β(α<β)が直近に挟む、とは、α≦θ≦βであり、かつ、α以上β以下の姿勢パラメータ値は、記憶部には記憶されていない、ということを意味する。
【0089】
本発明によれば、キャラクターの姿勢を3個以上用意して、それらの姿勢の中間の姿勢を得ることにより、広い範囲のキャラクターの姿勢を得ることができるようになる。
【0090】
また、本発明の画像生成装置は、以下のように構成することができる。
【0091】
すなわち、記憶部には、複数の姿勢パラメータ値のそれぞれに対応付けて姿勢ボーン情報が記憶され、複数の向きパラメータ値のそれぞれに対応付けて動作ボーン情報が記憶される。たとえば、上記のように、キャラクターの5種類の構えと5種類の動作が記憶される。
【0092】
一方、所定範囲内の位置がユーザにより指定されるコントローラにおいて、当該所定範囲の周縁に含まれる第1の位置から、当該所定範囲の周縁以外を通過して、当該所定範囲の周縁に含まれる第2の位置へ、当該指定される位置が移動すると、姿勢受付部は、当該所定範囲の中心位置から見た当該第1の位置の向きを、姿勢パラメータ値の入力とし、動作受付部は、当該第1の位置から見た当該第2の位置の向きを、向きパラメータ値の入力とする。
【0093】
たとえば、上記のように、ジョイスティック等をゆっくりと傾けると、棒状体の中央からの向きが、姿勢パラメータ値となる。さらに、ジョイスティック等の向きを高速に移動すると、棒状体の移動の開始時点から終了時点への向きが、向きパラメータ値となる。
【0094】
第1の姿勢パラメータ値ならびに第2の姿勢パラメータ値は、記憶部に記憶される複数の姿勢パラメータ値のうち、当該受け付けられた姿勢パラメータ値を直近に挟む2つの姿勢パラメータ値であり、第1の向きパラメータ値ならびに第2の向きパラメータ値は、記憶部に記憶される複数の移動パラメータ値のうち、当該受け付けられた移動パラメータ値を直近に挟む2つの移動パラメータ値である。
【0095】
すなわち、本発明では、入力された姿勢パラメータ値を直近に挟む姿勢ボーン情報をブレンドし、入力された向きパラメータ値を直近に挟む動作ボーン情報をブレンドして、これらから、動作開始時点の姿勢と、動作中の姿勢の時間変化と、の両方を得るのである。
【0096】
本発明によれば、プレイヤは、1つのコントローラにより、キャラクターの静止時の姿勢と動作の両方を、指定することができるようになる。
【0097】
本発明のその他の観点に係る画像生成方法は、複数の互いに連結されるボーンを有するキャラクターの姿勢を定めるために、当該複数のボーンの相対的な位置および向きを表す姿勢ボーン情報を使用して、当該キャラクターの画像を生成する。
【0098】
画像生成方法は、画像生成装置が実行する。当該画像生成装置は、記憶部、姿勢受付部、姿勢計算部、姿勢混合部、生成部を備える。
【0099】
ここで、記憶部には、キャラクターが第1の姿勢をとるときの第1の姿勢ボーン情報が、第1の姿勢パラメータ値に対応付けて記憶され、当該キャラクターが第2の姿勢をとるときの第2の姿勢ボーン情報が、第2の姿勢パラメータ値に対応付けて記憶される。
【0100】
そして、当該画像生成方法は、姿勢受付工程、姿勢計算工程、姿勢混合工程、生成工程を備える。
【0101】
ここで、姿勢受付工程では、姿勢受付部が、キャラクターがとるべき姿勢を表す姿勢パラメータ値の入力を受け付ける。
【0102】
一方、姿勢計算工程では、姿勢計算部が、受け付けられた姿勢パラメータ値が、第1の姿勢パラメータ値と、第2の姿勢パラメータ値と、を内分する姿勢内分比を計算する。
【0103】
さらに、姿勢混合工程では、姿勢混合部が、計算された姿勢内分比で、第1の姿勢ボーン情報と、第2の姿勢ボーン情報と、を、ブレンドすることにより、第3の姿勢ボーン情報を得る。
【0104】
そして、生成工程では、生成部が、得られた第3の姿勢ボーン情報により、キャラクターの形状を定め、定められた形状により、当該キャラクターを表す画像を生成する。
【0105】
本発明のその他の観点に係るプログラムは、コンピュータを、上記画像生成装置の各部として機能させるように構成する。
【0106】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【0107】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【0108】
本発明によれば、キャラクターの特定の姿勢や動作から任意の姿勢や動作を求めて、その画像を生成するのに好適な画像生成装置、画像生成方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【0109】
【図1】典型的な情報処理装置の概要構成を示す模式図である。
【図2】コントローラの外観を示す説明図である。
【図3】本実施形態に係る画像生成装置の概要構成を示す説明図である。
【図4】姿勢パラメータ値とキャラクターの姿勢との関係を示す説明図である。
【図5】姿勢パラメータ値とキャラクターの姿勢との関係を示す説明図である。
【図6】姿勢パラメータ値とキャラクターの姿勢との関係を示す説明図である。
【図7】姿勢パラメータ値とキャラクターの姿勢との関係を示す説明図である。
【図8】姿勢パラメータ値とキャラクターの姿勢との関係を示す説明図である。
【図9】向きパラメータ値とキャラクターの動作の方向との関係を示す説明図である。
【図10】向きパラメータ値とキャラクターの動作の方向との関係を示す説明図である。
【図11】向きパラメータ値とキャラクターの動作の方向との関係を示す説明図である。
【図12】向きパラメータ値とキャラクターの動作の方向との関係を示す説明図である。
【図13】向きパラメータ値とキャラクターの動作の方向との関係を示す説明図である。
【図14】本実施形態の画像生成装置において実行される画像生成処理の制御の流れを示すフローチャートである。
【図15】姿勢パラメータ値を入力するためのジョイスティックの操作方法を示す説明図である。
【図16】向きパラメータ値を入力するためのジョイスティックの操作方法を示す説明図である。
【図17】3つの姿勢におけるボーンの位置関係を示す説明図である。
【図18】ジョイスティックの操作により構えたキャラクターのボーンの様子と、ジョイスティックの操作により当該キャラクターが刀を振る方向と、を示す説明図である。
【発明を実施するための形態】
【0110】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。
【0111】
したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例1】
【0112】
図1は、プログラムを実行することにより、本実施形態の画像生成装置として機能しうる典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【0113】
本図に示す情報処理装置100は、いわゆるコンシューマゲーム機に相当するもので、CPU(Central Processing Unit)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103、インターフェース104、コントローラ105、外部メモリ106、画像処理部107、DVD−ROM(Digital Versatile Disc ROM)ドライブ108、NIC(Network Interface Card)109、音声処理部110、マイク111、ハードディスク(Hard Disk;HD)121を有する。各種の入出力装置は、適宜省略することができる。
【0114】
情報処理装置100を典型的なコンシューマゲーム機として機能させる場合には、ゲーム用プログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ108に装着し、電源を投入する。すると、当該ゲームプログラムが実行され、ゲームをプレイすることができるようになる。
【0115】
ただし、本実施形態においては、典型的には、DVD−ROMドライブ108に装着されたDVD−ROMから、アプリケーションをHD 121にインストールする。そして、当該HD 121に記憶されたプログラムを実行することによって、ゲームを含む各種のアプリケーションを実行することとする。
【0116】
なお、携帯型のゲーム装置においては、携帯可能とするために、DVD−ROMドライブ108を利用するのではなく、ROMカセット用スロットにEEPROM(Electrically Erasable Programmable ROM)カセットを装着して、HD 121を省略したりすることも可能である。この場合、アプリケーション用プログラムをEEPROMカセットに書き込んだ上で、当該プログラムを実行することとなる。このほか、外部メモリ106にアプリケーション用プログラムをインストールすることも可能である。
【0117】
さて、CPU 101は、情報処理装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、CPU 101は、レジスタ(図示せず)という高速アクセスが可能な記憶域に対してALU(Arithmetic Logic Unit)(図示せず)を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、CPU 101自身が構成されているものや、コプロセッサを備えて実現するものがある。
【0118】
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録され、これが実行されることにより、DVD−ROMに記録されたプログラムをRAM 103に読み出してCPU 101による実行が開始される。また、ROM 102には、情報処理装置100全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【0119】
RAM 103は、データやプログラムを一時的に記憶するためのもので、HD 121やDVD−ROM等から読み出したプログラムやデータ、その他通信対戦ゲームの進行やチャット通信に必要なデータが保持される。また、CPU 101は、RAM 103に変数領域を設け、当該変数に格納された値に対して直接ALUを作用させて演算を行ったり、RAM 103に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【0120】
インターフェース104を介して接続されたコントローラ105は、ユーザがゲーム実行の際に行う操作入力を受け付ける。
【0121】
なお、コントローラ105は、必ずしも情報処理装置100に対して外付けにされている必要はなく、一体に形成されていても良い。携帯可能な端末装置のコントローラ105は、各種のボタンやスイッチから構成され、これらの押圧操作を操作入力として扱う。このほか、タッチスクリーンを利用した情報処理装置100では、ユーザがペンや指を利用してタッチスクリーンをなぞった軌跡を操作入力として扱う。
【0122】
図2は、コントローラ105の外観を示す説明図である。以下、本図を参照して説明する。
【0123】
コントローラ105の左方には、上下左右を示す操作入力を行うのに利用される↑ボタン201、↓ボタン202、←ボタン203、→ボタン204が配置されている。
【0124】
右方には、決定操作入力を行うのに利用される○ボタン205、取消操作入力を行うのに利用される×ボタン206、メニュー表示等の指示入力を行うのに利用される△ボタン207、その他の指示入力を行うのに利用される□ボタン208が配置されている。
【0125】
中央には、SELECTボタン209、STARTボタン210のほか、アナログ入力の開始・停止を指示するためのANALOGボタン211、および、アナログ入力が有効か無効かを表示するためのインジケータ212が配置されている。
【0126】
また中央下部には、上下左右に限らない方向に大きさを伴う指示入力を行うためのジョイスティック213、214が配置されている。
【0127】
さらに、上方には、各種の指示入力に用いることができるL1ボタン215、L2ボタン216、R1ボタン217、R2ボタン218が配置されている。
【0128】
コントローラ105の各ボタン201〜208、215〜218には、圧力センサが配備され、アナログ入力が有効となっている場合には、いずれのボタンが押圧操作されているかを検知することができるほか、ユーザの押圧操作の圧力の大きさを0〜255の256段階で得ることができる。
【0129】
コントローラ105のジョイスティック213、214は、ひずみゲージが配備され、これらがどの方向にどれだけ曲げられているか、を検知することができる。
【0130】
図1に戻り、インターフェース104を介して着脱自在に接続された外部メモリ106には、ゲーム等のプレイ状況(過去の成績等)を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ(記録)のデータなどが書き換え可能に記憶される。ユーザは、コントローラ105を介して指示入力を行うことにより、これらのデータを適宜外部メモリ106に記録することができる。
【0131】
上述の通り、アプリケーションプログラムを外部メモリ106にインストールして実行するような形態を採用することもできる。これは、外部メモリ106が大容量である場合に好適である。
【0132】
DVD−ROMドライブ108に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。CPU 101の制御によって、DVD−ROMドライブ108は、これに装着されたDVD−ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはRAM 103等に一時的に記憶される。
【0133】
画像処理部107は、DVD−ROMから読み出されたデータをCPU 101や画像処理部107が備える画像演算プロセッサ(図示せず)によって加工処理した後、これを画像処理部107が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部107に接続されるモニタ(図示せず)へ出力される。これにより、各種の画像表示が可能となる。
【0134】
携帯可能な端末装置のモニタとしては、小型の液晶ディスプレイを利用するのが典型的であり、コントローラ105としてタッチスクリーンを利用する場合には、当該タッチスクリーンの表示パネルがモニタとして機能する。自宅で遊ぶための端末装置やネットワークゲームのサーバ装置のモニタとしては、CRT(Cathode Ray Tube)やプラズマディスプレイなどの表示装置を利用することも可能である。
【0135】
画像演算プロセッサは、2次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【0136】
また、仮想3次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から仮想3次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【0137】
さらに、CPU 101と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【0138】
NIC 109は、情報処理装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものであり、LANを構成する際に用いられる10BASE−T/100BASE−T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェース(図示せず)により構成される。
【0139】
また、NIC 109経由でコンピュータ通信網から入手した情報を元に、HD 121等にアプリケーションプログラムをインストールすることも可能である。
【0140】
音声処理部110は、HD 121やDVD−ROMから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ(図示せず)から出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカや、ヘッドホン(図示せず)、イヤフォン(図示せず)から出力させる。
【0141】
音声処理部110では、HD 121やDVD−ROMに記録された音声データがMIDIデータである場合には、これが有する音源データを参照して、MIDIデータをPCMデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してPCMデータに変換する。PCMデータは、そのサンプリング周波数に応じたタイミングでD/A(Digital/Analog)変換を行って、スピーカに出力することにより、音声出力が可能となる。
【0142】
さらに、情報処理装置100には、インターフェース104を介してマイク111を接続することができる。この場合、マイク111からのアナログ信号に対しては、適当なサンプリング周波数でA/D変換を行い、PCM形式のディジタル信号として、音声処理部110でのミキシング等の処理ができるようにする。
【0143】
本実施形態で利用する情報処理装置100は、上述のように、HD 121等の大容量外部記憶装置を用いるのが典型的である。HD 121は、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ108に装着されるDVD−ROM等と同じ機能を果たすこともできる。
【0144】
このほか、ユーザからの文字列の編集入力を受け付けるためのキーボードや、各種の位置の指定および選択入力を受け付けるためのマウスなどを接続する形態も採用することができる。また、本実施形態の情報処理装置100にかえて、汎用のパーソナルコンピュータやサーバ用コンピュータ等を利用することもできる。
【0145】
以上で説明した情報処理装置100は、コンシューマ向けゲーム装置に相当するものであるが、各種の入出力処理が可能な電子機器であれば、本発明の端末装置やサーバ装置を実現することができる。したがって、携帯電話、携帯ゲーム機器、カラオケ装置、一般的なビジネス用コンピュータなど、種々の計算機上で本発明の端末装置やサーバ装置を実現することが可能である。
【0146】
たとえば、ビジネス用コンピュータは、上記情報処理装置100と同様に、CPU、RAM、ROM、DVD−ROMドライブ、および、NIC、HDを構成要素として有するほか、情報処理装置100よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてフレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっており、コントローラ105ではなく、キーボードやマウスなどを入力装置として利用するのが典型的である。
【0147】
図3は、本実施形態に係る画像生成装置の概要構成を示す説明図である。以下、本図を参照して説明する。
【0148】
本実施形態に係る画像生成装置301は、記憶部302、姿勢受付部303、姿勢計算部304、姿勢混合部305、動作受付部306、動作計算部307、動作混合部308、生成部309、開始姿勢取得部310を備える。本画像生成装置301は、情報処理装置100にて、DVD−ROMドライブ108に装着されたDVD−ROMやHD 121に記録された所定のプログラムを実行することによって、実現される。
【0149】
ここで、記憶部302には、キャラクターの平静時の姿勢を定める姿勢ボーン情報が、姿勢パラメータ値に対応付けられて記憶されるほか、キャラクターの動作時の姿勢を定める動作ボーン情報が、向きパラメータ値に対応付けられて記憶される。記憶部302は、DVD−ROMドライブ108に装着されたDVD−ROMや、RAM 103等により実現される。
【0150】
一方、ユーザがコントローラ105のジョイスティック213を操作したときに、その操作状況から姿勢パラメータ値や向きパラメータ値が求められ、姿勢受付部303と、動作受付部306と、は、求められた姿勢パラメータ値と、向きパラメータ値と、をそれぞれ受け付ける。したがって、姿勢受付部303と、動作受付部306と、は、CPU 101がコントローラ105と共働することにより、実現される。
【0151】
姿勢計算部304と、動作計算部307と、は、受け付けられた姿勢パラメータ値ならびに向きパラメータ値が、姿勢ボーン情報や動作ボーン情報に対応付けて記憶部302に記憶される姿勢パラメータ値ならびに向きパラメータ値を、内分する姿勢内分比と向き内分比を計算するもので、CPU 101によって実現される。
【0152】
姿勢混合部305と、動作混合部308と、は、計算された姿勢内分比と向き内分比に基づいて記憶部302に記憶される姿勢ボーン情報や動作ボーン情報を混合して、新たな姿勢ボーン情報や動作ボーン情報を生成するもので、CPU 101によって実現される。
【0153】
生成部309は、生成された姿勢ボーン情報に基づいて、キャラクターの平静時の画像を生成したり、動作ボーン情報に基づいて、キャラクターの動作時の画像を生成するもので、CPU 101の制御の下、画像処理部107が機能することによって実現される。
【0154】
開始姿勢取得部310は、動作が開始される直前の姿勢を取得するものであり、CPU 101によって実現される。なお、動作ボーン情報に、ボーンの向きの差分情報のみが含まれる場合には、直前に採用された姿勢ボーン情報が動作が開始される直前の姿勢として利用されることになる。
【0155】
以下、画像生成装置301について、さらに詳細に説明する。
【0156】
まず、記憶部302に記憶される姿勢ボーン情報と、動作ボーン情報と、は、キャラクターの姿勢を定めるためのものである。
【0157】
ここで、ボーンとは、キャラクターの骨格に相当するものであり、一般には、ボーン同士の連結位置は変化しない。したがって、まず、いずれか1つのボーンの位置と向きを定め、次に、その位置と向きが定められたボーンに対して、直接連結されている他のボーンの位置と向きを定めることを繰り返せば、ボーン全体の形状が一意に定まる。ボーン全体の形状は、デサイナーが設計することもあるし、モーションキャプチャにより取得されることもある。
【0158】
複数のボーンは、各ボーンをノードとする木構造に階層化される。木構造においては、互いに連結された2つのボーンのうち、一方のボーンは親ノードに、他方のボーンは子ノードに、それぞれ割り当てられる。すなわち、直接連結されるボーン同士は、一方が親であり、他方が子である。
【0159】
木構造の根ノードに割り当てられる根ボーンは、キャラクターの基本的な位置や向きを表すものである。したがって、根ボーンの位置や向きは、仮想空間内におけるグローバル座標系に対して定められる。
【0160】
一方、互いに連結されたボーン同士の相対的な位置や向きは、親ボーンに固定された座標系における両者の連結点の位置、および、当該座標系における子ボーンの向きにより表現される。
【0161】
したがって、キャラクターが姿勢を変えるときには、連結点の位置は変化せず、親ボーンに対する子ボーンの向きのみが変化するのが一般的である。
【0162】
根ボーンから木構造の親子関係をたどり、親ボーンに対する子ボーンの向きを定めると、各子ボーンのグローバル座標系における位置および向きが求められる。これを繰り返すことによって、キャラクターの形状全体が定められる。
【0163】
親ボーンに固定された座標系において、子ボーンの向きを表すには、当該座標系におけるオイラー角もしくはクォータニオンを利用するのが一般的である。
【0164】
記憶部302には、姿勢パラメータ値と姿勢ボーン情報との組が複数記憶され、向きパラメータ値と動作ボーン情報との組が複数記憶されている。
【0165】
本実施形態では、キャラクターが刀を構えた姿勢から刀を振る状況に、本発明を適用している。
【0166】
そこで、姿勢パラメータ値として、キャラクターの正面中央から見て、刀の先端が鉛直線下向きとなす角度、すなわち、キャラクターと正対し、キャラクターの中段中央を中心としたときに、中心から刀の先端への方向と、中心から鉛直下向きとの方向と、が、なす半時計周りの角度、を採用している。
【0167】
図4、図5、図6、図7、図8は、姿勢パラメータ値とキャラクターの姿勢との関係を示す説明図である。以下、本図を参照して説明する。
【0168】
キャラクター401は、複数のボーン402によってその形状が定められる。なお、本図においては、一部のボーンについてのみ符号を付している。
【0169】
ボーン402同士の連結点は、本図では、○印で描かれている。すなわち、本図において、大半のボーン402は、○印で挟まれている線により描かれている。
【0170】
ただし、刀を表すボーン402aは、本図では太い線で描かれており、右手の拳411の位置(本図では□印で描かれている。)と、左手の拳412の位置(本図では□印で描かれている。)によって、その向きが定められる。
【0171】
キャラクター401の姿勢を表す姿勢パラメータ値は、中心点404から鉛直下向きに伸びる線405と、キャラクターの中段中央の中心点404(本図では、△印で描かれている。)から刀を表すボーン402aの先端403(本図では、六角形で描かれている。)へ向かう半直線406と、のなす角θである。
(a)図4では、キャラクター401が右下段の構えをとっており、姿勢パラメータ値は0度である。先端403は、本図で下に向いている。
(b)図5では、キャラクター401が右中段の構えをとっており、姿勢パラメータ値は90度である。先端403は、本図で右を向いている。
(c)図6では、キャラクター401が上段の構えをとっており、姿勢パラメータ値は180度である。先端403は、本図で上を向いている。
(d)図7では、キャラクター401が左中段の構えをとっており、姿勢パラメータ値は270度である。先端403は、本図で左を向いている。
(e)図8では、キャラクター401が左下段の構えをとっており、姿勢パラメータ値は360度である。先端403は、本図で下を向いている。
【0172】
姿勢ボーン情報は、キャラクターが完全に静止している瞬間の、当該キャラクターの姿勢を表すこととしても良いが、たとえばキャラクターの呼吸の周期に合わせて時間の経過とともに変化するようなものとしても良い。
【0173】
ここで、右下段と左下段を区別しているのは、両者の手首の捻りの向きが異なるからである。すなわち、図4、図8に示すように、刀のボーン402aの向きや位置は一致しているが、キャラクター401の右手の拳411と左手の拳412の位置関係が異なる。
【0174】
一方、図9、図10、図11、図12、図13は、向きパラメータ値とキャラクターの動作の方向との関係を示す説明図であり、それぞれ、図4、図5、図6、図7、図8における姿勢から、キャラクター401が刀を振ったときの刀の先端403が描く軌跡の向きを表している。以下、これらの図を参照して説明する。
【0175】
キャラクター401の動作は、複数のボーン402の位置や向きの時間変化によって定められる。キャラクターの動作の向きを表す向きパラメータ値は、中心点404から鉛直上向きに伸びる線501と、刀を表すボーン402aの先端403が移動する方向を表す軌跡502と、のなす角φである。なお、図面を理解しやすくするため、本図の軌跡502は、場所をずらして描いてある。
(a)図9では、右下段の握りでキャラクター401が刀を下から上に振り上げる動作を表しており、向きパラメータ値は0度である。先端403は、本図で下から上に移動している。
(b)図10では、キャラクター401が刀を右から左に振る動作を表しており、向きパラメータ値は90度である。先端403は、本図で右から左に移動している。
(c)図11では、キャラクター401が刀を上から下に振り下ろす動作を表しており、向きパラメータ値は180度である。先端403は、本図で上から下に移動している。
(d)図12では、キャラクター401が刀を左から右に振る動作を表しており、向きパラメータ値は270度である。先端403は、本図で左から右に移動している。
(e)図13では、キャラクター401が左下段の握りで刀を下から上に振り上げる動作を表しており、向きパラメータ値は360度である。先端403は、本図で下から上に移動している。
【0176】
いずれの図においても、軌跡502は、中心点404を通過することとなっている。
【0177】
本実施形態では、5種類の姿勢ボーン情報と、5種類の動作ボーン情報と、に基づいて、任意の角度θにおける姿勢ボーン情報と、任意の向きφにおける動作ボーン情報と、を生成することにより、任意のθ、φに対するキャラクターの平静時の姿勢、動作時の姿勢の変化を求めるのである。
【0178】
このほか、本実施形態では、キャラクターが刀を構えていない基本姿勢の姿勢ボーン情報も利用する。
【0179】
図14は、本実施形態の画像生成装置において実行される画像生成処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【0180】
本処理が開始されると、CPU 101は、DVD−ROMドライブ108に装着されたDVD−ROMなどから、姿勢ボーン情報およびその姿勢パラメータ値、ならびに、動作ボーン情報およびその向きパラメータ値、その他各種の情報を、読み出してRAM 103に書き込み、初期化を行う(ステップS601)。
【0181】
ついで、CPU 101は、コントローラ105におけるジョイスティック213の状態を調べて、何らかの入力がされているか確認する(ステップS602)。ここで、ジョイスティック213による入力手法について説明する。
【0182】
図15は、姿勢パラメータ値を入力するためのジョイスティック213の操作方法を示す説明図である。以下、本図を参照して説明する。
【0183】
本図には、ジョイスティック213のスティック651が、点線で示される基本位置652から周縁654内の位置653に傾けられた状況が示されている。
【0184】
この状況では、基本位置652から下方に伸びる線681と、基本位置652から現在の位置653に伸びる線682と、のなす角θが、姿勢パラメータ値として入力されることになる。
【0185】
ユーザが、ジョイスティック213のスティック651を傾けたまま周縁654を一周すると、姿勢パラメータ値θとして0度から360度までの任意の値を入力することができる。
【0186】
図16は、向きパラメータ値を入力するためのジョイスティック213の操作方法を示す説明図である。以下、本図を参照して説明する。
【0187】
本図には、ジョイスティック213のスティック651が、周縁654内の位置653から、周縁654以外を通過して、周縁654内の他の位置655へ、直線的に、ある一定時間内に、移動した場合を示している。このとき、位置653から上方に伸びる線683と、位置653から位置655へ向かう移動の軌跡656と、のなす角φが、向きパラメータ値として入力されることになる。
【0188】
移動の軌跡656は、周縁以外の位置を通過する必要があるため、向きパラメータ値φとして入力できる範囲には限界があり、典型的には、直前の姿勢パラメータ値θを中心に、概ね±60度程度である。
【0189】
ただし、直前の姿勢パラメータ値θは任意の値をとることができるため、向きパラメータ値φを単独で見れば、任意の値をとることができる、と考えることもできる。
【0190】
また、スティック651が、周縁以外の位置にあるとき、たとえば、ユーザがスティック651から指を離したときには、姿勢パラメータ値も向きパラメータ値も入力されていないことになる。
【0191】
このような操作方法を採用することによって、キャラクターが刀を構えるときの姿勢や、キャラクターが刀を振るときの方向を、コントローラ105の一つのジョイスティック213の操作だけで入力することができる。
【0192】
さらに、向きパラメータ値が入力される直前には、必ず姿勢パラメータ値が入力されることとなるので、キャラクターは、何らかの構えの姿勢をとってから、刀を振ることになる。
【0193】
なお、マウスやタッチパッド、トラックパッド、トラックボール等を使用して、同様の操作体系を実現することも可能であり、これらの実施形態も、本発明の範囲に含まれる。
【0194】
ここで、姿勢パラメータ値θが入力されている場合(ステップS602;θ)、CPU 101は、RAM 103に姿勢ボーン情報と対応付けられて記憶されている姿勢パラメータ値のうち、θを直近に挟む2つを選択する(ステップS603)。以下、この2つの姿勢パラメータ値を、αとβ(α<β)とする。
【0195】
上記のように、記憶部302に記憶されている姿勢パラメータ値は、0度、90度、180度、270度、360度の5種類であるから、
(a)0≦θ<90の場合、α = 0,β = 90であり、
(b)90≦θ<180の場合、α = 90,β = 180であり、
(c)180≦θ<270の場合、α = 180,β = 270であり、
(d)270≦θ<360の場合、α = 270,β = 360である。
【0196】
次に、CPU 101は、θがαとβを内分する内分比A:Bを計算する(ステップS604)。内分比A:Bは、
A:B = (θ-α):(β-θ)
のように計算できる。
【0197】
さらに、CPU 101は、姿勢パラメータ値αに対応付けられている姿勢ボーン情報と、姿勢パラメータ値βに対応付けられている姿勢ボーン情報と、を、内分比A:Bでブレンドして、新たな姿勢ボーン情報を得る(ステップS605)。
【0198】
以下、姿勢ボーン情報のブレンドの具体的な手法について、説明する。なお、理解を容易にするため、ボーンの階層構造を省略して、3本のボーンのみがある場合を例としてとりあげる。
【0199】
図17は、3つの姿勢におけるボーンの位置関係を示す説明図である。以下、本図を参照して説明する。なお、本図は、理解を容易にするため、位置関係を誇張して描いている。
【0200】
なお、本図は、第1の姿勢と第2の姿勢とをブレンドして第3の姿勢を得る過程を説明するものであり、ボーンや角度に付す符号については、第1の姿勢においては、符号に「a」を、第2の姿勢においては、符号に「b」を、第3の姿勢においては、符号に「c」を、付加することとしている。
【0201】
本図において、根ボーンであるボーン701(第1の姿勢では符号701aにより、第2の姿勢では符号701b、第3の姿勢では符号701cに相当。以下同様。)からはボーン702が伸びており、ボーン702からはボーン703が伸びている。したがって、本図では、親ボーン701と子ボーン702、親ボーン702と子ボーン703の2つの親子関係がある。
【0202】
本図におけるボーン701a、702a、703aは、第1の姿勢(姿勢パラメータ値α)におけるボーンの位置を示しており、本図におけるボーン701b、702b、703bは、第2の姿勢(姿勢パラメータ値β)におけるボーンの位置を示している。
【0203】
また、本図におけるボーン701c、702c、703cは、第1の姿勢と第2の姿勢とを内分比A:Bでブレンドした第3の姿勢におけるボーンの位置を示している。
【0204】
まず、根ボーン701については、第1の姿勢と第2の姿勢とで、ボーン701a、701bのように、位置と向きが異なる。そこで、これらを内分比A:Bで内分した位置を、ボーン701cの位置とする。
【0205】
また、ボーン701a、701bは、向きも異なる。そこで、ボーン701aが基準線となす角710aと、ボーン701bが基準線となす角710bと、を、内分比A:Bで内分した角度を、ボーン701cが基準線となす角710cとする。
【0206】
すると、ボーン701cがボーン702cと連結される連結点の位置も、必然的に定まることになる。
【0207】
次に、親ボーン701と子ボーン702とのなす角を考える。第1の姿勢において両者がなす角711aと、第2の姿勢において両者がなす角711bと、を、内分比A:Bで内分した角度711cを計算する。
【0208】
そして、親ボーン701cに対する子ボーン702cの向きを、上記の角度711cとする。
【0209】
すると、ボーン702cとボーン703cとが連結される連結点の位置も、必然的に定まることになる。
【0210】
そこで、親ボーン702と子ボーン703とのなす角を考える。第1の姿勢において両者がなす角712aと、第2の姿勢において両者がなす角712bと、を、内分比A:Bで内分した角度712cを計算する。
【0211】
そして、親ボーン702cに対する子ボーン703cの向きを、上記の角度712cとする。
【0212】
すると、ボーン703の位置も、必然的に定まることになる。
【0213】
このように、ボーンの階層関係を順にたどることによって、すべてのボーンの向きを内分比A:Bで内分する。すると、第1の姿勢と第2の姿勢とを内分比A:Bでブレンドした第3の姿勢が得られるのである。
【0214】
本図の説明では、理解を容易にするため、2次元的な図面によって説明したが、3次元グラフィックスでは、向きは、オイラー角やクォータニオンのように、複数の数値によって表現される。この場合には、各要素を内分することで、上記のブレンドを実行するのである。
【0215】
このようにして、姿勢パラメータ値θに対する姿勢ボーン情報が得られたら、CPU 101は、画像処理部107を駆動して、得られた姿勢ボーン情報に基づいて、仮想空間に配置されるキャラクターの形状を求め、当該キャラクターを表す画像をRAM 103内に生成する(ステップS606)。画像の生成には、各種の3次元グラフィックスの技術を適用することができる。
【0216】
さらに、CPU 101は、垂直同期割込が生じるまで待機する(ステップS607)。この待機中には、他の各種の計算処理を、コルーチンとして並列に実行することも可能である。
【0217】
垂直同期割込が発生したら、CPU 101は、画像処理部107を駆動して、RAM 103内に生成した画像を、モニタ等の画面に表示させ(ステップS608)、ステップS602に戻る。
【0218】
一方、向きパラメータ値φが入力されている場合(ステップS602;φ)、CPU 101は、動作ボーン情報と対応付けられてRAM 103に記憶されている向きパラメータ値のうち、φを直近に挟む2つを選択する(ステップS609)。以下、この2つの向きパラメータ値を、γとδ(γ<δ)とする。
【0219】
上記のように、記憶部302に記憶されている向きパラメータ値は、0度、90度、180度、270度、360度の5種類であるから、
(a)0≦θ<90の場合、γ = 0,δ = 90であり、
(b)90≦θ<180の場合、γ = 90,δ = 180であり、
(c)180≦θ<270の場合、γ = 180,δ = 270であり、
(d)270≦θ<360の場合、γ = 270,δ = 360である。
【0220】
次に、CPU 101は、φがγとδを内分する内分比C:Dを計算する(ステップS610)。内分比C:Dは、
C:D = (φ-γ):(δ-φ)
のように計算できる。
【0221】
さらに、CPU 101は、向きパラメータ値φに対応付けられている動作ボーン情報と、向きパラメータ値δに対応付けられている動作ボーン情報と、を、内分比C:Dでブレンドして、新たな動作ボーン情報を得る(ステップS611)。
【0222】
ここで、動作ボーン情報とは、キャラクターのある時点における姿勢と、次の時点(すなわち、垂直同期割込周期後の時点)における姿勢と、の差分を表す情報が、時間の経過とともに一列に並んだものと考えることができる。したがって、動作開始時点の姿勢は、必ずしも動作ボーン情報に含める必要はない。
【0223】
姿勢ボーン情報においては、各ボーンの相対的な向きを内分比A:Bで内分したが、動作ボーン情報においては、各ボーン向きの差分を内分比C:Dで内分する。
【0224】
すなわち、動作ボーン情報において、互いに対応する時点の差分を内分比C:Dで内分する手法は、実質的に、姿勢ボーン情報を内分比A:Bで内分する手法と同様である。
【0225】
さて、向きの差分は、オイラー角やクォータニオンの差として表現される。したがって、第1の動作と第2の動作とにおいて、各時点における向きの差分をボーンごとに内分比C:Dで内分すれば、第3の動作が得られることになる。
【0226】
なお、根ボーンの動きについても、位置の差分を同様に内分比C:Dで内分することにより、第3の動作における根ボーンの位置の移動を得ることができる。
【0227】
このようにして向きφに対する動作ボーン情報が得られたら、動作ボーン情報に含まれる各時点について、順に、以下の処理を繰り返す(ステップS612〜)。
【0228】
まず、動作ボーン情報から、現時点の各ボーンの差分を取得する(ステップS613)。
【0229】
そして、根ボーンの位置を、当該根ボーンの差分だけ移動する(ステップS614)。
【0230】
次に、根ボーンから全ボーンへ、木構造を順に辿りながら、各ボーンの向きを、当該ボーンについて取得された差分だけ変化させる(ステップS615)。
【0231】
そして、直前の姿勢パラメータ値がθであり、指定された向きパラメータ値φである状況での、現時点の姿勢が得られたら、CPU 101は、画像処理部107を駆動して、得られた姿勢に基づいて、仮想空間に配置されるキャラクターの形状を求め、当該キャラクターを表す画像をRAM 103内に生成する(ステップS616)。画像の生成には、各種の3次元グラフィックスの技術を適用することができる。
【0232】
さらに、CPU 101は、垂直同期割込が生じるまで待機する(ステップS617)。この待機中には、他の各種の計算処理を、コルーチンとして並列に実行することも可能である。
【0233】
垂直同期割込が発生したら、CPU 101は、画像処理部107を駆動して、RAM 103内に生成した画像を、モニタ等の画面に表示させる(ステップS618)。
【0234】
この処理を、動作ボーン情報に指定される差分の個数だけ繰り返すと(ステップS619)、姿勢θのキャラクターが刀を向きφに振るアニメーションが画面に表示される。その後、ステップS602に戻る。
【0235】
図18は、図15のジョイスティック213の操作により構えたキャラクターのボーンの様子と、図16のジョイスティック213の操作により当該キャラクターが刀を振る方向と、を示す説明図である。
【0236】
本図に示すように、キャラクター401のボーン402は、図10と図11の中間的な姿勢をとっている。また、刀の軌跡502は、スティック651の軌跡656に連動して、ほぼ平行となっており、本例では、中心点404を通過してはいない。
【0237】
このように、ジョイスティック213の操作とキャラクター401の姿勢や動作が直観的に連動しているため、ユーザは、容易にキャラクター401の姿勢や動作を入力することができる。
【0238】
さて、姿勢パラメータ値θも向きパラメータ値φも入力されていない場合(ステップS602;なし)、CPU 101は、RAM 103に記憶された基本姿勢を表すボーン情報を取得する(ステップS620)。
【0239】
そして、CPU 101は、画像処理部107を駆動して、取得した基本姿勢を表すボーン情報に基づいて、仮想空間に配置されるキャラクターの形状を求め、当該キャラクターを表す画像をRAM 103内に生成する(ステップS621)。画像の生成には、各種の3次元グラフィックスの技術を適用することができる。
【0240】
さらに、CPU 101は、垂直同期割込が生じるまで待機する(ステップS622)。この待機中には、他の各種の計算処理を、コルーチンとして並列に実行することも可能である。
【0241】
垂直同期割込が発生したら、CPU 101は、画像処理部107を駆動して、RAM 103内に生成した画像を、モニタ等の画面に表示して(ステップS623)、ステップS602に戻る。
【0242】
なお、上記制御フローでは、姿勢パラメータ値θと向きパラメータφの入力は、時間差をもってされることを想定している。ただし、これらが、単独で得られるほか、同時に得られるような態様もありうる。このような態様では、ステップS602において、姿勢パラメータ値θと向きパラメータφが同時に得られたことが判明した場合には、ステップS603〜ステップS608を実行した後、ステップS609〜ステップS619を続けて実行することとすれば良い。
【0243】
上記制御フローでは、キャラクター401の構えの姿勢と基本姿勢との間の移行や、各構えの姿勢の移行は瞬時に行われ、ユーザの意思が直ちに反映される。
【0244】
このほか、各構えの姿勢の間の移行や、基本姿勢との間の移行が、時間の経過とともに次第に行われるようにしても良い。この際には、2つの姿勢の中間姿勢を求める上記の技術を適用することができる。
【0245】
すなわち、2つの姿勢の移行に要する時間を構えの姿勢パラメータ値の差などにより定める。なお、構えと基本姿勢との移行に要する時間長は、定数とすれば良い。
【0246】
そして、全移行に要する時間長を、現在の時点が内分する内分比を用いて、現時点の中間姿勢を求める。
【0247】
画面には、時間の経過とともに、中間姿勢を表示することによって、姿勢の変化が瞬時に行われるのではなく、時間の経過によって行われるようにすることができる。
【0248】
なお、以上の説明では、姿勢ボーン情報は、完全に静止しているキャラクターの姿勢を表すものとしているが、平静時のキャラクターがほぼ同じ姿勢を保ちつつ呼吸をする際の微小な動きを表すアニメーション表示を行いたい場合には、姿勢ボーン情報について動作ボーン情報に相当する情報を用意し、同様の処理を行えば良い。
【0249】
この場合、あらかじめ、刀を構えた人間の呼吸の1周期分を、所定の時間間隔でモーションキャプチャする。
【0250】
そして、当該周期内の各時点におけるキャラクターのボーンの位置や向きを、モーションキャプチャされたデータから定める。そして、時間の経過に合わせて、各時点におけるボーンの位置や向きを適宜選択し、その位置や向きをブレンドする。
【0251】
たとえば、刀を上段に構えたときの1呼吸分の姿勢ボーン情報と、刀を右中段に構えたときの1呼吸分の姿勢ボーン情報と、から、刀を右斜め上に構えたときの1呼吸分の姿勢ボーン情報を得るのである。
【0252】
なお、姿勢ボーン情報の時間経過に伴う変化は、典型的には周期的な変化であるが、必ずしもこれに限られない。
【0253】
また、姿勢パラメータ値や向きパラメータ値としては、上記の角度のみならず、キャラクターの姿勢を表す任意のスカラー量を採用することができる。
【0254】
このように、本実施形態によれば、キャラクターの2種類の動作からその中間の動作を生成して、その動作をとるキャラクターの様子を表す画像を生成することができる。
【0255】
なお、キャラクターを動作させる態様については、適宜省略することも可能である。
【0256】
このほか、本実施形態では、ユーザとキャラクター401が相対するように画面に表示される例を考えている。しかしながら、キャラクター401が、ユーザが同じ向きを向くようにする場合もある。このときは、キャラクター401の背面が画面に表示されることになる。
【0257】
この場合には、コントローラ105の操作と、キャラクター401の操作とが直観的に連動するように、姿勢パラメータ値θや向きパラメータ値φを計測する回転方向を設定すれば良い。
【実施例2】
【0258】
上記実施形態では、動作ボーン情報は、時間経過にともなう各ボーンの相対的な向きの差分情報のみが指定されるものとしており、開始姿勢取得部310は、動作開始直前の姿勢ボーン情報を、そのまま、動作開始時の姿勢としていた。
【0259】
一方で、モーションキャプチャ時には、動作の開始時点の姿勢が定められていることがある。この姿勢を用いる場合には、姿勢ボーン情報に基づいて現在キャラクターがとっている姿勢と、動作ボーン情報に基づく動作開始時点の姿勢を補間する必要がある。
【0260】
本実施形態では、CPU 101により実現される開始姿勢取得部310が、この補間を行う。
【0261】
まず、姿勢パラメータ値θや向きパラメータ値φによって位置が大きく変動する代表点を考える。上記の例では、キャラクター401が持つ刀の先端403に、代表点を設定する。
【0262】
次に、2つの動作ボーン情報に指定される開始時点の姿勢を、上記と同様に、内分比C:Dでブレンドする。姿勢の内分比A:Bではなく、向きの内分比C:Dを採用するのは、当該開始時点の姿勢は、動作に係る姿勢だからである。ここで得られるのは、静止しているキャラクターの姿勢ボーン情報に相当する情報である。
【0263】
そして、姿勢パラメータ値θに対して得られた姿勢ボーン情報における代表点の位置に、向きパラメータ値φに対して得られた動作の開始時点における代表点の位置を、近付けるように、動作開始時点の姿勢ボーン情報を補正する。補正の代表的な手法は、2通りある。
【0264】
第1の手法は、所定の拘束条件を採用したインバースキネマティクスを用いるものである。
【0265】
すなわち、刀の先端403を重ねるようにインバースキネマティクスの手法を用いる。インバースキネマティクスとは、ボーンの木構造を葉から根の方にたどりながら、各ボーンの位置や向きを修正していく技術であり、本例では、刀、刀を持っている手首、下腕、上腕、肩、背骨上部、腰のように、順にボーンの向きが補正されていく。
【0266】
第2の手法は、キャラクターのボーンの連結点を1つだけ選び、そこで連結されている子ボーンの向きを補正する手法である。
【0267】
たとえば、キャラクターの臍付近の連結点を採用したときには、腰骨のボーンに対する背骨上部のボーンの相対的な向きを変化させる。
【0268】
代表点の位置を近付けるためには、連結点から構えに基づく代表点に向かう半直線と、連結点から動作の開始時点に基づく代表点に向かう半直線と、が、重なるようにすれば良い。
【0269】
すなわち、インバースキネマティクスでは、修正すべきボーンの向きの情報が多数となるが、補正結果がより一層滑らかになる。一方、ボーンの向きを1つだけ修正する手法では、計算が容易であり、実用上は不自然な動作とはならないことが、発明者の実験により判明している。
【0270】
このように、本実施形態では、キャラクターの動作時の開始時点の姿勢があらかじめ用意されている場合に、キャラクターの静止時の姿勢と、キャラクターの動作時の開始時点の姿勢と、のずれを、簡易な計算によって、できるだけ小さくすることができるようになる。
【0271】
なお、上記実施形態のように、ボーンの向きの差分のみを動作ボーン情報として採用する場合には、本実施形態のような補正の処理は不要である。
【産業上の利用可能性】
【0272】
以上説明したように、本発明によれば、キャラクターの特定の姿勢や動作から任意の姿勢や動作を求めて、その画像を生成するのに好適な画像生成装置、画像生成方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【符号の説明】
【0273】
100 情報処理装置
101 CPU
102 ROM
103 RAM
104 インターフェース
105 コントローラ
106 外部メモリ
107 画像処理部
108 DVD−ROMドライブ
109 NIC
110 音声処理部
111 マイク
121 HD
201 ↑ボタン
202 ↓ボタン
203 ←ボタン
204 →ボタン
205 ○ボタン
206 ×ボタン
207 △ボタン
208 □ボタン
209 SELECTボタン
210 STARTボタン
211 ANALOGボタン
212 インジケータ
213 ジョイスティック
214 ジョイスティック
215 L1ボタン
216 L2ボタン
217 R1ボタン
218 R2ボタン
301 画像生成装置
302 記憶部
303 姿勢受付部
304 姿勢計算部
305 姿勢混合部
306 動作受付部
307 動作計算部
308 動作混合部
309 生成部
310 開始姿勢取得部
401 キャラクター
402 ボーン
403 刀の先端
404 中心点
405 鉛直下向きの線
406 中心点からスティックへ向かう線
501 鉛直上向きの線
502 刀の軌跡
651 スティック
652 基本位置
653 周縁内の位置
654 周縁
655 周縁内の位置
656 スティックの移動の軌跡
701 ボーン
702 ボーン
703 ボーン
711 ボーン同士がなす角
712 ボーン同士がなす角

【特許請求の範囲】
【請求項1】
複数の互いに連結されるボーンを有するキャラクターの姿勢を定めるために、当該複数のボーンの相対的な位置および向きを表す姿勢ボーン情報を使用して、当該キャラクターの画像を生成する画像生成装置であって、
前記キャラクターが第1の姿勢をとるときの第1の姿勢ボーン情報が、第1の姿勢パラメータ値に対応付けて記憶され、当該キャラクターが第2の姿勢をとるときの第2の姿勢ボーン情報が、第2の姿勢パラメータ値に対応付けて記憶される記憶部、
前記キャラクターがとるべき姿勢を表す姿勢パラメータ値の入力を受け付ける姿勢受付部、
前記受け付けられた姿勢パラメータ値が、前記第1の姿勢パラメータ値と、前記第2の姿勢パラメータ値と、を内分する姿勢内分比を計算する姿勢計算部、
前記計算された姿勢内分比で、前記第1の姿勢ボーン情報と、前記第2の姿勢ボーン情報と、を、ブレンドすることにより、第3の姿勢ボーン情報を得る姿勢混合部、
前記得られた第3の姿勢ボーン情報により、前記キャラクターの形状を定め、前記定められた形状により、当該キャラクターを表す画像を生成する生成部
を備えることを特徴とする画像生成装置。
【請求項2】
請求項1に記載の画像生成装置であって、
前記複数のボーンは、各ボーンをノードとし、連結された2つのボーンのうち、一方のボーンを親ノードに、他方のボーンを子ノードに、それぞれ割り当てた木構造に階層化され、前記姿勢ボーン情報は、親ノードのボーン(以下「親ボーン」という。)に対する相対的な子ノードのボーン(以下「子ボーン」という。)の位置および向きを指定することにより、表現される
ことを特徴とする画像生成装置。
【請求項3】
請求項2に記載の画像生成装置であって、
前記子ボーンの位置および向きは、前記親ボーンに固定された座標系において前記子ボーンが前記親ボーンに連結される連結点の座標、ならびに、当該座標系における前記子ボーンの向きを表すオイラー角もしくはクォータニオンにより表現され、
前記姿勢混合部は、前記第1の姿勢ボーン情報と、前記第2の姿勢ボーン情報と、において各々対応するボーンのオイラー角もしくはクォータニオンを前記計算された姿勢内分比で内分することによって、前記第3の姿勢ボーン情報を得る
ことを特徴とする画像生成装置。
【請求項4】
請求項2または3に記載の画像生成装置であって、
前記姿勢ボーン情報は、時間の経過とともに変化する情報であり、
前記姿勢混合部は、各時点での、前記第1の姿勢ボーン情報と前記第2の姿勢ボーン情報とをブレンドし、
前記生成部は、各時点での画像を生成することにより、動画像を生成する
ことを特徴とする画像生成装置。
【請求項5】
請求項1から3のいずれか1項に記載の画像生成装置であって、当該画像生成装置は、前記キャラクターが動作するときの形状の変化を定めるために、前記複数のボーンの相対的な位置および向きの時間経過に対する変化量を表す動作ボーン情報をさらに使用し、
前記記憶部には、前記キャラクターが第1の向きに動作するときの第1の動作ボーン情報が、第1の向きパラメータ値に対応付けてさらに記憶され、当該キャラクターが第2の向きに動作するときの第2の動作ボーン情報が、第2の向きパラメータ値に対応付けてさらに記憶され、
前記キャラクターが動作すべき向きを表す向きパラメータ値の入力を受け付ける動作受付部、
前記受け付けられた向きパラメータ値が、前記第1の向きパラメータ値ならびに前記第2の向きパラメータ値を内分する向き内分比を計算する向き計算部、
前記計算された向き内分比で、前記第1の動作ボーン情報と、前記第2の動作ボーン情報と、を、ブレンドすることにより、第3の動作ボーン情報を得る変化混合部をさらに備え、
前記キャラクターが動作を開始する時点の姿勢を定める第4の姿勢ボーン情報を取得する開始姿勢取得部をさらに備え、
前記生成部は、前記キャラクターを、前記取得された第4の姿勢ボーン情報により定められる姿勢から、前記得られた第3の動作ボーン情報により定められる動作で時間経過とともに動作させ、当該キャラクターが時間経過とともに形状を変化させる様子を表す動画像を生成する
ことを特徴とする画像生成装置。
【請求項6】
請求項5に記載の画像生成装置であって、
前記開始姿勢取得部において、前記第3の姿勢ボーン情報が、前記第4の姿勢ボーン情報として取得される
ことを特徴とする画像生成装置。
【請求項7】
請求項5に記載の画像生成装置であって、前記キャラクターが有する複数のボーンのいずれか一つの代表用ボーンには、代表点が固定され、前記動作ボーン情報には、当該キャラクターが姿勢を開始し始めようとする時点の姿勢を表す姿勢ボーン情報が対応付けられ、
前記開始姿勢取得部は、前記第1の動作ボーン情報に対応付けられる姿勢ボーン情報と、前記第2の動作ボーン情報に対応付けられる姿勢ボーン情報と、を、前記向き内分比でブレンドすることにより得られる第5の姿勢ボーン情報における前記代表点の位置が、前記第3の姿勢ボーン情報における前記代表点の位置にできるだけ近付くように、前記第5の姿勢ボーン情報を補正し、
前記開始姿勢取得部において、当該補正により得られた姿勢ボーン情報が、前記第4の姿勢ボーン情報として取得される
ことを特徴とする画像生成装置。
【請求項8】
請求項7に記載の画像生成装置であって、
前記開始姿勢取得部は、所定の拘束条件を採用したインバースキネマティクスを用いて、前記第5の姿勢ボーン情報における前記代表点の位置を、前記第3の姿勢ボーン情報における前記代表点の位置に重ねることにより、前記補正を行う
ことを特徴とする画像生成装置。
【請求項9】
請求項7に記載の画像生成装置であって、
前記開始姿勢取得部は、前記キャラクターが有する複数のボーンのうち、いずれか2つの直接連結されるボーンの相対的な向きを変化させることにより、前記第5の姿勢ボーン情報における前記代表点の位置を、前記第3の姿勢ボーン情報における前記代表点の位置にできるだけ近付ける
ことを特徴とする画像生成装置。
【請求項10】
請求項1から4のいずれか1項に記載の画像生成装置であって、
前記記憶部には、複数の姿勢パラメータ値のそれぞれに対応付けて姿勢ボーン情報が記憶され、
所定範囲内の位置がユーザにより指定されるコントローラにおいて、当該所定範囲の周縁に含まれる位置が指定されると、前記姿勢受付部は、当該所定範囲の中心位置から見た当該位置の向きを、前記姿勢パラメータ値の入力とし、
前記第1の姿勢パラメータ値ならびに前記第2の姿勢パラメータ値は、前記記憶部に記憶される複数の姿勢パラメータ値のうち、当該受け付けられた姿勢パラメータ値を直近に挟む2つの姿勢パラメータ値である
ことを特徴とする画像生成装置。
【請求項11】
請求項5から9のいずれか1項に記載の画像生成装置であって、
前記記憶部には、複数の姿勢パラメータ値のそれぞれに対応付けて姿勢ボーン情報が記憶され、複数の向きパラメータ値のそれぞれに対応付けて動作ボーン情報が記憶され、
所定範囲内の位置がユーザにより指定されるコントローラにおいて、当該所定範囲の周縁に含まれる第1の位置から、当該所定範囲の周縁以外を通過して、当該所定範囲の周縁に含まれる第2の位置へ、当該指定される位置が移動すると、前記姿勢受付部は、当該所定範囲の中心位置から見た当該第1の位置の向きを、前記姿勢パラメータ値の入力とし、前記動作受付部は、当該第1の位置から見た当該第2の位置の向きを、前記向きパラメータ値の入力とし、
前記第1の姿勢パラメータ値ならびに前記第2の姿勢パラメータ値は、前記記憶部に記憶される複数の姿勢パラメータ値のうち、当該受け付けられた姿勢パラメータ値を直近に挟む2つの姿勢パラメータ値である
前記第1の向きパラメータ値ならびに前記第2の向きパラメータ値は、前記記憶部に記憶される複数の移動パラメータ値のうち、当該受け付けられた移動パラメータ値を直近に挟む2つの移動パラメータ値である
ことを特徴とする画像生成装置。
【請求項12】
複数の互いに連結されるボーンを有するキャラクターの姿勢を定めるために、当該複数のボーンの相対的な位置および向きを表す姿勢ボーン情報を使用して、当該キャラクターの画像を生成する画像生成装置が実行する画像生成方法であって、当該画像生成装置は、記憶部、姿勢受付部、姿勢計算部、姿勢混合部、生成部を備え、前記記憶部には、前記キャラクターが第1の姿勢をとるときの第1の姿勢ボーン情報が、第1の姿勢パラメータ値に対応付けて記憶され、当該キャラクターが第2の姿勢をとるときの第2の姿勢ボーン情報が、第2の姿勢パラメータ値に対応付けて記憶され、
前記姿勢受付部が、前記キャラクターがとるべき姿勢を表す姿勢パラメータ値の入力を受け付ける姿勢受付工程、
前記姿勢計算部が、前記受け付けられた姿勢パラメータ値が、前記第1の姿勢パラメータ値と、前記第2の姿勢パラメータ値と、を内分する姿勢内分比を計算する姿勢計算工程、
前記姿勢混合部が、前記計算された姿勢内分比で、前記第1の姿勢ボーン情報と、前記第2の姿勢ボーン情報と、を、ブレンドすることにより、第3の姿勢ボーン情報を得る姿勢混合工程、
前記生成部が、前記得られた第3の姿勢ボーン情報により、前記キャラクターの形状を定め、前記定められた形状により、当該キャラクターを表す画像を生成する生成工程
を備えることを特徴とする画像生成方法。
【請求項13】
コンピュータを、複数の互いに連結されるボーンを有するキャラクターの姿勢を定めるために、当該複数のボーンの相対的な位置および向きを表す姿勢ボーン情報を使用して、当該キャラクターの画像を生成する画像生成装置として機能させるプログラムであって、当該プログラムは、当該コンピュータを、
前記キャラクターが第1の姿勢をとるときの第1の姿勢ボーン情報が、第1の姿勢パラメータ値に対応付けて記憶され、当該キャラクターが第2の姿勢をとるときの第2の姿勢ボーン情報が、第2の姿勢パラメータ値に対応付けて記憶される記憶部、
前記キャラクターがとるべき姿勢を表す姿勢パラメータ値の入力を受け付ける姿勢受付部、
前記受け付けられた姿勢パラメータ値が、前記第1の姿勢パラメータ値と、前記第2の姿勢パラメータ値と、を内分する姿勢内分比を計算する姿勢計算部、
前記計算された姿勢内分比で、前記第1の姿勢ボーン情報と、前記第2の姿勢ボーン情報と、を、ブレンドすることにより、第3の姿勢ボーン情報を得る姿勢混合部、
前記得られた第3の姿勢ボーン情報により、前記キャラクターの形状を定め、前記定められた形状により、当該キャラクターを表す画像を生成する生成部
として機能させることを特徴とするプログラム。

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

【図18】
image rotate


【公開番号】特開2011−65578(P2011−65578A)
【公開日】平成23年3月31日(2011.3.31)
【国際特許分類】
【出願番号】特願2009−217798(P2009−217798)
【出願日】平成21年9月18日(2009.9.18)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】