(57)【要約】 【課題】キャラクターの特定の姿勢や動作から任意の姿勢や動作を求めて、その画像を生成する画像生成装置等を提供する。【解決手段】画像生成装置３０１において、姿勢受付部３０３は、姿勢パラメータ値を受け付け、姿勢計算部３０４は、当該姿勢パラメータ値が、第１の姿勢パラメータ値と第２の姿勢パラメータ値とを内分する姿勢内分比を求め、姿勢混合部３０５は、第１の姿勢パラメータ値に対応付けて記憶部３０２に記憶される第１の姿勢ボーン情報と、第２の姿勢パラメータ値に対応付けて記憶部３０２に記憶される第２の姿勢ボーン情報と、を姿勢内分比でブレンドし、生成部３０９は、ブレンド結果に基づいてキャラクターの画像を生成する。【選択図】図３
2011065578.tif 000002
【特許請求の範囲】
【請求項１】
複数の互いに連結されるボーンを有するキャラクターの姿勢を定めるために、当該複数のボーンの相対的な位置および向きを表す姿勢ボーン情報を使用して、当該キャラクターの画像を生成する画像生成装置であって、
前記キャラクターが第１の姿勢をとるときの第１の姿勢ボーン情報が、第１の姿勢パラメータ値に対応付けて記憶され、当該キャラクターが第２の姿勢をとるときの第２の姿勢ボーン情報が、第２の姿勢パラメータ値に対応付けて記憶される記憶部、
前記キャラクターがとるべき姿勢を表す姿勢パラメータ値の入力を受け付ける姿勢受付部、
前記受け付けられた姿勢パラメータ値が、前記第１の姿勢パラメータ値と、前記第２の姿勢パラメータ値と、を内分する姿勢内分比を計算する姿勢計算部、
前記計算された姿勢内分比で、前記第１の姿勢ボーン情報と、前記第２の姿勢ボーン情報と、を、ブレンドすることにより、第３の姿勢ボーン情報を得る姿勢混合部、
前記得られた第３の姿勢ボーン情報により、前記キャラクターの形状を定め、前記定められた形状により、当該キャラクターを表す画像を生成する生成部
を備えることを特徴とする画像生成装置。
【請求項２】
請求項１に記載の画像生成装置であって、
前記複数のボーンは、各ボーンをノードとし、連結された２つのボーンのうち、一方のボーンを親ノードに、他方のボーンを子ノードに、それぞれ割り当てた木構造に階層化され、前記姿勢ボーン情報は、親ノードのボーン（以下「親ボーン」という。）に対する相対的な子ノードのボーン（以下「子ボーン」という。）の位置および向きを指定することにより、表現される
ことを特徴とする画像生成装置。
【請求項３】
請求項２に記載の画像生成装置であって、
前記子ボーンの位置および向きは、前記親ボーンに固定された座標系において前記子ボーンが前記親ボーンに連結される連結点の座標、ならびに、当該座標系における前記子ボーンの向きを表すオイラー角もしくはクォータニオンにより表現され、
前記姿勢混合部は、前記第１の姿勢ボーン情報と、前記第２の姿勢ボーン情報と、において各々対応するボーンのオイラー角もしくはクォータニオンを前記計算された姿勢内分比で内分することによって、前記第３の姿勢ボーン情報を得る
ことを特徴とする画像生成装置。
【請求項４】
請求項２または３に記載の画像生成装置であって、
前記姿勢ボーン情報は、時間の経過とともに変化する情報であり、
前記姿勢混合部は、各時点での、前記第１の姿勢ボーン情報と前記第２の姿勢ボーン情報とをブレンドし、
前記生成部は、各時点での画像を生成することにより、動画像を生成する
ことを特徴とする画像生成装置。
【請求項５】
請求項１から３のいずれか１項に記載の画像生成装置であって、当該画像生成装置は、前記キャラクターが動作するときの形状の変化を定めるために、前記複数のボーンの相対的な位置および向きの時間経過に対する変化量を表す動作ボーン情報をさらに使用し、
前記記憶部には、前記キャラクターが第１の向きに動作するときの第１の動作ボーン情報が、第１の向きパラメータ値に対応付けてさらに記憶され、当該キャラクターが第２の向きに動作するときの第２の動作ボーン情報が、第２の向きパラメータ値に対応付けてさらに記憶され、
前記キャラクターが動作すべき向きを表す向きパラメータ値の入力を受け付ける動作受付部、
前記受け付けられた向きパラメータ値が、前記第１の向きパラメータ値ならびに前記第２の向きパラメータ値を内分する向き内分比を計算する向き計算部、
前記計算された向き内分比で、前記第１の動作ボーン情報と、前記第２の動作ボーン情報と、を、ブレンドすることにより、第３の動作ボーン情報を得る変化混合部をさらに備え、
前記キャラクターが動作を開始する時点の姿勢を定める第４の姿勢ボーン情報を取得する開始姿勢取得部をさらに備え、
前記生成部は、前記キャラクターを、前記取得された第４の姿勢ボーン情報により定められる姿勢から、前記得られた第３の動作ボーン情報により定められる動作で時間経過とともに動作させ、当該キャラクターが時間経過とともに形状を変化させる様子を表す動画像を生成する
ことを特徴とする画像生成装置。
【請求項６】
請求項５に記載の画像生成装置であって、
前記開始姿勢取得部において、前記第３の姿勢ボーン情報が、前記第４の姿勢ボーン情報として取得される
ことを特徴とする画像生成装置。
【請求項７】
請求項５に記載の画像生成装置であって、前記キャラクターが有する複数のボーンのいずれか一つの代表用ボーンには、代表点が固定され、前記動作ボーン情報には、当該キャラクターが姿勢を開始し始めようとする時点の姿勢を表す姿勢ボーン情報が対応付けられ、
前記開始姿勢取得部は、前記第１の動作ボーン情報に対応付けられる姿勢ボーン情報と、前記第２の動作ボーン情報に対応付けられる姿勢ボーン情報と、を、前記向き内分比でブレンドすることにより得られる第５の姿勢ボーン情報における前記代表点の位置が、前記第３の姿勢ボーン情報における前記代表点の位置にできるだけ近付くように、前記第５の姿勢ボーン情報を補正し、
前記開始姿勢取得部において、当該補正により得られた姿勢ボーン情報が、前記第４の姿勢ボーン情報として取得される
ことを特徴とする画像生成装置。
【請求項８】
請求項７に記載の画像生成装置であって、
前記開始姿勢取得部は、所定の拘束条件を採用したインバースキネマティクスを用いて、前記第５の姿勢ボーン情報における前記代表点の位置を、前記第３の姿勢ボーン情報における前記代表点の位置に重ねることにより、前記補正を行う
ことを特徴とする画像生成装置。
【請求項９】
請求項７に記載の画像生成装置であって、
前記開始姿勢取得部は、前記キャラクターが有する複数のボーンのうち、いずれか２つの直接連結されるボーンの相対的な向きを変化させることにより、前記第５の姿勢ボーン情報における前記代表点の位置を、前記第３の姿勢ボーン情報における前記代表点の位置にできるだけ近付ける
ことを特徴とする画像生成装置。
【請求項１０】
請求項１から４のいずれか１項に記載の画像生成装置であって、
前記記憶部には、複数の姿勢パラメータ値のそれぞれに対応付けて姿勢ボーン情報が記憶され、
所定範囲内の位置がユーザにより指定されるコントローラにおいて、当該所定範囲の周縁に含まれる位置が指定されると、前記姿勢受付部は、当該所定範囲の中心位置から見た当該位置の向きを、前記姿勢パラメータ値の入力とし、
前記第１の姿勢パラメータ値ならびに前記第２の姿勢パラメータ値は、前記記憶部に記憶される複数の姿勢パラメータ値のうち、当該受け付けられた姿勢パラメータ値を直近に挟む２つの姿勢パラメータ値である
ことを特徴とする画像生成装置。
【請求項１１】
請求項５から９のいずれか１項に記載の画像生成装置であって、
前記記憶部には、複数の姿勢パラメータ値のそれぞれに対応付けて姿勢ボーン情報が記憶され、複数の向きパラメータ値のそれぞれに対応付けて動作ボーン情報が記憶され、
所定範囲内の位置がユーザにより指定されるコントローラにおいて、当該所定範囲の周縁に含まれる第１の位置から、当該所定範囲の周縁以外を通過して、当該所定範囲の周縁に含まれる第２の位置へ、当該指定される位置が移動すると、前記姿勢受付部は、当該所定範囲の中心位置から見た当該第１の位置の向きを、前記姿勢パラメータ値の入力とし、前記動作受付部は、当該第１の位置から見た当該第２の位置の向きを、前記向きパラメータ値の入力とし、
前記第１の姿勢パラメータ値ならびに前記第２の姿勢パラメータ値は、前記記憶部に記憶される複数の姿勢パラメータ値のうち、当該受け付けられた姿勢パラメータ値を直近に挟む２つの姿勢パラメータ値である
前記第１の向きパラメータ値ならびに前記第２の向きパラメータ値は、前記記憶部に記憶される複数の移動パラメータ値のうち、当該受け付けられた移動パラメータ値を直近に挟む２つの移動パラメータ値である
ことを特徴とする画像生成装置。
【請求項１２】
複数の互いに連結されるボーンを有するキャラクターの姿勢を定めるために、当該複数のボーンの相対的な位置および向きを表す姿勢ボーン情報を使用して、当該キャラクターの画像を生成する画像生成装置が実行する画像生成方法であって、当該画像生成装置は、記憶部、姿勢受付部、姿勢計算部、姿勢混合部、生成部を備え、前記記憶部には、前記キャラクターが第１の姿勢をとるときの第１の姿勢ボーン情報が、第１の姿勢パラメータ値に対応付けて記憶され、当該キャラクターが第２の姿勢をとるときの第２の姿勢ボーン情報が、第２の姿勢パラメータ値に対応付けて記憶され、
前記姿勢受付部が、前記キャラクターがとるべき姿勢を表す姿勢パラメータ値の入力を受け付ける姿勢受付工程、
前記姿勢計算部が、前記受け付けられた姿勢パラメータ値が、前記第１の姿勢パラメータ値と、前記第２の姿勢パラメータ値と、を内分する姿勢内分比を計算する姿勢計算工程、
前記姿勢混合部が、前記計算された姿勢内分比で、前記第１の姿勢ボーン情報と、前記第２の姿勢ボーン情報と、を、ブレンドすることにより、第３の姿勢ボーン情報を得る姿勢混合工程、
前記生成部が、前記得られた第３の姿勢ボーン情報により、前記キャラクターの形状を定め、前記定められた形状により、当該キャラクターを表す画像を生成する生成工程
を備えることを特徴とする画像生成方法。
【請求項１３】
コンピュータを、複数の互いに連結されるボーンを有するキャラクターの姿勢を定めるために、当該複数のボーンの相対的な位置および向きを表す姿勢ボーン情報を使用して、当該キャラクターの画像を生成する画像生成装置として機能させるプログラムであって、当該プログラムは、当該コンピュータを、
前記キャラクターが第１の姿勢をとるときの第１の姿勢ボーン情報が、第１の姿勢パラメータ値に対応付けて記憶され、当該キャラクターが第２の姿勢をとるときの第２の姿勢ボーン情報が、第２の姿勢パラメータ値に対応付けて記憶される記憶部、
前記キャラクターがとるべき姿勢を表す姿勢パラメータ値の入力を受け付ける姿勢受付部、
前記受け付けられた姿勢パラメータ値が、前記第１の姿勢パラメータ値と、前記第２の姿勢パラメータ値と、を内分する姿勢内分比を計算する姿勢計算部、
前記計算された姿勢内分比で、前記第１の姿勢ボーン情報と、前記第２の姿勢ボーン情報と、を、ブレンドすることにより、第３の姿勢ボーン情報を得る姿勢混合部、
前記得られた第３の姿勢ボーン情報により、前記キャラクターの形状を定め、前記定められた形状により、当該キャラクターを表す画像を生成する生成部
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャラクターの特定の姿勢や動作から任意の姿勢や動作を求めて、その画像を生成するのに好適な画像生成装置、画像生成方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【０００２】
従来から、仮想空間内に配置されるオブジェクトの外観を表す画像を生成する技術が種々提案されている。たとえば、特許文献１に開示される技術では、オブジェクトの形状が、ボーン、制御点、頂点、ポリゴンを用いて形成される。
【０００３】
ボーンは、人間でいう骨に相当するものであり、ボーン同士は、連結点で互いに連結される。隣接するボーン同士の相対的な位置や向きを変化させると、オブジェクトの概形が変形する。
【０００４】
典型的には、ボーンは、ボーンをノードとする木構造的な階層によって管理される。木構造の根ノードに対するボーン（以下「根ボーン」という。）の位置や向きは、仮想空間におけるオブジェクト全体の位置や向きを表す。親ノードのボーン（以下「親ボーン」という。）と子ノードのボーン（以下「子ボーン」という。）は直接連結されており、親ボーンに対する子ボーンの向きを変化させることで、ボーン同士の相対的な位置や向きを変化させる。
【０００５】
オブジェクトの外観は、ボーンの変形に伴って移動する頂点を結ぶポリゴンにテクスチャを貼ることによって形成される。このポリゴンによって形成される表面をスキンと呼ぶ。
【０００６】
各ボーンには、複数の制御点が対応付けられており、これらの制御点は、そのボーンと連動して動作する。すなわち、ボーンが位置や向きを変えたとしても、制御点のボーンに対する相対的な位置は、変化しない。
【０００７】
各頂点は、複数の制御点に重み付きで対応付けられている。ボーンが位置や向きを変化させたときの各頂点の位置は、その頂点に対応付けられた制御点の位置に、重みを付けて平均した位置とする。
【０００８】
また、各ボーンには初期位置、初期向きが定められており、ボーンが初期位置、初期向きをとるときには、各頂点と、その頂点に対応付けられる制御点と、が、同じ位置で重なるように構成するのが典型的である。
【０００９】
このような処理を行うことで、オブジェクトが変形したときに、スキンに不自然なくびれや潰れが生じることを防止することができる。
【００１０】
このようなオブジェクトは、仮想空間内に配置されるキャラクターやモンスターが互いに戦闘するようなゲーム等において、キャラクターやモンスターの外観を表す際にも使用されている。
【００１１】
また、モーションキャプチャの技術を適用すれば、キャラクターが特定の姿勢や特定の動作をとるときの、ボーンの位置や動きの変化を得ることができる。たとえば、人間が刀を上段の構えから下に振り下ろす様子をモーションキャプチャすることによって、キャラクターが上段の構えをとる姿勢や、キャラクターが刀を上から下に振り下ろす動作をとるときのボーンの位置や向きの変化を定めることができる。
【００１２】
したがって、キャラクターが基本的な構えから基本的な動作をとるときのボーンの位置や向き、ならびにこれらの変化は、モーションキャプチャにより取得することができる。たとえば、人間に対して、上段、右中段、右下段、左下段、左中段の構えをとらせて５種類の姿勢を取得し、これらの構えから正面を通過するように刀を振らせて５種類の動作を取得すれば、キャラクターに５種類の姿勢、５種類の動作をとらせることができるようになる。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特許第４０１１２８５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
しかしながら、ありとあらゆる姿勢や動作のモーションキャプチャをあらかじめ行うことは不可能である。そこで、キャラクターの既存の姿勢や動作から、キャラクターの新たな姿勢や動作を生成するような技術が求められている。たとえば、上段および右中段の姿勢や、そこから正面を通過するように刀を降る動作から、これらの中間的な姿勢、すなわち、右斜め上に刀を構える姿勢や、そこから左斜め下に刀を振り下ろす動作を生成するような技術に対する要望は強い。
【００１５】
さらに、プレイヤがコントローラを利用してキャラクターの姿勢や動作を定める場合に、モーションキャプチャにより、何種類か既定の姿勢や動作を用意しておき、それらから、プレイヤの操作に基づいて、新たな姿勢や動作を生成できるようにすることとして、ゲームの開発効率を向上させ、メモリの消費量等を抑制したい、という要望もある。
【００１６】
本発明は、上記のような課題を解決するもので、キャラクターの特定の姿勢や動作から任意の姿勢や動作を求めて、その画像を生成するのに好適な画像生成装置、画像生成方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【００１８】
本発明の第１の観点に係る画像生成装置は、複数の互いに連結されるボーンを有するキャラクターの姿勢を定めるために、当該複数のボーンの相対的な位置および向きを表す姿勢ボーン情報を使用して、当該キャラクターの画像を生成する。
【００１９】
ボーンはキャラクターの骨格に相当するものであり、一般には、ボーン同士の連結位置は変化しない。したがって、まず、いずれか１つのボーンの位置と向きを定め、次に、その位置と向きが定められたボーンに対して、直接連結されている他のボーンの位置と向きを定めることを繰り返せば、ボーン全体の形状が一意に定まる。ボーン全体の形状は、デサイナーが設計することもあるし、モーションキャプチャにより取得されることもある。
【００２０】
画像生成装置は、記憶部、姿勢受付部、姿勢計算部、姿勢混合部、生成部を備える。
【００２１】
ここで、記憶部には、キャラクターが第１の姿勢をとるときの第１の姿勢ボーン情報が、第１の姿勢パラメータ値に対応付けて記憶され、当該キャラクターが第２の姿勢をとるときの第２の姿勢ボーン情報が、第２の姿勢パラメータ値に対応付けて記憶される。
【００２２】
たとえば、キャラクターが刀を構える姿勢を考えると、姿勢パラメータ値としては、キャラクターの正面中央から見て、刀の先端が鉛直線下向きとなす角度、すなわち、キャラクターと正対し、キャラクターの中段中央を中心としたときに、中心から刀の先端への方向と、中心から鉛直下向きとの方向と、が、なす半時計周りの角度、を採用することができる。
【００２３】
この例では、姿勢パラメータ値は、
（ａ）右下段の構えでは０度、
（ｂ）右中段の構えでは９０度、
（ｃ）上段の構えでは１８０度、
（ｄ）左中段の構えでは２７０度、
（ｅ）左下段の構えでは３６０度
となる。ここで、右下段と左下段を区別しているのは、剣道においては、両者の手首の捻りの向きが異なるからである。
【００２４】
それぞれの姿勢のボーンのボーン情報は、モーションキャプチャ等によって用意され、姿勢パラメータ値に対応付けて、記憶部に記憶されている。
【００２５】
なお、姿勢パラメータ値としては、上記の角度のみならず、キャラクターの姿勢を表す任意のスカラー量を採用することができる。
【００２６】
一方、姿勢受付部は、キャラクターがとるべき姿勢を表す姿勢パラメータ値の入力を受け付ける。
【００２７】
上記の例では、姿勢パラメータ値は、構えの角度を表すものである。ジョイスティックを傾けたときの傾ける方向や、タッチパッド、トラックパッド、マウスなどで指示する位置が、その中央からどれだけずれた角度であるか、によって、姿勢パラメータ値が入力される。
【００２８】
以下の説明では、姿勢パラメータ値として、９０度と１８０度の間の角度としてθ度が入力されたものとし、第１の姿勢を右中段の構え（姿勢パラメータ値は９０度）、第２の姿勢を上段の構え（姿勢パラメータ値は１８０度）とする。すなわち、キャラクターは、右斜め上に刀を構える姿勢をとるべきことになる。任意の角度が姿勢パラメータ値として入力される態様については、後述する。
【００２９】
たとえば、θ = 120としたときには、刀を右中段より少し上に構えたことになるし、θ = 150としたときには、さらに刀を上に構えたことになる。
【００３０】
さらに、姿勢計算部は、受け付けられた姿勢パラメータ値が、第１の姿勢パラメータ値と、第２の姿勢パラメータ値と、を内分する姿勢内分比を計算する。
【００３１】
上記の例においては、入力された姿勢パラメータ値はθ度であるから、姿勢内分比は、(θ-90):(180-θ)となる。
【００３２】
一般に、第１の姿勢パラメータ値をα、第２の姿勢パラメータ値をβ（α<β）、入力された姿勢パラメータ値をθとすると、α≦θ≦βが成立し、姿勢内分比は、(θ-α):(β-θ)となる。
【００３３】
さらに、姿勢混合部は、計算された姿勢内分比で、第１の姿勢ボーン情報と、第２の姿勢ボーン情報と、を、ブレンドすることにより、第３の姿勢ボーン情報を得る。
【００３４】
上記のように、ボーン情報は、ボーン同士の相対的な位置および向きを指定するものである。一般に、１つのボーンには１つ以上の連結点があるが、そのボーンにおける連結点の位置は、キャラクターが姿勢を変化させたとしても、移動しない。これは、キャラクターの骨の長さが、急激には変化しないことに相当する。
【００３５】
したがって、そのボーンに連結された他のボーンの向きを第１の姿勢ボーン情報の場合と、第２の姿勢ボーン情報の場合と、で、対比し、その向きを表す情報を、姿勢内分比で内分すれば、第３の姿勢ボーン情報における当該他のボーンの向きをブレンドした結果が得られることになる。なお、内分の手法としては、後述するオイラー角やクォータニオンを使用するのが一般的である。
【００３６】
さらに、生成部は、得られた第３の姿勢ボーン情報により、キャラクターの形状を定め、定められた形状により、当該キャラクターを表す画像を生成する。
【００３７】
すなわち、生成部は、一般には、ボーン情報から、ボーンに連動する制御点の位置を求め、制御点同士を重み付け平均することで、頂点の位置を求め、頂点同士を結ぶポリゴンにテクスチャを貼り付ける。そして、テクスチャが貼り付けられたポリゴンによってスキンを形成して、キャラクターの画像を生成する。生成された画像は、画面に表示されるのが典型的である。
【００３８】
本発明によれば、キャラクターの２つの姿勢から、その２つの姿勢の中間的な姿勢を求めて、そのキャラクターが中間的な姿勢をとる様子を表す画像を生成することができる。
【００３９】
また、本発明の画像生成装置において、複数のボーンは、各ボーンをノードとし、連結された２つのボーンのうち、一方のボーンを親ノードに、他方のボーンを子ノードに、それぞれ割り当てた木構造に階層化され、姿勢ボーン情報は、親ノードのボーン（以下「親ボーン」という。）に対する相対的な子ノードのボーン（以下「子ボーン」という。）の位置および向きを指定することにより、表現されるように構成することができる。
【００４０】
本発明は上記発明の好適実施形態に係るものである。本発明においては、キャラクターの位置および向きとして根ボーンの位置および向きを採用する。根ボーンから木構造の親子関係をたどり、親ボーンに対する子ボーンの位置および向きを定めることによって、キャラクターの形状全体が定められる。なお、上記のように、一般には、ボーンの長さ、すなわち、ボーンにおける連結点の間の距離は、一定とする。
【００４１】
本発明によれば、ボーンを階層的に管理することで、キャラクターの姿勢を容易に変化させることができるようになる。
【００４２】
また、本発明の画像生成装置において、子ボーンの位置および向きは、親ボーンに固定された座標系において子ボーンが親ボーンに連結される連結点の座標、ならびに、当該座標系における子ボーンの向きを表すオイラー角もしくはクォータニオンにより表現され、姿勢混合部は、第１の姿勢ボーン情報と、第２の姿勢ボーン情報と、において各々対応するボーンのオイラー角もしくはクォータニオンを計算された姿勢内分比で内分することによって、第３の姿勢ボーン情報を得るように構成することができる。
【００４３】
上記のように、ボーンの長さは一般には固定されている。この場合、親ボーンに固定された座標系において、子ボーンが親ボーンに連結される連結点の座標は固定されている。
【００４４】
したがって、当該座標系において、子ボーンの向きを指定すれば、親ボーンに対する子ボーンの相対的な位置および向きが確定することになる。
【００４５】
本発明では、向きを定めるために、オイラー角もしくはクォータニオンを用いることとしている。２つの姿勢における各オイラー角同士を姿勢内分比で内分したり、クォータニオンの各要素を姿勢内分比で内分することによって、第３の姿勢におけるオイラー角やクォータニオンが得られる。
【００４６】
本発明によれば、ボーンの向きをあらわすオイラー角やクォータニオンを姿勢内分比で内分することによって、容易に中間姿勢のボーン情報を得ることができるようになる。
【００４７】
また、本発明の画像生成装置において、姿勢ボーン情報は、時間の経過とともに変化する情報であり、姿勢混合部は、各時点での、第１の姿勢ボーン情報と第２の姿勢ボーン情報とをブレンドし、生成部は、各時点での画像を生成することにより、動画像を生成するように構成することができる。
【００４８】
たとえば、キャラクターが刀を構えている場合には、キャラクターの呼吸に合わせて、刀が微小に動く様子を採用したいことがある。本発明はこのような状況に対応するものである。
【００４９】
この場合、あらかじめ、刀を構えた人間の呼吸の１周期分を、所定の時間間隔でモーションキャプチャする。そして、当該周期内の各時点におけるキャラクターのボーンの位置や向きを、モーションキャプチャされたデータから定める。そして、時間の経過に合わせて、各時点におけるボーンの位置や向きを適宜選択し、その位置や向きをブレンドする。
【００５０】
上記の例では、刀を上段に構えたときの１呼吸分の姿勢ボーン情報と、刀を右中段に構えたときの１呼吸分の姿勢ボーン情報と、から、刀を右斜め上に構えたときの１呼吸分の姿勢ボーン情報を得るのである。
【００５１】
なお、姿勢ボーン情報の時間経過に伴う変化は、典型的には周期的な変化であるが、必ずしもこれに限られない。
【００５２】
本発明によれば、キャラクターの２種類の動作からその中間の動作を生成して、その動作をとるキャラクターの様子を表す画像を生成することができる。
【００５３】
また、本発明の画像生成装置は、キャラクターが動作するときの形状の変化を定めるために、複数のボーンの相対的な位置および向きの時間経過に対する変化量を表す動作ボーン情報をさらに使用する。
【００５４】
上記発明では、時間経過にともなう各時点におけるキャラクターの姿勢を表す情報を姿勢ボーン情報としていたが、本発明では、各時点におけるキャラクターの姿勢の差分を表す情報を動作ボーン情報とするのである。すなわち、ある時点における姿勢ボーン情報に、動作ボーン情報を加算すると、次の時点における姿勢ボーン情報が得られるのである。
【００５５】
そして、本発明の画像生成装置は、動作受付部、向き計算部、変化混合部、開始姿勢取得部をさらに備え、以下のように構成する。
【００５６】
すなわち、記憶部には、キャラクターが第１の向きに動作するときの第１の動作ボーン情報が、第１の向きパラメータ値に対応付けてさらに記憶され、当該キャラクターが第２の向きに動作するときの第２の動作ボーン情報が、第２の向きパラメータ値に対応付けてさらに記憶される。
【００５７】
たとえば、キャラクターが刀を振る方向を表す角度を向きパラメータ値として採用することができる。以下では、上記の例に合わせて、向きパラメータ値として、
（ａ）右下から振り上げる動作では０度、
（ｂ）右から左に振る動作では９０度、
（ｃ）上から下に振る動作では１８０度、
（ｄ）左から右に振る動作では２７０度、
（ｅ）左下から振り上げる動作では３６０度
のような例をあげて説明する。
【００５８】
姿勢パラメータ値も向きパラメータ値も９０度の状況は、キャラクターが、右中段の構えから左に刀を振る動作をとる状況を表すことになる。姿勢パラメータ値も向きパラメータ値も１８０度の状況は、キャラクターが、上段の構えから下に刀を振る動作をとる状況を表すことになる。
【００５９】
このように、姿勢パラメータ値と向きパラメータ値が同じ値であるときには、刀の先端の軌跡は、キャラクターの中段中央を通過することになる。
【００６０】
一方、動作受付部は、キャラクターが動作すべき向きを表す向きパラメータ値の入力を受け付ける。
【００６１】
これは、刀を振る方向に相当するパラメータ値であり、姿勢パラメータ値とは独立して入力されることとするのが典型的である。なお、姿勢パラメータ値と向きパラメータ値とが一致する場合は、上記の「時間の経過により変化する姿勢ボーン情報」を採用した場合と、実質的に等価である。
【００６２】
さらに、向き計算部は、受け付けられた向きパラメータ値が、第１の向きパラメータ値ならびに第２の向きパラメータ値を内分する向き内分比を計算する。向き内分比の計算は、姿勢内分比の計算と同様に行われる。
【００６３】
そして、変化混合部は、計算された向き内分比で、第１の動作ボーン情報と、第２の動作ボーン情報と、を、ブレンドすることにより、第３の動作ボーン情報を得る。
【００６４】
姿勢混合部は、２つの姿勢ボーン情報を内分比で内分してブレンドしたが、変化混合部は、２つの動作ボーン情報を内分比で内分してブレンドする。動作ボーン情報は、上記のようにオイラー角の差分や、クォータニオンの差分として表現される。したがって、これらを要素ごとに内分すれば、ブレンド後の動作ボーン情報が得られる。
【００６５】
そして、開始姿勢取得部は、キャラクターが動作を開始する時点の姿勢を定める第４の姿勢ボーン情報を取得する。
【００６６】
最も単純には、開始姿勢取得部において、第３の姿勢ボーン情報が、第４の姿勢ボーン情報として取得される。すなわち、向きパラメータ値の入力が受け付けられた瞬間のキャラクターの姿勢が、動作の開始姿勢となる。
【００６７】
さらに、生成部は、キャラクターを、取得された第４の姿勢ボーン情報により定められる姿勢から、得られた第３の動作ボーン情報により定められる動作で時間経過とともに動作させ、当該キャラクターが時間経過とともに形状を変化させる様子を表す動画像を生成する。
【００６８】
上記のように、本発明では、動作ボーン情報として、静止している姿勢ボーン情報の差分を採用している。このため、たとえば、右斜め上の構え（姿勢パラメータ値が１２０度や１５０度等）から下に刀を振り下ろし（向きパラメータ値が１８０度）、刀の先端が、キャラクターの右寄りを通過するような動作についても画像を生成することができる。
【００６９】
本発明によれば、キャラクターの２つの動作からその中間的な動作を生成することにより、中間的な動作をとるキャラクターを表す動画像を容易に生成することができるようになる。
【００７０】
また、本発明の画像生成装置は、以下のように構成することができる。
【００７１】
すなわち、キャラクターが有する複数のボーンのいずれか一つの代表用ボーンには、代表点が固定される。
【００７２】
たとえば、上記の例では、刀の先端に代表点を設定する。
【００７３】
一方、動作ボーン情報には、当該キャラクターが姿勢を開始し始めようとする時点の姿勢を表す姿勢ボーン情報が対応付けられる。すなわち、本発明では、構えの姿勢とは独立に、動作の開始時の姿勢が用意され、両者にずれがある場合を想定している。
【００７４】
そして、開始姿勢取得部は、第１の動作ボーン情報に対応付けられる姿勢ボーン情報と、第２の動作ボーン情報に対応付けられる姿勢ボーン情報と、を、向き内分比でブレンドすることにより得られる第５の姿勢ボーン情報における代表点の位置が、第３の姿勢ボーン情報における代表点の位置にできるだけ近付くように、第５の姿勢ボーン情報を補正する。
【００７５】
すなわち、本発明では、構えの姿勢の代表点の位置が、姿勢のブレンドによって求められる。動作開始時の代表点の位置が、動作のブレンドによって求められる。そして、両者の位置が近付くように、動作開始時の代表点の位置を補正する。
【００７６】
さらに、開始姿勢取得部において、当該補正により得られた姿勢ボーン情報が、第４の姿勢ボーン情報として取得される。
【００７７】
本発明によれば、キャラクターの静止時の姿勢と、キャラクターの動作時の開始時点の姿勢と、にずれがある場合であっても、自然な動画像を生成することができるようになる。
【００７８】
また、本発明の画像生成装置において、開始姿勢取得部は、所定の拘束条件を採用したインバースキネマティクスを用いて、第５の姿勢ボーン情報における代表点の位置を、第３の姿勢ボーン情報における代表点の位置に重ねることにより、補正を行うように構成することができる。
【００７９】
代表点が刀の先端の場合には、刀の先端を重ねるようにインバースキネマティクスの手法を用いる。インバースキネマティクスとは、ボーンの木構造を葉から根の方にたどりながら、各ボーンの位置や向きを修正していく技術であり、本例では、刀、刀を持っている手首、下腕、上腕、肩、背骨上部、腰のように、順にボーンの向きが補正されていく。
【００８０】
本発明は、上記発明の好適実施形態に係るものであり、代表点の位置を重ねることによって、キャラクターの静止時の姿勢と、キャラクターの動作時の開始時点の姿勢と、のずれをできるだけ小さくすることができるようになる。
【００８１】
また、本発明の画像生成装置において、開始姿勢取得部は、キャラクターが有する複数のボーンのうち、いずれか２つの直接連結されるボーンの相対的な向きを変化させることにより、第５の姿勢ボーン情報における代表点の位置を、第３の姿勢ボーン情報における代表点の位置にできるだけ近付けるように構成することができる。
【００８２】
たとえば、キャラクターの腰と背骨上部との相対的な向きを変える状況を考える。本発明では、連結点から構えに基づく代表点に向かう半直線と、連結点から動作の開始時点に基づく代表点に向かう半直線と、が、重なるように、キャラクターの腰と背骨上部との相対的な向きのみを変更する。すなわち、インバースキネマティクスでは、修正すべきボーンの向きの情報が多数となるが、本発明では、１つの向きのみを修正するのである。
【００８３】
本発明は、上記発明の好適実施形態に係るものであり、キャラクターの静止時の姿勢と、キャラクターの動作時の開始時点の姿勢と、のずれを、簡易な計算によって、できるだけ小さくすることができるようになる。
【００８４】
また、本発明の画像生成装置は、以下のように構成することができる。
【００８５】
すなわち、記憶部には、複数の姿勢パラメータ値のそれぞれに対応付けて姿勢ボーン情報が記憶される。たとえば、上記のように、５種類のキャラクターの構えが記憶される。
【００８６】
一方、所定範囲内の位置がユーザにより指定されるコントローラにおいて、当該所定範囲の周縁に含まれる位置が指定されると、姿勢受付部は、当該所定範囲の中心位置から見た当該位置の向きを、姿勢パラメータ値の入力とする。たとえば、上記のように、ジョイスティックやタッチパッド等によって、姿勢パラメータ値が入力される。
【００８７】
第１の姿勢パラメータ値ならびに第２の姿勢パラメータ値は、記憶部に記憶される複数の姿勢パラメータ値のうち、当該受け付けられた姿勢パラメータ値を直近に挟む２つの姿勢パラメータ値である。
【００８８】
ここで、入力された姿勢パラメータ値θを記憶部に記憶される姿勢パラメータ値α，β（α<β）が直近に挟む、とは、α≦θ≦βであり、かつ、α以上β以下の姿勢パラメータ値は、記憶部には記憶されていない、ということを意味する。
【００８９】
本発明によれば、キャラクターの姿勢を３個以上用意して、それらの姿勢の中間の姿勢を得ることにより、広い範囲のキャラクターの姿勢を得ることができるようになる。
【００９０】
また、本発明の画像生成装置は、以下のように構成することができる。
【００９１】
すなわち、記憶部には、複数の姿勢パラメータ値のそれぞれに対応付けて姿勢ボーン情報が記憶され、複数の向きパラメータ値のそれぞれに対応付けて動作ボーン情報が記憶される。たとえば、上記のように、キャラクターの５種類の構えと５種類の動作が記憶される。
【００９２】
一方、所定範囲内の位置がユーザにより指定されるコントローラにおいて、当該所定範囲の周縁に含まれる第１の位置から、当該所定範囲の周縁以外を通過して、当該所定範囲の周縁に含まれる第２の位置へ、当該指定される位置が移動すると、姿勢受付部は、当該所定範囲の中心位置から見た当該第１の位置の向きを、姿勢パラメータ値の入力とし、動作受付部は、当該第１の位置から見た当該第２の位置の向きを、向きパラメータ値の入力とする。
【００９３】
たとえば、上記のように、ジョイスティック等をゆっくりと傾けると、棒状体の中央からの向きが、姿勢パラメータ値となる。さらに、ジョイスティック等の向きを高速に移動すると、棒状体の移動の開始時点から終了時点への向きが、向きパラメータ値となる。
【００９４】
第１の姿勢パラメータ値ならびに第２の姿勢パラメータ値は、記憶部に記憶される複数の姿勢パラメータ値のうち、当該受け付けられた姿勢パラメータ値を直近に挟む２つの姿勢パラメータ値であり、第１の向きパラメータ値ならびに第２の向きパラメータ値は、記憶部に記憶される複数の移動パラメータ値のうち、当該受け付けられた移動パラメータ値を直近に挟む２つの移動パラメータ値である。
【００９５】
すなわち、本発明では、入力された姿勢パラメータ値を直近に挟む姿勢ボーン情報をブレンドし、入力された向きパラメータ値を直近に挟む動作ボーン情報をブレンドして、これらから、動作開始時点の姿勢と、動作中の姿勢の時間変化と、の両方を得るのである。
【００９６】
本発明によれば、プレイヤは、１つのコントローラにより、キャラクターの静止時の姿勢と動作の両方を、指定することができるようになる。
【００９７】
本発明のその他の観点に係る画像生成方法は、複数の互いに連結されるボーンを有するキャラクターの姿勢を定めるために、当該複数のボーンの相対的な位置および向きを表す姿勢ボーン情報を使用して、当該キャラクターの画像を生成する。
【００９８】
画像生成方法は、画像生成装置が実行する。当該画像生成装置は、記憶部、姿勢受付部、姿勢計算部、姿勢混合部、生成部を備える。
【００９９】
ここで、記憶部には、キャラクターが第１の姿勢をとるときの第１の姿勢ボーン情報が、第１の姿勢パラメータ値に対応付けて記憶され、当該キャラクターが第２の姿勢をとるときの第２の姿勢ボーン情報が、第２の姿勢パラメータ値に対応付けて記憶される。
【０１００】
そして、当該画像生成方法は、姿勢受付工程、姿勢計算工程、姿勢混合工程、生成工程を備える。
【０１０１】
ここで、姿勢受付工程では、姿勢受付部が、キャラクターがとるべき姿勢を表す姿勢パラメータ値の入力を受け付ける。
【０１０２】
一方、姿勢計算工程では、姿勢計算部が、受け付けられた姿勢パラメータ値が、第１の姿勢パラメータ値と、第２の姿勢パラメータ値と、を内分する姿勢内分比を計算する。
【０１０３】
さらに、姿勢混合工程では、姿勢混合部が、計算された姿勢内分比で、第１の姿勢ボーン情報と、第２の姿勢ボーン情報と、を、ブレンドすることにより、第３の姿勢ボーン情報を得る。
【０１０４】
そして、生成工程では、生成部が、得られた第３の姿勢ボーン情報により、キャラクターの形状を定め、定められた形状により、当該キャラクターを表す画像を生成する。
【０１０５】
本発明のその他の観点に係るプログラムは、コンピュータを、上記画像生成装置の各部として機能させるように構成する。
【０１０６】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【０１０７】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【０１０８】
本発明によれば、キャラクターの特定の姿勢や動作から任意の姿勢や動作を求めて、その画像を生成するのに好適な画像生成装置、画像生成方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【０１０９】
【図１】典型的な情報処理装置の概要構成を示す模式図である。
【図２】コントローラの外観を示す説明図である。
【図３】本実施形態に係る画像生成装置の概要構成を示す説明図である。
【図４】姿勢パラメータ値とキャラクターの姿勢との関係を示す説明図である。
【図５】姿勢パラメータ値とキャラクターの姿勢との関係を示す説明図である。
【図６】姿勢パラメータ値とキャラクターの姿勢との関係を示す説明図である。
【図７】姿勢パラメータ値とキャラクターの姿勢との関係を示す説明図である。
【図８】姿勢パラメータ値とキャラクターの姿勢との関係を示す説明図である。
【図９】向きパラメータ値とキャラクターの動作の方向との関係を示す説明図である。
【図１０】向きパラメータ値とキャラクターの動作の方向との関係を示す説明図である。
【図１１】向きパラメータ値とキャラクターの動作の方向との関係を示す説明図である。
【図１２】向きパラメータ値とキャラクターの動作の方向との関係を示す説明図である。
【図１３】向きパラメータ値とキャラクターの動作の方向との関係を示す説明図である。
【図１４】本実施形態の画像生成装置において実行される画像生成処理の制御の流れを示すフローチャートである。
【図１５】姿勢パラメータ値を入力するためのジョイスティックの操作方法を示す説明図である。
【図１６】向きパラメータ値を入力するためのジョイスティックの操作方法を示す説明図である。
【図１７】３つの姿勢におけるボーンの位置関係を示す説明図である。
【図１８】ジョイスティックの操作により構えたキャラクターのボーンの様子と、ジョイスティックの操作により当該キャラクターが刀を振る方向と、を示す説明図である。
【発明を実施するための形態】
【０１１０】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。
【０１１１】
したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例１】
【０１１２】
図１は、プログラムを実行することにより、本実施形態の画像生成装置として機能しうる典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【０１１３】
本図に示す情報処理装置１００は、いわゆるコンシューマゲーム機に相当するもので、ＣＰＵ（Central Processing Unit）１０１、ＲＯＭ（Read Only Memory）１０２、ＲＡＭ（Random Access Memory）１０３、インターフェース１０４、コントローラ１０５、外部メモリ１０６、画像処理部１０７、ＤＶＤ−ＲＯＭ（Digital Versatile Disc ROM）ドライブ１０８、ＮＩＣ（Network Interface Card）１０９、音声処理部１１０、マイク１１１、ハードディスク（Hard Disk；ＨＤ）１２１を有する。各種の入出力装置は、適宜省略することができる。
【０１１４】
情報処理装置１００を典型的なコンシューマゲーム機として機能させる場合には、ゲーム用プログラムおよびデータを記憶したＤＶＤ−ＲＯＭをＤＶＤ−ＲＯＭドライブ１０８に装着し、電源を投入する。すると、当該ゲームプログラムが実行され、ゲームをプレイすることができるようになる。
【０１１５】
ただし、本実施形態においては、典型的には、ＤＶＤ−ＲＯＭドライブ１０８に装着されたＤＶＤ−ＲＯＭから、アプリケーションをＨＤ  １２１にインストールする。そして、当該ＨＤ  １２１に記憶されたプログラムを実行することによって、ゲームを含む各種のアプリケーションを実行することとする。
【０１１６】
なお、携帯型のゲーム装置においては、携帯可能とするために、ＤＶＤ−ＲＯＭドライブ１０８を利用するのではなく、ＲＯＭカセット用スロットにＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）カセットを装着して、ＨＤ  １２１を省略したりすることも可能である。この場合、アプリケーション用プログラムをＥＥＰＲＯＭカセットに書き込んだ上で、当該プログラムを実行することとなる。このほか、外部メモリ１０６にアプリケーション用プログラムをインストールすることも可能である。
【０１１７】
さて、ＣＰＵ  １０１は、情報処理装置１００全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、ＣＰＵ  １０１は、レジスタ（図示せず）という高速アクセスが可能な記憶域に対してＡＬＵ（Arithmetic Logic Unit）（図示せず）を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、ＣＰＵ  １０１自身が構成されているものや、コプロセッサを備えて実現するものがある。
【０１１８】
ＲＯＭ  １０２には、電源投入直後に実行されるＩＰＬ（Initial Program Loader）が記録され、これが実行されることにより、ＤＶＤ−ＲＯＭに記録されたプログラムをＲＡＭ  １０３に読み出してＣＰＵ  １０１による実行が開始される。また、ＲＯＭ  １０２には、情報処理装置１００全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【０１１９】
ＲＡＭ  １０３は、データやプログラムを一時的に記憶するためのもので、ＨＤ  １２１やＤＶＤ−ＲＯＭ等から読み出したプログラムやデータ、その他通信対戦ゲームの進行やチャット通信に必要なデータが保持される。また、ＣＰＵ  １０１は、ＲＡＭ  １０３に変数領域を設け、当該変数に格納された値に対して直接ＡＬＵを作用させて演算を行ったり、ＲＡＭ  １０３に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【０１２０】
インターフェース１０４を介して接続されたコントローラ１０５は、ユーザがゲーム実行の際に行う操作入力を受け付ける。
【０１２１】
なお、コントローラ１０５は、必ずしも情報処理装置１００に対して外付けにされている必要はなく、一体に形成されていても良い。携帯可能な端末装置のコントローラ１０５は、各種のボタンやスイッチから構成され、これらの押圧操作を操作入力として扱う。このほか、タッチスクリーンを利用した情報処理装置１００では、ユーザがペンや指を利用してタッチスクリーンをなぞった軌跡を操作入力として扱う。
【０１２２】
図２は、コントローラ１０５の外観を示す説明図である。以下、本図を参照して説明する。
【０１２３】
コントローラ１０５の左方には、上下左右を示す操作入力を行うのに利用される↑ボタン２０１、↓ボタン２０２、←ボタン２０３、→ボタン２０４が配置されている。
【０１２４】
右方には、決定操作入力を行うのに利用される○ボタン２０５、取消操作入力を行うのに利用される×ボタン２０６、メニュー表示等の指示入力を行うのに利用される△ボタン２０７、その他の指示入力を行うのに利用される□ボタン２０８が配置されている。
【０１２５】
中央には、ＳＥＬＥＣＴボタン２０９、ＳＴＡＲＴボタン２１０のほか、アナログ入力の開始・停止を指示するためのＡＮＡＬＯＧボタン２１１、および、アナログ入力が有効か無効かを表示するためのインジケータ２１２が配置されている。
【０１２６】
また中央下部には、上下左右に限らない方向に大きさを伴う指示入力を行うためのジョイスティック２１３、２１４が配置されている。
【０１２７】
さらに、上方には、各種の指示入力に用いることができるＬ１ボタン２１５、Ｌ２ボタン２１６、Ｒ１ボタン２１７、Ｒ２ボタン２１８が配置されている。
【０１２８】
コントローラ１０５の各ボタン２０１〜２０８、２１５〜２１８には、圧力センサが配備され、アナログ入力が有効となっている場合には、いずれのボタンが押圧操作されているかを検知することができるほか、ユーザの押圧操作の圧力の大きさを０〜２５５の２５６段階で得ることができる。
【０１２９】
コントローラ１０５のジョイスティック２１３、２１４は、ひずみゲージが配備され、これらがどの方向にどれだけ曲げられているか、を検知することができる。
【０１３０】
図１に戻り、インターフェース１０４を介して着脱自在に接続された外部メモリ１０６には、ゲーム等のプレイ状況（過去の成績等）を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ（記録）のデータなどが書き換え可能に記憶される。ユーザは、コントローラ１０５を介して指示入力を行うことにより、これらのデータを適宜外部メモリ１０６に記録することができる。
【０１３１】
上述の通り、アプリケーションプログラムを外部メモリ１０６にインストールして実行するような形態を採用することもできる。これは、外部メモリ１０６が大容量である場合に好適である。
【０１３２】
ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。ＣＰＵ  １０１の制御によって、ＤＶＤ−ＲＯＭドライブ１０８は、これに装着されたＤＶＤ−ＲＯＭに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはＲＡＭ  １０３等に一時的に記憶される。
【０１３３】
画像処理部１０７は、ＤＶＤ−ＲＯＭから読み出されたデータをＣＰＵ  １０１や画像処理部１０７が備える画像演算プロセッサ（図示せず）によって加工処理した後、これを画像処理部１０７が備えるフレームメモリ（図示せず）に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部１０７に接続されるモニタ（図示せず）へ出力される。これにより、各種の画像表示が可能となる。
【０１３４】
携帯可能な端末装置のモニタとしては、小型の液晶ディスプレイを利用するのが典型的であり、コントローラ１０５としてタッチスクリーンを利用する場合には、当該タッチスクリーンの表示パネルがモニタとして機能する。自宅で遊ぶための端末装置やネットワークゲームのサーバ装置のモニタとしては、ＣＲＴ（Cathode Ray Tube）やプラズマディスプレイなどの表示装置を利用することも可能である。
【０１３５】
画像演算プロセッサは、２次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【０１３６】
また、仮想３次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Ｚバッファ法によりレンダリングして、所定の視点位置から仮想３次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【０１３７】
さらに、ＣＰＵ  １０１と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を２次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【０１３８】
ＮＩＣ  １０９は、情報処理装置１００をインターネット等のコンピュータ通信網（図示せず）に接続するためのものであり、ＬＡＮを構成する際に用いられる１０ＢＡＳＥ−Ｔ／１００ＢＡＳＥ−Ｔ規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ＩＳＤＮ（Integrated Services Digital Network）モデム、ＡＤＳＬ（Asymmetric Digital Subscriber Line）モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとＣＰＵ  １０１との仲立ちを行うインターフェース（図示せず）により構成される。
【０１３９】
また、ＮＩＣ  １０９経由でコンピュータ通信網から入手した情報を元に、ＨＤ  １２１等にアプリケーションプログラムをインストールすることも可能である。
【０１４０】
音声処理部１１０は、ＨＤ  １２１やＤＶＤ−ＲＯＭから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ（図示せず）から出力させる。また、ＣＰＵ  １０１の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカや、ヘッドホン（図示せず）、イヤフォン（図示せず）から出力させる。
【０１４１】
音声処理部１１０では、ＨＤ  １２１やＤＶＤ−ＲＯＭに記録された音声データがＭＩＤＩデータである場合には、これが有する音源データを参照して、ＭＩＤＩデータをＰＣＭデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してＰＣＭデータに変換する。ＰＣＭデータは、そのサンプリング周波数に応じたタイミングでＤ／Ａ（Digital/Analog）変換を行って、スピーカに出力することにより、音声出力が可能となる。
【０１４２】
さらに、情報処理装置１００には、インターフェース１０４を介してマイク１１１を接続することができる。この場合、マイク１１１からのアナログ信号に対しては、適当なサンプリング周波数でＡ／Ｄ変換を行い、ＰＣＭ形式のディジタル信号として、音声処理部１１０でのミキシング等の処理ができるようにする。
【０１４３】
本実施形態で利用する情報処理装置１００は、上述のように、ＨＤ  １２１等の大容量外部記憶装置を用いるのが典型的である。ＨＤ  １２１は、ＲＯＭ  １０２、ＲＡＭ  １０３、外部メモリ１０６、ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭ等と同じ機能を果たすこともできる。
【０１４４】
このほか、ユーザからの文字列の編集入力を受け付けるためのキーボードや、各種の位置の指定および選択入力を受け付けるためのマウスなどを接続する形態も採用することができる。また、本実施形態の情報処理装置１００にかえて、汎用のパーソナルコンピュータやサーバ用コンピュータ等を利用することもできる。
【０１４５】
以上で説明した情報処理装置１００は、コンシューマ向けゲーム装置に相当するものであるが、各種の入出力処理が可能な電子機器であれば、本発明の端末装置やサーバ装置を実現することができる。したがって、携帯電話、携帯ゲーム機器、カラオケ装置、一般的なビジネス用コンピュータなど、種々の計算機上で本発明の端末装置やサーバ装置を実現することが可能である。
【０１４６】
たとえば、ビジネス用コンピュータは、上記情報処理装置１００と同様に、ＣＰＵ、ＲＡＭ、ＲＯＭ、ＤＶＤ−ＲＯＭドライブ、および、ＮＩＣ、ＨＤを構成要素として有するほか、情報処理装置１００よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてフレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっており、コントローラ１０５ではなく、キーボードやマウスなどを入力装置として利用するのが典型的である。
【０１４７】
図３は、本実施形態に係る画像生成装置の概要構成を示す説明図である。以下、本図を参照して説明する。
【０１４８】
本実施形態に係る画像生成装置３０１は、記憶部３０２、姿勢受付部３０３、姿勢計算部３０４、姿勢混合部３０５、動作受付部３０６、動作計算部３０７、動作混合部３０８、生成部３０９、開始姿勢取得部３１０を備える。本画像生成装置３０１は、情報処理装置１００にて、ＤＶＤ−ＲＯＭドライブ１０８に装着されたＤＶＤ−ＲＯＭやＨＤ  １２１に記録された所定のプログラムを実行することによって、実現される。
【０１４９】
ここで、記憶部３０２には、キャラクターの平静時の姿勢を定める姿勢ボーン情報が、姿勢パラメータ値に対応付けられて記憶されるほか、キャラクターの動作時の姿勢を定める動作ボーン情報が、向きパラメータ値に対応付けられて記憶される。記憶部３０２は、ＤＶＤ−ＲＯＭドライブ１０８に装着されたＤＶＤ−ＲＯＭや、ＲＡＭ  １０３等により実現される。
【０１５０】
一方、ユーザがコントローラ１０５のジョイスティック２１３を操作したときに、その操作状況から姿勢パラメータ値や向きパラメータ値が求められ、姿勢受付部３０３と、動作受付部３０６と、は、求められた姿勢パラメータ値と、向きパラメータ値と、をそれぞれ受け付ける。したがって、姿勢受付部３０３と、動作受付部３０６と、は、ＣＰＵ  １０１がコントローラ１０５と共働することにより、実現される。
【０１５１】
姿勢計算部３０４と、動作計算部３０７と、は、受け付けられた姿勢パラメータ値ならびに向きパラメータ値が、姿勢ボーン情報や動作ボーン情報に対応付けて記憶部３０２に記憶される姿勢パラメータ値ならびに向きパラメータ値を、内分する姿勢内分比と向き内分比を計算するもので、ＣＰＵ  １０１によって実現される。
【０１５２】
姿勢混合部３０５と、動作混合部３０８と、は、計算された姿勢内分比と向き内分比に基づいて記憶部３０２に記憶される姿勢ボーン情報や動作ボーン情報を混合して、新たな姿勢ボーン情報や動作ボーン情報を生成するもので、ＣＰＵ  １０１によって実現される。
【０１５３】
生成部３０９は、生成された姿勢ボーン情報に基づいて、キャラクターの平静時の画像を生成したり、動作ボーン情報に基づいて、キャラクターの動作時の画像を生成するもので、ＣＰＵ  １０１の制御の下、画像処理部１０７が機能することによって実現される。
【０１５４】
開始姿勢取得部３１０は、動作が開始される直前の姿勢を取得するものであり、ＣＰＵ  １０１によって実現される。なお、動作ボーン情報に、ボーンの向きの差分情報のみが含まれる場合には、直前に採用された姿勢ボーン情報が動作が開始される直前の姿勢として利用されることになる。
【０１５５】
以下、画像生成装置３０１について、さらに詳細に説明する。
【０１５６】
まず、記憶部３０２に記憶される姿勢ボーン情報と、動作ボーン情報と、は、キャラクターの姿勢を定めるためのものである。
【０１５７】
ここで、ボーンとは、キャラクターの骨格に相当するものであり、一般には、ボーン同士の連結位置は変化しない。したがって、まず、いずれか１つのボーンの位置と向きを定め、次に、その位置と向きが定められたボーンに対して、直接連結されている他のボーンの位置と向きを定めることを繰り返せば、ボーン全体の形状が一意に定まる。ボーン全体の形状は、デサイナーが設計することもあるし、モーションキャプチャにより取得されることもある。
【０１５８】
複数のボーンは、各ボーンをノードとする木構造に階層化される。木構造においては、互いに連結された２つのボーンのうち、一方のボーンは親ノードに、他方のボーンは子ノードに、それぞれ割り当てられる。すなわち、直接連結されるボーン同士は、一方が親であり、他方が子である。
【０１５９】
木構造の根ノードに割り当てられる根ボーンは、キャラクターの基本的な位置や向きを表すものである。したがって、根ボーンの位置や向きは、仮想空間内におけるグローバル座標系に対して定められる。
【０１６０】
一方、互いに連結されたボーン同士の相対的な位置や向きは、親ボーンに固定された座標系における両者の連結点の位置、および、当該座標系における子ボーンの向きにより表現される。
【０１６１】
したがって、キャラクターが姿勢を変えるときには、連結点の位置は変化せず、親ボーンに対する子ボーンの向きのみが変化するのが一般的である。
【０１６２】
根ボーンから木構造の親子関係をたどり、親ボーンに対する子ボーンの向きを定めると、各子ボーンのグローバル座標系における位置および向きが求められる。これを繰り返すことによって、キャラクターの形状全体が定められる。
【０１６３】
親ボーンに固定された座標系において、子ボーンの向きを表すには、当該座標系におけるオイラー角もしくはクォータニオンを利用するのが一般的である。
【０１６４】
記憶部３０２には、姿勢パラメータ値と姿勢ボーン情報との組が複数記憶され、向きパラメータ値と動作ボーン情報との組が複数記憶されている。
【０１６５】
本実施形態では、キャラクターが刀を構えた姿勢から刀を振る状況に、本発明を適用している。
【０１６６】
そこで、姿勢パラメータ値として、キャラクターの正面中央から見て、刀の先端が鉛直線下向きとなす角度、すなわち、キャラクターと正対し、キャラクターの中段中央を中心としたときに、中心から刀の先端への方向と、中心から鉛直下向きとの方向と、が、なす半時計周りの角度、を採用している。
【０１６７】
図４、図５、図６、図７、図８は、姿勢パラメータ値とキャラクターの姿勢との関係を示す説明図である。以下、本図を参照して説明する。
【０１６８】
キャラクター４０１は、複数のボーン４０２によってその形状が定められる。なお、本図においては、一部のボーンについてのみ符号を付している。
【０１６９】
ボーン４０２同士の連結点は、本図では、○印で描かれている。すなわち、本図において、大半のボーン４０２は、○印で挟まれている線により描かれている。
【０１７０】
ただし、刀を表すボーン４０２ａは、本図では太い線で描かれており、右手の拳４１１の位置（本図では□印で描かれている。）と、左手の拳４１２の位置（本図では□印で描かれている。）によって、その向きが定められる。
【０１７１】
キャラクター４０１の姿勢を表す姿勢パラメータ値は、中心点４０４から鉛直下向きに伸びる線４０５と、キャラクターの中段中央の中心点４０４（本図では、△印で描かれている。）から刀を表すボーン４０２ａの先端４０３（本図では、六角形で描かれている。）へ向かう半直線４０６と、のなす角θである。
（ａ）図４では、キャラクター４０１が右下段の構えをとっており、姿勢パラメータ値は０度である。先端４０３は、本図で下に向いている。
（ｂ）図５では、キャラクター４０１が右中段の構えをとっており、姿勢パラメータ値は９０度である。先端４０３は、本図で右を向いている。
（ｃ）図６では、キャラクター４０１が上段の構えをとっており、姿勢パラメータ値は１８０度である。先端４０３は、本図で上を向いている。
（ｄ）図７では、キャラクター４０１が左中段の構えをとっており、姿勢パラメータ値は２７０度である。先端４０３は、本図で左を向いている。
（ｅ）図８では、キャラクター４０１が左下段の構えをとっており、姿勢パラメータ値は３６０度である。先端４０３は、本図で下を向いている。
【０１７２】
姿勢ボーン情報は、キャラクターが完全に静止している瞬間の、当該キャラクターの姿勢を表すこととしても良いが、たとえばキャラクターの呼吸の周期に合わせて時間の経過とともに変化するようなものとしても良い。
【０１７３】
ここで、右下段と左下段を区別しているのは、両者の手首の捻りの向きが異なるからである。すなわち、図４、図８に示すように、刀のボーン４０２ａの向きや位置は一致しているが、キャラクター４０１の右手の拳４１１と左手の拳４１２の位置関係が異なる。
【０１７４】
一方、図９、図１０、図１１、図１２、図１３は、向きパラメータ値とキャラクターの動作の方向との関係を示す説明図であり、それぞれ、図４、図５、図６、図７、図８における姿勢から、キャラクター４０１が刀を振ったときの刀の先端４０３が描く軌跡の向きを表している。以下、これらの図を参照して説明する。
【０１７５】
キャラクター４０１の動作は、複数のボーン４０２の位置や向きの時間変化によって定められる。キャラクターの動作の向きを表す向きパラメータ値は、中心点４０４から鉛直上向きに伸びる線５０１と、刀を表すボーン４０２ａの先端４０３が移動する方向を表す軌跡５０２と、のなす角φである。なお、図面を理解しやすくするため、本図の軌跡５０２は、場所をずらして描いてある。
（ａ）図９では、右下段の握りでキャラクター４０１が刀を下から上に振り上げる動作を表しており、向きパラメータ値は０度である。先端４０３は、本図で下から上に移動している。
（ｂ）図１０では、キャラクター４０１が刀を右から左に振る動作を表しており、向きパラメータ値は９０度である。先端４０３は、本図で右から左に移動している。
（ｃ）図１１では、キャラクター４０１が刀を上から下に振り下ろす動作を表しており、向きパラメータ値は１８０度である。先端４０３は、本図で上から下に移動している。
（ｄ）図１２では、キャラクター４０１が刀を左から右に振る動作を表しており、向きパラメータ値は２７０度である。先端４０３は、本図で左から右に移動している。
（ｅ）図１３では、キャラクター４０１が左下段の握りで刀を下から上に振り上げる動作を表しており、向きパラメータ値は３６０度である。先端４０３は、本図で下から上に移動している。
【０１７６】
いずれの図においても、軌跡５０２は、中心点４０４を通過することとなっている。
【０１７７】
本実施形態では、５種類の姿勢ボーン情報と、５種類の動作ボーン情報と、に基づいて、任意の角度θにおける姿勢ボーン情報と、任意の向きφにおける動作ボーン情報と、を生成することにより、任意のθ、φに対するキャラクターの平静時の姿勢、動作時の姿勢の変化を求めるのである。
【０１７８】
このほか、本実施形態では、キャラクターが刀を構えていない基本姿勢の姿勢ボーン情報も利用する。
【０１７９】
図１４は、本実施形態の画像生成装置において実行される画像生成処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【０１８０】
本処理が開始されると、ＣＰＵ  １０１は、ＤＶＤ−ＲＯＭドライブ１０８に装着されたＤＶＤ−ＲＯＭなどから、姿勢ボーン情報およびその姿勢パラメータ値、ならびに、動作ボーン情報およびその向きパラメータ値、その他各種の情報を、読み出してＲＡＭ  １０３に書き込み、初期化を行う（ステップＳ６０１）。
【０１８１】
ついで、ＣＰＵ  １０１は、コントローラ１０５におけるジョイスティック２１３の状態を調べて、何らかの入力がされているか確認する（ステップＳ６０２）。ここで、ジョイスティック２１３による入力手法について説明する。
【０１８２】
図１５は、姿勢パラメータ値を入力するためのジョイスティック２１３の操作方法を示す説明図である。以下、本図を参照して説明する。
【０１８３】
本図には、ジョイスティック２１３のスティック６５１が、点線で示される基本位置６５２から周縁６５４内の位置６５３に傾けられた状況が示されている。
【０１８４】
この状況では、基本位置６５２から下方に伸びる線６８１と、基本位置６５２から現在の位置６５３に伸びる線６８２と、のなす角θが、姿勢パラメータ値として入力されることになる。
【０１８５】
ユーザが、ジョイスティック２１３のスティック６５１を傾けたまま周縁６５４を一周すると、姿勢パラメータ値θとして０度から３６０度までの任意の値を入力することができる。
【０１８６】
図１６は、向きパラメータ値を入力するためのジョイスティック２１３の操作方法を示す説明図である。以下、本図を参照して説明する。
【０１８７】
本図には、ジョイスティック２１３のスティック６５１が、周縁６５４内の位置６５３から、周縁６５４以外を通過して、周縁６５４内の他の位置６５５へ、直線的に、ある一定時間内に、移動した場合を示している。このとき、位置６５３から上方に伸びる線６８３と、位置６５３から位置６５５へ向かう移動の軌跡６５６と、のなす角φが、向きパラメータ値として入力されることになる。
【０１８８】
移動の軌跡６５６は、周縁以外の位置を通過する必要があるため、向きパラメータ値φとして入力できる範囲には限界があり、典型的には、直前の姿勢パラメータ値θを中心に、概ね±６０度程度である。
【０１８９】
ただし、直前の姿勢パラメータ値θは任意の値をとることができるため、向きパラメータ値φを単独で見れば、任意の値をとることができる、と考えることもできる。
【０１９０】
また、スティック６５１が、周縁以外の位置にあるとき、たとえば、ユーザがスティック６５１から指を離したときには、姿勢パラメータ値も向きパラメータ値も入力されていないことになる。
【０１９１】
このような操作方法を採用することによって、キャラクターが刀を構えるときの姿勢や、キャラクターが刀を振るときの方向を、コントローラ１０５の一つのジョイスティック２１３の操作だけで入力することができる。
【０１９２】
さらに、向きパラメータ値が入力される直前には、必ず姿勢パラメータ値が入力されることとなるので、キャラクターは、何らかの構えの姿勢をとってから、刀を振ることになる。
【０１９３】
なお、マウスやタッチパッド、トラックパッド、トラックボール等を使用して、同様の操作体系を実現することも可能であり、これらの実施形態も、本発明の範囲に含まれる。
【０１９４】
ここで、姿勢パラメータ値θが入力されている場合（ステップＳ６０２；θ）、ＣＰＵ  １０１は、ＲＡＭ  １０３に姿勢ボーン情報と対応付けられて記憶されている姿勢パラメータ値のうち、θを直近に挟む２つを選択する（ステップＳ６０３）。以下、この２つの姿勢パラメータ値を、αとβ（α<β）とする。
【０１９５】
上記のように、記憶部３０２に記憶されている姿勢パラメータ値は、０度、９０度、１８０度、２７０度、３６０度の５種類であるから、
（ａ）0≦θ<90の場合、α = 0，β = 90であり、
（ｂ）90≦θ<180の場合、α = 90，β = 180であり、
（ｃ）180≦θ<270の場合、α = 180，β = 270であり、
（ｄ）270≦θ<360の場合、α = 270，β = 360である。
【０１９６】
次に、ＣＰＵ  １０１は、θがαとβを内分する内分比A:Bを計算する（ステップＳ６０４）。内分比A:Bは、
A:B = (θ-α):(β-θ)
のように計算できる。
【０１９７】
さらに、ＣＰＵ  １０１は、姿勢パラメータ値αに対応付けられている姿勢ボーン情報と、姿勢パラメータ値βに対応付けられている姿勢ボーン情報と、を、内分比A:Bでブレンドして、新たな姿勢ボーン情報を得る（ステップＳ６０５）。
【０１９８】
以下、姿勢ボーン情報のブレンドの具体的な手法について、説明する。なお、理解を容易にするため、ボーンの階層構造を省略して、３本のボーンのみがある場合を例としてとりあげる。
【０１９９】
図１７は、３つの姿勢におけるボーンの位置関係を示す説明図である。以下、本図を参照して説明する。なお、本図は、理解を容易にするため、位置関係を誇張して描いている。
【０２００】
なお、本図は、第１の姿勢と第２の姿勢とをブレンドして第３の姿勢を得る過程を説明するものであり、ボーンや角度に付す符号については、第１の姿勢においては、符号に「ａ」を、第２の姿勢においては、符号に「ｂ」を、第３の姿勢においては、符号に「ｃ」を、付加することとしている。
【０２０１】
本図において、根ボーンであるボーン７０１（第１の姿勢では符号７０１ａにより、第２の姿勢では符号７０１ｂ、第３の姿勢では符号７０１ｃに相当。以下同様。）からはボーン７０２が伸びており、ボーン７０２からはボーン７０３が伸びている。したがって、本図では、親ボーン７０１と子ボーン７０２、親ボーン７０２と子ボーン７０３の２つの親子関係がある。
【０２０２】
本図におけるボーン７０１ａ、７０２ａ、７０３ａは、第１の姿勢（姿勢パラメータ値α）におけるボーンの位置を示しており、本図におけるボーン７０１ｂ、７０２ｂ、７０３ｂは、第２の姿勢（姿勢パラメータ値β）におけるボーンの位置を示している。
【０２０３】
また、本図におけるボーン７０１ｃ、７０２ｃ、７０３ｃは、第１の姿勢と第２の姿勢とを内分比A:Bでブレンドした第３の姿勢におけるボーンの位置を示している。
【０２０４】
まず、根ボーン７０１については、第１の姿勢と第２の姿勢とで、ボーン７０１ａ、７０１ｂのように、位置と向きが異なる。そこで、これらを内分比A:Bで内分した位置を、ボーン７０１ｃの位置とする。
【０２０５】
また、ボーン７０１ａ、７０１ｂは、向きも異なる。そこで、ボーン７０１ａが基準線となす角７１０ａと、ボーン７０１ｂが基準線となす角７１０ｂと、を、内分比A:Bで内分した角度を、ボーン７０１ｃが基準線となす角７１０ｃとする。
【０２０６】
すると、ボーン７０１ｃがボーン７０２ｃと連結される連結点の位置も、必然的に定まることになる。
【０２０７】
次に、親ボーン７０１と子ボーン７０２とのなす角を考える。第１の姿勢において両者がなす角７１１ａと、第２の姿勢において両者がなす角７１１ｂと、を、内分比A:Bで内分した角度７１１ｃを計算する。
【０２０８】
そして、親ボーン７０１ｃに対する子ボーン７０２ｃの向きを、上記の角度７１１ｃとする。
【０２０９】
すると、ボーン７０２ｃとボーン７０３ｃとが連結される連結点の位置も、必然的に定まることになる。
【０２１０】
そこで、親ボーン７０２と子ボーン７０３とのなす角を考える。第１の姿勢において両者がなす角７１２ａと、第２の姿勢において両者がなす角７１２ｂと、を、内分比A:Bで内分した角度７１２ｃを計算する。
【０２１１】
そして、親ボーン７０２ｃに対する子ボーン７０３ｃの向きを、上記の角度７１２ｃとする。
【０２１２】
すると、ボーン７０３の位置も、必然的に定まることになる。
【０２１３】
このように、ボーンの階層関係を順にたどることによって、すべてのボーンの向きを内分比A:Bで内分する。すると、第１の姿勢と第２の姿勢とを内分比A:Bでブレンドした第３の姿勢が得られるのである。
【０２１４】
本図の説明では、理解を容易にするため、２次元的な図面によって説明したが、３次元グラフィックスでは、向きは、オイラー角やクォータニオンのように、複数の数値によって表現される。この場合には、各要素を内分することで、上記のブレンドを実行するのである。
【０２１５】
このようにして、姿勢パラメータ値θに対する姿勢ボーン情報が得られたら、ＣＰＵ  １０１は、画像処理部１０７を駆動して、得られた姿勢ボーン情報に基づいて、仮想空間に配置されるキャラクターの形状を求め、当該キャラクターを表す画像をＲＡＭ  １０３内に生成する（ステップＳ６０６）。画像の生成には、各種の３次元グラフィックスの技術を適用することができる。
【０２１６】
さらに、ＣＰＵ  １０１は、垂直同期割込が生じるまで待機する（ステップＳ６０７）。この待機中には、他の各種の計算処理を、コルーチンとして並列に実行することも可能である。
【０２１７】
垂直同期割込が発生したら、ＣＰＵ  １０１は、画像処理部１０７を駆動して、ＲＡＭ  １０３内に生成した画像を、モニタ等の画面に表示させ（ステップＳ６０８）、ステップＳ６０２に戻る。
【０２１８】
一方、向きパラメータ値φが入力されている場合（ステップＳ６０２；φ）、ＣＰＵ  １０１は、動作ボーン情報と対応付けられてＲＡＭ  １０３に記憶されている向きパラメータ値のうち、φを直近に挟む２つを選択する（ステップＳ６０９）。以下、この２つの向きパラメータ値を、γとδ（γ<δ）とする。
【０２１９】
上記のように、記憶部３０２に記憶されている向きパラメータ値は、０度、９０度、１８０度、２７０度、３６０度の５種類であるから、
（ａ）0≦θ<90の場合、γ = 0，δ = 90であり、
（ｂ）90≦θ<180の場合、γ = 90，δ = 180であり、
（ｃ）180≦θ<270の場合、γ = 180，δ = 270であり、
（ｄ）270≦θ<360の場合、γ = 270，δ = 360である。
【０２２０】
次に、ＣＰＵ  １０１は、φがγとδを内分する内分比C:Dを計算する（ステップＳ６１０）。内分比C:Dは、
C:D = (φ-γ):(δ-φ)
のように計算できる。
【０２２１】
さらに、ＣＰＵ  １０１は、向きパラメータ値φに対応付けられている動作ボーン情報と、向きパラメータ値δに対応付けられている動作ボーン情報と、を、内分比C:Dでブレンドして、新たな動作ボーン情報を得る（ステップＳ６１１）。
【０２２２】
ここで、動作ボーン情報とは、キャラクターのある時点における姿勢と、次の時点（すなわち、垂直同期割込周期後の時点）における姿勢と、の差分を表す情報が、時間の経過とともに一列に並んだものと考えることができる。したがって、動作開始時点の姿勢は、必ずしも動作ボーン情報に含める必要はない。
【０２２３】
姿勢ボーン情報においては、各ボーンの相対的な向きを内分比A:Bで内分したが、動作ボーン情報においては、各ボーン向きの差分を内分比C:Dで内分する。
【０２２４】
すなわち、動作ボーン情報において、互いに対応する時点の差分を内分比C:Dで内分する手法は、実質的に、姿勢ボーン情報を内分比A:Bで内分する手法と同様である。
【０２２５】
さて、向きの差分は、オイラー角やクォータニオンの差として表現される。したがって、第１の動作と第２の動作とにおいて、各時点における向きの差分をボーンごとに内分比C:Dで内分すれば、第３の動作が得られることになる。
【０２２６】
なお、根ボーンの動きについても、位置の差分を同様に内分比C:Dで内分することにより、第３の動作における根ボーンの位置の移動を得ることができる。
【０２２７】
このようにして向きφに対する動作ボーン情報が得られたら、動作ボーン情報に含まれる各時点について、順に、以下の処理を繰り返す（ステップＳ６１２〜）。
【０２２８】
まず、動作ボーン情報から、現時点の各ボーンの差分を取得する（ステップＳ６１３）。
【０２２９】
そして、根ボーンの位置を、当該根ボーンの差分だけ移動する（ステップＳ６１４）。
【０２３０】
次に、根ボーンから全ボーンへ、木構造を順に辿りながら、各ボーンの向きを、当該ボーンについて取得された差分だけ変化させる（ステップＳ６１５）。
【０２３１】
そして、直前の姿勢パラメータ値がθであり、指定された向きパラメータ値φである状況での、現時点の姿勢が得られたら、ＣＰＵ  １０１は、画像処理部１０７を駆動して、得られた姿勢に基づいて、仮想空間に配置されるキャラクターの形状を求め、当該キャラクターを表す画像をＲＡＭ  １０３内に生成する（ステップＳ６１６）。画像の生成には、各種の３次元グラフィックスの技術を適用することができる。
【０２３２】
さらに、ＣＰＵ  １０１は、垂直同期割込が生じるまで待機する（ステップＳ６１７）。この待機中には、他の各種の計算処理を、コルーチンとして並列に実行することも可能である。
【０２３３】
垂直同期割込が発生したら、ＣＰＵ  １０１は、画像処理部１０７を駆動して、ＲＡＭ  １０３内に生成した画像を、モニタ等の画面に表示させる（ステップＳ６１８）。
【０２３４】
この処理を、動作ボーン情報に指定される差分の個数だけ繰り返すと（ステップＳ６１９）、姿勢θのキャラクターが刀を向きφに振るアニメーションが画面に表示される。その後、ステップＳ６０２に戻る。
【０２３５】
図１８は、図１５のジョイスティック２１３の操作により構えたキャラクターのボーンの様子と、図１６のジョイスティック２１３の操作により当該キャラクターが刀を振る方向と、を示す説明図である。
【０２３６】
本図に示すように、キャラクター４０１のボーン４０２は、図１０と図１１の中間的な姿勢をとっている。また、刀の軌跡５０２は、スティック６５１の軌跡６５６に連動して、ほぼ平行となっており、本例では、中心点４０４を通過してはいない。
【０２３７】
このように、ジョイスティック２１３の操作とキャラクター４０１の姿勢や動作が直観的に連動しているため、ユーザは、容易にキャラクター４０１の姿勢や動作を入力することができる。
【０２３８】
さて、姿勢パラメータ値θも向きパラメータ値φも入力されていない場合（ステップＳ６０２；なし）、ＣＰＵ  １０１は、ＲＡＭ  １０３に記憶された基本姿勢を表すボーン情報を取得する（ステップＳ６２０）。
【０２３９】
そして、ＣＰＵ  １０１は、画像処理部１０７を駆動して、取得した基本姿勢を表すボーン情報に基づいて、仮想空間に配置されるキャラクターの形状を求め、当該キャラクターを表す画像をＲＡＭ  １０３内に生成する（ステップＳ６２１）。画像の生成には、各種の３次元グラフィックスの技術を適用することができる。
【０２４０】
さらに、ＣＰＵ  １０１は、垂直同期割込が生じるまで待機する（ステップＳ６２２）。この待機中には、他の各種の計算処理を、コルーチンとして並列に実行することも可能である。
【０２４１】
垂直同期割込が発生したら、ＣＰＵ  １０１は、画像処理部１０７を駆動して、ＲＡＭ  １０３内に生成した画像を、モニタ等の画面に表示して（ステップＳ６２３）、ステップＳ６０２に戻る。
【０２４２】
なお、上記制御フローでは、姿勢パラメータ値θと向きパラメータφの入力は、時間差をもってされることを想定している。ただし、これらが、単独で得られるほか、同時に得られるような態様もありうる。このような態様では、ステップＳ６０２において、姿勢パラメータ値θと向きパラメータφが同時に得られたことが判明した場合には、ステップＳ６０３〜ステップＳ６０８を実行した後、ステップＳ６０９〜ステップＳ６１９を続けて実行することとすれば良い。
【０２４３】
上記制御フローでは、キャラクター４０１の構えの姿勢と基本姿勢との間の移行や、各構えの姿勢の移行は瞬時に行われ、ユーザの意思が直ちに反映される。
【０２４４】
このほか、各構えの姿勢の間の移行や、基本姿勢との間の移行が、時間の経過とともに次第に行われるようにしても良い。この際には、２つの姿勢の中間姿勢を求める上記の技術を適用することができる。
【０２４５】
すなわち、２つの姿勢の移行に要する時間を構えの姿勢パラメータ値の差などにより定める。なお、構えと基本姿勢との移行に要する時間長は、定数とすれば良い。
【０２４６】
そして、全移行に要する時間長を、現在の時点が内分する内分比を用いて、現時点の中間姿勢を求める。
【０２４７】
画面には、時間の経過とともに、中間姿勢を表示することによって、姿勢の変化が瞬時に行われるのではなく、時間の経過によって行われるようにすることができる。
【０２４８】
なお、以上の説明では、姿勢ボーン情報は、完全に静止しているキャラクターの姿勢を表すものとしているが、平静時のキャラクターがほぼ同じ姿勢を保ちつつ呼吸をする際の微小な動きを表すアニメーション表示を行いたい場合には、姿勢ボーン情報について動作ボーン情報に相当する情報を用意し、同様の処理を行えば良い。
【０２４９】
この場合、あらかじめ、刀を構えた人間の呼吸の１周期分を、所定の時間間隔でモーションキャプチャする。
【０２５０】
そして、当該周期内の各時点におけるキャラクターのボーンの位置や向きを、モーションキャプチャされたデータから定める。そして、時間の経過に合わせて、各時点におけるボーンの位置や向きを適宜選択し、その位置や向きをブレンドする。
【０２５１】
たとえば、刀を上段に構えたときの１呼吸分の姿勢ボーン情報と、刀を右中段に構えたときの１呼吸分の姿勢ボーン情報と、から、刀を右斜め上に構えたときの１呼吸分の姿勢ボーン情報を得るのである。
【０２５２】
なお、姿勢ボーン情報の時間経過に伴う変化は、典型的には周期的な変化であるが、必ずしもこれに限られない。
【０２５３】
また、姿勢パラメータ値や向きパラメータ値としては、上記の角度のみならず、キャラクターの姿勢を表す任意のスカラー量を採用することができる。
【０２５４】
このように、本実施形態によれば、キャラクターの２種類の動作からその中間の動作を生成して、その動作をとるキャラクターの様子を表す画像を生成することができる。
【０２５５】
なお、キャラクターを動作させる態様については、適宜省略することも可能である。
【０２５６】
このほか、本実施形態では、ユーザとキャラクター４０１が相対するように画面に表示される例を考えている。しかしながら、キャラクター４０１が、ユーザが同じ向きを向くようにする場合もある。このときは、キャラクター４０１の背面が画面に表示されることになる。
【０２５７】
この場合には、コントローラ１０５の操作と、キャラクター４０１の操作とが直観的に連動するように、姿勢パラメータ値θや向きパラメータ値φを計測する回転方向を設定すれば良い。
【実施例２】
【０２５８】
上記実施形態では、動作ボーン情報は、時間経過にともなう各ボーンの相対的な向きの差分情報のみが指定されるものとしており、開始姿勢取得部３１０は、動作開始直前の姿勢ボーン情報を、そのまま、動作開始時の姿勢としていた。
【０２５９】
一方で、モーションキャプチャ時には、動作の開始時点の姿勢が定められていることがある。この姿勢を用いる場合には、姿勢ボーン情報に基づいて現在キャラクターがとっている姿勢と、動作ボーン情報に基づく動作開始時点の姿勢を補間する必要がある。
【０２６０】
本実施形態では、ＣＰＵ  １０１により実現される開始姿勢取得部３１０が、この補間を行う。
【０２６１】
まず、姿勢パラメータ値θや向きパラメータ値φによって位置が大きく変動する代表点を考える。上記の例では、キャラクター４０１が持つ刀の先端４０３に、代表点を設定する。
【０２６２】
次に、２つの動作ボーン情報に指定される開始時点の姿勢を、上記と同様に、内分比C:Dでブレンドする。姿勢の内分比A:Bではなく、向きの内分比C:Dを採用するのは、当該開始時点の姿勢は、動作に係る姿勢だからである。ここで得られるのは、静止しているキャラクターの姿勢ボーン情報に相当する情報である。
【０２６３】
そして、姿勢パラメータ値θに対して得られた姿勢ボーン情報における代表点の位置に、向きパラメータ値φに対して得られた動作の開始時点における代表点の位置を、近付けるように、動作開始時点の姿勢ボーン情報を補正する。補正の代表的な手法は、２通りある。
【０２６４】
第１の手法は、所定の拘束条件を採用したインバースキネマティクスを用いるものである。
【０２６５】
すなわち、刀の先端４０３を重ねるようにインバースキネマティクスの手法を用いる。インバースキネマティクスとは、ボーンの木構造を葉から根の方にたどりながら、各ボーンの位置や向きを修正していく技術であり、本例では、刀、刀を持っている手首、下腕、上腕、肩、背骨上部、腰のように、順にボーンの向きが補正されていく。
【０２６６】
第２の手法は、キャラクターのボーンの連結点を１つだけ選び、そこで連結されている子ボーンの向きを補正する手法である。
【０２６７】
たとえば、キャラクターの臍付近の連結点を採用したときには、腰骨のボーンに対する背骨上部のボーンの相対的な向きを変化させる。
【０２６８】
代表点の位置を近付けるためには、連結点から構えに基づく代表点に向かう半直線と、連結点から動作の開始時点に基づく代表点に向かう半直線と、が、重なるようにすれば良い。
【０２６９】
すなわち、インバースキネマティクスでは、修正すべきボーンの向きの情報が多数となるが、補正結果がより一層滑らかになる。一方、ボーンの向きを１つだけ修正する手法では、計算が容易であり、実用上は不自然な動作とはならないことが、発明者の実験により判明している。
【０２７０】
このように、本実施形態では、キャラクターの動作時の開始時点の姿勢があらかじめ用意されている場合に、キャラクターの静止時の姿勢と、キャラクターの動作時の開始時点の姿勢と、のずれを、簡易な計算によって、できるだけ小さくすることができるようになる。
【０２７１】
なお、上記実施形態のように、ボーンの向きの差分のみを動作ボーン情報として採用する場合には、本実施形態のような補正の処理は不要である。
【産業上の利用可能性】
【０２７２】
以上説明したように、本発明によれば、キャラクターの特定の姿勢や動作から任意の姿勢や動作を求めて、その画像を生成するのに好適な画像生成装置、画像生成方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【符号の説明】
【０２７３】
１００  情報処理装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  インターフェース
１０５  コントローラ
１０６  外部メモリ
１０７  画像処理部
１０８  ＤＶＤ−ＲＯＭドライブ
１０９  ＮＩＣ
１１０  音声処理部
１１１  マイク
１２１  ＨＤ
２０１  ↑ボタン
２０２  ↓ボタン
２０３  ←ボタン
２０４  →ボタン
２０５  ○ボタン
２０６  ×ボタン
２０７  △ボタン
２０８  □ボタン
２０９  ＳＥＬＥＣＴボタン
２１０  ＳＴＡＲＴボタン
２１１  ＡＮＡＬＯＧボタン
２１２  インジケータ
２１３  ジョイスティック
２１４  ジョイスティック
２１５  Ｌ１ボタン
２１６  Ｌ２ボタン
２１７  Ｒ１ボタン
２１８  Ｒ２ボタン
３０１  画像生成装置
３０２  記憶部
３０３  姿勢受付部
３０４  姿勢計算部
３０５  姿勢混合部
３０６  動作受付部
３０７  動作計算部
３０８  動作混合部
３０９  生成部
３１０  開始姿勢取得部
４０１  キャラクター
４０２  ボーン
４０３  刀の先端
４０４  中心点
４０５  鉛直下向きの線
４０６  中心点からスティックへ向かう線
５０１  鉛直上向きの線
５０２  刀の軌跡
６５１  スティック
６５２  基本位置
６５３  周縁内の位置
６５４  周縁
６５５  周縁内の位置
６５６  スティックの移動の軌跡
７０１  ボーン
７０２  ボーン
７０３  ボーン
７１１  ボーン同士がなす角
７１２  ボーン同士がなす角
【図１】
2011065578.tif 000003
【図２】
2011065578.tif 000004
【図３】
2011065578.tif 000005
【図４】
2011065578.tif 000006
【図５】
2011065578.tif 000007
【図６】
2011065578.tif 000008
【図７】
2011065578.tif 000009
【図８】
2011065578.tif 000010
【図９】
2011065578.tif 000011
【図１０】
2011065578.tif 000012
【図１１】
2011065578.tif 000013
【図１２】
2011065578.tif 000014
【図１３】
2011065578.tif 000015
【図１４】
2011065578.tif 000016
【図１５】
2011065578.tif 000017
【図１６】
2011065578.tif 000018
【図１７】
2011065578.tif 000019
【図１８】
2011065578.tif 000020