説明

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

【課題】ボーンおよび制御点によって定義される3次元モデルからの画像生成において処理可能な制御点の数を増す画像生成装置等を提供する。
【解決手段】モデルは複数のボーンと、ボーンに対する相対的な位置が固定された制御点によって定義される。画像生成装置401において、主更新部403がボーンの位置や向きを更新すると、選択部405は、ボーンを視点から遠い順に選択する。位置計算部407は、選択されたボーンに属する制御点の位置を計算し、スキン計算部408は、計算された制御点の位置によりスキンの形状を計算し、描画部409は、計算されたスキンの形状をバッファ部404に描画する。すべてのボーンについて選択乃至描画を繰り返し、終了したら、表示部410は、バッファ部404に記憶された画像を画面に転送表示する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ボーンおよび制御点によって定義される3次元モデルからの画像生成において処理可能な制御点の数を増すのに好適な画像生成装置、画像生成方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【0002】
従来から、仮想空間内に配置されたキャラクター等の形状を3次元モデルで表現して、3次元モデルから画像を生成する技術が提案されている。
【0003】
このような技術では、ボーンを連結してキャラクター等の概形を定義する。ボーンは、キャラクターの骨に相当するものである。
【0004】
これらのボーンには、依存関係がある。仮想空間に対する位置および向きが定められるボーンが基礎となり、この基礎となるボーンに連結するボーンは、基礎ボーンに対する相対的な位置および向きが定められ、位置や向きが定まったボーンに対する相対的な位置および向きを定めることにより、他のボーンが連結され……、以下この繰り返しによって、ボーン全体の形状が定められる。
【0005】
各ボーンには制御点が固定されている。制御点は、キャラクターの皮膚の上の定められた位置に相当するものであり、ボーンの動きに連動して移動する。すなわち、ボーンに対して相対的にその位置が固定されている。
【0006】
制御点を頂点とするポリゴン、制御点の位置の重み付き平均の位置を頂点とするポリゴン、あるいは、制御点により形状が定義されるNURBS(Non Uniform Rational B Spline)曲面により、スキンの形状が定められる。スキンは、キャラクターの表面、すなわち、皮膚等に相当する。
【0007】
スキンからキャラクター等の画像を生成する際には、ポリゴン等を、視点から遠い順(奥行きが深い順)に選択して選択したポリゴンを投影面に投影した領域を取得し、その領域に所定のテクスチャ画像を変形して貼り込むことによって、描画を行う。したがって、視点からの距離に基づいてポリゴン等をソートする必要がある。
【0008】
ボーン同士の相対的な位置が変化すると、それにともなって制御点が移動し、スキンの形状が変形し、生成される画像も変化する。このような変形によって、キャラクター等の3次元モデルの位置や姿勢の変化をアニメーションにより表現することが可能となる。
【0009】
これらの3次元グラフィックス処理については、画像処理コプロセッサなどを利用して高速化を図ることが多い。
【0010】
以下に掲げる特許文献1、2、3においては、ボーンと制御点を利用して、キャラクターの各部を動作させる技術が提案されている。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特許第4287479号公報
【特許文献2】特開2009−187472号公報
【特許文献3】特許第4199764号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
しかしながら、たとえば携帯型情報処理装置等、画像処理コプロセッサの性能が低い場合には、多数のボーン、制御点、ポリゴン等を一度に処理することができない場合がある。
【0013】
したがって、一度に処理可能な制御点の数等に制限がある場合であっても、それを超える3次元モデルを利用して画像を生成したい、という要望は強い。
【0014】
本発明は、上記のような課題を解決するもので、ボーンおよび制御点によって定義される3次元モデルからの画像生成において処理可能な制御点の数を増すのに好適な画像生成装置、画像生成方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【0015】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【0016】
本発明の第1の観点に係る画像生成装置は、仮想空間に配置される複数のボーンおよび複数の制御点から画像を生成する。
【0017】
以下、あるボーンの位置および向きが他のボーンに対して相対的に定められている場合、当該あるボーンは当該他のボーンに依存する、という。
【0018】
また、あるボーンの位置および向きが前記仮想空間に対して定められている場合、当該あるボーンは当該仮想空間に依存する、という。
【0019】
一方、複数の制御点のそれぞれは、当該複数のボーンのいずれかに対する相対的な位置が固定される。したがって、あるボーンが仮想空間内で位置や向きを変化させると、当該ボーンに固定される制御点の位置や向きもこれに連動して変化することになる。
【0020】
そして、当該複数のボーンの種類には、主ボーンがあり、当該主ボーンのいずれか一つは、当該仮想空間に依存し、それ以外の主ボーンのそれぞれは、他のいずれかの主ボーンに依存し、複数の制御点のそれぞれは、当該制御点の相対的な位置が固定されるボーンが主ボーンである場合、当該主ボーンに対するグループに分類される。
【0021】
すなわち、本発明では、ボーンはいずれも主ボーンであり、制御点はいずれかの主ボーンに対するグループに分類されることを想定している。なお、後述するように、ボーンには主ボーンと副ボーンがあるような態様においても、制御点がいずれかの主ボーンに対するグループに分類される場合には、本発明の範囲に含まれる。
【0022】
さて、本発明の画像生成装置は、記憶部、主更新部、選択部、位置計算部、スキン計算部、描画部、表示部を備え、以下のように構成する。
【0023】
すなわち、記憶部には、当該複数のボーンのそれぞれについて、当該ボーンが依存する他のボーンに対する相対的な位置および向きが記憶される。
【0024】
このほか、記憶部には、ボーンの種類、あるボーンに固定されている制御点の座標や、当該制御点によって形が定められるポリゴンやNURBS曲面、貼り込まれるテクスチャ情報など、種々の情報が記憶される。
【0025】
一方、主更新部は、時間の経過もしくはユーザからの指示に基づいて、記憶部に記憶されるそれぞれの主ボーンの位置および向きを更新する。
【0026】
たとえば、ボーンおよび制御点によって定められる3次元モデルがキャラクターの外形を表すものである場合には、主ボーンの位置および向きが更新されることによって、キャラクターの位置や姿勢が変化することになる。
【0027】
さらに、選択部は、主更新部による更新がされると、仮想空間内の視点位置と視線方向に対する主ボーンのそれぞれの奥行きに基づいて、主ボーンの順序を定め、当該決定された順序で、主ボーンを順に選択する。
【0028】
通常の3次元グラフィックスでは、すべてのポリゴンについて視点からの奥行きを求め、視点から遠い順にすべてのポリゴンをソートして、そのポリゴンを順に描画する。一方、本発明では、主ボーンをソートして、以下に述べるように、主ボーンごとに、当該主ボーンに対するグループに分類される制御点により形成されるポリゴン等を描画する。
【0029】
このように、ポリゴン等が互いに隠したり隠されたりする前後関係を、ポリゴン等の位置そのものを利用して判断するのではなく、そのポリゴン等を定義する制御点が属するグループに対する主ボーンの位置を利用して判断するのが、本発明の特徴の一つである。
【0030】
さらに、位置計算部は、選択された主ボーンに対するグループに分類される制御点の当該仮想空間における位置を計算する。
【0031】
主ボーンの順序を定める際に、各主ボーンの仮想空間における位置および向きは確定している。したがって、この情報に基づいて、各制御点の仮想空間における位置を計算することができる。
【0032】
そして、スキン計算部は、制御点の位置が計算されると、当該計算された制御点の位置から、スキンの形状を計算する。
【0033】
典型的には、制御点そのものを頂点とするポリゴン、制御点の位置の重み付き平均位置を頂点とするポリゴン、あるいは、制御点により形状が定義されるNURBS曲面などにより、スキンの形状が定められる。
【0034】
一方、描画部は、スキンの形状が計算されると、当該計算されたスキンの形状を、視点位置から視線方向に見た様子を表すスキン画像を、既に描画済みの画像に重ねて描画する。
【0035】
スキンの形状が定まれば、当該スキンが描画されるべき領域が定まる。そこで、画像を記憶する記憶域のうち、スキンが描画されるべき領域に、当該スキンに対応するテクスチャを貼り込むことによって、描画を行うのである。
【0036】
さらに、表示部は、すべての主ボーンに対するグループに分類される制御点の位置から計算されたスキンの形状を表すスキン画像が描画されると、既に描画済みの画像を、画面に表示する。
【0037】
典型的には、表示すべき画像が完成した後、垂直同期割込を待機し、垂直同期割込が生じてからモニター画面に転送表示することによって、画面のチラつきを抑制する。
【0038】
ここで、位置計算部、スキン計算部、描画部における処理は、画像処理コプロセッサにおいて実行されるのが典型的である。
【0039】
本発明では、主ボーンや制御点を複数のグループに分割することで、一度の描画で考慮しなければならない主ボーンや制御点の数を抑えることができるので、主ボーンや制御点の数に制限があるような画像処理プロセッサ等を利用した場合でも、画像生成において、処理可能な制御点の数を増加させることができるようになる。
【0040】
本発明の画像生成装置は、バッファ部をさらに備え、以下のように構成することができる。
【0041】
すなわち、バッファ部には、あらかじめ用意された背景画像が記憶される。
【0042】
ここで、バッファ部は、ダブルバッファリング技術によって、描画の際のチラつきを防止するために利用される。すなわち、画面に表示すべき画像の完成形がバッファ部内に形成された後に、モニター等の表示画面に当該画像が転送表示されることによって、表示のチラつきが生じなくなる。
【0043】
一方、描画部は、スキン画像を、バッファ部に既に記憶されている画像に重ねて描画し、表示部は、バッファ部に記憶されている画像を表示する。
【0044】
本発明によれば、画像のチラつきが生じにくくなるとともに、あらかじめ用意した背景画像に重ねてスキンを描くことによって、スキンの描画に計算時間を割き、より精細な画像を得ることができるようになる。
【0045】
また、本発明の画像生成装置において、当該複数のボーンの種類には、主ボーンのほか、副ボーンがあり、当該副ボーンのそれぞれは、いずれかの主ボーンもしくは他のいずれかの副ボーンに依存し、複数の制御点のそれぞれは、当該制御点の相対的な位置が固定されるボーンが副ボーンである場合、当該副ボーンが依存する主ボーンもしくは当該副ボーンが依存する他の副ボーンが依存する主ボーンに対するグループに分類される。
【0046】
上記発明では、制御点はいずれかの主ボーンに固定される状況を想定していたが、本発明では、制御点は主ボーンもしくは副ボーンのいずれかに固定される。ただし、副ボーンの依存関係をたどっていくと、最終的にはいずれかの主ボーンに至ることとなるので、副ボーンに固定された制御点であっても、いずれかの主ボーンに対するグループに分類されることになる。
【0047】
たとえば、キャラクターの手首から先を考えた場合、主ボーンは、掌の位置や向きを定義するものであり、副ボーンは、指の位置や向きを定義するものである。また、手首から先の形状を表す制御点は、いずれも、掌の主ボーンに対するグループに分類されることになる。
【0048】
一方、画像生成装置は、副更新部をさらに備える。ここで、副更新部は、主ボーンが選択されると、時間の経過もしくはユーザからの指示に基づいて、記憶部に記憶される当該選択された主ボーンに依存する副ボーンの位置および向きを更新する。
【0049】
上記のように、ボーンの相対的な位置が変化すると、キャラクター等の位置や姿勢が変化する。そして、主ボーンが選択された際には、当該主ボーンの仮想空間における位置や向きは確定している。したがって、主ボーンに依存する副ボーンの位置や向きも、確定させることができる。副更新部は、この処理を行うのである。
【0050】
さらに、位置計算部は、副ボーンの位置および向きが更新されると、選択された主ボーンに対するグループに分類される制御点の当該仮想空間における位置を計算する。
【0051】
すなわち、位置計算部が選択された主ボーンに対するグループに分類される制御点の当該仮想空間における位置を計算するのは、副ボーンの位置および向きが更新された後とする。
【0052】
このように構成することで、各グループに対する主ボーンこれに依存する副ボーンの位置がすべて確定した後に、描画処理が行われることになるのである。
【0053】
本発明によれば、グループの描画順序を主ボーンによって簡易に計算する一方で、細かい形状の変化は副ボーンによって行うことで、複雑な形状の3次元モデルの画像を少ない計算量で生成することができるようになる。
【0054】
また、本発明の画像生成装置において、選択部は、主ボーンの順序を、視点位置からの奥行き距離が遠い順に定めるように構成することができる。
【0055】
本発明は、上記発明の好適実施形態に係るものであり、主ボーンの順序を、Zバッファ法と同様の手法で定めるものである。
【0056】
本発明によれば、グループの描画順序を簡易な計算で定めることができるようになる。
【0057】
また、本発明の画像生成装置において、主ボーンには、他の主ボーンに随伴することが設定されるものがあり、選択部は、ある主ボーンが選択され、当該選択された主ボーンに随伴する他の主ボーンがある場合、当該随伴する他の主ボーンも同時に選択するように構成することができる。
【0058】
たとえばキャラクターを画面表示する場合、上腕のボーンと下腕のボーンが、互いに随伴し合うようにし、腿のボーンと脛のボーンが、互いに随伴し合うようにする。
【0059】
肘や膝の折れ曲がり部分は、ポリゴンで表現した場合に、形状が捻れてしまう等の問題が生じやすい部分である。本発明では、互いに随伴し合う主ボーンに対するグループのスキンは、同時にバッファ部へ描画される。
【0060】
したがって、本発明によれば、主ボーンの随伴関係を適切に定義することで、スキンの形状が不自然になってしまうことを防止できるようになる。
【0061】
また、本発明の画像生成装置において、スキンは、制御点を頂点とするポリゴンであり、異なる複数のグループに属する制御点を頂点とするポリゴンは、当該複数のグループのいずれかに対する主ボーンが選択されることによって描画されるように構成することができる。
【0062】
本発明は、制御点をポリゴンの頂点とする態様である。あるグループに属する頂点のみからなるポリゴンは、そのグループが選択された際に描画される。
【0063】
したがって、ポリゴンの頂点に、異なるグループに属する頂点がある場合には、いずれかのグループに対する主ボーンが選択された際に、描画を行えば良い。
【0064】
あるグループに対する主ボーンが選択された際に、当該グループに属する制御点を頂点とするポリゴンをすべて描画する、としても良い。
【0065】
本発明は上記発明の好適実施形態に係るもので、制御点を頂点とするポリゴンによってスキンを定義することによって、適切に画像が描画できるようになる。
【0066】
また、本発明の画像生成装置において、スキンは、制御点の位置の重み付け平均位置を頂点とするポリゴンであり、異なる複数のグループに属する制御点から定められる重み付け平均位置を頂点とするポリゴンは、当該複数のグループのいずれかに対する主ボーンが選択されることによって描画されるように構成することができる。
【0067】
本発明は、ポリゴンの頂点の位置を、制御点の位置の重み付き平均とするもので、上記発明は、本発明の特殊な場合と考えることも可能である。
【0068】
したがって、本発明によっても、適切に画像が描画できるようになる。
【0069】
また、本発明の画像生成装置において、選択部による選択によって描画されるべきポリゴンの数が、所定の上限を超えない限り、選択部は、当該主ボーンの順序における次の主ボーンを同時に選択するように構成することができる。
【0070】
本発明では、一度に処理可能なポリゴンの数(制御点の数に略比例する)を超えない限り、できるだけ多くのグループを同時に処理しようとする。
【0071】
本発明によれば、一度に処理可能なポリゴン数や制御点の数に制限がある場合であっても、できるだけ短時間に、これらを超える3次元モデルの画像を生成することができるようになる。
【0072】
本発明のその他の観点に係る画像生成方法は、仮想空間に配置される複数のボーンおよび複数の制御点から画像を生成する。
【0073】
ここで、あるボーンの位置および向きが他のボーンに対して相対的に定められている場合、当該あるボーンは当該他のボーンに依存し、あるボーンの位置および向きが仮想空間に対して定められている場合、当該あるボーンは当該仮想空間に依存し、複数の制御点のそれぞれは、当該複数のボーンのいずれかに対する相対的な位置が固定され、当該複数のボーンの種類には、主ボーンがあり、当該主ボーンのいずれか一つは、当該仮想空間に依存し、それ以外の主ボーンのそれぞれは、他のいずれかの主ボーンに依存し、複数の制御点のそれぞれは、当該制御点の相対的な位置が固定されるボーンが主ボーンである場合、当該主ボーンに対するグループに分類される。
【0074】
さらに、画像生成方法は、記憶部、主更新部、バッファ部、選択部、位置計算部、スキン計算部、描画部、表示部を有する画像生成装置によって実行される。
【0075】
そして、記憶部には、当該複数のボーンのそれぞれについて、当該ボーンが依存する他のボーンに対する相対的な位置および向きが記憶される。
【0076】
一方、バッファ部には、あらかじめ用意された背景画像が記憶される。
【0077】
さらに、画像生成方法は、主更新工程、選択工程、位置計算工程、スキン計算工程、描画工程、表示工程を備え、以下のように構成する。
【0078】
ここで、主更新工程では、主更新部が、時間の経過もしくはユーザからの指示に基づいて、記憶部に記憶されるそれぞれの主ボーンの位置および向きを更新する。
【0079】
一方、選択工程では、主更新部による更新がされると、選択部が、仮想空間内の視点位置と視線方向に対する主ボーンのそれぞれの奥行きに基づいて、主ボーンの順序を定め、当該決定された順序で、主ボーンを順に選択する。
【0080】
さらに、位置計算工程では、位置計算部が、選択された主ボーンに対するグループに分類される制御点の当該仮想空間における位置を計算する。
【0081】
そして、スキン計算工程では、制御点の位置が計算されると、スキン計算部が、当該計算された制御点の位置から、スキンの形状を計算する。
【0082】
一方、描画工程では、スキンの形状が計算されると、描画部が、当該計算されたスキンの形状を、視点位置から視線方向に見た様子を表すスキン画像を、バッファ部に既に記憶されている画像に重ねて描画する。
【0083】
さらに、表示工程では、すべての主ボーンに対するグループに分類される制御点の位置から計算されたスキンの形状を表すスキン画像がバッファ部に描画されると、表示部が、バッファ部に記憶されている画像を、画面に表示する。
【0084】
本発明のその他の観点に係るプログラムは、コンピュータを上記の画像生成装置の各部として機能させるように構成する。
【0085】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【0086】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【0087】
本発明によれば、ボーンおよび制御点によって定義される3次元モデルからの画像生成において処理可能な制御点の数を増すのに好適な画像生成装置、画像生成方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【0088】
【図1】典型的な情報処理装置の概要構成を示す模式図である。
【図2】本実施形態の処理対象となるモデルのボーン、制御点、ポリゴンの様子を示す説明図である。
【図3】主ボーンと視点と間の距離を定める手法を示す説明図である。
【図4】本実施形態に係る画像生成装置の概要構成を示す説明図である。
【図5】画像生成処理の制御の流れを示すフローチャートである。
【図6】バッファ部に描画がされていく様子を示す説明図である。
【図7】バッファ部に描画がされていく様子を示す説明図である。
【図8】バッファ部に描画がされていく様子を示す説明図である。
【図9】バッファ部に描画がされていく様子を示す説明図である。
【図10】随伴関係を考慮したグループの様子を示す説明図である。
【発明を実施するための形態】
【0089】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。
【0090】
したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例1】
【0091】
図1は、プログラムを実行することにより、本実施形態の画像生成装置として機能しうる典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【0092】
本図に示す情報処理装置101は、携帯可能なマルチメディア端末であり、CPU(Central Processing Unit)102、RAM(Random Access Memory)103、ROM(Read Only Memory)104、入力装置105、画像処理部106、液晶ディスプレイ107、音声処理部108、ヘッドホン109、カセットリーダ110、ROMカセット111、外部メモリ112、RTC(Real Time Clock)113、無線LAN(Local Area Network)インターフェース114、カメラ115を備える。
【0093】
本実施形態に係るプログラムが記録されたROMカセット111を、情報処理装置101に装着することによって、本実施形態に係る画像生成装置が実現される。
【0094】
ここで、CPU 102は、情報処理装置101の各部を制御するとともに、各種の演算処理や判断処理を行う。
【0095】
情報処理装置101に電源が投入されると、CPU 102は、ROM 104に記録されたIPL(Initial Program Loader)を実行し、その処理の過程で、カセットリーダ110を介して接続されたROMカセット111に記録されたプログラムに処理を移行する。
【0096】
情報処理装置101で実行されるゲームプログラムやマルチメディア情報再生プログラムは、ROMカセット111によって提供されるのが一般的であるが、ROM 104内にあらかじめ用意しておくことも可能である。
【0097】
また、ROM 104内には、BIOS(Basic Input Output System)と呼ばれるプログラム群が用意されており、入力装置105や画像処理部106、音声処理部108の制御を行うことができる。
【0098】
RAM 103は、一時的な情報を記憶するための領域であり、外部メモリ112は、不揮発な情報を記憶するための領域である。外部メモリ112としては、ハードディスクなど、主として情報処理装置101に内蔵されるもののほか、各種のメモリカードなど、情報処理装置101に抜挿されるものを利用しても良い。
【0099】
入力装置105は、各種のボタンやキーボード、マウス、ジョイスティック等により実現されるのが一般的であるが、液晶ディスプレイ107と一体に形成されたタッチスクリーンを入力装置105として利用することも可能である。
【0100】
画像処理部106は、CPU 102の制御の下、各種の文字情報や画像情報を液晶ディスプレイ107に表示させるものであり、一般には、垂直同期割込周期(典型的には、30分の1秒や60分の1秒程度である。)ごとに、RAM 103内に用意されたフレームバッファに記憶された画素情報を液晶ディスプレイ107の各画素に反映させる。
【0101】
ユーザからの指示入力は、液晶ディスプレイ107に表示されたカーソルを入力装置105の移動ボタン操作により移動して、所望のメニュー項目にカーソルを合わせ、決定ボタン操作によって当該メニュー項目を選択するのが一般的であるが、タッチスクリーンを利用する場合にはカーソルは不要である。また、入力装置105の各ボタンに割り当てられる機能があらかじめ決まっている場合には、液晶ディスプレイ107に対する表示は、必ずしも必要ない。
【0102】
音声処理部108は、RAM 103やROM 104、ROMカセット111、外部メモリ112に用意された音声データをヘッドホン109に出力する。音声データとしては、音声の波形データをディジタル化したPCM(Pulse Code Modulation)データや、PCMデータを圧縮してサイズを小さくしたMP3(MPeg audio layer-3)データ等を利用することが可能であるほか、MIDI(Music Instruction Data Interface)データのように、音高、音長、音量、音色の種類を定義するデータを用意し、これにしたがって、あらかじめ用意された音源波形データを適宜選択・変形して再生する手法を採用しても良い。
【0103】
RTC 113は、現在の日時を計測するもので、情報処理装置101を初めて利用する際に時刻合わせを行うのが一般的であるが、無線LANインターフェース114を介してNTP(Network Time Protocol)サーバに接続することで、自動的に時刻合わせを行うような態様を採用することも可能である。
【0104】
また、アラーム割込を発生させる機能を持つRTC 113もある。設定された時刻になるとアラーム割込が発生して、CPU 102は、現在実行中のプログラムを一時中断し、あらかじめ設定された割込ハンドラを実行してから、中断したプログラムを再開する。
【0105】
無線LANインターフェース114は、自宅や会社、街角に用意された無線LANアクセスポイントを介してインターネットに接続したり、近傍に配置された他の情報処理装置101と、アドホックに通信路を確立し、1対1で通信を行うなどが可能である。
【0106】
カメラ115は、情報処理装置101によってディジタルカメラの機能を実現するものであり、CCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)撮像素子などの技術を適用することが可能である。撮影された画像は、一時的にRAM 103に展開された後、外部メモリ112等に保存される。
【0107】
このほか、ビジネス用コンピュータ、携帯電話、PDA(Personal Data Assistant)、携帯ゲーム装置、多機能テレビジョン装置、DVD(Digital Versatile Disc)プレイヤー、携帯音楽プレイヤーなどを、本発明の画像生成装置が実現される情報処理装置として採用することもできる。
【0108】
(画像生成のためのモデル)
図2は、本実施形態の処理対象となるモデルのボーン、制御点、ポリゴンの様子を示す説明図である。以下、本図を参照して説明する。
【0109】
本図に示すモデル201は、以下の主ボーン202によって、キャラクターの位置や姿勢、外形が表現されている。
(1)頭部を表す主ボーン202a
(2)胴体上部を表す主ボーン202b
(3)右上腕を表す主ボーン202cならびに右下腕を表す主ボーン202d
(4)左上腕を表す主ボーン202eならびに左下腕を表す主ボーン202f
(5)右掌を表す主ボーン202g
(6)左掌を表す主ボーン202h
(7)胴体下部を表す主ボーン202i
(8)右腿を表す主ボーン202jならびに右脛を表す主ボーン202k
(9)左腿を表す主ボーン202lならびに左脛を表す主ボーン202m
(10)右足底を表す主ボーン202n
(11)左足底を表す主ボーン202o
【0110】
主ボーン202は、たとえば、右上腕の主ボーン202cと右下腕の主ボーン202dのように、その端点同士が連結されるか、たとえば胴体上部の主ボーン202bと右上腕の主ボーン202cのように、一方の主ボーン202に対する位置が固定された連結点(右肩の位置に相当する。)に、他方の主ボーン202の端点が連結されている。
【0111】
さらに、モデル201では、右手の指を表す複数の副ボーン203g、および、左手の指を表す複数の副ボーン203hによって、キャラクターの細かな姿勢が表現される。
【0112】
副ボーン203(本実施形態では指の各関節のボーン)は、直接いずれかの主ボーン202(本実施形態では掌のボーン)に連結されるか、他の副ボーン203を介して間接的に主ボーン202に連結されている。この際にも、連結点は、ボーン202、203上にあっても良いし、ボーン202、203に対する固定された位置にあっても良い。
【0113】
互いに連結し合うボーン202、203同士は、その相対的な位置および向きの関係が定められることで、キャラクターの全体の姿勢が定められる。
【0114】
また、主ボーン202のいずれか(典型的には、胴体上部を表す主ボーン202b)の仮想空間内における位置および向きを定めることで、キャラクターの全体の位置および向きが定められる。以下、理解を容易にするため、当該主ボーン202は、仮想空間に依存する、ということとする。
【0115】
さらに、理解を容易にするため、あるボーン202、203に連結されてこれに対する相対的な位置および向きが定められる他のボーン202、203があるとき、後者は前者に依存し、前者は後者に依存される、といい、前者を親ボーン、後者を子ボーンということとする。
【0116】
たとえば、胴体上部の主ボーン202bに右上腕の主ボーン202cが依存し、右上腕の主ボーン202cに右下腕の主ボーン202dが依存し、右下腕の主ボーン202dに右掌の主ボーン202gが依存し、右掌の主ボーン202gに右手指の副ボーン203gが依存する、ということになる。右手指の副ボーン203g同士も、順に依存関係が定義されており、右掌の主ボーン202gに近い側に、遠い側が依存することになっている。
【0117】
このように考えると、副ボーン203はいずれも、いずれか一つの主ボーン202に依存することとなる。
【0118】
これらの主ボーン202および副ボーン203は、従来の3次元グラフィックス技術におけるボーンと同じ役割を果たし、そのそれぞれには、制御点204が固定されている。本図では、理解を容易にするため、一部の制御点204のみが図示されている。
【0119】
さらに、特許文献1に開示するように、口や目蓋を開閉するためのボーンとして副ボーン203を採用したり、特許文献3に開示するように、肘や膝など、くびれが生じやすい部分の太さを維持するためのボーンとして副ボーン203を採用することも可能である。
【0120】
また、制御点204は、主ボーン202や副ボーン203のいずれかに固定されて、その固定先に連動して、仮想空間内を移動する。
【0121】
本実施形態では、制御点204は、ポリゴン205の頂点となっており、このポリゴン205がモデル201の表面を表すスキンを形成している。
【0122】
ここで、ある主ボーン202に固定されている制御点204、および、当該主ボーン202に依存する副ボーン203に固定されている制御点204を、「当該主ボーン202に対するグループに属する制御点204」あるいは省略して、「当該主ボーン202に属する制御点204」と呼ぶこととする。
【0123】
たとえば、胴体上部の主ボーン202bに属する制御点204を頂点とするポリゴン205によって、胴体上部の形状が定められ、右掌の主ボーン202gに対するグループに属する制御点204を頂点とするポリゴン205によって、右手の掌および指の形状が定められるのである。
【0124】
なお、制御点204の座標をそのままポリゴン205の頂点とするのではなく、ポリゴン205の頂点のそれぞれに制御点204を1つ以上、重みとともに割り当て、割り当てられた制御点204の位置のその重み付き平均の位置を、ポリゴン205の頂点とする手法も従来から広く用いられており、このような態様を採用することも可能である。
【0125】
また、ポリゴン205によってスキンの形状を定義するのではなく、制御点204を、NURBS曲面の形状を定めるための制御点として利用することによって、モデル201を表面を滑らかに表現する態様を採用しても良い。
【0126】
さて、上記(3)(4)(8)(9)には、各2つの主ボーン202が掲げられているが、当該各2つの主ボーン202は、互いに随伴するものとする。ここで、互いに随伴する主ボーン202とは、当該主ボーン202によって定められる制御点が互いに密接に関連し合うような場合に適切である。本実施形態では、肘や膝などのスキン形状を、上記のように、特許文献3に開示される技術等を適用することで適切に定めるため、随伴関係を定めることとしている。
【0127】
なお、モデル201により表現される各種のキャラクター等、仮想空間内で位置や向き、形状を変化させるオブジェクトの種類によっては、副ボーン203や随伴関係が一切ないこととすることも可能であり、これらの態様も、本発明の範囲に含まれる。
【0128】
このようにして、ボーン202、203、制御点204、ポリゴン205によって、モデル201が定義される。
【0129】
このようなモデル201に対して、従来の3次元グラフィックスでは、すべてのポリゴン205を、視点からの距離でソートして、遠いポリゴン205から順に描画するZバッファの技術を用いることで、ポリゴン205同士が隠し隠される関係を適切に画像に反映させることとしていた。
【0130】
一方、本実施形態では、ポリゴン205を、当該ポリゴン205が属する主ボーン202のグループによって分類する。本実施形態では、上記のように、11個のグループに、ポリゴン205が分類されることになる。
【0131】
そして、主ボーン202を視点からの距離でソートする。たとえば、図2に示す例で、視点から遠い順に主ボーン202を並べると、概ね以下のようになる。
(1)左掌の主ボーン202h
(2)左下腕の主ボーン202f
(3)左足底の主ボーン202o
(4)左脛の主ボーン202m
(5)左上腕の主ボーン202e
(6)左腿の主ボーン202l
(7)頭部の主ボーン202a
(8)胴体上部の主ボーン202b
(9)胴体下部の主ボーン202i
(10)右腿の主ボーン202j
(11)右脛の主ボーン202k
(12)右上腕の主ボーン202c
(13)右下腕の主ボーン202d
(14)右足底の主ボーン202n
(15)右掌の主ボーン202g
【0132】
そして、視点から遠い主ボーン202から順に主ボーン202を選択して、以下の処理を繰り返す。上記の例では、主ボーン202は15個あるから、以下の処理は15回繰り返されることになる。
【0133】
すなわち、選択された主ボーン202のグループに属するポリゴン205のみを対象に、Zバッファの技術を用いる。すなわち、当該グループに属するポリゴン205のみを、視点からの距離でソートして、遠いポリゴン205から順に描画する。
【0134】
たとえば、繰り返しの初回では、視点から最も遠い左掌の主ボーン202hが選択される。そして、左掌の主ボーン202hや左手の指を表す副ボーン202に基づいて、左手の形状を表す制御点204の位置が計算される。
【0135】
さらに、計算された制御点204の位置に基づいて、左の掌や左の手の指の形状を表すポリゴン205の形状が計算され、描画されることにって、左手首から先のスキンが形成されるのである。
【0136】
以下、繰り返しの2回目は、左下腕の主ボーン202fに基づいて、左肘から左手首までが描画され、繰り返しの3回目は、左足底の主ボーン202oに基づいて、左足底が描画され……のように、グループ単位でポリゴン205を描画する処理が繰り返される。
【0137】
本実施形態では、ポリゴン205全体をまとめて処理するのではなく、グループ単位に分割して処理をする。このため、一度に処理しなければならないボーン202、203の数、制御点204の数、ポリゴン205の数を抑制することができる。
【0138】
したがって、画像処理部106を構成する画像処理コプロセッサの能力が低い場合であっても、多数の制御点204やポリゴン205からなる画像を生成することが可能となるのである。
【0139】
なお、理解を容易にするため、ここでは、主ボーン202のグループ単位で描画を繰り返すこととしていたが、主ボーン202に随伴関係を導入し、あるグループと別のグループ(たとえば、左下腕の主ボーン202fと左上腕の主ボーン202eとを随伴させる等。)が同時に描画されるように構成した方が、ポリゴン描画の矛盾の発生する可能性を低くしたり、画像処理コプロセッサの能力をできるだけ引き出すという点で好ましい場合も多い。以下では、このような随伴関係を導入した例について説明する。
【0140】
上記のように、本実施形態では、主ボーン202と視点との遠近情報を用いて、ポリゴン205のグループを描画する順序を定める。以下では、主ボーン202と視点との距離の求め方について説明する。
【0141】
図3は、主ボーン202と視点と間の距離を定める手法を示す説明図である。以下、本図を参照して説明する。
【0142】
本図では、2つの主ボーン202p、202qと、視点301と、が図示されている。
【0143】
本図に示す主ボーン202p、202qは、連結点302で連結されている。
【0144】
また、主ボーン202p、202qは、その中央に中心点303p、303qが定められている。
【0145】
2つの主ボーン202p、202qのいずれがより視点301に近いか、は、以下のような判断基準で定めることができる。
【0146】
第1の基準は、主ボーン202p、202qの中心点303p、303qのそれぞれと、視点301と、の間の距離を採用する手法である。
【0147】
すなわち、視点301と中心点303pの距離305p、ならびに、視点301と中心点303qの距離305qを、ユークリッド距離やマンハッタン距離などによって計算する。そして、主ボーン202p、202qのうち、その中心点について計算された距離が長い方が視点301から遠く、短い方が近い、とするものである。
【0148】
第2の基準は、遠近を比較したい2つの主ボーン202が互いに連結されているときに利用できる基準である。
【0149】
すなわち、以下の2つの角度を比較する。
(p)視点301から連結点302を経て中心点303pに至る角度Pと、
(q)視点301から連結点302を経て中心点303qに至る角度Q。
【0150】
角度Pと角度Qは、視点301に対して、主ボーン202p、202qがどのような向きになっているか、を示す値である。
【0151】
一つの連結点302で連結されている2つの主ボーン202p、202qは、視点301からの距離にあまり差がない、と考えられる。したがって、一方、主ボーン202p、202qは、長さが異なることが一般的であるので、中心点303p、303qと視点301との距離を単純に採用すると、奥行きの順序の判定を誤ることもある。
【0152】
第2の基準では、互いに連結された主ボーン202p、202qの長さが異なる場合であっても、簡易にその奥行きの前後関係を判定することができる。
【0153】
上記のように、第1の基準は、任意の主ボーン202の奥行き方向の前後関係を判定するのに採用することができ、第2の基準は、互いに連結された主ボーン202の奥行き方向の前後関係を判定するのに採用することができる。
【0154】
また、第2の基準に基づいて直接連結された主ボーン202同士の順序を決めた後、直接連結がされていないため、第2の基準だけでは前後関係が定まらない主ボーン202同士については、第1の基準に基づいて奥行き順序を定める、という手法もありうる。
【0155】
このように、モデル201の形状や適用されるアプリケーションによって、第1の基準のみを採用することとしても良いし、両基準を適宜採用することとしても良い。
【0156】
以下では、これらの手法を用いる画像生成装置と、これが実行する画像生成処理の詳細について説明する。
【0157】
(画像生成装置)
図4は、本実施形態に係る画像生成装置の概要構成を示す説明図である。以下、本図を参照して説明する。
【0158】
本実施形態に係る画像生成装置401は、情報処理装置101においてCPU 102が所定のプログラムを実行することによって実現される。
【0159】
ここで、画像生成装置401は、記憶部402、主更新部403、バッファ部404、選択部405、副更新部406、位置計算部407、スキン計算部408、描画部409、表示部410を備える。
【0160】
以下まず、各部の機能について簡単に説明し、その後に、画像生成装置401が実行する処理の流れに沿って、各部の機能の詳細について、説明する。
【0161】
まず、記憶部402は、ROM カセット111等に記憶される情報を読み出したRAM 103によって実現され、記憶部402には、モデル201の各種の情報が記憶される。
【0162】
一方、バッファ部404は、RAM 103もしくは画像処理部106内に用意された記憶域により実現され、液晶ディスプレイ107に表示すべき画像を生成するための一時的な記憶域として利用される。
【0163】
さらに、主更新部403は、CPU 102により、もしくはCPU 102の制御下で画像処理部106が動作することにより実現され、モデル201を構成する主ボーン202の位置や向きを変化させる。
【0164】
副更新部406は、CPU 102により、もしくはCPU 102の制御下で画像処理部106が動作することにより実現され、モデル201を構成する副ボーン203の位置や向きを変化させる。
【0165】
位置計算部407は、CPU 102の制御下で画像処理部106が動作することにより実現され、モデル201を構成する制御点204の位置を、主ボーン202や副ボーン203の位置や向きに基づいて計算する。
【0166】
スキン計算部408は、CPU 102の制御下で画像処理部106が動作することにより実現され、モデル201を構成するポリゴン205の位置や形状を、制御点204の位置に基づいて計算する。
【0167】
描画部409は、CPU 102の制御下で画像処理部106が動作することにより実現され、位置や形状が計算されたポリゴン205が、投影される領域を求め、当該ポリゴン205に対応付けられるテクスチャを、当該領域に変形させながら貼り込む処理を行う。
【0168】
選択部405は、視点301からの距離によって主ボーン202をソートして、視点301から遠い順に主ボーン202を順に選択する。
【0169】
そして、副更新部406、位置計算部407、スキン計算部408、描画部409による処理は、選択された主ボーン202に依存する副ボーン203、選択された主ボーン202に属する制御点204、当該制御点204を頂点とするポリゴン205のみについて行う。
【0170】
このように、本実施形態では、全ポリゴン205について一括して描画を行なうのではなく、ポリゴン205が属するグループごとに、順次描画を行う。
【0171】
すなわち、副更新部406、位置計算部407、スキン計算部408、描画部409における処理は、選択された主ボーン202に対するグループ単位で行われることになる。
【0172】
このため、画像処理部106における画像処理コプロセッサの描画能力に制限がある場合であっても、ボーン202、203の数、制御点204の数やポリゴン205の数がその制限を超えるようなモデル201の画像を、生成することが可能となるのである。
【0173】
表示部410は、画像処理部106によって実現され、モデル201に対する画像が完成した後、垂直同期割込が生じるまで待機して、その後、バッファ部404に記憶された画像を液晶ディスプレイ107に転送表示する。
【0174】
以下、画像生成装置401で実行される画像生成処理について詳細に説明する。図5は、画像生成処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【0175】
本実施形態では、本処理は、CPU 102が、ROMカセット111に記録されたプログラムを実行することによって実現される。
【0176】
本処理が開始されると、CPU 102は、RAM 103に記憶される情報を初期化する(ステップS501)。ここで、RAM 103には、以下のような情報が記憶される。
(a)各主ボーン202の依存先(連結先)、依存先に対する相対的な位置および向き、主ボーン202の長さ、主ボーン202の随伴先。
(b)各副ボーン203の連結先、依存先、連結先に対する相対的な位置および向き、副ボーン203の長さ。
(c)各制御点204が固定されるボーン202、203がいずれであるか、当該制御点204がならびに固定される相対的な位置、当該制御点204が属するグループに対する主ボーン202はいずれであるか。
(d)各ポリゴン205が、制御点204のいずれを頂点とするか。
(e)モデル201の背景を表す背景画像。
(f)モデル201が配置される仮想空間内における仮想時刻。
【0177】
すなわち、RAM 103は、記憶部402として機能する。
【0178】
これらの情報の初期値は、ROMカセット111もしくは外部メモリ112に記録されるのが典型的であるが、乱数によって生成したり、無線LANインターフェース114を介して取得したり、入力装置105を介したユーザからの指示に基づいて設定する等、種々の手法が考えられる。
【0179】
ついで、CPU 102は、RAM 103に記憶されている情報のうち、主ボーン202の相対的な位置や向きの情報を、仮想時刻に応じて更新することによって、各主ボーン202の仮想空間における絶対的な位置や向きを計算、更新する(ステップS502)。すなわち、CPU 102は、主更新部403として機能する。なお、この計算に、画像処理部106が有する画像処理コプロセッサの機能を利用しても良い。
【0180】
モデル201の設計にも依存するが、一般には、主ボーン202の数は副ボーン203の数に比べて少ない場合がほとんどであり、ステップS502における計算は短時間で済む。
【0181】
さらに、CPU 102は、各主ボーン202の絶対的な位置・向きに基づいて、視点301からの奥行き距離を計算し、遠い順にソートする(ステップS503)。
【0182】
ついで、CPU 102は、画像処理部106を制御して、バッファ部404に、所定の背景画像を描画する(ステップS504)。この背景画像は、仮想空間内におけるモデル201の背景の様子を表すものである。モデル201の背景を、ポリゴンを用いて形成する手法を採用することもできるが、本実施形態では、ポリゴン処理機能をできるだけモデル201描画に利用したいため、背景画像は、芝居の大道具における描き割りのように、1枚の絵をあらかじめ用意している。
【0183】
バッファ部404は、RAM 103内に用意されることもあるし、描画用記憶域として、画像処理部106内に用意される場合もある。
【0184】
そして、CPU 102は、ソートされた順序を参照して、すべての主ボーン202が選択されるまで以下の処理を繰り返す(ステップS505〜)。
【0185】
まず、CPU 102は、未だ選択されていない主ボーン202のうち、視点301から最も遠い主ボーン202を選択する(ステップS506)。この際に、その主ボーン202に随伴する他の主ボーン202があれば当該随伴する主ボーン202も合わせて選択する。
【0186】
ついで、CPU 102は、未だ選択されていない残りの主ボーン202のうち、視点301から最も遠い主ボーン202(すなわち、次に遠い主ボーン202)を取得する(ステップS507)。この際に、取得された主ボーン202に随伴する他の主ボーン202があれば当該随伴する主ボーン202も合わせて取得する。
【0187】
そして、CPU 102は、選択済みの主ボーン202の数、当該選択済みの主ボーン202に依存する副ボーン203の数、当該選択済みの主ボーン202に対するグループに属する制御点204の数、当該選択済みの主ボーン202に属する制御点204を頂点とするポリゴン205の数に、ステップS506において取得された主ボーン202の数、当該取得された主ボーン202に依存する副ボーン203の数、当該取得された主ボーン202に対するグループに属する制御点204の数、当該取得された主ボーン202に属する制御点204を頂点とするポリゴン205の数を、それぞれ加算したものが、画像処理部106が有する画像処理コプロセッサの制限内か否かを調べる(ステップS508)。
【0188】
制限内であれば(ステップS508;Yes)、CPU 102は、当該取得された主ボーン202をさらに選択して(ステップS509)、ステップS507に戻る。
【0189】
一方、制限を超えていれば(ステップS508;No)、CPU 102は、ステップS511に進む。この場合、取得された主ボーン202は、今回は選択されず、次の繰り返しで選択されて描画されることになる。
【0190】
このように、CPU 102は、選択部405として機能する。
【0191】
このように制限を設けることで、ここで選択された主ボーン202ならびに当該主ボーン202に係る副ボーン203、制御点204、ポリゴン205は、画像処理部106が有する画像処理コプロセッサが一度にまとめて、一回の垂直同期周期内にて描画処理できるだけの数に限ることができる。したがって、携帯型端末など、処理能力が低い情報処理装置101であっても、描画を行うことが可能である。
【0192】
ついで、CPU 102は、選択された主ボーン202に依存する副ボーン203の位置や向きのうち、選択された主ボーン202に依存するものの相対的な位置や向きの情報を、仮想時刻に応じてRAM 103において更新するとともに、当該副ボーン203の仮想空間における絶対的な位置や向きを計算する(ステップS511)。
【0193】
これらのボーン演算は、座標変換が必要となるため、画像処理コプロセッサに演算を任せるのが一般的であるが、本実施形態では、副ボーン203の位置等の計算をグループ単位に分割して行うことで、1回あたりの計算負荷の低減を図ることができる。
【0194】
このように、CPU 102の制御の下、画像処理部106は、副更新部406として機能する。
【0195】
さらに、CPU 102は、選択されたグループに属する各制御点204の仮想空間における絶対的な位置を、主ボーン202の副ボーン203の位置および向きに基づいて、計算する(ステップS512)。
【0196】
これらの位置計算演算も座標変換が必要となるため、画像処理コプロセッサに演算を任せるのが一般的であるが、本実施形態では、制御点204の位置等の計算をグループ単位に分割して行うことで、1回あたりの計算負荷の低減を図ることができる。
【0197】
このように、CPU 102の制御の下、画像処理部106は、位置計算部407として機能する。
【0198】
ついで、CPU 102の制御の下、画像処理部106は、選択されたグループに属する各制御点204を頂点とする各ポリゴン205を視点301からの距離でソートして(ステップS513)、視点301からの距離が遠い順に以下の処理を繰り返す(ステップS514〜)。これは、いわゆるZバッファ法による描画に相当する。
【0199】
すなわち、画像処理部106は、処理対象となるポリゴン205の形状を計算し、バッファ部404において投影される領域を計算する(ステップS515)。
【0200】
この際には、仮想空間内に配置される視点301の位置や、視線の方向などが参照され、平行投影や透視投影によって、領域計算がなされる。
【0201】
ついで、画像処理部106は、当該ポリゴン205に割り当てられたテクスチャ情報をバッファ部404内の当該計算された領域に貼り込み、描画を行う(ステップS516)。
【0202】
この処理を、選択された主ボーン202に属するポリゴン205すべてについて、ステップS514以降の処理を視点301から遠い順に繰り返すのである(ステップS517)。
【0203】
したがって、画像処理部106は、スキン計算部408ならびに描画部409として機能する。
【0204】
このようにして、選択された主ボーン202に係るグループの描画が終了すると、1回の垂直同期周期で画像処理コプロセッサができる能力は使い尽くしたことになる。
【0205】
そこで、CPU 102は、垂直同期割込を待機する(ステップS519)。この待機中には、適宜他の計算処理を、コルーチン的に実行することが可能である。
【0206】
そして、すべての主ボーン202が選択されるまでステップS505以降の処理を繰り返す(ステップS520)。
【0207】
図6、図7、図8、図9は、ステップS505〜ステップS520の処理を繰り返すことによって、バッファ部404に記憶される画像がどのように更新されていくか、を示す説明図である。以下、本図を参照して説明する。
【0208】
図6には、当初の背景画像501のみが描画されている様子が示されている。
【0209】
図7は、繰り返しの最初が完了した後を表す画像で、図6の背景画像501の上に、
(b1)主ボーン202e、202fに属するポリゴン205により形成される左腕のスキン601e、601f
(b2)主ボーン202hに属するポリゴン205により形成される左掌のスキン601h
(b3)主ボーン202l、202mに属するポリゴン205により形成される左腿のスキン601l、左脛のスキン601m
(b4)主ボーン202oに属するに属するポリゴン205により形成される左足底のスキン601o
が描画されている。
【0210】
図8は、次の段階の描画が完了した後を表す画像で、図7の画像の上に、
(c1)主ボーン202aに属するポリゴン205により形成される頭部のスキン601a
(c2)主ボーン202bに属するポリゴン205により形成される胴体上部のスキン601b
(c2)主ボーン202iに属するポリゴン205により形成される胴体下部のスキン601i
が描画されている。
【0211】
図9は、最後の段階の描画が完了した後を表す画像で、図8の画像の上に、
(d1)主ボーン202c、202dに属するポリゴン205により形成される右腕のスキン601c、601d、
(d2)主ボーン202gに属するポリゴン205により形成される右掌のスキン601g、
(d3)主ボーン202j、202kに属するポリゴン205により形成される右腿のスキン601j、右脛のスキン601k
(b4)主ボーン202nに属するポリゴン205により形成される右足底のスキン601n、
が描画されている。
【0212】
1回の描画で処理対象となるポリゴンは、Zバッファ法により視点301からの距離でソートされて描画されるので、その奥行き方向の位置関係に矛盾が生じることはない。
【0213】
また、モデル201において、主ボーン202がとりうる位置や向きには、生物の関節などを模したり、主ボーン202の交差を避けるために、制限が課せられていることが多い。このため、グループ同士の奥行き方向の位置関係についても、本実施形態の手法に基づけば、実用上は、矛盾が生じることはない、と考えられる。
【0214】
本実施形態では、15個の主ボーン202のそれぞれのグループに対してポリゴン205が割り当てられるため、グループの総数は15個となる。しかしながら、本実施形態は、右腕、右脚、左腕、左脚に随伴関係を導入している。このため、実質的なグループの数は、11個となっている。
【0215】
図10は、随伴関係を考慮したグループの様子を示す説明図である。以下、本図を参照して説明する。
【0216】
モデル201のスキンは、本図の太線で描かれているように、実質的に11個のグループ209に分類されている。各グループ209には、主ボーン202が1つ以上割り当てられており、複数の主ボーン202が割り当てられるグループ209は、関節で形状を曲げることが可能になっている。
【0217】
このように、グループ209への分類や随伴関係の導入は、キャラクターの形状やポリゴン205等の数、画像処理コプロセッサの性能などに応じて、適宜変更が可能である。たとえば、頭部、胴体上部、胴体下部の3つをまとめるような随伴関係を導入するなど、種々の態様が考えられる。
【0218】
このようにして、すべての主ボーン202が選択され、描画が終了したら、ステップS505〜ステップS520の処理を抜けることとなる。このタイミングは、垂直同期割込の直後に相当する。
【0219】
そこで、CPU 102は、画像処理部106を制御して、バッファ部404に描画されている画像を、液晶ディスプレイ107などのモニターの表示画面に転送表示させる制御を行う(ステップS521)。
【0220】
したがって、CPU 102は、画像処理部106と共働して、表示部410として機能する。
【0221】
ついで、CPU 102は、今回のステップS505〜ステップS520の繰り返しに要した時間だけ、RAM 103内の仮想時刻を経過させ(ステップS522)、ステップS504に戻る。
【0222】
この仮想時刻は、モデル201が時間の経過にともなって、所定のアルゴリズムにしたがって変形する場合にモデル201の変形の際に参照される。
【0223】
主更新部403および副更新部406がモデル201の変形計算を行うが、この計算では、あらかじめモーションキャプチャした情報と、仮想時刻の経過とを組み合わせてモデル201の姿勢や位置を変形させることとしても良いし、プレイヤーの操作指示に基づいて、モデル201を変形させることとしても良い。
【0224】
上記のような繰り返し処理を行うことによって、画面更新のフレームレートを犠牲にしつつも、多数のポリゴン205によって設計されたモデル201の画像を生成して、ユーザに提示することができるようになるのである。
【産業上の利用可能性】
【0225】
以上説明したように、本発明によれば、ボーンおよび制御点によって定義される3次元モデルからの画像生成において処理可能な制御点の数を増すのに好適な画像生成装置、画像生成方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【符号の説明】
【0226】
101 情報処理装置
102 CPU
103 RAM
104 ROM
105 入力装置
106 画像処理部
107 液晶ディスプレイ
108 音声処理部
109 ヘッドホン
110 カセットリーダ
111 ROMカセット
112 外部メモリ
113 RTC
114 無線LANインターフェース
115 カメラ
201 モデル
202 主ボーン
203 副ボーン
204 制御点
205 ポリゴン
209 グループ
401 画像生成装置
402 記憶部
403 主更新部
404 バッファ部
405 選択部
406 副更新部
407 位置計算部
408 スキン計算部
409 描画部
410 表示部
501 背景画像
601 スキン

【特許請求の範囲】
【請求項1】
仮想空間に配置される複数のボーンおよび複数の制御点から画像を生成する画像生成装置であって、
あるボーンの位置および向きが他のボーンに対して相対的に定められている場合、当該あるボーンは当該他のボーンに依存し、
あるボーンの位置および向きが前記仮想空間に対して定められている場合、当該あるボーンは当該仮想空間に依存し、
前記複数の制御点のそれぞれは、当該複数のボーンのいずれかに対する相対的な位置が固定され、
当該複数のボーンの種類には、主ボーンがあり、
当該主ボーンのいずれか一つは、当該仮想空間に依存し、それ以外の主ボーンのそれぞれは、他のいずれかの主ボーンに依存し、
前記複数の制御点のそれぞれは、当該制御点の相対的な位置が固定されるボーンが主ボーンである場合、当該主ボーンに対するグループに分類され、
前記画像生成装置は、
当該複数のボーンのそれぞれについて、当該ボーンが依存する他のボーンに対する相対的な位置および向きが記憶される記憶部、
時間の経過もしくはユーザからの指示に基づいて、前記記憶部に記憶されるそれぞれの主ボーンの位置および向きを更新する主更新部、
前記主更新部による更新がされると、前記仮想空間内の視点位置と視線方向に対する前記主ボーンのそれぞれの奥行きに基づいて、前記主ボーンの順序を定め、当該決定された順序で、前記主ボーンを順に選択する選択部、
前記選択された主ボーンに対するグループに分類される制御点の当該仮想空間における位置を計算する位置計算部、
前記制御点の位置が計算されると、当該計算された制御点の位置から、スキンの形状を計算するスキン計算部、
前記スキンの形状が計算されると、当該計算されたスキンの形状を、前記視点位置から前記視線方向に見た様子を表すスキン画像を、既に描画済みの画像に重ねて描画する描画部、
すべての主ボーンに対するグループに分類される制御点の位置から計算されたスキンの形状を表すスキン画像が描画されると、当該既に描画済みの画像を、画面に表示する表示部
を備えることを特徴とする画像生成装置。
【請求項2】
請求項1に記載の画像生成装置であって、
あらかじめ用意された背景画像が記憶されるバッファ部
をさらに備え、
前記描画部は、前記スキン画像を、前記バッファ部に既に記憶されている画像に重ねて描画し、
前記表示部は、前記バッファ部に記憶されている画像を表示する
ことを特徴とする画像生成装置。
【請求項3】
請求項1または2に記載の画像生成装置であって、
当該複数のボーンの種類には、主ボーンのほか、副ボーンがあり、
当該副ボーンのそれぞれは、いずれかの主ボーンもしくは他のいずれかの副ボーンに依存し、
前記複数の制御点のそれぞれは、当該制御点の相対的な位置が固定されるボーンが副ボーンである場合、当該副ボーンが依存する主ボーンもしくは当該副ボーンが依存する他の副ボーンが依存する主ボーンに対するグループに分類され、
前記画像生成装置は、
前記主ボーンが選択されると、時間の経過もしくは前記ユーザからの指示に基づいて、前記記憶部に記憶される当該選択された主ボーンに依存する副ボーンの位置および向きを更新する副更新部
をさらに備え、
前記位置計算部は、前記副ボーンの位置および向きが更新されると、前記選択された主ボーンに対するグループに分類される制御点の当該仮想空間における位置を計算する
ことを特徴とする画像生成装置。
【請求項4】
請求項1から3のいずれか1項に記載の画像生成装置であって、
前記選択部は、前記主ボーンの順序を、前記視点位置からの奥行き距離が遠い順に定める
ことを特徴とする画像生成装置。
【請求項5】
請求項1から3のいずれか1項に記載の画像生成装置であって、
前記主ボーンには、他の主ボーンに随伴することが設定されるものがあり、
前記選択部は、ある主ボーンが選択され、当該選択された主ボーンに随伴する他の主ボーンがある場合、
当該随伴する他の主ボーンも同時に選択する
ことを特徴とする画像生成装置。
【請求項6】
請求項1から5のいずれか1項に記載の画像生成装置であって、
前記スキンは、前記制御点を頂点とするポリゴンであり、異なる複数のグループに属する制御点を頂点とするポリゴンは、当該複数のグループのいずれかに対する主ボーンが選択されることによって描画される
ことを特徴とする画像生成装置。
【請求項7】
請求項1から5のいずれか1項に記載の画像生成装置であって、
前記スキンは、前記制御点の位置の重み付け平均位置を頂点とするポリゴンであり、異なる複数のグループに属する制御点から定められる重み付け平均位置を頂点とするポリゴンは、当該複数のグループのいずれかに対する主ボーンが選択されることによって描画される
ことを特徴とする画像生成装置。
【請求項8】
請求項6または7に記載の画像生成装置であって、
前記選択部による選択によって描画されるべきポリゴンの数が、所定の上限を超えない限り、前記選択部は、当該主ボーンの順序における次の主ボーンを同時に選択する
ことを特徴とする画像選択装置。
【請求項9】
仮想空間に配置される複数のボーンおよび複数の制御点から画像を生成する画像生成方法であって、
あるボーンの位置および向きが他のボーンに対して相対的に定められている場合、当該あるボーンは当該他のボーンに依存し、
あるボーンの位置および向きが前記仮想空間に対して定められている場合、当該あるボーンは当該仮想空間に依存し、
前記複数の制御点のそれぞれは、当該複数のボーンのいずれかに対する相対的な位置が固定され、
当該複数のボーンの種類には、主ボーンがあり、
当該主ボーンのいずれか一つは、当該仮想空間に依存し、それ以外の主ボーンのそれぞれは、他のいずれかの主ボーンに依存し、
前記複数の制御点のそれぞれは、当該制御点の相対的な位置が固定されるボーンが主ボーンである場合、当該主ボーンに対するグループに分類され、
前記画像生成方法は、記憶部、主更新部、選択部、位置計算部、スキン計算部、描画部、表示部を有する画像生成装置によって実行され、
前記記憶部には、当該複数のボーンのそれぞれについて、当該ボーンが依存する他のボーンに対する相対的な位置および向きが記憶され、
前記画像生成方法は、
前記主更新部が、時間の経過もしくはユーザからの指示に基づいて、前記記憶部に記憶されるそれぞれの主ボーンの位置および向きを更新する主更新工程、
前記主更新部による更新がされると、前記選択部が、前記仮想空間内の視点位置と視線方向に対する前記主ボーンのそれぞれの奥行きに基づいて、前記主ボーンの順序を定め、当該決定された順序で、前記主ボーンを順に選択する選択工程、
前記位置計算部が、前記選択された主ボーンに対するグループに分類される制御点の当該仮想空間における位置を計算する位置計算工程、
前記制御点の位置が計算されると、前記スキン計算部が、当該計算された制御点の位置から、スキンの形状を計算するスキン計算工程、
前記スキンの形状が計算されると、前記描画部が、当該計算されたスキンの形状を、前記視点位置から前記視線方向に見た様子を表すスキン画像を、既に描画済みの画像に重ねて描画する描画工程、
すべての主ボーンに対するグループに分類される制御点の位置から計算されたスキンの形状を表すスキン画像が描画されると、前記表示部が、当該既に描画済みの画像を、画面に表示する表示工程
を備えることを特徴とする画像生成方法。
【請求項10】
コンピュータに、仮想空間に配置される複数のボーンおよび複数の制御点から、画像を生成させるプログラムであって、
あるボーンの位置および向きが他のボーンに対して相対的に定められている場合、当該あるボーンは当該他のボーンに依存し、
あるボーンの位置および向きが前記仮想空間に対して定められている場合、当該あるボーンは当該仮想空間に依存し、
前記複数の制御点のそれぞれは、当該複数のボーンのいずれかに対する相対的な位置が固定され、
当該複数のボーンの種類には、主ボーンがあり、
当該主ボーンのいずれか一つは、当該仮想空間に依存し、それ以外の主ボーンのそれぞれは、他のいずれかの主ボーンに依存し、
前記複数の制御点のそれぞれは、当該制御点の相対的な位置が固定されるボーンが主ボーンである場合、当該主ボーンに対するグループに分類され、
前記プログラムは、前記コンピュータを、
当該複数のボーンのそれぞれについて、当該ボーンが依存する他のボーンに対する相対的な位置および向きが記憶される記憶部、
時間の経過もしくはユーザからの指示に基づいて、前記記憶部に記憶されるそれぞれの主ボーンの位置および向きを更新する主更新部、
前記主更新部による更新がされると、前記仮想空間内の視点位置と視線方向に対する前記主ボーンのそれぞれの奥行きに基づいて、前記主ボーンの順序を定め、当該決定された順序で、前記主ボーンを順に選択する選択部、
前記選択された主ボーンに対するグループに分類される制御点の当該仮想空間における位置を計算する位置計算部、
前記制御点の位置が計算されると、当該計算された制御点の位置から、スキンの形状を計算するスキン計算部、
前記スキンの形状が計算されると、当該計算されたスキンの形状を、前記視点位置から前記視線方向に見た様子を表すスキン画像を、既に描画済みの画像に重ねて描画する描画部、
すべての主ボーンに対するグループに分類される制御点の位置から計算されたスキンの形状を表すスキン画像が描画されると、当該既に描画済みの画像を、画面に表示する表示部
として機能させることを特徴とするプログラム。

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


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