説明

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

【課題】仮想空間に配置されたキャラクターの頭部において目や口が開閉する画像をアニメーションで広く用いられている描法で生成する画像生成装置等を提供する。
【解決手段】画像生成装置901において、記憶部902は、第1種もしくは第2種の制御点が固定され、互いに連結されたボーンについてのボーン情報を記憶し、更新部903は、ユーザからの指示や時間経過に基づいてボーン情報を更新し、交点位置計算部904は、第2種の制御点が固定されたボーンから、当該第2種の制御点へ向かう半直線が、いずれかのボーンに固定された制御曲面と交差する交点の位置を計算し、スキン形状計算部905は、第1種の制御点の位置と、交点の位置とから、スキン形状を計算し、生成部906は、計算されたスキン形状から、画像を生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想空間に配置されたキャラクターの頭部において目や口が開閉する画像をアニメーションで広く用いられている描法で生成するのに好適な画像生成装置、画像生成方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【0002】
従来から、コンピュータグラフィックス(Computer Graphics;CG)において人物や動物などのキャラクターを表現する際に、その骨格をボーンという線分オブジェクトで抽象化し、各ボーンの回りにボーンに対して位置が固定される点の位置によって、皮膚の形状を抽象化したスキンの形状を求めて、頭部の形状を表す技術が提案されている。すなわち、ボーンは、キャラクターのおおまかな姿勢や形状を決めるものであり、スキンは、キャラクターの表面形状・外観形状に相当するものである。
【0003】
制御点は、いずれかのボーンに対してその相対的な位置が固定されている。したがって、制御点と、当該制御点が固定されるボーンとの距離は一定である。そして、仮想空間内において制御点の位置を変化させたい場合には、ボーンの姿勢を変化させ、この変化に連動させることによって行う。
【0004】
このほか、あるボーンの周囲において、ボーンと制御点との距離を一定に保ったまま制御点を移動させる処理も、座標系の回転による計算によって容易に行うことができる。
【0005】
このようなボーン、制御点、スキンに基づくコンピュータ・グラフィックスの技術は、以下の文献に開示されている。
【非特許文献1】Tim Coleman,Sherri Sheridan著、デジタル・スタジオ飜訳、目指せプロアニメータ Mayaキャラクタアニメーション、255頁〜277頁、株式会社ボーンデジタル、2002年4月25日発行、(原書: Nathan Vogel,Sherri Sheridan,Tim Coleman,and Nathan Nogel, MAYA 2 CHARACTER ANIMATION, ISBN:0735708665, New Riders Publishing, pp.431-433,Dec 1999)
【0006】
[非特許文献1]では、キャラクターの頭部に配置された目、鼻、口などのオブジェクトの形状を変化させて、キャラクターの表情を変化させる技術が開示されている。
【0007】
この際には、目や口を開閉させる骨やその骨に付随する筋肉に相当する機能をボーンが担う。開閉される目蓋や唇に対応付けられるボーンの姿勢を変化させることで、そのボーンに固定される目蓋や唇の制御点の位置を変化させて、目や口を開閉させるのである。
【0008】
ここで、海外制作のアニメーションでは、[非特許文献1]にも開示されるように、顔、目、口の形状を大袈裟に変形させることが多い。
【0009】
一方で、特に日本のアニメーションにおけるキャラクターの描法には、独特の特徴がある。すなわち、目や口といった顔の皮膚に設けられる開孔を開閉させる場合には、顔の全体形状は変化させず、目や口の形状のみを変化させる「目パチ」「口パク」と呼ばれる手法である。
【0010】
本手法は、アニメーションにおける動画の枚数をできるだけ減らすために、顔全体の形状を表すセル画に目や口の形状のみを変化させたセル画を重ねて撮影することとしたことから始まるものであるが、シンプルであるが故に技術を要し、奥が深い描法であることから、日本独自の文化を表す表現手法の一つとして、世界に広く認められるようになっている。
【発明の開示】
【発明が解決しようとする課題】
【0011】
ボーン、制御点、スキンの組み合わせによる技術は、3次元グラフィックスの分野で広く用いられており、各種のライブラリやハードウェアも提供されているため、仮想空間に配置されたオブジェクトとしてモデル化されたキャラクターをCG技術で画面に表示する際に、これらの技術をできるだけ利用することにより、処理の高速化を図りたい、という要望は強い。
【0012】
しかしながら、上記のような日本独自のアニメーション表現に対して、従来のボーン、制御点、スキンの組み合わせによる技術を採用すると、目や口が顔の表面からずれてしまう、という問題が生じる。これは、日本独自の描法による目や口の動きは、現実の骨や関節や筋肉による動きを模したものではなく、独自の単純化がなされており、ボーンの姿勢に制御点の位置を連動させるだけでは対応ができないからである。
【0013】
そこで、上記のようなボーン、制御点、スキンの組み合わせによるグラフィックス技術を応用しつつ、日本独自の描法にも対応して、高速に処理を行う技術が強く望まれている。
【0014】
本発明は、上記のような課題を解決するもので、仮想空間に配置されたキャラクターの頭部において目や口が開閉する画像をアニメーションで広く用いられている描法で生成するのに好適な画像生成装置、画像生成方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【0015】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【0016】
本発明の第1の観点に係る画像生成装置は、仮想空間に配置される複数のボーン、複数の制御点、および、制御曲面から、画像を生成し、記憶部、更新部、交点位置計算部、スキン形状計算部、生成部を備え、以下のように構成する。
【0017】
すなわち、当該複数のボーンのそれぞれは、長さが固定されており、その端点が他のボーンに連結され、当該複数の制御点のそれぞれは、当該複数のボーンのいずれかに対する相対的な位置が固定され、その種類は、第1種もしくは第2種のいずれかであり、当該制御曲面は、当該複数のボーンのうち相対的な位置が固定される制御点がいずれも第1種であるボーンのいずれかに対して、相対的な位置が固定される。
【0018】
ボーンおよび制御点を使用して、キャラクターの顔の形状などの画像を生成する手法は、従来から用いられている3次元グラフィックスの技術を適用することができる。
【0019】
本発明では、ボーンに対して制御点の位置が固定されており、制御点の位置を移動させる際には、ボーンの姿勢を変更する技術を前提とするが、これは、3次元グラフィックスの分野では広く用いられている技術であり、本技術に対する変更をできるだけ少なくすることで、既存の高速なグラフィックスハードウェアやライブラリを利用することができるようになる。
【0020】
一方、制御曲面は、本発明特有の3次元グラフィックスの要素であり、いずれかのボーンにその相対的な位置が固定されている。
【0021】
さらに、制御点には、第1種のものと第2種のものとがある。本発明がキャラクターの頭部の画像を生成する状況に適用される場合、第1種の制御点は、顔の中でほとんど動かない部位の形状を定めるためのものであり、第2種の制御点は、目蓋や唇など、顔の開孔付近の(第1種の制御点に制御される部分に比べて)動きが激しい部分の形状を定めるものである。
【0022】
ここで、制御曲面が固定されるボーンに連動する制御点は、第1種のもののみである。したがって、制御曲面は、顔の中でほとんど動かないこととなる。
【0023】
一方、記憶部には、以下の情報が記憶される。
(a)当該複数のボーンのそれぞれについて、その端点が連結される他のボーンに対する相対的な姿勢を示すボーン情報。
(b)当該制御曲面の相対的な位置が固定されるボーンと、当該固定される相対的な位置と、当該制御曲面の形状と、を示す制御曲面情報。
(c)当該複数の制御点のそれぞれについて、当該制御点の相対的な位置が固定されるボーンと、当該固定される相対的な位置と、当該制御点の種類と、を示す制御点情報。
【0024】
あるボーンAが他のボーンBに連結されている場合、ボーンBに固定されている座標系において、ボーンAの端点の位置は動かない。そこで、ボーンBに固定される座標系をどのように回転させれば、ボーンAに固定される座標系と同じ向きとなるか、の情報をボーン情報とする。
【0025】
本発明においては、ボーンの長さは固定されているから、ボーンBの先端にボーンAが連結されているものとすれば、ボーンBに固定される座標系におけるボーンAの端点の位置は自ずと定まる。たとえば、ボーンBの長さをLとし、ボーンBに固定されるx軸の方向をボーンBの長さ方向とすれば、ボーンBの先端(ボーンAの端点)の位置は、ボーンBに固定される座標系において、(L,0,0)となる。
【0026】
制御点および曲面については、これらが固定されるボーンがいずれであるか、ならびに、当該ボーンに固定される座標系における位置を、制御曲面情報および制御点情報として記憶する。
【0027】
制御点については、第1種か第2種かを区別できるようにしておく必要があるが、それぞれの制御点の情報を記憶する構造体に、制御点の種類を記憶するフラグ領域を用意しても良いし、当該構造体の配列を2つ用意し、一方は第1種の制御点用、他方は第2種の制御点用として、記憶する配列領域を区別して記憶することとしても良い。
【0028】
一方、更新部は、時間の経過もしくはユーザからの指示に基づいて、記憶部に記憶されるボーン情報のそれぞれを更新する。
【0029】
たとえば、キャラクターの声の再生の経過時間に応じて唇の制御点が固定されたボーンを動かすように情報を更新することによって、キャラクターが発生する声に合わせて口を開閉させたり、一定時間を周期に目蓋の制御点が固定されたボーンを動かすように情報を更新することによってキャラクターにまばたきをさせることができる。このほか、ユーザがウィンクコマンドを出すことによって、キャラクターの目蓋を開閉させたり、ユーザが入力したチャットの文章の内容に応じてキャラクターの口を動かすことも可能である。
【0030】
一方、交点位置計算部は、当該複数の制御点のうち、第2種の制御点のそれぞれについて、当該第2種の制御点の相対的な位置が固定されるボーンから当該第2種の制御点へ伸びる半直線が、当該制御曲面と交差する交点の位置を計算する。
【0031】
上記のように、第2種の制御点はボーンに連動して移動するため、当該ボーンの端点を中心とする球面上を移動可能範囲とする。一方、キャラクターの口や目の付近の形状は、この球面と合致しないことが殆どである。したがって、第2種の制御点の位置をそのまま唇や目蓋のスキン形状を決定する制御点とすると、口や目の付近が不自然に飛び出したり凹んだりするおそれがある。
【0032】
制御曲面は、このような凹凸を防止するためのもので、口付近の基本形状や目付記の基本形状を近似するもので、このために、ほとんど動かないボーンに固定されている。そして、第2種の制御点の位置をそのまま利用してスキンを作るかわりに、ボーンから第2種の制御点へ伸びる半直線が制御曲面と交差する交点の位置を採用するのである。
【0033】
さらに、スキン形状計算部は、当該複数の制御点のうち、第1種の制御点のそれぞれの位置と、計算された交点のそれぞれの位置と、から、スキンの形状を計算する。
【0034】
上記のように、第1種の制御点は、キャラクターの顔の形状であまり動かない部分の形状を定め、交点は、キャラクターの顔の表面(を近似する制御曲面)を移動して口や目の形状を定める。このため、口や目の付近が不自然に飛び出したり凹んだりする問題を防止することができる。
【0035】
そして、生成部は、計算されたスキンの形状を所定の視点から見た画像を生成する。
【0036】
生成部による画像生成の処理には、広く利用されている3次元コンピュータグラフィックスの処理を適用することが可能である。
【0037】
本発明によれば、端点を中心とするボーンの姿勢の回転に連動して制御点の位置を変更する処理を前提とするコンピュータグラフィックス処理において、一部の制御点(第2種の制御点)について、当該第2種の制御点をスキン形状の決定に用いるのではなく、当該第2種の制御点が固定されるボーンから当該第2種の制御点へ伸びる半直線がいずれかのボーンに連動して位置を変更する制御曲面と交差する交点をかわりに、スキン形状の決定に用いることで、たとえば仮想空間に配置されたキャラクターの目や口が開閉する様子をあらわす画像を、アニメーションで広く用いられている描法で生成することができるようになる。
【0038】
また、本発明のその他の観点に係る画像生成装置は、複数のボーン、複数の制御点、および、制御曲面から、画像を生成し、記憶部、更新部、交点位置計算部、スキン形状計算部、生成部を備え、以下のように構成する。
【0039】
ここで、当該複数のボーンのそれぞれは、長さが固定されており、その端点が他のボーンに連結され、当該複数の制御点のうち、第1種の制御点のそれぞれは、当該複数のボーンのいずれかに対する相対的な位置が固定され、第2種の制御点のそれぞれは、当該複数のボーンのいずれかに対する相対的な距離が固定され、当該制御曲面は、当該複数のボーンのいずれかに対して、相対的な位置が固定される。
【0040】
上記の発明では、どの制御点も、いずれかのボーンに固定されており、ボーンがその端点を中心に回転して姿勢を変化させると、それに連動して位置を変更するものとしていたが、本発明では、第2種の制御点は、いずれかのボーンを基準として、当該ボーンから距離一定で回転するように位置を変更する点が異なる。
【0041】
すなわち、本発明は、上記発明において、第2種の制御点のそれぞれについて、当該第2種の制御点のみが固定されるボーンが1つ用意されているのと同等の構成と考えることができる。
【0042】
一方、記憶部は、以下の情報を記憶する。
(a)当該複数のボーンのそれぞれについて、その端点が連結される他のボーンに対する相対的な姿勢を示すボーン情報と、
(b)当該制御曲面の相対的な位置が固定されるボーンと、当該固定される相対的な位置と、当該制御曲面の形状と、を示す制御曲面情報と、
(c)当該複数の制御点のうち、第1種の制御点のそれぞれについて、当該第1種の制御点の相対的な位置が固定されるボーンと、当該固定される相対的な位置と、を示す第1種の制御点情報と、
(d)当該複数の制御点のうち、第2種の制御点のそれぞれについて、当該第2種の制御点の相対的な距離が固定されるボーンと、当該ボーンに対する相対的な位置と、を示す第2種の制御点情報。
【0043】
上記発明と同様であるが、第1種の制御点情報と第2種の制御点情報とが区別されており、第2種の制御点情報については、当該第2種の制御点が一定の距離を保つボーンに関する情報が記憶されている点が異なる。
【0044】
さらに、更新部は、時間の経過もしくはユーザからの指示に基づいて、記憶部に記憶されるボーン情報に指定される姿勢、および、第2種の制御点情報に指定される相対的な位置のそれぞれを更新する。
【0045】
上記発明では、ボーン情報を更新することによって制御点の位置が変化されることとなっていたが、本発明では、第2種の制御点については、直接位置を変更するような処理を行う必要があるため、当該処理が追加されている。なお、この場合においても、第2種の制御点と、これに対する基準となるボーンの距離は一定である。
【0046】
さらに、交点位置計算部は、当該複数の制御点のうち、第2種の制御点のそれぞれについて、当該第2種の制御点の相対的な位置が固定されるボーンから当該第2種の制御点へ伸びる半直線が、当該制御曲面と交差する交点の位置を計算し、スキン形状計算部は、当該複数の制御点のうち、第1種の制御点のそれぞれの位置と、計算された交点のそれぞれの位置と、から、スキンの形状を計算し、生成部は、計算されたスキンの形状を所定の視点から見た画像を生成する。
【0047】
これら各部において実行される処理は、上記発明と同様である。
【0048】
本発明は上記発明の変形例に相当するもの、もしくは、上記発明において、第2種の制御点が固定されるボーンを他と重複しないようにし、当該第2種の制御点と当該ボーンとをまとめて「'第2種の制御点」として考えた発明に相当するものであり、仮想空間に配置されたキャラクターの目や口が開閉する様子をあらわす画像を、アニメーションで広く用いられている描法で生成することができるようになる。
【0049】
また、本発明の画像生成装置において、当該複数のボーンは、仮想空間に配置されるキャラクターの頭部の姿勢を定め、当該複数のボーンのそれぞれの姿勢が所定の基準姿勢にあるときの当該複数の制御点は、当該キャラクターの頭部の基準形状を定め、当該交点のそれぞれは、当該キャラクターの頭部において変形する口または目の形状を定め、当該制御曲面は、当該キャラクターの頭部の基準形状のうち口または目の近傍の形状を近似するように構成することができる。
【0050】
本発明は上記発明の好適実施形態に係るもので、ボーンの姿勢が基準姿勢(典型的にはキャラクターが直立し、口を閉じ、目を開けた状態)にあるときの第1種および第2種の制御点の位置によって、キャラクターの頭部の基本的なスキン形状(基準形状)が定められ、当該基準形状に基づいて制御曲面を定める。
【0051】
したがって、本発明によれば、キャラクターの口や目の開閉の際に口や目の近傍に不自然な凹凸が生じないようにすることができるようになる。
【0052】
また、本発明の画像生成装置において、当該制御曲面は、NURBS(Non Uniform Rational B Spline)曲面であり、当該交点位置計算部は、ニュートン・ラフソン法により、当該交点の位置を計算するように構成することができる。
【0053】
本発明においては、制御曲面として、3次元コンピュータグラフィックスの分野で広く用いられるNURBS曲面を採用するが、当該NURBS曲面の形状は2つのパラメータに基づく多次多項式によって表される。したがって、半直線との交点を求める問題は、一般には、解析的に解くことが不可能である。
【0054】
一方で、ニュートン・ラフソン法には、初期値によって収束する解が異なったり、重根を求めることが難しい場合がある等の問題があるが、当該半直線と制御曲面とは、1つの交点を有するように設定されているものであり、これらの問題は交点を求める上で何らの障害とはならない。そこで、計算の収束が高速であるニュートン・ラフソン法を適用するものである。
【0055】
本発明によれば、制御曲面の形状をNURBS曲面によって自然にキャラクター等の顔の形状に沿うように定義することができる一方で、高速に交点の位置を求めることができるようになる。
【0056】
また、本発明の画像生成装置において、当該制御曲面は、2次曲面、平面、もしくは、多面体の表面であり、当該交点位置計算部は、当該半直線に含まれる座標を表す1次式を、当該制御曲面を表す2次以下の式に代入して得られる2次以下の方程式を解くことにより、当該交点の位置を計算するように構成することができる。
【0057】
上記の発明では、NURBS曲面によって制御曲面を定義したが、本発明では、球面、双曲面、放物面およびこれらを各軸方向へ適宜拡大縮小したものや、平面や、ポリゴンの集合体により表現することが可能である多角形の表面により制御曲面を定義する。
【0058】
上記のような2次曲面、平面、多角形の表面は、いずれも、制御曲面の形状を、各座標を用いた2次以下の多項式によって表現することができる。
【0059】
一方で、半直線は、1次多項式によって表現することが可能であるから、交点の位置の計算は、2次方程式を解くことに帰着され、解の公式により解析的に解くことが可能である。
【0060】
本発明によれば、制御曲面の形状を2次曲面、平面、多角形の表面によって自然にキャラクター等の顔の形状に沿うように定義することができる一方で、高速に交点の位置を求めることができるようになる。
【0061】
また、本発明の画像生成装置において、計算されるスキンは、当該第1種制御点と、当該交点と、を頂点とする多角形の集合体であるように構成することができる。
【0062】
また、本発明の画像生成装置において、計算されるスキンは、当該第1種制御点と、当該交点と、を制御点とするNURBS(Non Uniform Rational B Spline)曲面であるように構成することができる。
【0063】
これらの発明は、上記発明の好適実施形態に係るもので、本発明によれば、キャラクターの顔の形状をポリゴンやNURBS曲面によって、自然な形状で表現することができるようになる。
【0064】
本発明のその他の観点に係る画像生成方法は、記憶部、更新部、交点位置計算部、スキン形状計算部、生成部を備える画像生成装置にて実行され、仮想空間に配置される複数のボーン、複数の制御点、および、制御曲面から、画像を生成し、更新工程、交点位置計算工程、スキン計算工程、生成工程を備え、以下のように構成する。
【0065】
すなわち、当該複数のボーンのそれぞれは、長さが固定されており、その端点が他のボーンに連結され、当該複数の制御点のそれぞれは、当該複数のボーンのいずれかに対する相対的な位置が固定され、その種類は、第1種もしくは第2種のいずれかであり、当該制御曲面は、当該複数のボーンのうち相対的な位置が固定される制御点がいずれも第1種であるボーンのいずれかに対して、相対的な位置が固定される。
【0066】
一方、記憶部には、
(a)当該複数のボーンのそれぞれについて、その端点が連結される他のボーンに対する相対的な姿勢を示すボーン情報と、
(b)当該制御曲面の相対的な位置が固定されるボーンと、当該固定される相対的な位置と、当該制御曲面の形状と、を示す制御曲面情報と、
(c)当該複数の制御点のそれぞれについて、当該制御点の相対的な位置が固定されるボーンと、当該固定される相対的な位置と、当該制御点の種類と、を示す制御点情報と、
が記憶される。
【0067】
さらに、更新工程では、更新部が、時間の経過もしくはユーザからの指示に基づいて、記憶部に記憶されるボーン情報のそれぞれを更新する。
【0068】
そして、交点位置計算工程では、交点位置計算部が、当該複数の制御点のうち、第2種の制御点のそれぞれについて、当該第2種の制御点の相対的な位置が固定されるボーンから当該第2種の制御点へ伸びる半直線が、当該制御曲面と交差する交点の位置を計算する。
【0069】
一方、スキン形状計算工程では、スキン形状計算部が、当該複数の制御点のうち、第1種の制御点のそれぞれの位置と、計算された交点のそれぞれの位置と、から、スキンの形状を計算する。
【0070】
さらに、生成工程では、生成部が、計算されたスキンの形状を所定の視点から見た画像を生成する。
【0071】
また、本発明の画像生成方法は、記憶部、更新部、交点位置計算部、スキン形状計算部、生成部を備える画像生成装置にて実行され、仮想空間に配置される複数のボーン、複数の制御点、および、制御曲面から、画像を生成し、更新工程、交点位置計算工程、スキン計算工程、生成工程を備え、以下のように構成する。
【0072】
すなわち、当該複数のボーンのそれぞれは、長さが固定されており、その端点が他のボーンに連結され、当該複数の制御点のうち、第1種の制御点のそれぞれは、当該複数のボーンのいずれかに対する相対的な位置が固定され、第2種の制御点のそれぞれは、当該複数のボーンのいずれかに対する相対的な距離が固定され、当該制御曲面は、当該複数のボーンのいずれかに対して、相対的な位置が固定される。
【0073】
一方、記憶部には、
(a)当該複数のボーンのそれぞれについて、その端点が連結される他のボーンに対する相対的な姿勢を示すボーン情報と、
(b)当該制御曲面の相対的な位置が固定されるボーンと、当該固定される相対的な位置と、当該制御曲面の形状と、を示す制御曲面情報と、
(c)当該複数の制御点のうち、第1種の制御点のそれぞれについて、当該第1種の制御点の相対的な位置が固定されるボーンと、当該固定される相対的な位置と、を示す第1種の制御点情報と、
(d)当該複数の制御点のうち、第2種の制御点のそれぞれについて、当該第2種の制御点の相対的な距離が固定されるボーンと、当該ボーンに対する相対的な位置と、を示す第2種の制御点情報と、
が記憶される。
【0074】
さらに、更新工程では、更新部が、時間の経過もしくはユーザからの指示に基づいて、記憶部に記憶されるボーン情報に指定される姿勢、および、第2種の制御点情報に指定される相対的な位置のそれぞれを更新する。
【0075】
そして、交点位置計算工程では、交点位置計算部が、当該複数の制御点のうち、第2種の制御点のそれぞれについて、当該第2種の制御点の相対的な位置が固定されるボーンから当該第2種の制御点へ伸びる半直線が、当該制御曲面と交差する交点の位置を計算する。
【0076】
一方、スキン形状計算工程では、スキン形状計算部が、当該複数の制御点のうち、第1種の制御点のそれぞれの位置と、計算された交点のそれぞれの位置と、から、スキンの形状を計算する。
【0077】
さらに、生成工程では、生成部が、計算されたスキンの形状を所定の視点から見た画像を生成する。
【0078】
本発明のその他の観点に係るプログラムは、コンピュータを上記の画像生成装置として機能させ、コンピュータに上記の画像生成方法を実行させるように構成する。
【0079】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【0080】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【0081】
本発明によれば、仮想空間に配置されたキャラクターの頭部において目や口が開閉する画像をアニメーションで広く用いられている描法で生成するのに好適な画像生成装置、画像生成方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【発明を実施するための最良の形態】
【0082】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例1】
【0083】
図1は、プログラムを実行することにより、本発明の画像生成装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【0084】
情報処理装置100は、CPU(Central Processing Unit)101と、ROM 102と、RAM(Random Access Memory)103と、インターフェイス104と、コントローラ105と、外部メモリ106と、画像処理部107と、DVD−ROM(Digital Versatile Disc ROM)ドライブ108と、NIC(Network Interface Card)109と、音声処理部110と、マイク111と、を備える。
【0085】
ゲーム用のプログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ108に装着して、情報処理装置100の電源を投入することにより、当該プログラムが実行され、本実施形態の画像生成装置が実現される。
【0086】
CPU 101は、情報処理装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、CPU 101は、レジスタ(図示せず)という高速アクセスが可能な記憶域に対してALU(Arithmetic Logic Unit)(図示せず)を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、CPU 101自身が構成されているものや、コプロセッサを備えて実現するものがある。
【0087】
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録され、これが実行されることにより、DVD−ROMに記録されたプログラムをRAM 103に読み出してCPU 101による実行が開始される。また、ROM 102には、情報処理装置100全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【0088】
RAM 103は、データやプログラムを一時的に記憶するためのもので、DVD−ROMから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、CPU 101は、RAM 103に変数領域を設け、当該変数に格納された値に対して直接ALUを作用させて演算を行ったり、RAM 103に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【0089】
インターフェイス104を介して接続されたコントローラ105は、ユーザがゲーム実行の際に行う操作入力を受け付ける。
【0090】
インターフェイス104を介して着脱自在に接続された外部メモリ106には、ゲーム等のプレイ状況(過去の成績等)を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ(記録)のデータなどが書き換え可能に記憶される。ユーザは、コントローラ105を介して指示入力を行うことにより、これらのデータを適宜外部メモリ106に記録することができる。
【0091】
DVD−ROMドライブ108に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。CPU 101の制御によって、DVD−ROMドライブ108は、これに装着されたDVD−ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはRAM 103等に一時的に記憶される。
【0092】
画像処理部107は、DVD−ROMから読み出されたデータをCPU 101や画像処理部107が備える画像演算プロセッサ(図示せず)によって加工処理した後、これを画像処理部107が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部107に接続されるモニタ(図示せず)へ出力される。これにより、各種の画像表示が可能となる。
【0093】
画像演算プロセッサは、2次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【0094】
また、仮想3次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から仮想3次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【0095】
さらに、CPU 101と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【0096】
NIC 109は、情報処理装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものであり、LAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェース(図示せず)により構成される。
【0097】
音声処理部110は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ(図示せず)から出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【0098】
音声処理部110では、DVD−ROMに記録された音声データがMIDIデータである場合には、これが有する音源データを参照して、MIDIデータをPCMデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してPCMデータに変換する。PCMデータは、そのサンプリング周波数に応じたタイミングでD/A(Digital/Analog)変換を行って、スピーカに出力することにより、音声出力が可能となる。
【0099】
さらに、情報処理装置100には、インターフェイス104を介してマイク111を接続することができる。この場合、マイク111からのアナログ信号に対しては、適当なサンプリング周波数でA/D変換を行い、PCM形式のディジタル信号として、音声処理部110でのミキシング等の処理ができるようにする。
【0100】
このほか、情報処理装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ108に装着されるDVD−ROM等と同じ機能を果たすように構成してもよい。
【0101】
以上で説明した情報処理装置100は、いわゆる「コンシューマ向けテレビゲーム装置」に相当するものであるが、仮想空間を表示するような画像処理を行うものであれば本発明を実現することができる。したがって、携帯電話、携帯ゲーム機器、カラオケ装置、一般的なビジネス用コンピュータなど、種々の計算機上で本発明を実現することが可能である。
【0102】
たとえば、一般的なコンピュータは、上記情報処理装置100と同様に、CPU、RAM、ROM、DVD−ROMドライブ、および、NICを備え、情報処理装置100よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっている。また、コントローラ105ではなく、キーボードやマウスなどを入力装置として利用する。
【0103】
図2は、仮想空間内におけるボーン、制御点、スキンの関係を示す説明図である。以下、本図を参照して説明する。
【0104】
本図に示す例では、仮想空間200内には、2つのボーン201a、201bが配置されている。各ボーン201a、201bの長さは一定である。ボーン201bの端点202bは、ボーン201aの突端203aに連結されており、ボーン201bは、端点202bを回転中心にして、ボーン201aに対して回転することができる。
【0105】
したがって、ボーン201aの端点202bに原点が一致し、ボーン201aに固定された座標系204aにおけるボーン201bの端点202bの座標は、一定となる。
【0106】
本図では、ボーン201a、201bは、長い角錐に楕円球を連結した形状で表現されており、角錐の上頂点が突端203a、203bに、楕円球が端点202a、202bに、それぞれ対応している。
【0107】
また、ボーン201aに固定された座標系204aにおける回転量(姿勢)を与えることにより、ボーン201aに対するボーン201bの相対的な姿勢が一意に定まることになる。なお、ここでいう回転は、「ある1つの軸を中心に回転する」の意味ではなく、「ある1つの点を中心に回転する」の意味であり、たとえばユニバーサルジョイントなどによって実現されるような回転に相当するものである。
【0108】
このように、あるボーン201bの端点202bが他のボーン201aの突端203aに一致して、端点202bを中心にボーン201bが回転する姿勢によって、ボーン201aに対するボーン201bの相対的な位置が定まる場合、ボーン201aとボーン201bとには、座標系の依存関係の順序を定めることができる。
【0109】
たとえばキャラクターの頭部の位置や形状を定めるには、表す場合には、一般的には、
(1)背骨に相当するボーンに対して首の骨に相当するボーンの位置を定め、
(2)首の骨に相当するボーンに対して頭蓋骨に相当するボーンの位置を定め、
(3a)頭蓋骨に相当するボーンに対して顎の骨に相当するボーンの位置を定め、
(3b)頭蓋骨に相当するボーンに対して目蓋に相当するボーンの位置を定め、……
のように、複数のボーンを連結させることによって行う。また、ボーンは、現実の人間や動物の骨格と一致するように設定しても良いし、適宜省略したり、追加したりしても良い。たとえば目蓋のように、筋肉のみによって動作するような部分であっても、上記のように仮想的にボーンを設定することで、キャラクターの表情の設計を行うのが一般的である。
【0110】
さて、ボーン201aには、複数の制御点205aが割り当てられている(割当の対応関係を点線で示している)。各制御点205aの、ボーン201aに割り当てられた座標系204aにおける座標は一定である。したがって、各制御点205aは、ボーン201aに固定されている。
【0111】
一方、ボーン201bにも、複数の制御点205bが割り当てられている。各制御点205bの、ボーン201bに割り当てられた座標系204bにおける座標は一定である。したがって、各制御点205bは、ボーン201bに固定されている。
【0112】
したがって、ボーン201bが端点202bを中心にボーン201aに対して回転すると、制御点205bもこれに連動してボーン201aに対して回転することになる。
【0113】
ある座標系に対する他の座標系の原点の位置、ならびに、当該ある座標系に対する当該他の座標系の各軸の方向(回転量)が定まれば、当該ある座標系と当該他の座標系において、相互に点の座標値を一意に変換することが可能である。
【0114】
したがって、ボーン201aに対するボーン201bの相対的な姿勢を変化させることによって、ボーン201aに対する制御点205bの相対的な位置を計算により求めることができる。一方、ボーン201aに対する制御点205aの相対的な位置は、上記のように固定されているから、2つのボーン201a、201bに固定された全制御点201a、201bの座標系204aに対する座標値や、座標系204bに対する座標値は、座標変換の計算によって求めることができ、これらの処理を連結されたすべてのボーンについて繰り返すことにより、すべての制御点の、ある座標系(典型的には背骨に固定された座標系、もしくは、グローバル座標系)における位置を確定させることができる。
【0115】
さて、上記のようにして制御点205a、205bのある座標系における位置が定まったら、これらの制御点205a、205bの位置に基づいて、スキン206を定めることができる。
【0116】
本実施形態では、スキン206は、ポリゴン207の集合体であり、制御点205a、205bをあらかじめ定めた対応付けで各ポリゴン207の頂点としている。本図に示す例では、人の腕の表面の一部のような形状をなしている。
【0117】
制御点205a、205bをポリゴン207の頂点としてポリゴン207によってスキン206の形状を定める手法のほか、各制御点205a、205bに重みを割り振ることによって定義されるNURBS(Non Uniform Rational B Spline)曲面をスキンとする手法を採用しても良い。この手法では、制御点の数をさらに増やすことも可能である。この場合には、スキン206の形状は、2つのパラメータu,vの有理多項式により当該スキン206内の点の座標値が定められることとなる。
【0118】
ボーンの突端には別のボーンが連結されておらず、ボーンに固定される制御点205bがただ一つである場合、当該ボーンを「単制御点ボーン」と呼ぶこととする。
【0119】
ボーン201bが単制御点ボーンである場合には、制御点205bの座標値をボーン201bに固定された座標系204bにおいて固定したものとする上記の手法のほか、ボーン201bの突端203bそのものを制御点205bとしてしまう手法もありうる。これは、いずれの手法を採用しても良い。
【0120】
この場合、わざわざ座標系204bを想定する必要はなくなる。すなわち、制御点205bは、ボーン201aの突端203a(単制御点ボーン201bの端点202b)からの距離が一定(単制御点ボーン201bの長さに等しい)であるから、当該突端203aを中心とする球面上を移動することとなる。そして、単制御点ボーン201bの座標系204aにおける姿勢を定めることと、制御点205bの座標系204aにおける座標値を定めることとは、実質的に等価となる。そこで、以下の説明では、単制御点ボーンについては、その端点を制御点とするものとする。
【0121】
さて、本実施形態では、後述するように、いわゆる「口パク」に本発明を適用している。もっとも、本発明は、「目パチ」に同様に適用することができるほか、たとえば鼻の穴や、そのキャラクター特有の、よく動く部分に適用することもでき、それらの態様も本発明の範囲に含まれる。
【0122】
キャラクターの口の形状を定めるに際して、唇の縁は比較的自由に移動することとしておけば、いわゆる「口パク」のほか、口を上下や横に非対称に曲げたりすることもできるようになる。そこで、本実施形態では、頭蓋骨に相当するボーンに複数の単制御点ボーンを連結し、当該複数の単制御点ボーンの突端により、唇の縁の形状を定めることとする。
【0123】
図3は、キャラクターの頭部を形成するボーン、制御点、スキンの様子を示す説明図である。本図(a)は、キャラクターの頭部の透視図に相当し、本図(b)は、キャラクターの頭部の斜視図に相当する。以下、本図を参照して説明する。
【0124】
首の骨ボーン301は頭蓋骨ボーン302と連結されており、ポリゴン303の頂点304のほとんどは、頭蓋骨ボーン302に固定されている。
【0125】
ただし、唇の縁に相当する頂点305については、頭蓋骨ボーン302に連結点311において連結された単制御点ボーン306によりその位置が定められている。すなわち、連結点311は、頭蓋骨ボーン302の突端であり、単制御点ボーン306の端点である。
【0126】
そして、頂点305を制御点として、唇の縁の形状を表す頂点305の位置が定められている。
【0127】
そして、頂点304、頂点305により辺の位置が定められるポリゴン303によりキャラクターの顔のスキン308の形状を定められることから、頂点304は、頭蓋骨ボーン302に固定された制御点であり、頂点305は、単制御点ボーン306に固定された制御点に相当する。
【0128】
図4は、頭蓋骨ボーン、単制御点ボーン、キャラクターの頭部の基本形状の関係を示す断面図である。本断面図は、キャラクターの顔を左右の中心で切ったものであり、理解を容易にするため、位置関係を一部誇張して描いている。以下、本図を参照して説明する。
【0129】
本図に示すように、キャラクターの頭部が基本形状(もっとも頻繁に現れる表情に相当する)をとるとき、頭蓋骨ボーン302に連結された単制御点ボーン306の突端は、キャラクターの顔の基本形状401に重なって、唇の上端および下端の縁の頂点305(本図白丸印「○」で表す。)と一致している。ところが、本図に示すように頭蓋骨ボーン302の突端から、基本形状401までの距離は一定ではない。
【0130】
したがって、単制御点ボーン306を上下に回転させる(本図では、唇の下端に相当する部分を回転させている。点線で示す。)と、突端307(本図黒丸印「●」で示す。)は、基本形状401の中にめり込んだり、基本形状401の外へ突き出されたりしてしまう。
【0131】
しかしながら、日本の伝統的なアニメーションの描法においては、「口パク」によって唇の形状は変化するものの、顔の形状そのものは変形しないようにする。したがって、本実施形態では、突端307そのものを上端および下端の縁の頂点305として使用するのではなく、「制御曲面」による手法を用いる。
【0132】
図5は、本実施形態に係る頭蓋骨ボーン、単制御点ボーン、制御曲面、キャラクターの頭部の基本形状の関係を図4と同様の位置関係で示す断面図である。図6は、本実施形態に係る頭蓋骨ボーン、単制御点ボーン、制御曲面、キャラクターの頭部の基本形状の関係を図3と同様の位置関係で示す抽出図である。図7、図8は、本実施形態に係る頭蓋骨ボーン、単制御点ボーン、制御曲面、キャラクターの頭部の基本形状の関係をキャラクターの横から見た説明図であり、図7は、口を閉じている様子、図8は、口を開いている様子を表す。以下、これらの図を参照して説明する。
【0133】
制御曲面501は、キャラクターの基本形状401に沿う曲面であり、図6に示すように、本実施形態では、2×2のメッシュ、9個の制御点からなるNURBS曲面によってその形状が定義されている。
【0134】
そして、唇の縁の頂点305(図5では、白四角印「□」で表す。)として、単制御点ボーン306の突端307そのものではなく、「連結点311から単制御点ボーン306の突端307へ進む半直線(すなわち、単制御点ボーン306に沿って伸びる半直線)が、制御曲面501と交差する交点」を採用する。
【0135】
本手法を採用すれば、図5に示すように、単制御点ボーン306を上下に回転させて(本図点線で示す。)、突端307が基本形状401の中にめり込んだり、基本形状401の外へ突き出されたりしたとしても、唇の縁の頂点305は、キャラクターの頭部の基本形状401に沿う制御曲面501上にあるため、顔そのものの形状の変化は極めて小さくすることができ、日本の伝統的なアニメーションの描法を実現することができるのである。
【0136】
なお、本実施形態では、連結点311の位置を、頭蓋骨ボーン302の突端の位置、すなわち、単制御点ボーン306の端点の位置とし、キャラクターの顔の頭頂近傍に配置しているが、連結点311の位置は、必ずしもこの位置に限られない。たとえば、顔の形状の重心に相当するような位置としても良いし、頚骨の位置としても良い。すなわち、連結点311の位置は、キャラクターの口に対して、キャラクターの後方に配置すれば良いこととなる。また、本実施形態では、頭蓋骨ボーン302を口の形状とそれ以外の部分の形状を定めるために両用していることとなるが、それぞれのために異なるボーンを用意することとしても良い。
【0137】
また、図4においては、理解を容易にするため、基本形状では、単制御点ボーン306の突端307が、基本形状401に一致して唇の縁の頂点305をなすものとしていたが、唇の縁の頂点305は、上記のように、「連結点311から単制御点ボーン306の突端307へ進む半直線(すなわち、単制御点ボーン306に沿って伸びる半直線)が、制御曲面501と交差する交点」であるから、単制御点ボーン306をもっと長くしたり短くしたりしても良い。
【0138】
この場合、基本的な表情において、突端307の位置は基本形状401の外へ突き出されたり、基本形状401の中へ引っ込んだりするが、唇の縁の頂点305の位置は、制御曲面501に含まれることとなるから、基本形状401に沿うこととなる。
【0139】
ここで、制御曲面501が基本形状401に「沿う」とは、キャラクターが基本的な表情をしているときの基本形状401の頂点304、305からの制御曲面501の距離が、所定の許容誤差範囲内であることを意味する。この許容誤差は、当該キャラクターの用途やデザインの内容に応じて、適宜変更が可能である。
【0140】
制御曲面501としてNURBS曲面を採用した場合、制御曲面501に含まれる点の位置ベクトルをpとし、ある基準位置・方向を意味するベクトルをa,b,c(これらは、本実施形態では、頭蓋骨ボーン302に固定された座標系における定数ベクトルである。)とすると、位置ベクトルpは、スカラーのパラメータu,vを用いて、以下のように表現できる。
p = f(u,v)a + g(u,v)b + c
【0141】
ここで、f(u,v),g(u,v)は、いずれもスカラーの関数で、u,vに関するn次の多項式により表現される。
【0142】
一方、単制御点ボーン306に沿って伸びる半直線に含まれる点の位置ベクトルをqとし、ある基準位置・方向を意味するベクトルをr,sとすると、位置ベクトルqは、スカラーのパラメータt (t≧0)を用いて、以下のように表現できる。
q = t r + s
【0143】
すなわち、tに関する1次の多項式により表現されることになる。制御曲面501と、単制御点ボーン306に沿って伸びる半直線と、の交点を求めるには、
p = q
とおいて、パラメータu,v,tに関するn次3元連立方程式を解くことになる。
【0144】
n≧5である場合には、n次の方程式を一般的に解く解法は存在しないから、このような場合には、ニュートン・ラフソン法などを用いて解を求めることとなる。一般に、ニュートン・ラフソン法は、解への高速な収束が期待できる、という利点がある一方で、初期値によっては解が求まるとは限らないこと、初期値によって求められる解が変化してしまうこと、が欠点である、とされているが、頭蓋骨ボーン302の突端である連結点311と、制御曲面501との典型的な位置関係を考慮すれば、上記のようなニュートン・ラフソン法の欠点は、本発明においては問題とはならない。
【0145】
このほか、制御曲面501として2次曲面を採用することも可能である。2次曲面とは、ある座標系(本実施形態では、頭蓋骨ボーン302に固定された座標系を採用するのが典型的である。)において、制御曲面501に含まれる点の座標を(x,y,z)とおいたときに、2次の多項式h(x,y,z)により、
h(x,y,z) = 0
が成立するような曲面である。2次曲面には、球面、双曲面、放物面ならびに、これをその対称軸方向に適宜拡大縮小して変形したものが含まれるほか、平面も2次曲面の一種と考えることができる。
【0146】
一方、単制御点ボーン306に沿って伸びる半直線について、上記のベクトル表記に、
q = (qx,qy,qz)
などのように、x,y,zに関する添字をつけたものを、当該座標系における座標値とすると、
qx = trx + sx
qy = try + sy
qz = trz + sz
が得られる。
【0147】
したがって、これらの交点を求めるには、
x = qx
y = qy
z = qz
とおくこととなり、交点を求める問題は、パラメータt (t≧0)に関する2次方程式
h(trx + sx,try + sy,trz + sz) = 0
を解くことに帰着される。2次方程式には、解の公式があるため、これを用いれば、容易に交点の座標値を計算することが可能である。
【0148】
このほか、制御曲面501を、ポリゴンの集合体として定義することも可能である。各ポリゴンは、平面の領域を制限したもの、と考えることができるから、制御曲面501と単制御点ボーン306に沿って伸びる半直線と、の交点を求める問題は、平面群(各ポリゴン)と半直線の交点を求める問題に帰着される。ポリゴンの形状が比較的単純であり、ポリゴンの数が少ない場合には、交点を求める計算が高速にできることが期待される。
【0149】
上記の基本的な考え方に基づいて、以下ではさらに具体的に、本実施形態に係る画像生成装置の構成について説明する。図9は、本実施形態に係る画像生成装置の概要構成を示す説明図である。図10は、当該画像生成装置にて実行される画像生成処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【0150】
本実施形態に係る画像生成装置901は、記憶部902、更新部903、交点位置計算部904、スキン形状計算部905、生成部906を備える。
【0151】
ここで、記憶部902には以下の情報が記憶される。
(a)キャラクターの頭部の形状を定めるためのボーンの姿勢を定めるボーン情報。すなわち、首の骨ボーン301、頭蓋骨ボーン302、単制御点ボーン306の連結の関係および相対的な位置関係を示す情報である。上記のように、あるボーンが連結される他のボーンに対する相対的な姿勢を示すものである。典型的には、各軸方向の回転量や、クオータニオンにより表現される回転量により表現される。
(b)制御曲面501の相対的な位置が固定されるボーンと、固定される相対的な位置と、制御曲面501の形状と、を示す制御曲面情報。本実施形態では、制御曲面501は頭蓋骨ボーン302に固定されており、その形状は、NURBS曲面や2次曲面によって、上記のように定義されている。
(c)制御点のそれぞれについて、制御点の相対的な位置が固定されるボーンと、固定される相対的な位置と、制御点の種類と、を示す制御点情報。本実施形態では、制御点として、頂点304に相当するもの(ボーンに連動して動く制御点であって、頂点304と位置が一致するもの)と、頂点305に相当するもの(単制御点ボーン306の突端)と、の2種類があるが、前者を第1種の制御点、後者を第2種の制御点と呼ぶ。第1種の制御点は、直ちに頂点304となるが、第2種の制御点は、連結点311を起点として第2種の制御点を通過する半直線が、制御曲面501と交差する点が頂点305となる。
【0152】
第1種か第2種かを区別するための手法であるが、それぞれの制御点の情報を記憶する構造体に、制御点の種類を記憶するフラグ領域を用意しても良いし、当該構造体の配列を2つ用意し、一方は第1種の制御点用、他方は第2種の制御点用として、記憶する配列領域を区別して記憶することとしても良い。
【0153】
さて、本処理が開始されると、CPU 101は、RAM 103に用意された各領域を初期化する(ステップS951)。この領域には、上記記憶部902を実現するものも含まれる。したがって、RAM 103は、記憶部902として機能する。
【0154】
一方、更新部903は、時間の経過もしくはユーザからの指示に基づいて、記憶部902に記憶されるボーン情報のそれぞれを更新する(ステップS952)。
【0155】
たとえば、キャラクターの声の再生の経過時間に応じて唇の制御点が固定されたボーンを動かすように情報を更新することによって、キャラクターが発生する声に合わせて口を開閉させたり、一定時間を周期に目蓋の制御点が固定されたボーンを動かすように情報を更新することによってキャラクターにまばたきをさせることができる。
【0156】
このほか、ユーザがウィンクコマンドを出すことによって、キャラクターの目蓋を開閉させたり、ユーザが入力したチャットの文章の内容に応じてキャラクターの口を動かすことも可能である。ある時点からの時間の経過に対する制御点の位置の変化を時系列的にあらかじめ定めておくのが典型的である。
【0157】
これは、丁度アニメーションにおいて、「口パク」のセル画を複数枚用意し、時間の経過によってこのセル画を適宜交換して利用することに相当する。
【0158】
このほか、各ボーンの位置関係を時間の経過やユーザからの指示に基づいて変化させることで、キャラクターが首を振ったり、頷いたりする様子を表現することも可能である。
【0159】
したがって、CPU 101は、RAM 103と共働して、更新部903として機能する。
【0160】
さらに、交点位置計算部904は、第2種の制御点のそれぞれについて、当該第2種の制御点の相対的な位置が固定されるボーンから当該第2種の制御点へ伸びる半直線が、当該制御曲面と交差する交点の位置を計算する。すなわち、各単制御点ボーン306につき、当該単制御点ボーン306の連結点311から単制御点ボーン306の突端へ伸びる半直線が、制御曲面501と交差する交点の位置を計算する(ステップS953)。
【0161】
当該計算には、上記のように、ニュートン・ラフソン法や2次方程式を解く手法などを採用することができる。
【0162】
したがって、CPU 101は、RAM 103と共働して、交点位置計算部904として機能する。
【0163】
ついで、スキン形状計算部905は、当該複数の制御点のうち、第1種の制御点のそれぞれの位置と、計算された交点のそれぞれの位置と、から、スキンの形状を計算する(ステップS954)。第1種の制御点は、頂点304に相当し、交点の位置は、頂点305に相当するから、これらの頂点304、305に基づいて、上記のように、スキン308の形状を計算するのである。
【0164】
そして、生成部906は、計算されたスキンの形状を所定の視点から見た画像を生成して、RAM 103内に用意されたフレームバッファに展開する(ステップS955)。
【0165】
生成部906による画像生成の処理には、広く利用されている3次元コンピュータグラフィックスの処理を適用することが可能である。
【0166】
したがって、CPU 101は、RAM 103や画像処理部107と共働して、スキン形状計算部905ならびに生成部906として機能する。
【0167】
そして、CPU 101は、次の垂直同期割込が生じるまで待機する(ステップS956)。この待機の間には、他に必要な各種の計算処理を、コルーチン的に実行することも可能である。
【0168】
ついで、CPU 101の制御の下、RAM 103内に用意されたフレームバッファの内容を、画像処理部107が備えるフレームメモリに転送することによって、当該キャラクターの画像が、モニタに表示される(ステップS957)。ステップS952に戻り、これらの処理を繰り返すことによって、仮想空間内でキャラクターが表情を変化させて動くアニメーションを提示することができるようになる。
【0169】
なお、上記実施形態では、制御曲面501は、頭蓋骨ボーン302に完全に固定されているものとしていたが、口の変形を大袈裟にしたい、というアニメーション演出上の要望がある場合には、制御曲面501の位置を頭蓋骨ボーン302に対して変化させることで、これを容易に実現することができる。
【0170】
図11、図12は、制御曲面501の位置を頭蓋骨ボーン302に対して変化させることで変化するキャラクターの表情を示す説明図である。以下、本図を参照して説明する。図11は、キャラクターの表情の透視図であり、図12は、キャラクターの表情の外観図である。また、図12においては、符号を省略している。
【0171】
また、図11(a)、図12(a)においては、制御曲面501(図11では灰色に描かれている。)を基本形状401に沿う位置に配置したキャラクターの顔の形状を、前者では斜め前方から透視して図示しており、後者では斜めから俯瞰して図示している。したがって、図11(a)と図12(a)における各制御点やボーンの位置関係は、一致している。
【0172】
一方、図11(b)、図12(b)においては、制御曲面501(図11では灰色に描かれている。)を基本形状401から離れた位置に配置したキャラクターの顔の形状を、前者では斜め前方から透視して図示しており、後者では斜めから俯瞰して図示している。したがって、図11(b)と図12(b)における各制御点やボーンの位置関係は、一致している。
【0173】
また、図11(a)における単制御点ボーン(本図では符号を省略している。)の位置と、図11(b)における単制御点ボーン(本図では符号を省略している。)の位置と、は同じである。しかしながら上記のように、制御曲面501が基本形状401に対してとる位置が異なる。したがって、唇の縁990の形状も、本図(a)では、基本的な表情に合わせたものとなっているのに対し、本図(b)では、たとえば驚愕して口を突き出したような表情となっている。
【0174】
このように、本手法によれば、制御曲面の位置を変化させるだけで、キャラクターの表情を極端に大きく変化させることが容易にできる。
【産業上の利用可能性】
【0175】
以上説明したように、本発明によれば、仮想空間に配置されたキャラクターの頭部において目や口が開閉する画像をアニメーションで広く用いられている描法で生成するのに好適な画像生成装置、画像生成方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【0176】
【図1】プログラムを実行することにより、本発明の画像生成装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。
【図2】仮想空間内におけるボーン、制御点、スキンの関係を示す説明図である。
【図3】キャラクターの頭部を形成するボーン、制御点、スキンの様子を示す説明図である。
【図4】頭蓋骨ボーン、単制御点ボーン、キャラクターの頭部の基本形状の関係を示す断面図である。
【図5】本実施形態に係る頭蓋骨ボーン、単制御点ボーン、制御曲面、キャラクターの頭部の基本形状の関係を図4と同様の位置関係で示す断面図である。
【図6】本実施形態に係る頭蓋骨ボーン、単制御点ボーン、制御曲面、キャラクターの頭部の基本形状の関係を図3と同様の位置関係で示す抽出図である。
【図7】本実施形態に係る頭蓋骨ボーン、単制御点ボーン、制御曲面、キャラクターの頭部の基本形状の関係をキャラクターの横から見た説明図である。
【図8】本実施形態に係る頭蓋骨ボーン、単制御点ボーン、制御曲面、キャラクターの頭部の基本形状の関係をキャラクターの横から見た説明図である。
【図9】本実施形態に係る画像生成装置の概要構成を示す説明図である。
【図10】当該画像生成装置にて実行される画像生成処理の制御の流れを示すフローチャートである。
【図11】制御曲面の位置を頭蓋骨ボーンに対して変化させることで変化するキャラクターの表情を示す透視図である。
【図12】制御曲面の位置を頭蓋骨ボーンに対して変化させることで変化するキャラクターの表情を示す外観図である。
【符号の説明】
【0177】
100 情報処理装置
101 CPU
102 ROM
103 RAM
104 インターフェイス
105 コントローラ
106 外部メモリ
107 画像処理部
108 DVD−ROMドライブ
109 NIC
110 音声処理部
111 マイク
200 仮想空間
201 ボーン
202 端点
203 突端
204 座標系
205 制御点
206 スキン
207 ポリゴン
301 首の骨ボーン
302 頭蓋骨ボーン
303 ポリゴン
304 頂点
305 頂点
306 単制御点ボーン
307 単制御点ボーンの突端
308 スキン
311 連結点
401 基本形状
501 制御曲面
901 画像生成装置
902 記憶部
903 更新部
904 交点位置計算部
905 スキン形状計算部
906 生成部

【特許請求の範囲】
【請求項1】
仮想空間に配置される複数のボーン、複数の制御点、および、制御曲面から、画像を生成する画像生成装置であって、
当該複数のボーンのそれぞれは、長さが固定されており、その端点が他のボーンに連結され、
当該複数の制御点のそれぞれは、当該複数のボーンのいずれかに対する相対的な位置が固定され、その種類は、第1種もしくは第2種のいずれかであり、
当該制御曲面は、当該複数のボーンのうち相対的な位置が固定される制御点がいずれも第1種であるボーンのいずれかに対して、相対的な位置が固定され、
(a)当該複数のボーンのそれぞれについて、その端点が連結される他のボーンに対する相対的な姿勢を示すボーン情報と、
(b)当該制御曲面の相対的な位置が固定されるボーンと、当該固定される相対的な位置と、当該制御曲面の形状と、を示す制御曲面情報と、
(c)当該複数の制御点のそれぞれについて、当該制御点の相対的な位置が固定されるボーンと、当該固定される相対的な位置と、当該制御点の種類と、を示す制御点情報と、
を記憶する記憶部、
時間の経過もしくはユーザからの指示に基づいて、前記記憶部に記憶されるボーン情報のそれぞれを更新する更新部、
当該複数の制御点のうち、第2種の制御点のそれぞれについて、当該第2種の制御点の相対的な位置が固定されるボーンから当該第2種の制御点へ伸びる半直線が、当該制御曲面と交差する交点の位置を計算する交点位置計算部、
当該複数の制御点のうち、第1種の制御点のそれぞれの位置と、前記計算された交点のそれぞれの位置と、から、スキンの形状を計算するスキン形状計算部、
前記計算されたスキンの形状を所定の視点から見た画像を生成する生成部
を備えることを特徴とする画像生成装置。
【請求項2】
仮想空間に配置される複数のボーン、複数の制御点、および、制御曲面から、画像を生成する画像生成装置であって、
当該複数のボーンのそれぞれは、長さが固定されており、その端点が他のボーンに連結され、
当該複数の制御点のうち、第1種の制御点のそれぞれは、当該複数のボーンのいずれかに対する相対的な位置が固定され、第2種の制御点のそれぞれは、当該複数のボーンのいずれかに対する相対的な距離が固定され、
当該制御曲面は、当該複数のボーンのいずれかに対して、相対的な位置が固定され、
(a)当該複数のボーンのそれぞれについて、その端点が連結される他のボーンに対する相対的な姿勢を示すボーン情報と、
(b)当該制御曲面の相対的な位置が固定されるボーンと、当該固定される相対的な位置と、当該制御曲面の形状と、を示す制御曲面情報と、
(c)当該複数の制御点のうち、第1種の制御点のそれぞれについて、当該第1種の制御点の相対的な位置が固定されるボーンと、当該固定される相対的な位置と、を示す第1種の制御点情報と、
(d)当該複数の制御点のうち、第2種の制御点のそれぞれについて、当該第2種の制御点の相対的な距離が固定されるボーンと、当該ボーンに対する相対的な位置と、を示す第2種の制御点情報と、
を記憶する記憶部、
時間の経過もしくはユーザからの指示に基づいて、前記記憶部に記憶されるボーン情報に指定される姿勢、および、第2種の制御点情報に指定される相対的な位置のそれぞれを更新する更新部、
当該複数の制御点のうち、第2種の制御点のそれぞれについて、当該第2種の制御点の相対的な位置が固定されるボーンから当該第2種の制御点へ伸びる半直線が、当該制御曲面と交差する交点の位置を計算する交点位置計算部、
当該複数の制御点のうち、第1種の制御点のそれぞれの位置と、前記計算された交点のそれぞれの位置と、から、スキンの形状を計算するスキン形状計算部、
前記計算されたスキンの形状を所定の視点から見た画像を生成する生成部
を備えることを特徴とする画像生成装置。
【請求項3】
請求項1または2に記載の画像生成装置であって、
当該複数のボーンは、仮想空間に配置されるキャラクターの頭部の姿勢を定め、
当該複数のボーンのそれぞれの姿勢が所定の基準姿勢にあるときの当該複数の制御点は、当該キャラクターの頭部の基準形状を定め、
当該交点のそれぞれは、当該キャラクターの頭部において変形する口または目の形状を定め、
当該制御曲面は、当該キャラクターの頭部の基準形状のうち口または目の近傍の形状を近似する
ことを特徴とする画像生成装置。
【請求項4】
請求項3に記載の画像生成装置であって、
当該制御曲面は、NURBS(Non Uniform Rational B Spline)曲面であり、
当該交点位置計算部は、ニュートン・ラフソン法により、当該交点の位置を計算する
ことを特徴とする画像生成装置。
【請求項5】
請求項3に記載の画像生成装置であって、
当該制御曲面は、2次曲面、平面、もしくは、多面体の表面であり、
当該交点位置計算部は、当該半直線に含まれる座標を表す1次式を、当該制御曲面を表す2次以下の式に代入して得られる2次以下の方程式を解くことにより、当該交点の位置を計算する
ことを特徴とする画像生成装置。
【請求項6】
請求項4または5に記載の画像生成装置であって、
前記計算されるスキンは、当該第1種制御点と、当該交点と、を頂点とする多角形の集合体である
ことを特徴とする画像生成装置。
【請求項7】
請求項4または5に記載の画像生成装置であって、
前記計算されるスキンは、当該第1種制御点と、当該交点と、を制御点とするNURBS(Non Uniform Rational B Spline)曲面である
ことを特徴とする画像生成装置。
【請求項8】
記憶部、更新部、交点位置計算部、スキン形状計算部、生成部を備える画像生成装置にて実行され、仮想空間に配置される複数のボーン、複数の制御点、および、制御曲面から、画像を生成する画像生成方法であって、
当該複数のボーンのそれぞれは、長さが固定されており、その端点が他のボーンに連結され、
当該複数の制御点のそれぞれは、当該複数のボーンのいずれかに対する相対的な位置が固定され、その種類は、第1種もしくは第2種のいずれかであり、
当該制御曲面は、当該複数のボーンのうち相対的な位置が固定される制御点がいずれも第1種であるボーンのいずれかに対して、相対的な位置が固定され、
前記記憶部には、
(a)当該複数のボーンのそれぞれについて、その端点が連結される他のボーンに対する相対的な姿勢を示すボーン情報と、
(b)当該制御曲面の相対的な位置が固定されるボーンと、当該固定される相対的な位置と、当該制御曲面の形状と、を示す制御曲面情報と、
(c)当該複数の制御点のそれぞれについて、当該制御点の相対的な位置が固定されるボーンと、当該固定される相対的な位置と、当該制御点の種類と、を示す制御点情報と、
が記憶され、
前記更新部が、時間の経過もしくはユーザからの指示に基づいて、前記記憶部に記憶されるボーン情報のそれぞれを更新する更新工程、
前記交点位置計算部が、当該複数の制御点のうち、第2種の制御点のそれぞれについて、当該第2種の制御点の相対的な位置が固定されるボーンから当該第2種の制御点へ伸びる半直線が、当該制御曲面と交差する交点の位置を計算する交点位置計算工程、
前記スキン形状計算部が、当該複数の制御点のうち、第1種の制御点のそれぞれの位置と、前記計算された交点のそれぞれの位置と、から、スキンの形状を計算するスキン形状計算工程、
前記生成部が、前記計算されたスキンの形状を所定の視点から見た画像を生成する生成工程
を備えることを特徴とする画像生成方法。
【請求項9】
記憶部、更新部、交点位置計算部、スキン形状計算部、生成部を備える画像生成装置にて実行され、仮想空間に配置される複数のボーン、複数の制御点、および、制御曲面から、画像を生成する画像生成方法であって、
当該複数のボーンのそれぞれは、長さが固定されており、その端点が他のボーンに連結され、
当該複数の制御点のうち、第1種の制御点のそれぞれは、当該複数のボーンのいずれかに対する相対的な位置が固定され、第2種の制御点のそれぞれは、当該複数のボーンのいずれかに対する相対的な距離が固定され、
当該制御曲面は、当該複数のボーンのいずれかに対して、相対的な位置が固定され、
前記記憶部には、
(a)当該複数のボーンのそれぞれについて、その端点が連結される他のボーンに対する相対的な姿勢を示すボーン情報と、
(b)当該制御曲面の相対的な位置が固定されるボーンと、当該固定される相対的な位置と、当該制御曲面の形状と、を示す制御曲面情報と、
(c)当該複数の制御点のうち、第1種の制御点のそれぞれについて、当該第1種の制御点の相対的な位置が固定されるボーンと、当該固定される相対的な位置と、を示す第1種の制御点情報と、
(d)当該複数の制御点のうち、第2種の制御点のそれぞれについて、当該第2種の制御点の相対的な距離が固定されるボーンと、当該ボーンに対する相対的な位置と、を示す第2種の制御点情報と、
が記憶され、
前記更新部が、時間の経過もしくはユーザからの指示に基づいて、前記記憶部に記憶されるボーン情報に指定される姿勢、および、第2種の制御点情報に指定される相対的な位置のそれぞれを更新する更新工程、
前記交点位置計算部が、当該複数の制御点のうち、第2種の制御点のそれぞれについて、当該第2種の制御点の相対的な位置が固定されるボーンから当該第2種の制御点へ伸びる半直線が、当該制御曲面と交差する交点の位置を計算する交点位置計算工程、
前記スキン形状計算部が、当該複数の制御点のうち、第1種の制御点のそれぞれの位置と、前記計算された交点のそれぞれの位置と、から、スキンの形状を計算するスキン形状計算工程、
前記生成部が、前記計算されたスキンの形状を所定の視点から見た画像を生成する生成工程
を備えることを特徴とする画像生成方法。
【請求項10】
コンピュータに、仮想空間に配置される複数のボーン、複数の制御点、および、制御曲面から、画像を生成させるプログラムであって、
当該複数のボーンのそれぞれは、長さが固定されており、その端点が他のボーンに連結され、
当該複数の制御点のそれぞれは、当該複数のボーンのいずれかに対する相対的な位置が固定され、その種類は、第1種もしくは第2種のいずれかであり、
当該制御曲面は、当該複数のボーンのうち相対的な位置が固定される制御点がいずれも第1種であるボーンのいずれかに対して、相対的な位置が固定され、
当該プログラムは、当該コンピュータを、
(a)当該複数のボーンのそれぞれについて、その端点が連結される他のボーンに対する相対的な姿勢を示すボーン情報と、
(b)当該制御曲面の相対的な位置が固定されるボーンと、当該固定される相対的な位置と、当該制御曲面の形状と、を示す制御曲面情報と、
(c)当該複数の制御点のそれぞれについて、当該制御点の相対的な位置が固定されるボーンと、当該固定される相対的な位置と、当該制御点の種類と、を示す制御点情報と、
を記憶する記憶部、
時間の経過もしくはユーザからの指示に基づいて、前記記憶部に記憶されるボーン情報のそれぞれを更新する更新部、
当該複数の制御点のうち、第2種の制御点のそれぞれについて、当該第2種の制御点の相対的な位置が固定されるボーンから当該第2種の制御点へ伸びる半直線が、当該制御曲面と交差する交点の位置を計算する交点位置計算部、
当該複数の制御点のうち、第1種の制御点のそれぞれの位置と、前記計算された交点のそれぞれの位置と、から、スキンの形状を計算するスキン形状計算部、
前記計算されたスキンの形状を所定の視点から見た画像を生成する生成部
として機能させることを特徴とするプログラム。
【請求項11】
コンピュータに、仮想空間に配置される複数のボーン、複数の制御点、および、制御曲面から、画像を生成させるプログラムであって、
当該複数のボーンのそれぞれは、長さが固定されており、その端点が他のボーンに連結され、
当該複数の制御点のうち、第1種の制御点のそれぞれは、当該複数のボーンのいずれかに対する相対的な位置が固定され、第2種の制御点のそれぞれは、当該複数のボーンのいずれかに対する相対的な距離が固定され、
当該制御曲面は、当該複数のボーンのいずれかに対して、相対的な位置が固定され、
当該プログラムは、当該コンピュータを、
(a)当該複数のボーンのそれぞれについて、その端点が連結される他のボーンに対する相対的な姿勢を示すボーン情報と、
(b)当該制御曲面の相対的な位置が固定されるボーンと、当該固定される相対的な位置と、当該制御曲面の形状と、を示す制御曲面情報と、
(c)当該複数の制御点のうち、第1種の制御点のそれぞれについて、当該第1種の制御点の相対的な位置が固定されるボーンと、当該固定される相対的な位置と、を示す第1種の制御点情報と、
(d)当該複数の制御点のうち、第2種の制御点のそれぞれについて、当該第2種の制御点の相対的な距離が固定されるボーンと、当該ボーンに対する相対的な位置と、を示す第2種の制御点情報と、
を記憶する記憶部、
時間の経過もしくはユーザからの指示に基づいて、前記記憶部に記憶されるボーン情報に指定される姿勢、および、第2種の制御点情報に指定される相対的な位置のそれぞれを更新する更新部、
当該複数の制御点のうち、第2種の制御点のそれぞれについて、当該第2種の制御点の相対的な位置が固定されるボーンから当該第2種の制御点へ伸びる半直線が、当該制御曲面と交差する交点の位置を計算する交点位置計算部、
当該複数の制御点のうち、第1種の制御点のそれぞれの位置と、前記計算された交点のそれぞれの位置と、から、スキンの形状を計算するスキン形状計算部、
前記計算されたスキンの形状を所定の視点から見た画像を生成する生成部
として機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2008−186219(P2008−186219A)
【公開日】平成20年8月14日(2008.8.14)
【国際特許分類】
【出願番号】特願2007−18841(P2007−18841)
【出願日】平成19年1月30日(2007.1.30)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】