(57)【要約】 【課題】ボーンおよび制御点によって定義される３次元モデルからの画像生成において処理可能な制御点の数を増す画像生成装置等を提供する。【解決手段】モデルは複数のボーンと、ボーンに対する相対的な位置が固定された制御点によって定義される。画像生成装置４０１において、主更新部４０３がボーンの位置や向きを更新すると、選択部４０５は、ボーンを視点から遠い順に選択する。位置計算部４０７は、選択されたボーンに属する制御点の位置を計算し、スキン計算部４０８は、計算された制御点の位置によりスキンの形状を計算し、描画部４０９は、計算されたスキンの形状をバッファ部４０４に描画する。すべてのボーンについて選択乃至描画を繰り返し、終了したら、表示部４１０は、バッファ部４０４に記憶された画像を画面に転送表示する。【選択図】図４
2011113524.tif 000002
【特許請求の範囲】
【請求項１】
仮想空間に配置される複数のボーンおよび複数の制御点から画像を生成する画像生成装置であって、
あるボーンの位置および向きが他のボーンに対して相対的に定められている場合、当該あるボーンは当該他のボーンに依存し、
あるボーンの位置および向きが前記仮想空間に対して定められている場合、当該あるボーンは当該仮想空間に依存し、
前記複数の制御点のそれぞれは、当該複数のボーンのいずれかに対する相対的な位置が固定され、
当該複数のボーンの種類には、主ボーンがあり、
当該主ボーンのいずれか一つは、当該仮想空間に依存し、それ以外の主ボーンのそれぞれは、他のいずれかの主ボーンに依存し、
前記複数の制御点のそれぞれは、当該制御点の相対的な位置が固定されるボーンが主ボーンである場合、当該主ボーンに対するグループに分類され、
前記画像生成装置は、
当該複数のボーンのそれぞれについて、当該ボーンが依存する他のボーンに対する相対的な位置および向きが記憶される記憶部、
時間の経過もしくはユーザからの指示に基づいて、前記記憶部に記憶されるそれぞれの主ボーンの位置および向きを更新する主更新部、
前記主更新部による更新がされると、前記仮想空間内の視点位置と視線方向に対する前記主ボーンのそれぞれの奥行きに基づいて、前記主ボーンの順序を定め、当該決定された順序で、前記主ボーンを順に選択する選択部、
前記選択された主ボーンに対するグループに分類される制御点の当該仮想空間における位置を計算する位置計算部、
前記制御点の位置が計算されると、当該計算された制御点の位置から、スキンの形状を計算するスキン計算部、
前記スキンの形状が計算されると、当該計算されたスキンの形状を、前記視点位置から前記視線方向に見た様子を表すスキン画像を、既に描画済みの画像に重ねて描画する描画部、
すべての主ボーンに対するグループに分類される制御点の位置から計算されたスキンの形状を表すスキン画像が描画されると、当該既に描画済みの画像を、画面に表示する表示部
を備えることを特徴とする画像生成装置。
【請求項２】
請求項１に記載の画像生成装置であって、
あらかじめ用意された背景画像が記憶されるバッファ部
をさらに備え、
前記描画部は、前記スキン画像を、前記バッファ部に既に記憶されている画像に重ねて描画し、
前記表示部は、前記バッファ部に記憶されている画像を表示する
ことを特徴とする画像生成装置。
【請求項３】
請求項１または２に記載の画像生成装置であって、
当該複数のボーンの種類には、主ボーンのほか、副ボーンがあり、
当該副ボーンのそれぞれは、いずれかの主ボーンもしくは他のいずれかの副ボーンに依存し、
前記複数の制御点のそれぞれは、当該制御点の相対的な位置が固定されるボーンが副ボーンである場合、当該副ボーンが依存する主ボーンもしくは当該副ボーンが依存する他の副ボーンが依存する主ボーンに対するグループに分類され、
前記画像生成装置は、
前記主ボーンが選択されると、時間の経過もしくは前記ユーザからの指示に基づいて、前記記憶部に記憶される当該選択された主ボーンに依存する副ボーンの位置および向きを更新する副更新部
をさらに備え、
前記位置計算部は、前記副ボーンの位置および向きが更新されると、前記選択された主ボーンに対するグループに分類される制御点の当該仮想空間における位置を計算する
ことを特徴とする画像生成装置。
【請求項４】
請求項１から３のいずれか１項に記載の画像生成装置であって、
前記選択部は、前記主ボーンの順序を、前記視点位置からの奥行き距離が遠い順に定める
ことを特徴とする画像生成装置。
【請求項５】
請求項１から３のいずれか１項に記載の画像生成装置であって、
前記主ボーンには、他の主ボーンに随伴することが設定されるものがあり、
前記選択部は、ある主ボーンが選択され、当該選択された主ボーンに随伴する他の主ボーンがある場合、
当該随伴する他の主ボーンも同時に選択する
ことを特徴とする画像生成装置。
【請求項６】
請求項１から５のいずれか１項に記載の画像生成装置であって、
前記スキンは、前記制御点を頂点とするポリゴンであり、異なる複数のグループに属する制御点を頂点とするポリゴンは、当該複数のグループのいずれかに対する主ボーンが選択されることによって描画される
ことを特徴とする画像生成装置。
【請求項７】
請求項１から５のいずれか１項に記載の画像生成装置であって、
前記スキンは、前記制御点の位置の重み付け平均位置を頂点とするポリゴンであり、異なる複数のグループに属する制御点から定められる重み付け平均位置を頂点とするポリゴンは、当該複数のグループのいずれかに対する主ボーンが選択されることによって描画される
ことを特徴とする画像生成装置。
【請求項８】
請求項６または７に記載の画像生成装置であって、
前記選択部による選択によって描画されるべきポリゴンの数が、所定の上限を超えない限り、前記選択部は、当該主ボーンの順序における次の主ボーンを同時に選択する
ことを特徴とする画像選択装置。
【請求項９】
仮想空間に配置される複数のボーンおよび複数の制御点から画像を生成する画像生成方法であって、
あるボーンの位置および向きが他のボーンに対して相対的に定められている場合、当該あるボーンは当該他のボーンに依存し、
あるボーンの位置および向きが前記仮想空間に対して定められている場合、当該あるボーンは当該仮想空間に依存し、
前記複数の制御点のそれぞれは、当該複数のボーンのいずれかに対する相対的な位置が固定され、
当該複数のボーンの種類には、主ボーンがあり、
当該主ボーンのいずれか一つは、当該仮想空間に依存し、それ以外の主ボーンのそれぞれは、他のいずれかの主ボーンに依存し、
前記複数の制御点のそれぞれは、当該制御点の相対的な位置が固定されるボーンが主ボーンである場合、当該主ボーンに対するグループに分類され、
前記画像生成方法は、記憶部、主更新部、選択部、位置計算部、スキン計算部、描画部、表示部を有する画像生成装置によって実行され、
前記記憶部には、当該複数のボーンのそれぞれについて、当該ボーンが依存する他のボーンに対する相対的な位置および向きが記憶され、
前記画像生成方法は、
前記主更新部が、時間の経過もしくはユーザからの指示に基づいて、前記記憶部に記憶されるそれぞれの主ボーンの位置および向きを更新する主更新工程、
前記主更新部による更新がされると、前記選択部が、前記仮想空間内の視点位置と視線方向に対する前記主ボーンのそれぞれの奥行きに基づいて、前記主ボーンの順序を定め、当該決定された順序で、前記主ボーンを順に選択する選択工程、
前記位置計算部が、前記選択された主ボーンに対するグループに分類される制御点の当該仮想空間における位置を計算する位置計算工程、
前記制御点の位置が計算されると、前記スキン計算部が、当該計算された制御点の位置から、スキンの形状を計算するスキン計算工程、
前記スキンの形状が計算されると、前記描画部が、当該計算されたスキンの形状を、前記視点位置から前記視線方向に見た様子を表すスキン画像を、既に描画済みの画像に重ねて描画する描画工程、
すべての主ボーンに対するグループに分類される制御点の位置から計算されたスキンの形状を表すスキン画像が描画されると、前記表示部が、当該既に描画済みの画像を、画面に表示する表示工程
を備えることを特徴とする画像生成方法。
【請求項１０】
コンピュータに、仮想空間に配置される複数のボーンおよび複数の制御点から、画像を生成させるプログラムであって、
あるボーンの位置および向きが他のボーンに対して相対的に定められている場合、当該あるボーンは当該他のボーンに依存し、
あるボーンの位置および向きが前記仮想空間に対して定められている場合、当該あるボーンは当該仮想空間に依存し、
前記複数の制御点のそれぞれは、当該複数のボーンのいずれかに対する相対的な位置が固定され、
当該複数のボーンの種類には、主ボーンがあり、
当該主ボーンのいずれか一つは、当該仮想空間に依存し、それ以外の主ボーンのそれぞれは、他のいずれかの主ボーンに依存し、
前記複数の制御点のそれぞれは、当該制御点の相対的な位置が固定されるボーンが主ボーンである場合、当該主ボーンに対するグループに分類され、
前記プログラムは、前記コンピュータを、
当該複数のボーンのそれぞれについて、当該ボーンが依存する他のボーンに対する相対的な位置および向きが記憶される記憶部、
時間の経過もしくはユーザからの指示に基づいて、前記記憶部に記憶されるそれぞれの主ボーンの位置および向きを更新する主更新部、
前記主更新部による更新がされると、前記仮想空間内の視点位置と視線方向に対する前記主ボーンのそれぞれの奥行きに基づいて、前記主ボーンの順序を定め、当該決定された順序で、前記主ボーンを順に選択する選択部、
前記選択された主ボーンに対するグループに分類される制御点の当該仮想空間における位置を計算する位置計算部、
前記制御点の位置が計算されると、当該計算された制御点の位置から、スキンの形状を計算するスキン計算部、
前記スキンの形状が計算されると、当該計算されたスキンの形状を、前記視点位置から前記視線方向に見た様子を表すスキン画像を、既に描画済みの画像に重ねて描画する描画部、
すべての主ボーンに対するグループに分類される制御点の位置から計算されたスキンの形状を表すスキン画像が描画されると、当該既に描画済みの画像を、画面に表示する表示部
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ボーンおよび制御点によって定義される３次元モデルからの画像生成において処理可能な制御点の数を増すのに好適な画像生成装置、画像生成方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【０００２】
従来から、仮想空間内に配置されたキャラクター等の形状を３次元モデルで表現して、３次元モデルから画像を生成する技術が提案されている。
【０００３】
このような技術では、ボーンを連結してキャラクター等の概形を定義する。ボーンは、キャラクターの骨に相当するものである。
【０００４】
これらのボーンには、依存関係がある。仮想空間に対する位置および向きが定められるボーンが基礎となり、この基礎となるボーンに連結するボーンは、基礎ボーンに対する相対的な位置および向きが定められ、位置や向きが定まったボーンに対する相対的な位置および向きを定めることにより、他のボーンが連結され……、以下この繰り返しによって、ボーン全体の形状が定められる。
【０００５】
各ボーンには制御点が固定されている。制御点は、キャラクターの皮膚の上の定められた位置に相当するものであり、ボーンの動きに連動して移動する。すなわち、ボーンに対して相対的にその位置が固定されている。
【０００６】
制御点を頂点とするポリゴン、制御点の位置の重み付き平均の位置を頂点とするポリゴン、あるいは、制御点により形状が定義されるＮＵＲＢＳ（Non Uniform Rational B Spline）曲面により、スキンの形状が定められる。スキンは、キャラクターの表面、すなわち、皮膚等に相当する。
【０００７】
スキンからキャラクター等の画像を生成する際には、ポリゴン等を、視点から遠い順（奥行きが深い順）に選択して選択したポリゴンを投影面に投影した領域を取得し、その領域に所定のテクスチャ画像を変形して貼り込むことによって、描画を行う。したがって、視点からの距離に基づいてポリゴン等をソートする必要がある。
【０００８】
ボーン同士の相対的な位置が変化すると、それにともなって制御点が移動し、スキンの形状が変形し、生成される画像も変化する。このような変形によって、キャラクター等の３次元モデルの位置や姿勢の変化をアニメーションにより表現することが可能となる。
【０００９】
これらの３次元グラフィックス処理については、画像処理コプロセッサなどを利用して高速化を図ることが多い。
【００１０】
以下に掲げる特許文献１、２、３においては、ボーンと制御点を利用して、キャラクターの各部を動作させる技術が提案されている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特許第４２８７４７９号公報
【特許文献２】特開２００９−１８７４７２号公報
【特許文献３】特許第４１９９７６４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、たとえば携帯型情報処理装置等、画像処理コプロセッサの性能が低い場合には、多数のボーン、制御点、ポリゴン等を一度に処理することができない場合がある。
【００１３】
したがって、一度に処理可能な制御点の数等に制限がある場合であっても、それを超える３次元モデルを利用して画像を生成したい、という要望は強い。
【００１４】
本発明は、上記のような課題を解決するもので、ボーンおよび制御点によって定義される３次元モデルからの画像生成において処理可能な制御点の数を増すのに好適な画像生成装置、画像生成方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【００１６】
本発明の第１の観点に係る画像生成装置は、仮想空間に配置される複数のボーンおよび複数の制御点から画像を生成する。
【００１７】
以下、あるボーンの位置および向きが他のボーンに対して相対的に定められている場合、当該あるボーンは当該他のボーンに依存する、という。
【００１８】
また、あるボーンの位置および向きが前記仮想空間に対して定められている場合、当該あるボーンは当該仮想空間に依存する、という。
【００１９】
一方、複数の制御点のそれぞれは、当該複数のボーンのいずれかに対する相対的な位置が固定される。したがって、あるボーンが仮想空間内で位置や向きを変化させると、当該ボーンに固定される制御点の位置や向きもこれに連動して変化することになる。
【００２０】
そして、当該複数のボーンの種類には、主ボーンがあり、当該主ボーンのいずれか一つは、当該仮想空間に依存し、それ以外の主ボーンのそれぞれは、他のいずれかの主ボーンに依存し、複数の制御点のそれぞれは、当該制御点の相対的な位置が固定されるボーンが主ボーンである場合、当該主ボーンに対するグループに分類される。
【００２１】
すなわち、本発明では、ボーンはいずれも主ボーンであり、制御点はいずれかの主ボーンに対するグループに分類されることを想定している。なお、後述するように、ボーンには主ボーンと副ボーンがあるような態様においても、制御点がいずれかの主ボーンに対するグループに分類される場合には、本発明の範囲に含まれる。
【００２２】
さて、本発明の画像生成装置は、記憶部、主更新部、選択部、位置計算部、スキン計算部、描画部、表示部を備え、以下のように構成する。
【００２３】
すなわち、記憶部には、当該複数のボーンのそれぞれについて、当該ボーンが依存する他のボーンに対する相対的な位置および向きが記憶される。
【００２４】
このほか、記憶部には、ボーンの種類、あるボーンに固定されている制御点の座標や、当該制御点によって形が定められるポリゴンやＮＵＲＢＳ曲面、貼り込まれるテクスチャ情報など、種々の情報が記憶される。
【００２５】
一方、主更新部は、時間の経過もしくはユーザからの指示に基づいて、記憶部に記憶されるそれぞれの主ボーンの位置および向きを更新する。
【００２６】
たとえば、ボーンおよび制御点によって定められる３次元モデルがキャラクターの外形を表すものである場合には、主ボーンの位置および向きが更新されることによって、キャラクターの位置や姿勢が変化することになる。
【００２７】
さらに、選択部は、主更新部による更新がされると、仮想空間内の視点位置と視線方向に対する主ボーンのそれぞれの奥行きに基づいて、主ボーンの順序を定め、当該決定された順序で、主ボーンを順に選択する。
【００２８】
通常の３次元グラフィックスでは、すべてのポリゴンについて視点からの奥行きを求め、視点から遠い順にすべてのポリゴンをソートして、そのポリゴンを順に描画する。一方、本発明では、主ボーンをソートして、以下に述べるように、主ボーンごとに、当該主ボーンに対するグループに分類される制御点により形成されるポリゴン等を描画する。
【００２９】
このように、ポリゴン等が互いに隠したり隠されたりする前後関係を、ポリゴン等の位置そのものを利用して判断するのではなく、そのポリゴン等を定義する制御点が属するグループに対する主ボーンの位置を利用して判断するのが、本発明の特徴の一つである。
【００３０】
さらに、位置計算部は、選択された主ボーンに対するグループに分類される制御点の当該仮想空間における位置を計算する。
【００３１】
主ボーンの順序を定める際に、各主ボーンの仮想空間における位置および向きは確定している。したがって、この情報に基づいて、各制御点の仮想空間における位置を計算することができる。
【００３２】
そして、スキン計算部は、制御点の位置が計算されると、当該計算された制御点の位置から、スキンの形状を計算する。
【００３３】
典型的には、制御点そのものを頂点とするポリゴン、制御点の位置の重み付き平均位置を頂点とするポリゴン、あるいは、制御点により形状が定義されるＮＵＲＢＳ曲面などにより、スキンの形状が定められる。
【００３４】
一方、描画部は、スキンの形状が計算されると、当該計算されたスキンの形状を、視点位置から視線方向に見た様子を表すスキン画像を、既に描画済みの画像に重ねて描画する。
【００３５】
スキンの形状が定まれば、当該スキンが描画されるべき領域が定まる。そこで、画像を記憶する記憶域のうち、スキンが描画されるべき領域に、当該スキンに対応するテクスチャを貼り込むことによって、描画を行うのである。
【００３６】
さらに、表示部は、すべての主ボーンに対するグループに分類される制御点の位置から計算されたスキンの形状を表すスキン画像が描画されると、既に描画済みの画像を、画面に表示する。
【００３７】
典型的には、表示すべき画像が完成した後、垂直同期割込を待機し、垂直同期割込が生じてからモニター画面に転送表示することによって、画面のチラつきを抑制する。
【００３８】
ここで、位置計算部、スキン計算部、描画部における処理は、画像処理コプロセッサにおいて実行されるのが典型的である。
【００３９】
本発明では、主ボーンや制御点を複数のグループに分割することで、一度の描画で考慮しなければならない主ボーンや制御点の数を抑えることができるので、主ボーンや制御点の数に制限があるような画像処理プロセッサ等を利用した場合でも、画像生成において、処理可能な制御点の数を増加させることができるようになる。
【００４０】
本発明の画像生成装置は、バッファ部をさらに備え、以下のように構成することができる。
【００４１】
すなわち、バッファ部には、あらかじめ用意された背景画像が記憶される。
【００４２】
ここで、バッファ部は、ダブルバッファリング技術によって、描画の際のチラつきを防止するために利用される。すなわち、画面に表示すべき画像の完成形がバッファ部内に形成された後に、モニター等の表示画面に当該画像が転送表示されることによって、表示のチラつきが生じなくなる。
【００４３】
一方、描画部は、スキン画像を、バッファ部に既に記憶されている画像に重ねて描画し、表示部は、バッファ部に記憶されている画像を表示する。
【００４４】
本発明によれば、画像のチラつきが生じにくくなるとともに、あらかじめ用意した背景画像に重ねてスキンを描くことによって、スキンの描画に計算時間を割き、より精細な画像を得ることができるようになる。
【００４５】
また、本発明の画像生成装置において、当該複数のボーンの種類には、主ボーンのほか、副ボーンがあり、当該副ボーンのそれぞれは、いずれかの主ボーンもしくは他のいずれかの副ボーンに依存し、複数の制御点のそれぞれは、当該制御点の相対的な位置が固定されるボーンが副ボーンである場合、当該副ボーンが依存する主ボーンもしくは当該副ボーンが依存する他の副ボーンが依存する主ボーンに対するグループに分類される。
【００４６】
上記発明では、制御点はいずれかの主ボーンに固定される状況を想定していたが、本発明では、制御点は主ボーンもしくは副ボーンのいずれかに固定される。ただし、副ボーンの依存関係をたどっていくと、最終的にはいずれかの主ボーンに至ることとなるので、副ボーンに固定された制御点であっても、いずれかの主ボーンに対するグループに分類されることになる。
【００４７】
たとえば、キャラクターの手首から先を考えた場合、主ボーンは、掌の位置や向きを定義するものであり、副ボーンは、指の位置や向きを定義するものである。また、手首から先の形状を表す制御点は、いずれも、掌の主ボーンに対するグループに分類されることになる。
【００４８】
一方、画像生成装置は、副更新部をさらに備える。ここで、副更新部は、主ボーンが選択されると、時間の経過もしくはユーザからの指示に基づいて、記憶部に記憶される当該選択された主ボーンに依存する副ボーンの位置および向きを更新する。
【００４９】
上記のように、ボーンの相対的な位置が変化すると、キャラクター等の位置や姿勢が変化する。そして、主ボーンが選択された際には、当該主ボーンの仮想空間における位置や向きは確定している。したがって、主ボーンに依存する副ボーンの位置や向きも、確定させることができる。副更新部は、この処理を行うのである。
【００５０】
さらに、位置計算部は、副ボーンの位置および向きが更新されると、選択された主ボーンに対するグループに分類される制御点の当該仮想空間における位置を計算する。
【００５１】
すなわち、位置計算部が選択された主ボーンに対するグループに分類される制御点の当該仮想空間における位置を計算するのは、副ボーンの位置および向きが更新された後とする。
【００５２】
このように構成することで、各グループに対する主ボーンこれに依存する副ボーンの位置がすべて確定した後に、描画処理が行われることになるのである。
【００５３】
本発明によれば、グループの描画順序を主ボーンによって簡易に計算する一方で、細かい形状の変化は副ボーンによって行うことで、複雑な形状の３次元モデルの画像を少ない計算量で生成することができるようになる。
【００５４】
また、本発明の画像生成装置において、選択部は、主ボーンの順序を、視点位置からの奥行き距離が遠い順に定めるように構成することができる。
【００５５】
本発明は、上記発明の好適実施形態に係るものであり、主ボーンの順序を、Ｚバッファ法と同様の手法で定めるものである。
【００５６】
本発明によれば、グループの描画順序を簡易な計算で定めることができるようになる。
【００５７】
また、本発明の画像生成装置において、主ボーンには、他の主ボーンに随伴することが設定されるものがあり、選択部は、ある主ボーンが選択され、当該選択された主ボーンに随伴する他の主ボーンがある場合、当該随伴する他の主ボーンも同時に選択するように構成することができる。
【００５８】
たとえばキャラクターを画面表示する場合、上腕のボーンと下腕のボーンが、互いに随伴し合うようにし、腿のボーンと脛のボーンが、互いに随伴し合うようにする。
【００５９】
肘や膝の折れ曲がり部分は、ポリゴンで表現した場合に、形状が捻れてしまう等の問題が生じやすい部分である。本発明では、互いに随伴し合う主ボーンに対するグループのスキンは、同時にバッファ部へ描画される。
【００６０】
したがって、本発明によれば、主ボーンの随伴関係を適切に定義することで、スキンの形状が不自然になってしまうことを防止できるようになる。
【００６１】
また、本発明の画像生成装置において、スキンは、制御点を頂点とするポリゴンであり、異なる複数のグループに属する制御点を頂点とするポリゴンは、当該複数のグループのいずれかに対する主ボーンが選択されることによって描画されるように構成することができる。
【００６２】
本発明は、制御点をポリゴンの頂点とする態様である。あるグループに属する頂点のみからなるポリゴンは、そのグループが選択された際に描画される。
【００６３】
したがって、ポリゴンの頂点に、異なるグループに属する頂点がある場合には、いずれかのグループに対する主ボーンが選択された際に、描画を行えば良い。
【００６４】
あるグループに対する主ボーンが選択された際に、当該グループに属する制御点を頂点とするポリゴンをすべて描画する、としても良い。
【００６５】
本発明は上記発明の好適実施形態に係るもので、制御点を頂点とするポリゴンによってスキンを定義することによって、適切に画像が描画できるようになる。
【００６６】
また、本発明の画像生成装置において、スキンは、制御点の位置の重み付け平均位置を頂点とするポリゴンであり、異なる複数のグループに属する制御点から定められる重み付け平均位置を頂点とするポリゴンは、当該複数のグループのいずれかに対する主ボーンが選択されることによって描画されるように構成することができる。
【００６７】
本発明は、ポリゴンの頂点の位置を、制御点の位置の重み付き平均とするもので、上記発明は、本発明の特殊な場合と考えることも可能である。
【００６８】
したがって、本発明によっても、適切に画像が描画できるようになる。
【００６９】
また、本発明の画像生成装置において、選択部による選択によって描画されるべきポリゴンの数が、所定の上限を超えない限り、選択部は、当該主ボーンの順序における次の主ボーンを同時に選択するように構成することができる。
【００７０】
本発明では、一度に処理可能なポリゴンの数（制御点の数に略比例する）を超えない限り、できるだけ多くのグループを同時に処理しようとする。
【００７１】
本発明によれば、一度に処理可能なポリゴン数や制御点の数に制限がある場合であっても、できるだけ短時間に、これらを超える３次元モデルの画像を生成することができるようになる。
【００７２】
本発明のその他の観点に係る画像生成方法は、仮想空間に配置される複数のボーンおよび複数の制御点から画像を生成する。
【００７３】
ここで、あるボーンの位置および向きが他のボーンに対して相対的に定められている場合、当該あるボーンは当該他のボーンに依存し、あるボーンの位置および向きが仮想空間に対して定められている場合、当該あるボーンは当該仮想空間に依存し、複数の制御点のそれぞれは、当該複数のボーンのいずれかに対する相対的な位置が固定され、当該複数のボーンの種類には、主ボーンがあり、当該主ボーンのいずれか一つは、当該仮想空間に依存し、それ以外の主ボーンのそれぞれは、他のいずれかの主ボーンに依存し、複数の制御点のそれぞれは、当該制御点の相対的な位置が固定されるボーンが主ボーンである場合、当該主ボーンに対するグループに分類される。
【００７４】
さらに、画像生成方法は、記憶部、主更新部、バッファ部、選択部、位置計算部、スキン計算部、描画部、表示部を有する画像生成装置によって実行される。
【００７５】
そして、記憶部には、当該複数のボーンのそれぞれについて、当該ボーンが依存する他のボーンに対する相対的な位置および向きが記憶される。
【００７６】
一方、バッファ部には、あらかじめ用意された背景画像が記憶される。
【００７７】
さらに、画像生成方法は、主更新工程、選択工程、位置計算工程、スキン計算工程、描画工程、表示工程を備え、以下のように構成する。
【００７８】
ここで、主更新工程では、主更新部が、時間の経過もしくはユーザからの指示に基づいて、記憶部に記憶されるそれぞれの主ボーンの位置および向きを更新する。
【００７９】
一方、選択工程では、主更新部による更新がされると、選択部が、仮想空間内の視点位置と視線方向に対する主ボーンのそれぞれの奥行きに基づいて、主ボーンの順序を定め、当該決定された順序で、主ボーンを順に選択する。
【００８０】
さらに、位置計算工程では、位置計算部が、選択された主ボーンに対するグループに分類される制御点の当該仮想空間における位置を計算する。
【００８１】
そして、スキン計算工程では、制御点の位置が計算されると、スキン計算部が、当該計算された制御点の位置から、スキンの形状を計算する。
【００８２】
一方、描画工程では、スキンの形状が計算されると、描画部が、当該計算されたスキンの形状を、視点位置から視線方向に見た様子を表すスキン画像を、バッファ部に既に記憶されている画像に重ねて描画する。
【００８３】
さらに、表示工程では、すべての主ボーンに対するグループに分類される制御点の位置から計算されたスキンの形状を表すスキン画像がバッファ部に描画されると、表示部が、バッファ部に記憶されている画像を、画面に表示する。
【００８４】
本発明のその他の観点に係るプログラムは、コンピュータを上記の画像生成装置の各部として機能させるように構成する。
【００８５】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【００８６】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００８７】
本発明によれば、ボーンおよび制御点によって定義される３次元モデルからの画像生成において処理可能な制御点の数を増すのに好適な画像生成装置、画像生成方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【００８８】
【図１】典型的な情報処理装置の概要構成を示す模式図である。
【図２】本実施形態の処理対象となるモデルのボーン、制御点、ポリゴンの様子を示す説明図である。
【図３】主ボーンと視点と間の距離を定める手法を示す説明図である。
【図４】本実施形態に係る画像生成装置の概要構成を示す説明図である。
【図５】画像生成処理の制御の流れを示すフローチャートである。
【図６】バッファ部に描画がされていく様子を示す説明図である。
【図７】バッファ部に描画がされていく様子を示す説明図である。
【図８】バッファ部に描画がされていく様子を示す説明図である。
【図９】バッファ部に描画がされていく様子を示す説明図である。
【図１０】随伴関係を考慮したグループの様子を示す説明図である。
【発明を実施するための形態】
【００８９】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。
【００９０】
したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例１】
【００９１】
図１は、プログラムを実行することにより、本実施形態の画像生成装置として機能しうる典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【００９２】
本図に示す情報処理装置１０１は、携帯可能なマルチメディア端末であり、ＣＰＵ（Central Processing Unit）１０２、ＲＡＭ（Random Access Memory）１０３、ＲＯＭ（Read Only Memory）１０４、入力装置１０５、画像処理部１０６、液晶ディスプレイ１０７、音声処理部１０８、ヘッドホン１０９、カセットリーダ１１０、ＲＯＭカセット１１１、外部メモリ１１２、ＲＴＣ（Real Time Clock）１１３、無線ＬＡＮ（Local Area Network）インターフェース１１４、カメラ１１５を備える。
【００９３】
本実施形態に係るプログラムが記録されたＲＯＭカセット１１１を、情報処理装置１０１に装着することによって、本実施形態に係る画像生成装置が実現される。
【００９４】
ここで、ＣＰＵ  １０２は、情報処理装置１０１の各部を制御するとともに、各種の演算処理や判断処理を行う。
【００９５】
情報処理装置１０１に電源が投入されると、ＣＰＵ  １０２は、ＲＯＭ  １０４に記録されたＩＰＬ（Initial Program Loader）を実行し、その処理の過程で、カセットリーダ１１０を介して接続されたＲＯＭカセット１１１に記録されたプログラムに処理を移行する。
【００９６】
情報処理装置１０１で実行されるゲームプログラムやマルチメディア情報再生プログラムは、ＲＯＭカセット１１１によって提供されるのが一般的であるが、ＲＯＭ  １０４内にあらかじめ用意しておくことも可能である。
【００９７】
また、ＲＯＭ  １０４内には、ＢＩＯＳ（Basic Input Output System）と呼ばれるプログラム群が用意されており、入力装置１０５や画像処理部１０６、音声処理部１０８の制御を行うことができる。
【００９８】
ＲＡＭ  １０３は、一時的な情報を記憶するための領域であり、外部メモリ１１２は、不揮発な情報を記憶するための領域である。外部メモリ１１２としては、ハードディスクなど、主として情報処理装置１０１に内蔵されるもののほか、各種のメモリカードなど、情報処理装置１０１に抜挿されるものを利用しても良い。
【００９９】
入力装置１０５は、各種のボタンやキーボード、マウス、ジョイスティック等により実現されるのが一般的であるが、液晶ディスプレイ１０７と一体に形成されたタッチスクリーンを入力装置１０５として利用することも可能である。
【０１００】
画像処理部１０６は、ＣＰＵ  １０２の制御の下、各種の文字情報や画像情報を液晶ディスプレイ１０７に表示させるものであり、一般には、垂直同期割込周期（典型的には、３０分の１秒や６０分の１秒程度である。）ごとに、ＲＡＭ  １０３内に用意されたフレームバッファに記憶された画素情報を液晶ディスプレイ１０７の各画素に反映させる。
【０１０１】
ユーザからの指示入力は、液晶ディスプレイ１０７に表示されたカーソルを入力装置１０５の移動ボタン操作により移動して、所望のメニュー項目にカーソルを合わせ、決定ボタン操作によって当該メニュー項目を選択するのが一般的であるが、タッチスクリーンを利用する場合にはカーソルは不要である。また、入力装置１０５の各ボタンに割り当てられる機能があらかじめ決まっている場合には、液晶ディスプレイ１０７に対する表示は、必ずしも必要ない。
【０１０２】
音声処理部１０８は、ＲＡＭ  １０３やＲＯＭ  １０４、ＲＯＭカセット１１１、外部メモリ１１２に用意された音声データをヘッドホン１０９に出力する。音声データとしては、音声の波形データをディジタル化したＰＣＭ（Pulse Code Modulation）データや、ＰＣＭデータを圧縮してサイズを小さくしたＭＰ３（MPeg audio layer-3）データ等を利用することが可能であるほか、ＭＩＤＩ（Music Instruction Data Interface）データのように、音高、音長、音量、音色の種類を定義するデータを用意し、これにしたがって、あらかじめ用意された音源波形データを適宜選択・変形して再生する手法を採用しても良い。
【０１０３】
ＲＴＣ  １１３は、現在の日時を計測するもので、情報処理装置１０１を初めて利用する際に時刻合わせを行うのが一般的であるが、無線ＬＡＮインターフェース１１４を介してＮＴＰ（Network Time Protocol）サーバに接続することで、自動的に時刻合わせを行うような態様を採用することも可能である。
【０１０４】
また、アラーム割込を発生させる機能を持つＲＴＣ  １１３もある。設定された時刻になるとアラーム割込が発生して、ＣＰＵ  １０２は、現在実行中のプログラムを一時中断し、あらかじめ設定された割込ハンドラを実行してから、中断したプログラムを再開する。
【０１０５】
無線ＬＡＮインターフェース１１４は、自宅や会社、街角に用意された無線ＬＡＮアクセスポイントを介してインターネットに接続したり、近傍に配置された他の情報処理装置１０１と、アドホックに通信路を確立し、１対１で通信を行うなどが可能である。
【０１０６】
カメラ１１５は、情報処理装置１０１によってディジタルカメラの機能を実現するものであり、ＣＣＤ（Charge Coupled Device）やＣＭＯＳ（Complementary Metal Oxide Semiconductor）撮像素子などの技術を適用することが可能である。撮影された画像は、一時的にＲＡＭ  １０３に展開された後、外部メモリ１１２等に保存される。
【０１０７】
このほか、ビジネス用コンピュータ、携帯電話、ＰＤＡ（Personal Data Assistant）、携帯ゲーム装置、多機能テレビジョン装置、ＤＶＤ（Digital Versatile Disc）プレイヤー、携帯音楽プレイヤーなどを、本発明の画像生成装置が実現される情報処理装置として採用することもできる。
【０１０８】
（画像生成のためのモデル）
図２は、本実施形態の処理対象となるモデルのボーン、制御点、ポリゴンの様子を示す説明図である。以下、本図を参照して説明する。
【０１０９】
本図に示すモデル２０１は、以下の主ボーン２０２によって、キャラクターの位置や姿勢、外形が表現されている。
（１）頭部を表す主ボーン２０２ａ
（２）胴体上部を表す主ボーン２０２ｂ
（３）右上腕を表す主ボーン２０２ｃならびに右下腕を表す主ボーン２０２ｄ
（４）左上腕を表す主ボーン２０２ｅならびに左下腕を表す主ボーン２０２ｆ
（５）右掌を表す主ボーン２０２ｇ
（６）左掌を表す主ボーン２０２ｈ
（７）胴体下部を表す主ボーン２０２ｉ
（８）右腿を表す主ボーン２０２ｊならびに右脛を表す主ボーン２０２ｋ
（９）左腿を表す主ボーン２０２ｌならびに左脛を表す主ボーン２０２ｍ
（１０）右足底を表す主ボーン２０２ｎ
（１１）左足底を表す主ボーン２０２ｏ
【０１１０】
主ボーン２０２は、たとえば、右上腕の主ボーン２０２ｃと右下腕の主ボーン２０２ｄのように、その端点同士が連結されるか、たとえば胴体上部の主ボーン２０２ｂと右上腕の主ボーン２０２ｃのように、一方の主ボーン２０２に対する位置が固定された連結点（右肩の位置に相当する。）に、他方の主ボーン２０２の端点が連結されている。
【０１１１】
さらに、モデル２０１では、右手の指を表す複数の副ボーン２０３ｇ、および、左手の指を表す複数の副ボーン２０３ｈによって、キャラクターの細かな姿勢が表現される。
【０１１２】
副ボーン２０３（本実施形態では指の各関節のボーン）は、直接いずれかの主ボーン２０２（本実施形態では掌のボーン）に連結されるか、他の副ボーン２０３を介して間接的に主ボーン２０２に連結されている。この際にも、連結点は、ボーン２０２、２０３上にあっても良いし、ボーン２０２、２０３に対する固定された位置にあっても良い。
【０１１３】
互いに連結し合うボーン２０２、２０３同士は、その相対的な位置および向きの関係が定められることで、キャラクターの全体の姿勢が定められる。
【０１１４】
また、主ボーン２０２のいずれか（典型的には、胴体上部を表す主ボーン２０２ｂ）の仮想空間内における位置および向きを定めることで、キャラクターの全体の位置および向きが定められる。以下、理解を容易にするため、当該主ボーン２０２は、仮想空間に依存する、ということとする。
【０１１５】
さらに、理解を容易にするため、あるボーン２０２、２０３に連結されてこれに対する相対的な位置および向きが定められる他のボーン２０２、２０３があるとき、後者は前者に依存し、前者は後者に依存される、といい、前者を親ボーン、後者を子ボーンということとする。
【０１１６】
たとえば、胴体上部の主ボーン２０２ｂに右上腕の主ボーン２０２ｃが依存し、右上腕の主ボーン２０２ｃに右下腕の主ボーン２０２ｄが依存し、右下腕の主ボーン２０２ｄに右掌の主ボーン２０２ｇが依存し、右掌の主ボーン２０２ｇに右手指の副ボーン２０３ｇが依存する、ということになる。右手指の副ボーン２０３ｇ同士も、順に依存関係が定義されており、右掌の主ボーン２０２ｇに近い側に、遠い側が依存することになっている。
【０１１７】
このように考えると、副ボーン２０３はいずれも、いずれか一つの主ボーン２０２に依存することとなる。
【０１１８】
これらの主ボーン２０２および副ボーン２０３は、従来の３次元グラフィックス技術におけるボーンと同じ役割を果たし、そのそれぞれには、制御点２０４が固定されている。本図では、理解を容易にするため、一部の制御点２０４のみが図示されている。
【０１１９】
さらに、特許文献１に開示するように、口や目蓋を開閉するためのボーンとして副ボーン２０３を採用したり、特許文献３に開示するように、肘や膝など、くびれが生じやすい部分の太さを維持するためのボーンとして副ボーン２０３を採用することも可能である。
【０１２０】
また、制御点２０４は、主ボーン２０２や副ボーン２０３のいずれかに固定されて、その固定先に連動して、仮想空間内を移動する。
【０１２１】
本実施形態では、制御点２０４は、ポリゴン２０５の頂点となっており、このポリゴン２０５がモデル２０１の表面を表すスキンを形成している。
【０１２２】
ここで、ある主ボーン２０２に固定されている制御点２０４、および、当該主ボーン２０２に依存する副ボーン２０３に固定されている制御点２０４を、「当該主ボーン２０２に対するグループに属する制御点２０４」あるいは省略して、「当該主ボーン２０２に属する制御点２０４」と呼ぶこととする。
【０１２３】
たとえば、胴体上部の主ボーン２０２ｂに属する制御点２０４を頂点とするポリゴン２０５によって、胴体上部の形状が定められ、右掌の主ボーン２０２ｇに対するグループに属する制御点２０４を頂点とするポリゴン２０５によって、右手の掌および指の形状が定められるのである。
【０１２４】
なお、制御点２０４の座標をそのままポリゴン２０５の頂点とするのではなく、ポリゴン２０５の頂点のそれぞれに制御点２０４を１つ以上、重みとともに割り当て、割り当てられた制御点２０４の位置のその重み付き平均の位置を、ポリゴン２０５の頂点とする手法も従来から広く用いられており、このような態様を採用することも可能である。
【０１２５】
また、ポリゴン２０５によってスキンの形状を定義するのではなく、制御点２０４を、ＮＵＲＢＳ曲面の形状を定めるための制御点として利用することによって、モデル２０１を表面を滑らかに表現する態様を採用しても良い。
【０１２６】
さて、上記（３）（４）（８）（９）には、各２つの主ボーン２０２が掲げられているが、当該各２つの主ボーン２０２は、互いに随伴するものとする。ここで、互いに随伴する主ボーン２０２とは、当該主ボーン２０２によって定められる制御点が互いに密接に関連し合うような場合に適切である。本実施形態では、肘や膝などのスキン形状を、上記のように、特許文献３に開示される技術等を適用することで適切に定めるため、随伴関係を定めることとしている。
【０１２７】
なお、モデル２０１により表現される各種のキャラクター等、仮想空間内で位置や向き、形状を変化させるオブジェクトの種類によっては、副ボーン２０３や随伴関係が一切ないこととすることも可能であり、これらの態様も、本発明の範囲に含まれる。
【０１２８】
このようにして、ボーン２０２、２０３、制御点２０４、ポリゴン２０５によって、モデル２０１が定義される。
【０１２９】
このようなモデル２０１に対して、従来の３次元グラフィックスでは、すべてのポリゴン２０５を、視点からの距離でソートして、遠いポリゴン２０５から順に描画するＺバッファの技術を用いることで、ポリゴン２０５同士が隠し隠される関係を適切に画像に反映させることとしていた。
【０１３０】
一方、本実施形態では、ポリゴン２０５を、当該ポリゴン２０５が属する主ボーン２０２のグループによって分類する。本実施形態では、上記のように、１１個のグループに、ポリゴン２０５が分類されることになる。
【０１３１】
そして、主ボーン２０２を視点からの距離でソートする。たとえば、図２に示す例で、視点から遠い順に主ボーン２０２を並べると、概ね以下のようになる。
（１）左掌の主ボーン２０２ｈ
（２）左下腕の主ボーン２０２ｆ
（３）左足底の主ボーン２０２ｏ
（４）左脛の主ボーン２０２ｍ
（５）左上腕の主ボーン２０２ｅ
（６）左腿の主ボーン２０２ｌ
（７）頭部の主ボーン２０２ａ
（８）胴体上部の主ボーン２０２ｂ
（９）胴体下部の主ボーン２０２ｉ
（１０）右腿の主ボーン２０２ｊ
（１１）右脛の主ボーン２０２ｋ
（１２）右上腕の主ボーン２０２ｃ
（１３）右下腕の主ボーン２０２ｄ
（１４）右足底の主ボーン２０２ｎ
（１５）右掌の主ボーン２０２ｇ
【０１３２】
そして、視点から遠い主ボーン２０２から順に主ボーン２０２を選択して、以下の処理を繰り返す。上記の例では、主ボーン２０２は１５個あるから、以下の処理は１５回繰り返されることになる。
【０１３３】
すなわち、選択された主ボーン２０２のグループに属するポリゴン２０５のみを対象に、Ｚバッファの技術を用いる。すなわち、当該グループに属するポリゴン２０５のみを、視点からの距離でソートして、遠いポリゴン２０５から順に描画する。
【０１３４】
たとえば、繰り返しの初回では、視点から最も遠い左掌の主ボーン２０２ｈが選択される。そして、左掌の主ボーン２０２ｈや左手の指を表す副ボーン２０２に基づいて、左手の形状を表す制御点２０４の位置が計算される。
【０１３５】
さらに、計算された制御点２０４の位置に基づいて、左の掌や左の手の指の形状を表すポリゴン２０５の形状が計算され、描画されることにって、左手首から先のスキンが形成されるのである。
【０１３６】
以下、繰り返しの２回目は、左下腕の主ボーン２０２ｆに基づいて、左肘から左手首までが描画され、繰り返しの３回目は、左足底の主ボーン２０２ｏに基づいて、左足底が描画され……のように、グループ単位でポリゴン２０５を描画する処理が繰り返される。
【０１３７】
本実施形態では、ポリゴン２０５全体をまとめて処理するのではなく、グループ単位に分割して処理をする。このため、一度に処理しなければならないボーン２０２、２０３の数、制御点２０４の数、ポリゴン２０５の数を抑制することができる。
【０１３８】
したがって、画像処理部１０６を構成する画像処理コプロセッサの能力が低い場合であっても、多数の制御点２０４やポリゴン２０５からなる画像を生成することが可能となるのである。
【０１３９】
なお、理解を容易にするため、ここでは、主ボーン２０２のグループ単位で描画を繰り返すこととしていたが、主ボーン２０２に随伴関係を導入し、あるグループと別のグループ（たとえば、左下腕の主ボーン２０２ｆと左上腕の主ボーン２０２ｅとを随伴させる等。）が同時に描画されるように構成した方が、ポリゴン描画の矛盾の発生する可能性を低くしたり、画像処理コプロセッサの能力をできるだけ引き出すという点で好ましい場合も多い。以下では、このような随伴関係を導入した例について説明する。
【０１４０】
上記のように、本実施形態では、主ボーン２０２と視点との遠近情報を用いて、ポリゴン２０５のグループを描画する順序を定める。以下では、主ボーン２０２と視点との距離の求め方について説明する。
【０１４１】
図３は、主ボーン２０２と視点と間の距離を定める手法を示す説明図である。以下、本図を参照して説明する。
【０１４２】
本図では、２つの主ボーン２０２ｐ、２０２ｑと、視点３０１と、が図示されている。
【０１４３】
本図に示す主ボーン２０２ｐ、２０２ｑは、連結点３０２で連結されている。
【０１４４】
また、主ボーン２０２ｐ、２０２ｑは、その中央に中心点３０３ｐ、３０３ｑが定められている。
【０１４５】
２つの主ボーン２０２ｐ、２０２ｑのいずれがより視点３０１に近いか、は、以下のような判断基準で定めることができる。
【０１４６】
第１の基準は、主ボーン２０２ｐ、２０２ｑの中心点３０３ｐ、３０３ｑのそれぞれと、視点３０１と、の間の距離を採用する手法である。
【０１４７】
すなわち、視点３０１と中心点３０３ｐの距離３０５ｐ、ならびに、視点３０１と中心点３０３ｑの距離３０５ｑを、ユークリッド距離やマンハッタン距離などによって計算する。そして、主ボーン２０２ｐ、２０２ｑのうち、その中心点について計算された距離が長い方が視点３０１から遠く、短い方が近い、とするものである。
【０１４８】
第２の基準は、遠近を比較したい２つの主ボーン２０２が互いに連結されているときに利用できる基準である。
【０１４９】
すなわち、以下の２つの角度を比較する。
（ｐ）視点３０１から連結点３０２を経て中心点３０３ｐに至る角度Ｐと、
（ｑ）視点３０１から連結点３０２を経て中心点３０３ｑに至る角度Ｑ。
【０１５０】
角度Ｐと角度Ｑは、視点３０１に対して、主ボーン２０２ｐ、２０２ｑがどのような向きになっているか、を示す値である。
【０１５１】
一つの連結点３０２で連結されている２つの主ボーン２０２ｐ、２０２ｑは、視点３０１からの距離にあまり差がない、と考えられる。したがって、一方、主ボーン２０２ｐ、２０２ｑは、長さが異なることが一般的であるので、中心点３０３ｐ、３０３ｑと視点３０１との距離を単純に採用すると、奥行きの順序の判定を誤ることもある。
【０１５２】
第２の基準では、互いに連結された主ボーン２０２ｐ、２０２ｑの長さが異なる場合であっても、簡易にその奥行きの前後関係を判定することができる。
【０１５３】
上記のように、第１の基準は、任意の主ボーン２０２の奥行き方向の前後関係を判定するのに採用することができ、第２の基準は、互いに連結された主ボーン２０２の奥行き方向の前後関係を判定するのに採用することができる。
【０１５４】
また、第２の基準に基づいて直接連結された主ボーン２０２同士の順序を決めた後、直接連結がされていないため、第２の基準だけでは前後関係が定まらない主ボーン２０２同士については、第１の基準に基づいて奥行き順序を定める、という手法もありうる。
【０１５５】
このように、モデル２０１の形状や適用されるアプリケーションによって、第１の基準のみを採用することとしても良いし、両基準を適宜採用することとしても良い。
【０１５６】
以下では、これらの手法を用いる画像生成装置と、これが実行する画像生成処理の詳細について説明する。
【０１５７】
（画像生成装置）
図４は、本実施形態に係る画像生成装置の概要構成を示す説明図である。以下、本図を参照して説明する。
【０１５８】
本実施形態に係る画像生成装置４０１は、情報処理装置１０１においてＣＰＵ  １０２が所定のプログラムを実行することによって実現される。
【０１５９】
ここで、画像生成装置４０１は、記憶部４０２、主更新部４０３、バッファ部４０４、選択部４０５、副更新部４０６、位置計算部４０７、スキン計算部４０８、描画部４０９、表示部４１０を備える。
【０１６０】
以下まず、各部の機能について簡単に説明し、その後に、画像生成装置４０１が実行する処理の流れに沿って、各部の機能の詳細について、説明する。
【０１６１】
まず、記憶部４０２は、ＲＯＭ  カセット１１１等に記憶される情報を読み出したＲＡＭ  １０３によって実現され、記憶部４０２には、モデル２０１の各種の情報が記憶される。
【０１６２】
一方、バッファ部４０４は、ＲＡＭ  １０３もしくは画像処理部１０６内に用意された記憶域により実現され、液晶ディスプレイ１０７に表示すべき画像を生成するための一時的な記憶域として利用される。
【０１６３】
さらに、主更新部４０３は、ＣＰＵ  １０２により、もしくはＣＰＵ  １０２の制御下で画像処理部１０６が動作することにより実現され、モデル２０１を構成する主ボーン２０２の位置や向きを変化させる。
【０１６４】
副更新部４０６は、ＣＰＵ  １０２により、もしくはＣＰＵ  １０２の制御下で画像処理部１０６が動作することにより実現され、モデル２０１を構成する副ボーン２０３の位置や向きを変化させる。
【０１６５】
位置計算部４０７は、ＣＰＵ  １０２の制御下で画像処理部１０６が動作することにより実現され、モデル２０１を構成する制御点２０４の位置を、主ボーン２０２や副ボーン２０３の位置や向きに基づいて計算する。
【０１６６】
スキン計算部４０８は、ＣＰＵ  １０２の制御下で画像処理部１０６が動作することにより実現され、モデル２０１を構成するポリゴン２０５の位置や形状を、制御点２０４の位置に基づいて計算する。
【０１６７】
描画部４０９は、ＣＰＵ  １０２の制御下で画像処理部１０６が動作することにより実現され、位置や形状が計算されたポリゴン２０５が、投影される領域を求め、当該ポリゴン２０５に対応付けられるテクスチャを、当該領域に変形させながら貼り込む処理を行う。
【０１６８】
選択部４０５は、視点３０１からの距離によって主ボーン２０２をソートして、視点３０１から遠い順に主ボーン２０２を順に選択する。
【０１６９】
そして、副更新部４０６、位置計算部４０７、スキン計算部４０８、描画部４０９による処理は、選択された主ボーン２０２に依存する副ボーン２０３、選択された主ボーン２０２に属する制御点２０４、当該制御点２０４を頂点とするポリゴン２０５のみについて行う。
【０１７０】
このように、本実施形態では、全ポリゴン２０５について一括して描画を行なうのではなく、ポリゴン２０５が属するグループごとに、順次描画を行う。
【０１７１】
すなわち、副更新部４０６、位置計算部４０７、スキン計算部４０８、描画部４０９における処理は、選択された主ボーン２０２に対するグループ単位で行われることになる。
【０１７２】
このため、画像処理部１０６における画像処理コプロセッサの描画能力に制限がある場合であっても、ボーン２０２、２０３の数、制御点２０４の数やポリゴン２０５の数がその制限を超えるようなモデル２０１の画像を、生成することが可能となるのである。
【０１７３】
表示部４１０は、画像処理部１０６によって実現され、モデル２０１に対する画像が完成した後、垂直同期割込が生じるまで待機して、その後、バッファ部４０４に記憶された画像を液晶ディスプレイ１０７に転送表示する。
【０１７４】
以下、画像生成装置４０１で実行される画像生成処理について詳細に説明する。図５は、画像生成処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【０１７５】
本実施形態では、本処理は、ＣＰＵ  １０２が、ＲＯＭカセット１１１に記録されたプログラムを実行することによって実現される。
【０１７６】
本処理が開始されると、ＣＰＵ  １０２は、ＲＡＭ  １０３に記憶される情報を初期化する（ステップＳ５０１）。ここで、ＲＡＭ  １０３には、以下のような情報が記憶される。
（ａ）各主ボーン２０２の依存先（連結先）、依存先に対する相対的な位置および向き、主ボーン２０２の長さ、主ボーン２０２の随伴先。
（ｂ）各副ボーン２０３の連結先、依存先、連結先に対する相対的な位置および向き、副ボーン２０３の長さ。
（ｃ）各制御点２０４が固定されるボーン２０２、２０３がいずれであるか、当該制御点２０４がならびに固定される相対的な位置、当該制御点２０４が属するグループに対する主ボーン２０２はいずれであるか。
（ｄ）各ポリゴン２０５が、制御点２０４のいずれを頂点とするか。
（ｅ）モデル２０１の背景を表す背景画像。
（ｆ）モデル２０１が配置される仮想空間内における仮想時刻。
【０１７７】
すなわち、ＲＡＭ  １０３は、記憶部４０２として機能する。
【０１７８】
これらの情報の初期値は、ＲＯＭカセット１１１もしくは外部メモリ１１２に記録されるのが典型的であるが、乱数によって生成したり、無線ＬＡＮインターフェース１１４を介して取得したり、入力装置１０５を介したユーザからの指示に基づいて設定する等、種々の手法が考えられる。
【０１７９】
ついで、ＣＰＵ  １０２は、ＲＡＭ  １０３に記憶されている情報のうち、主ボーン２０２の相対的な位置や向きの情報を、仮想時刻に応じて更新することによって、各主ボーン２０２の仮想空間における絶対的な位置や向きを計算、更新する（ステップＳ５０２）。すなわち、ＣＰＵ  １０２は、主更新部４０３として機能する。なお、この計算に、画像処理部１０６が有する画像処理コプロセッサの機能を利用しても良い。
【０１８０】
モデル２０１の設計にも依存するが、一般には、主ボーン２０２の数は副ボーン２０３の数に比べて少ない場合がほとんどであり、ステップＳ５０２における計算は短時間で済む。
【０１８１】
さらに、ＣＰＵ  １０２は、各主ボーン２０２の絶対的な位置・向きに基づいて、視点３０１からの奥行き距離を計算し、遠い順にソートする（ステップＳ５０３）。
【０１８２】
ついで、ＣＰＵ  １０２は、画像処理部１０６を制御して、バッファ部４０４に、所定の背景画像を描画する（ステップＳ５０４）。この背景画像は、仮想空間内におけるモデル２０１の背景の様子を表すものである。モデル２０１の背景を、ポリゴンを用いて形成する手法を採用することもできるが、本実施形態では、ポリゴン処理機能をできるだけモデル２０１描画に利用したいため、背景画像は、芝居の大道具における描き割りのように、１枚の絵をあらかじめ用意している。
【０１８３】
バッファ部４０４は、ＲＡＭ  １０３内に用意されることもあるし、描画用記憶域として、画像処理部１０６内に用意される場合もある。
【０１８４】
そして、ＣＰＵ  １０２は、ソートされた順序を参照して、すべての主ボーン２０２が選択されるまで以下の処理を繰り返す（ステップＳ５０５〜）。
【０１８５】
まず、ＣＰＵ  １０２は、未だ選択されていない主ボーン２０２のうち、視点３０１から最も遠い主ボーン２０２を選択する（ステップＳ５０６）。この際に、その主ボーン２０２に随伴する他の主ボーン２０２があれば当該随伴する主ボーン２０２も合わせて選択する。
【０１８６】
ついで、ＣＰＵ  １０２は、未だ選択されていない残りの主ボーン２０２のうち、視点３０１から最も遠い主ボーン２０２（すなわち、次に遠い主ボーン２０２）を取得する（ステップＳ５０７）。この際に、取得された主ボーン２０２に随伴する他の主ボーン２０２があれば当該随伴する主ボーン２０２も合わせて取得する。
【０１８７】
そして、ＣＰＵ  １０２は、選択済みの主ボーン２０２の数、当該選択済みの主ボーン２０２に依存する副ボーン２０３の数、当該選択済みの主ボーン２０２に対するグループに属する制御点２０４の数、当該選択済みの主ボーン２０２に属する制御点２０４を頂点とするポリゴン２０５の数に、ステップＳ５０６において取得された主ボーン２０２の数、当該取得された主ボーン２０２に依存する副ボーン２０３の数、当該取得された主ボーン２０２に対するグループに属する制御点２０４の数、当該取得された主ボーン２０２に属する制御点２０４を頂点とするポリゴン２０５の数を、それぞれ加算したものが、画像処理部１０６が有する画像処理コプロセッサの制限内か否かを調べる（ステップＳ５０８）。
【０１８８】
制限内であれば（ステップＳ５０８；Ｙｅｓ）、ＣＰＵ  １０２は、当該取得された主ボーン２０２をさらに選択して（ステップＳ５０９）、ステップＳ５０７に戻る。
【０１８９】
一方、制限を超えていれば（ステップＳ５０８；Ｎｏ）、ＣＰＵ  １０２は、ステップＳ５１１に進む。この場合、取得された主ボーン２０２は、今回は選択されず、次の繰り返しで選択されて描画されることになる。
【０１９０】
このように、ＣＰＵ  １０２は、選択部４０５として機能する。
【０１９１】
このように制限を設けることで、ここで選択された主ボーン２０２ならびに当該主ボーン２０２に係る副ボーン２０３、制御点２０４、ポリゴン２０５は、画像処理部１０６が有する画像処理コプロセッサが一度にまとめて、一回の垂直同期周期内にて描画処理できるだけの数に限ることができる。したがって、携帯型端末など、処理能力が低い情報処理装置１０１であっても、描画を行うことが可能である。
【０１９２】
ついで、ＣＰＵ  １０２は、選択された主ボーン２０２に依存する副ボーン２０３の位置や向きのうち、選択された主ボーン２０２に依存するものの相対的な位置や向きの情報を、仮想時刻に応じてＲＡＭ  １０３において更新するとともに、当該副ボーン２０３の仮想空間における絶対的な位置や向きを計算する（ステップＳ５１１）。
【０１９３】
これらのボーン演算は、座標変換が必要となるため、画像処理コプロセッサに演算を任せるのが一般的であるが、本実施形態では、副ボーン２０３の位置等の計算をグループ単位に分割して行うことで、１回あたりの計算負荷の低減を図ることができる。
【０１９４】
このように、ＣＰＵ  １０２の制御の下、画像処理部１０６は、副更新部４０６として機能する。
【０１９５】
さらに、ＣＰＵ  １０２は、選択されたグループに属する各制御点２０４の仮想空間における絶対的な位置を、主ボーン２０２の副ボーン２０３の位置および向きに基づいて、計算する（ステップＳ５１２）。
【０１９６】
これらの位置計算演算も座標変換が必要となるため、画像処理コプロセッサに演算を任せるのが一般的であるが、本実施形態では、制御点２０４の位置等の計算をグループ単位に分割して行うことで、１回あたりの計算負荷の低減を図ることができる。
【０１９７】
このように、ＣＰＵ  １０２の制御の下、画像処理部１０６は、位置計算部４０７として機能する。
【０１９８】
ついで、ＣＰＵ  １０２の制御の下、画像処理部１０６は、選択されたグループに属する各制御点２０４を頂点とする各ポリゴン２０５を視点３０１からの距離でソートして（ステップＳ５１３）、視点３０１からの距離が遠い順に以下の処理を繰り返す（ステップＳ５１４〜）。これは、いわゆるＺバッファ法による描画に相当する。
【０１９９】
すなわち、画像処理部１０６は、処理対象となるポリゴン２０５の形状を計算し、バッファ部４０４において投影される領域を計算する（ステップＳ５１５）。
【０２００】
この際には、仮想空間内に配置される視点３０１の位置や、視線の方向などが参照され、平行投影や透視投影によって、領域計算がなされる。
【０２０１】
ついで、画像処理部１０６は、当該ポリゴン２０５に割り当てられたテクスチャ情報をバッファ部４０４内の当該計算された領域に貼り込み、描画を行う（ステップＳ５１６）。
【０２０２】
この処理を、選択された主ボーン２０２に属するポリゴン２０５すべてについて、ステップＳ５１４以降の処理を視点３０１から遠い順に繰り返すのである（ステップＳ５１７）。
【０２０３】
したがって、画像処理部１０６は、スキン計算部４０８ならびに描画部４０９として機能する。
【０２０４】
このようにして、選択された主ボーン２０２に係るグループの描画が終了すると、１回の垂直同期周期で画像処理コプロセッサができる能力は使い尽くしたことになる。
【０２０５】
そこで、ＣＰＵ  １０２は、垂直同期割込を待機する（ステップＳ５１９）。この待機中には、適宜他の計算処理を、コルーチン的に実行することが可能である。
【０２０６】
そして、すべての主ボーン２０２が選択されるまでステップＳ５０５以降の処理を繰り返す（ステップＳ５２０）。
【０２０７】
図６、図７、図８、図９は、ステップＳ５０５〜ステップＳ５２０の処理を繰り返すことによって、バッファ部４０４に記憶される画像がどのように更新されていくか、を示す説明図である。以下、本図を参照して説明する。
【０２０８】
図６には、当初の背景画像５０１のみが描画されている様子が示されている。
【０２０９】
図７は、繰り返しの最初が完了した後を表す画像で、図６の背景画像５０１の上に、
（ｂ１）主ボーン２０２ｅ、２０２ｆに属するポリゴン２０５により形成される左腕のスキン６０１ｅ、６０１ｆ
（ｂ２）主ボーン２０２ｈに属するポリゴン２０５により形成される左掌のスキン６０１ｈ
（ｂ３）主ボーン２０２ｌ、２０２ｍに属するポリゴン２０５により形成される左腿のスキン６０１ｌ、左脛のスキン６０１ｍ
（ｂ４）主ボーン２０２ｏに属するに属するポリゴン２０５により形成される左足底のスキン６０１ｏ
が描画されている。
【０２１０】
図８は、次の段階の描画が完了した後を表す画像で、図７の画像の上に、
（ｃ１）主ボーン２０２ａに属するポリゴン２０５により形成される頭部のスキン６０１ａ
（ｃ２）主ボーン２０２ｂに属するポリゴン２０５により形成される胴体上部のスキン６０１ｂ
（ｃ２）主ボーン２０２ｉに属するポリゴン２０５により形成される胴体下部のスキン６０１ｉ
が描画されている。
【０２１１】
図９は、最後の段階の描画が完了した後を表す画像で、図８の画像の上に、
（ｄ１）主ボーン２０２ｃ、２０２ｄに属するポリゴン２０５により形成される右腕のスキン６０１ｃ、６０１ｄ、
（ｄ２）主ボーン２０２ｇに属するポリゴン２０５により形成される右掌のスキン６０１ｇ、
（ｄ３）主ボーン２０２ｊ、２０２ｋに属するポリゴン２０５により形成される右腿のスキン６０１ｊ、右脛のスキン６０１ｋ
（ｂ４）主ボーン２０２ｎに属するポリゴン２０５により形成される右足底のスキン６０１ｎ、
が描画されている。
【０２１２】
１回の描画で処理対象となるポリゴンは、Ｚバッファ法により視点３０１からの距離でソートされて描画されるので、その奥行き方向の位置関係に矛盾が生じることはない。
【０２１３】
また、モデル２０１において、主ボーン２０２がとりうる位置や向きには、生物の関節などを模したり、主ボーン２０２の交差を避けるために、制限が課せられていることが多い。このため、グループ同士の奥行き方向の位置関係についても、本実施形態の手法に基づけば、実用上は、矛盾が生じることはない、と考えられる。
【０２１４】
本実施形態では、１５個の主ボーン２０２のそれぞれのグループに対してポリゴン２０５が割り当てられるため、グループの総数は１５個となる。しかしながら、本実施形態は、右腕、右脚、左腕、左脚に随伴関係を導入している。このため、実質的なグループの数は、１１個となっている。
【０２１５】
図１０は、随伴関係を考慮したグループの様子を示す説明図である。以下、本図を参照して説明する。
【０２１６】
モデル２０１のスキンは、本図の太線で描かれているように、実質的に１１個のグループ２０９に分類されている。各グループ２０９には、主ボーン２０２が１つ以上割り当てられており、複数の主ボーン２０２が割り当てられるグループ２０９は、関節で形状を曲げることが可能になっている。
【０２１７】
このように、グループ２０９への分類や随伴関係の導入は、キャラクターの形状やポリゴン２０５等の数、画像処理コプロセッサの性能などに応じて、適宜変更が可能である。たとえば、頭部、胴体上部、胴体下部の３つをまとめるような随伴関係を導入するなど、種々の態様が考えられる。
【０２１８】
このようにして、すべての主ボーン２０２が選択され、描画が終了したら、ステップＳ５０５〜ステップＳ５２０の処理を抜けることとなる。このタイミングは、垂直同期割込の直後に相当する。
【０２１９】
そこで、ＣＰＵ  １０２は、画像処理部１０６を制御して、バッファ部４０４に描画されている画像を、液晶ディスプレイ１０７などのモニターの表示画面に転送表示させる制御を行う（ステップＳ５２１）。
【０２２０】
したがって、ＣＰＵ  １０２は、画像処理部１０６と共働して、表示部４１０として機能する。
【０２２１】
ついで、ＣＰＵ  １０２は、今回のステップＳ５０５〜ステップＳ５２０の繰り返しに要した時間だけ、ＲＡＭ  １０３内の仮想時刻を経過させ（ステップＳ５２２）、ステップＳ５０４に戻る。
【０２２２】
この仮想時刻は、モデル２０１が時間の経過にともなって、所定のアルゴリズムにしたがって変形する場合にモデル２０１の変形の際に参照される。
【０２２３】
主更新部４０３および副更新部４０６がモデル２０１の変形計算を行うが、この計算では、あらかじめモーションキャプチャした情報と、仮想時刻の経過とを組み合わせてモデル２０１の姿勢や位置を変形させることとしても良いし、プレイヤーの操作指示に基づいて、モデル２０１を変形させることとしても良い。
【０２２４】
上記のような繰り返し処理を行うことによって、画面更新のフレームレートを犠牲にしつつも、多数のポリゴン２０５によって設計されたモデル２０１の画像を生成して、ユーザに提示することができるようになるのである。
【産業上の利用可能性】
【０２２５】
以上説明したように、本発明によれば、ボーンおよび制御点によって定義される３次元モデルからの画像生成において処理可能な制御点の数を増すのに好適な画像生成装置、画像生成方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【符号の説明】
【０２２６】
１０１  情報処理装置
１０２  ＣＰＵ
１０３  ＲＡＭ
１０４  ＲＯＭ
１０５  入力装置
１０６  画像処理部
１０７  液晶ディスプレイ
１０８  音声処理部
１０９  ヘッドホン
１１０  カセットリーダ
１１１  ＲＯＭカセット
１１２  外部メモリ
１１３  ＲＴＣ
１１４  無線ＬＡＮインターフェース
１１５  カメラ
２０１  モデル
２０２  主ボーン
２０３  副ボーン
２０４  制御点
２０５  ポリゴン
２０９  グループ
４０１  画像生成装置
４０２  記憶部
４０３  主更新部
４０４  バッファ部
４０５  選択部
４０６  副更新部
４０７  位置計算部
４０８  スキン計算部
４０９  描画部
４１０  表示部
５０１  背景画像
６０１  スキン
【図１】
2011113524.tif 000003
【図２】
2011113524.tif 000004
【図３】
2011113524.tif 000005
【図４】
2011113524.tif 000006
【図５】
2011113524.tif 000007
【図６】
2011113524.tif 000008
【図７】
2011113524.tif 000009
【図８】
2011113524.tif 000010
【図９】
2011113524.tif 000011
【図１０】
2011113524.tif 000012