(57)【要約】【課題】ソフトウェア、ハードウェアを用いて自動的に、様々な向き、表情のアニメ風キャラクターの顔画像を自動生成すること。【解決手段】アニメ風キャラクターの特徴をとらえて、あらかじめ与えた数値、法則をもとに、各点の位置を決め、それらを曲線で補完することによって各パーツを自動的に生成し、それらをキャラクターの向き、表情に応じて移動、変形して、着色する。【選択図】  図１
2005141705.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェア、ハードウェアを用いて自動的に、アニメ風キャラクターの顔画像を構成する、目、眉、髪のパーツを、あらかじめ与えた値、法則を用いて、適切な位置に点をとり、それらを曲線で補完することによって生成する方法。
【請求項２】
請求項１の方法で生成したもの、またはそれを編集したもの、または点の間を曲線で補完するという方法で描かれている顔画像を、ソフトウェア、ハードウェアを用いて、アニメ風キャラクターの顔画像の各パーツとその各点を、あらかじめ与えた値、法則を用いて、２次元での移動、変形を連動させることによって、連続的に向きの違う顔画像を生成する方法。ここで顔画像とは、アニメ風キャラクターと認識される、十分に複雑なものであり、スマイルマークのような顔の記号ではない。
【請求項３】
請求項１の方法で生成したもの、またはそれを編集したもの、または点の間を曲線で補完するという方法で描かれている顔画像を、ソフトウェア、ハードウェアを用いて、キャラクターの顔画像を構成する、目、眉のパーツとその各点を、あらかじめ与えた値、法則を用いて、その表情に応じて移動、変形をさせることによって、連続的に表情の違う顔画像を生成する方法。
【請求項４】
請求項１〜３の方法を実行するためのコンピュータプログラムを格納することを特徴とするコンピュータで読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】本発明は、アニメーションやゲーム、その他、各種のプレゼンテーション等に用いられるキャラクターの顔画像をソフトウェア、ハードウェアを用いて、向き表情に応じて自動的に生成する技術に関するものである。
【背景技術】
【０００２】従来、アニメーションやゲーム、各種のプレゼンテーション等に用いられるキャラクターの顔画像は、絵を描く技術をもつ人により、経験、感性を用いて手作業で作られた画像や、モデルとなる人物の画像を使い、それらを加工することにより使用していた。【０００３】また、従来の顔画像生成はあらかじめ各パーツを準備しておいて、それら、またはそれらを加工したものを組み合わせることにより生成していた。【０００４】従来は、キャラクターの顔画像の向きを変えるためには主に３次元の技術を用いていた。また、点で構成された図形の移動、変形を手作業で編集して（原画を手作業で描き、それを基礎に動画を生成するなど）アニメーションさせるものもあった。
【発明の開示】
【発明が解決しようとする課題】
【０００３】従来技術では、アニメーションなどの加工を行なうにしても、基礎となる画像を準備しなければならず、モデルとなる人物の画像を準備するか、絵を描く技術をもって基礎となる顔画像を手作業で生成できなければ、アニメ風のキャラクターの顔画像を使用することは難しかった。【０００４】そこで、本発明はアニメ風のキャラクターの顔画像の特徴を捉えて、ソフトウェア、ハードウェア（図２）を用いて自動的に生成することにより、モデルとなる顔画像を所有していない、または絵を描く技術をもたない人でも、アニメ風のキャラクターの顔画像をアニメーションやゲーム、各種のプレゼンテーション等に容易に使用出来るようにする。【０００５】また、従来の、各パーツをあらかじめ準備する方法とは違い、与えられた数値、法則を用いて各パーツを生成することにより、豊富なキャラクターの顔画像の生成を可能にする。【０００６】さらに、キャラクターの向きを変える場合にも従来の３次元技術を用いずに、実際にその向きの顔画像を手作業ではどのように描くか、という所に注目して各パーツを２次元で移動、変形して生成するので、従来の３次元技術を用いる方法に比べて情報量が減り表情変化などの加工が容易であり、また、手作業で描いた２次元アニメーションに用いられているキャラクターの顔画像と近いものが生成できる。【０００７】また従来の、点を２次元で移動させる方法を用いてキャラクターの顔画像の向きを変えるためには、各点の位置や移動、変形を手作業で編集する必要があり、実際に絵を描くのと変わらないほどの技術、労力が必要であった。本発明ではアニメ風のキャラクターの顔画像の特徴をとらえて、あらかじめ与えた数値、法則によって各パーツの移動、変形は自動的に行なえるので、従来のように細かく編集する必要はない。
【課題を解決するための手段】
【０００８】本発明では、ソフトウェア、ハードウェア（図２）を用いてアニメ風キャラクターの顔画像の目、眉毛、輪郭、髪などに共通する特徴を考慮して、各キャラクター固有の特徴を与える各パーツの点をあらかじめ与えた数値、法則を用いて決め、それらを曲線で補完して描き、さらにそれらをあらかじめ与えた数値、法則を用いて、向き、表情に応じて移動、変形、着色し、キャラクターの顔画像を自動生成する。
【発明の効果】
【０００９】本発明によって、様々な向きの多様なアニメ風のキャラクターの顔画像を誰でも容易に生成することができ、また少ない操作で表情を変えることが出来る。さらに、連続的に変化するので、短時間で顔画像のアニメーションを生成することが出来る。それらを、アニメーションやゲーム、その他、各種のプレゼンテーション等に用いることができる。
【発明を実施するための最良の形態】
【０００１０】図１０を見ると分かるように、アニメ風キャラクターの顔画像というものは、実写の顔画像とは違い、はっきりとした線で各パーツが描かれている。この線の引き方は各キャラクターの特長により様々である。本発明では図１０のようなアニメ風キャラクターの顔画像を生成する方法を示す。また、アニメ風キャラクターの顔画像というものは、実写の顔画像と比べて、各パーツが突飛な形状をしているものもあり、そこを考慮して十分に誤差をとっておく事が必要である。この誤差を乱数や手作業であらかじめ与える。さらに、アニメ風キャラクターの顔画像というものは、鼻や耳の形状はほとんど変化することがなく、逆に口は表情によって大きく変化する。【００１１】初めに、右目の輪郭の上側を生成する方法を示す。ここで２次元のＸＹ座標をＹが正の方向を上、Ｘが正の方向が右となるようにとる。次に５つの点を考える。各点をＥ０（ｘｅ０，ｙｅ０）、Ｅ１（ｘｅ１，ｙｅ１）、Ｅ２（ｘｅ２，ｙｅ２）、Ｅ３（ｘｅ３，ｙｅ３）、Ｅ４（ｘｅ４，ｙｅ４）とする。このときｘｅ０＜ｘｅ１＜ｘｅ２＜ｘｅ３＜ｘｅ４かつ、ｙｅ１は直線Ｅ０Ｅ２より上かつｙｅ２より下にあり、ｙｅ３は直線Ｅ２Ｅ４より上かつｙｅ２より下にある。−ｙｅ２＜ｙｅ０＜ｙｅ２かつ−ｙｅ２＜ｙｅ４＜ｙｅ２とする。これらの条件を満たしながら、ｘｅ０，ｘｅ４，ｙｅ２は固定し、残りｙｅ０、ｘｅ１、ｙｅ１、ｘｅ２、ｘｅ３、ｙｅ３、ｙｅ４を上述の条件を満たしながら任意に決める。この任意性はキャラクター固有の特徴となり、乱数等を用いて決める。そして各点を曲線で補完する。ここで、ｘｅ０〜ｘｅ４、ｙｅ０〜ｙｅ４というのは各点の座標の値をあらわしている。以下の同じような表現も同様である。【００１２】次に、右目の輪郭の下側を生成する方法を示す。点Ｅ１２（ｘｅ１２，ｙｅ１２）、Ｅ１３（ｘｅ１３，ｙｅ１３）、Ｅ１４（ｘｅ１４，ｙｅ１４）を、ｘｅ１２＜ｘｅ１３＜ｘｅ１４、ｙｅ１２、ｙｅ１３、ｙｅ１４は約−ｙｅ２とし、ｘｅ１３は約（ｘｅ０＋ｘｅ４）／２となるようにとる。ｘｅ１２、ｘｅ１４はｘｅ０＜ｘｅ１２＜ｘｅ１３、ｘｅ１３＜ｘｅ１４＜ｘｅ４の条件を満たすように任意にとる。このとき、各点の誤差はキャラクター固有の特徴となり、乱数などを用いて決める。そして各点を曲線で補完する。【００１３】次に、右目の輪郭の上方を補う。２点Ｅ５、Ｅ６をＥ６は直線Ｅ４Ｅ１４の約中点、Ｅ５を直線Ｅ４Ｅ６の中点よりややＸの正のほうに凸となるようにとる。この誤差もキャラクター固有の特徴となり、乱数などを用いて決める。そして各点を曲線で補完する。【００１４】このままでもよいが、単純すぎるので、点を補う。右目の輪郭の上側に点Ｅ７、Ｅ８、Ｅ９、Ｅ１０、Ｅ１１をＥ７は、点Ｅ５よりやや上方となり、他のＥ８、Ｅ９、Ｅ１０はそれぞれ、Ｅ３、Ｅ２、Ｅ１のやや下方、Ｅ１１はＥ０と同じになるようにとる。これらの点に補正を加え、点Ｅ７、Ｅ８、Ｅ９、Ｅ１０、Ｅ１１（Ｅ１１＝Ｅ０）を曲線で補完する。また、右目の輪郭の下側に点Ｅ１５、Ｅ１６を考え、Ｅ１５をＥ１３のやや上方、Ｅ１６をＥ１２と同じになるようにとり、点Ｅ１４、Ｅ１５、Ｅ１６（Ｅ１６＝Ｅ１２）を曲線で補完する。また、キャラクターの目の特徴によっては、点の数を増やすことがある。【００１５】上述のことを実際にプログラミングし、右目の輪郭を自動生成したものを図３に示す。ここで点の番号Ｅ０〜Ｅ１６および座標軸は、後で書き加えている。【００１６】次に、右眉を生成する方法を示す。点Ｍ０（ｘｍ０，ｙｍ０）、Ｍ１（ｘｍ１，ｙｍ１）、Ｍ２（ｘｍ２，ｙｍ２）、Ｍ３（ｘｍ３，ｙｍ３）を、ｘｍ０＜ｘｍ１＜ｘｍ２＜ｘｍ３となるようにとる。このとき、Ｍ０を原点に固定し、ｘｍ３を固定し、ｙｍ３を任意に決める。そして、直線Ｍ０Ｍ３を基準にして、その直線から大幅に乖離しないように（（ｘｍ０−ｘｍ３）／２より小さく）任意にＭ１、Ｍ２を決める。例えば、直線Ｍ０Ｍ３を基準にしてＭ２を決め、直線Ｍ０Ｍ２を基準にしてＭ１を決める。この任意性はキャラクターの眉の固有の特徴となり、乱数等を用いて決める。そして各点を曲線で補完する。【００１７】このままでもよいが、単純すぎるので、点を補う。新たに点Ｍ４、Ｍ５、Ｍ６をそれぞれ、Ｍ４、Ｍ５は、点Ｍ２、Ｍ１よりやや下方にとり、Ｍ６はＭ０と同じになるようにとる。この誤差もキャラクター固有の特徴となり、乱数等を用いて決める。そして、点Ｍ３、Ｍ４、Ｍ５、Ｍ６（Ｍ６＝Ｍ０）を曲線で補完する。また、キャラクターの眉の特徴によっては、点の数を増やすことがある。【００１８】上述のことを実際にプログラミングし、右眉を自動生成したものを図４に示す。ここで点の番号Ｍ０〜Ｍ６および座標軸は後で書き加えている。【００１９】右眉と右目の間に右目の輪郭に沿って、右まぶたを生成する。このとき、最後に点を加えて右まぶたを整える。【００２０】ここまでで生成した右目、右眉、右まぶたの各点のＸ座標を反転することで左目、左眉、左まぶたを生成する。【００２１】鼻は、あらかじめ適切な形を与えて、それを拡大、縮小する。【００２２】耳も、あらかじめ適切な形を与えて、それを拡大、縮小する。【００２３】口は、表情により大きく変わるので鼻と同じようにあらかじめ基本的な形を用意してそれを必要に応じて編集する。【００２４】次に髪の毛を生成する方法を示す。ひとつのアニメ風のキャラクターの顔画像においても、髪の形は多様で、すべての髪の毛を同じ法則で描くことは困難なので、髪をいくつかのパーツに分ける。ここでは、前髪の外と前髪の分け目の髪（Ｈ１）肩にかかる中の髪（Ｈ２）頭の上から後に流れる髪（Ｈ３）そして、（Ｈ１）（Ｈ２）（Ｈ３）の間を埋める髪（Ｈ４）に分ける。（図５参照）また、キャラクターによっては特異な形状の髪を持つ場合もあるのでその場合にはさらに分ける。【００２５】髪を描く方法を示す。初めに２次元のＸＹ座標をとり、変数ｔ０、ｔ１、ｔ２・・・ｔｉ・・・を考える。各変数は点の番号ｎに依存する（ｔｉ（ｎ））。そして、初期値Ｘｎ＝Ｘ０、Ｙｎ＝Ｙ０（他に固定する点をとってもよい）を与えて、ｎ番目の点をＸｎ＝ｆｘ（Ｘ０、ｔ０、ｔ１、ｔ２・・・ｔｉ・・・）、Ｙｎ＝ｆｙ（Ｙ０、ｔ０、ｔ１、ｔ２・・・ｔｉ・・・）とし、求めた点を曲線で補完して描く。ここでｆｘ、ｆｙは髪の毛の特徴に応じて、適切に決めた関数である。このとき必要であれば任意の定数を与える。例えば前髪の外と前髪の分け目の髪（Ｈ１）は、初期値をＸ０、Ｙ０とし、変数をそれぞれの初期値からの角度Θ（ｎ）、距離Ｒ（ｎ）（ｎは点の番号）とし、Ｘｎ＝Ｘ０＋Ｒ（ｎ）ｃｏｓ（Θ（ｎ））、Ｙｎ＝Ｙ０−Ｒ（ｎ）ｓｉｎ（Θ（ｎ））として表現できる。また、肩にかかる中の髪（Ｈ２）頭の上から後に流れる髪（Ｈ３）などは、任意の定数Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆを用いて、Ｘｎ＝Ｘ［ｎ−１］＋Ａ＊ｓｉｎ（Ｂ＋π（ｎ−１）／Ｃ）、Ｙｎ＝Ｙ［ｎ−１］＋Ｄ／（ｎ＾Ｅ）＋Ｆと決める。ここで、Ｘ［ｎ−１］、Ｙ［ｎ−１］はＸｎ、Ｙｎの一つ前の点の値である。【００２６】次に、（Ｈ１）（Ｈ２）（Ｈ３）の間を埋める髪（Ｈ４）を描く方法を示す。ここでは、間を埋める髪（Ｈ４）の生成方法はほぼ同じなので、具体的に説明するために、髪を前髪の外と前髪の分け目の髪（Ｈ１）の間を埋める髪（Ｈ４）に話を絞る。まず、前髪の外と前髪の分け目の髪の間に適当な点を取る。ここで、前髪の分け目の髪にＸ座標が近い順に番号を付ける。その点から、上に示した方法と同様の方法を用いて髪を描く。このとき、前髪の分け目の髪にＸ座標が一番近い点の、間を埋める髪（Ｈ４）の終点を前髪の分け目の髪の任意の点と同じ点にとる（通常終点をとる）。次に、前髪の分け目の髪に接続した髪の任意の点を始点として、上に示した方法と同様の方法で髪を描く。このとき終点を番号が一つ多い髪の任意の点と同じにとる（通常終点をとる）。同様にして次々に髪を生成し、最後の髪の終点は前髪の外の髪の任意の点と同じにとる（通常終点をとる）。これで前髪の外と前髪の分け目の髪（Ｈ１）の間を埋める髪（Ｈ４）が描ける。また、間を埋める髪（Ｈ４）が存在しない場合は（図５では、肩にかかる中の髪（Ｈ２））、前髪の分け目の髪の終点を前髪の外の髪の任意の点と同じにとる（通常終点をとる）。同様にして、（Ｈ２）（Ｈ３）の間を埋める髪も描ける。【００２７】上述のことを実際にプログラミングし、髪を自動生成したものを図５に示す。ただし、肩にかかる中の髪（Ｈ２）の間を埋める髪（Ｈ４）は、ないものとする。符号と髪の範囲、座標軸は後で書き加えている。【００２８】眼球は、複数の楕円を重ねて、それを縮小回転して生成する。【００２９】ここまでで生成したパーツを表示する方法、および、輪郭を生成する方法を示す。ここで顔は、正面から真横、うつむき状態から見上げ状態まで動くものとする。このとき、各パーツを移動、変形させることによって顔画像の向きを変える。ここで、ＸＹ座標を考える。また、上下左右とは、それぞれ、Ｙ軸の大きい向き、小さい向き、Ｘ軸の小さい向き、大きい向きを表すものとする。また、各パーツの位置、移動、変形は各キャラクターの個別の特長に関係しているので、それぞれの位置、移動、変形には誤差があり、それを考慮して曖昧な表現を使うことにする。誤差はあらかじめ与えた数値、法則を用いて与える。向きによる顔画像の生成は各点のＸ、Ｙの回転、平行移動を用いての各パーツの移動、変形の連動が基本であるが、誤差は多様な手法を用いて表すことが可能であるので、各パーツとその各点を、あらかじめ与えた値、法則を用いて、２次元での移動、変形を連動させることによって、連続的に向きの違う顔画像を生成するという本発明の本質を���明するために、実際に生成した顔画像を用いて言葉で説明することにする。また、本発明では顔画像が向きを変えているように見せることが重要であるので、顔の構成を崩すような著しく大きな誤差をとってはいけない。また、適切な値とは、アニメ風キャラクターの顔画像の特徴をとらえた値であり、あらかじめ与えた値、法則を用いて決める。【００３０】はじめに原点を中心に、目をＸ軸にそって横並びに配置する。原点のほぼ真下に鼻と口、目のほぼ一番内側の点の上にまぶた、さらにその上に眉毛を配置する。【００３１】ここで、顔の輪郭を生成する方法を示す。まずＹ座標の原点より上方に輪郭の始点をとり、口より下でＸ座標の原点に輪郭の終点をとり、それを左右の二つ生成する。輪郭は顔の向きに応じて他のパーツと連動するので、耳、鼻、口などと接続する点とキャラクターごとの輪郭の特徴を決定する場所に点をとる。例えば、点を上から、始点、Ｙ座標の原点（目の位置）かつ、横向きのとき、鼻の上端と接続する点、耳と接続する点、頬かつ横向きのときに鼻の下の点と接続する点、頬と顎を結ぶ点、顎の点、終点と７点とる。各点のＸ座標は下方にいくにしたがって内側にとる。つまり輪郭はやや逆三角の形になるようにあらかじめ与えた数値、法則を用いてとる。また、輪郭は顔の向きに従って移動、変形を加えるので、横向きの輪郭を正面の輪郭の各点をもとにあらかじめ与えた数値、法則を用いて生成する。【００３２】耳は、左右の輪郭の外側に配置し、耳の適切な点を輪郭の適切な点と接続する。【００３３】上述のことを実際にプログラミングし、輪郭を含め正面向きの顔画像を生成したものを図６に示す。ここで四角の印は各点を表し、座標軸は後で書き加えてある。【００３４】次に向きによる各パーツの移動、変形について説明する。顔の向きの変化は２次元で各パーツごとの移動、変形を連動させて行なう。ここで顔は、正面向きから、左横向きに変化するものとする。【００３５】はじめに、輪郭の移動、変形について示す。輪郭の移動、変形は、顔の向きに応じて、正面の輪郭の点と先に生成した横向きの輪郭の点を合成して、任意の向きの輪郭を生成する。また、顔が横を向くに従い、左側は幅を狭く、右側は幅を広くする。【００３６】次に、右目、右眉、右まぶたの移動、変形について示す。横向きの右目の位置を適切に決めてそこを終点として、ほぼ同じ速さで（適切な値をＸ座標に加減し）平行移動させる。右目は、構成する点の位置を横向きになるにしたがって、やや目の内側に移動させ、目の幅をやや小さくしていく。このとき、初めは目の幅はあまり変えず、横向きの右目の終点に近づくに従い目の幅の減少率を大きくするとよい。また右眉は、右目とほぼ同じ速さで横向きの終点に移動させるが、このとき幅をやや変え、右目よりやや先に出す。最後に、右目と右眉の間の適切な位置に右まぶたを表示する。また、各パーツとも必要であれば、高さを変えてもよい。【００３７】次に、左目、左眉、左まぶたの移動、変形について示す。左目の移動の速さ（Ｘ座標に加減する値）は右目とほぼ同じにする。ここで、左目が輪郭の限界（輪郭の境界線）に達したときは、輪郭の限界から左目の右端（左目の内側の目尻）の間を左目の幅となるようにする。���様に左眉も左目に合わせて、移動、変形させる。最後に左目と左眉の間の適切な位置に左まぶたを表示する。また、左目、左眉、左まぶたは、幅が十分に小さくなったときは表示しない。また、各パーツとも必要であれば、高さを変えてもよい。【００３８】次に、鼻の移動、変形について示す。鼻の移動は、左目の右端の速さとほぼ同じにする。鼻が輪郭の限界に達したときは、鼻の適切な点を輪郭の適切な点に接続させる。鼻の変形は、正面向きから横向きになるに従い、鼻が輪郭の限界に達したときに鼻の適切な点が輪郭の鼻と接続する点と高さがほぼ等しくなるように、幅、高さを変形する。【００３９】次に、口の移動、変形について示す。口は、ほぼ鼻と輪郭の顎の先とを結んだ直線上に配置する。また、横向きになるに従い、口の形を、左を広くし右を狭くするように変形させる。【００４０】次に、眼球の移動、変形について示す。右目の眼球は顔が横を向くに従い、やや左側に動かし、眼球の中心も少し左側に寄せる。左目の眼球の中心は、顔が横を向くに従い、やや右側に移動してもよいが、ほぼ変わらない。また、両目の眼球とも、目の幅が変わるに従い、それとほぼ同じ割合で幅を変える。【００４１】次に、髪の移動、変形について示す。ここからは、髪を前髪の外と前髪の分け目の髪（Ｈ１）とその間を埋める髪（Ｈ４）を前髪、肩にかかる中の髪（Ｈ２）とその間を埋める髪（Ｈ４）を中髪、頭の上から後に流れる髪（Ｈ３）とその間を埋める髪（Ｈ４）を後髪、と呼ぶことにする。（図５参照）【００４２】前髪の移動、変形は、顔が横を向くに従い、その向きとほぼ同じ方向にほぼ平行移動させる。この際、移動の限界値を任意に与え、そこに達した前髪は、顔の向きと反対方向に動かすか、その限界値に留めておくか、表示しない。その際、髪の形に応じて、わずかに向きと反対側に流れるように変形を加える。【００４３】中髪の移動、変形は、顔が横（左）を向くに従い、左側の中髪は、左側ほど大きく右側に移動し、中髪の下の点ほど移動距離が小さくなるように形を変形させ、横向きのときには、中髪が肩にかかっているような感じを出す。右側の中髪は、輪郭の右側とほぼ同じ移動をさせ、横を向いたとき、肩にかかっている感じを出せるように、各点の移動を変え、変形させる。【００４４】後髪の移動、変形は、顔が横（左）を向くに従い、左側の後髪は、顔の向きと反対の右側に移動させる。この際、一番左側の後髪の始点は頭の頂上に固定して変形させてもよい。右側の後髪は、顔の向きと反対の右側に移動させる。また、一番右側の後髪の始点は頭の頂上と同じにとるのがよい。【００４５】上述のことを実際にプログラミングし髪を含めた顔を斜め向き（Ｆａ１）横向き（Ｆａ２）と自動生成したものを図７に示す。ここで、分かりやすいように後で示す方法で色を塗り不要な部分を隠してある。符号は後で書き加えている。【００４６】次に、顔を見上げ状態、うつむき状態に動かしたときの各パーツの移動、変形について示す。【００４７】はじめに、輪郭の変形と移動、変形について示す。輪郭は顔が上を向くに従い、各点を上に移動し、目よりも下にある点を外に動かして顔の幅をやや広くする。顔が下を向くに従い、各点を下に移動し、目よりも下にある点���中心によせ、顔の幅をやや狭くする。【００４８】目の移動、変形について示す。目は顔が上を向くに従い、上に移動し、目が垂れ目になるように目の各点を回転させる。顔が下を向くに従い下に移動し、目がつり目になるように目の各点を回転させる。【００４９】眉の移動、変形について示す。眉も目と同様、顔が上を向くに従い、上に移動し、眉が垂れ眉になるように眉の各点を回転させる。顔が下を向くに従い下に移動し、眉がつり眉になるように眉の各点を回転させる。【００５０】まぶたの移動、変形も目、眉と同様にする。（目、眉と連動させる）【００５１】鼻の移動、変形は、顔が上を向くに従い、上に移動させ、顔が下を向くに従い、下に移動させ、各キャラクターの特長によっては幅、高さを変え変形させる。【００５２】口の移動、変形は、顔が上を向くに従い、上に移動させ、顔が下を向くに従い、下に移動させ、各キャラクターの特長によっては幅、高さを変え変形させる。【００５３】眼球の移動、変形は、左右の目の回転にあわせ、回転を加える。【００５４】ここで、眉、まぶた、目、鼻、口の移動距離は、普通、上にあるパーツほど大きく移動させるが、各キャラクターの特長によっては、これを満たさない場合もある。【００５５】次に、髪の移動、変形について示す。前髪は、中心（Ｘの原点）にいくほど、移動距離を大きくする。後髪も、中心にいくほど移動距離を大きくさせるが、上のほうに行くに従い移動距離を小さくして頭の頂上は動かないようにする。中髪は、顔が上を向くに従い上に、下を向くに従い下に動かす。ここで、前髪、中髪、後髪とも顔が正面より上を向くときと、下を向く下の移動を変化させてもよく、同じ曲線で結ぶ点がその上の点より上にいかないようにする。【００５６】次に、上向き、下向きの顔を横向きに動かす方法について示す。ここで、上述した方法を用いて正面から横向きに移動、変形した顔画像を目の中心（原点）を中心に回転したものを考える。この回転角をΘとする。Θは顔が横を向くに従い大きくとるものとする。ここで、下向きの場合の横顔はΘの値を顔が下を向いているようにとり、上向きの場合の横顔はΘの値を顔が上を向いているようにとる。次に、下向き、上向きの画像を上述した方法を用いて単純に横を向けた画像を考える。この二つの画像の各パーツの対応する点を合成したものを用いて、下向きの横顔、上向きの横顔を生成する。【００５７】上述のことを実際にプログラミングし、顔をうつむき状態（Ｆｂ１）見上げ状態（Ｆｂ２）斜めうつむき状態（Ｆｂ３）斜め見上げ状態（Ｆｂ４）横向きうつむき状態（Ｆｂ５）横向き見上げ状態（Ｆｂ６）を自動生成したものを図８に示す。ここで、分かりやすいように後で示す方法で色を塗り不要な部分を隠してある。符号は後で書き加えている。【００５８】次は、表情を変化させる方法を説明する。表情は目、まぶた、そして、眉を移動、変形させるものとし、口は表情に応じて、あらかじめ準備するか、手作業で描き変えるものとする。鼻は拡大縮小することもあるが、ほとんど動かさなくてよい。【００５９】表情変化による目の変化は、目の開き、目の回転を基礎にして変化させ、場合によっては目を構成する点も変化させることがある。ここで、目の開きは、��ず、目の任意の位置に基準となる直線をＸ軸と平行にとる。そのＹ座標をＹ０とすると、目の点のその直線からのＹ座標の差をＲ、目の開きを表す任意の数をαとすると、目を構成する点は、Ｘ座標をそのままにして、Ｙ座標をＹ０＋αＲと変形させる。このとき、基準となる直線が、目の輪郭の上限と下限の間にあるとすると、α＝１ときは普通の状態、０＜α＜１のときは閉じている状態、α＞１のときは見開いている状態となる。また、目の各点に、回転や、補正値を加えることにより、つり目の状態、垂目の状態となるように変え、怒りの表情や、悲しい表情を表現する。【００６０】表情変化による眉の変化は、眉の曲率、眉の回転、眉の幅、眉と目の接近、を基礎にして変化させ、場合によっては眉を構成する点も変化させる。眉の曲率の変化は、まず、適切な関数Ｆ（Ｘ）を考える。眉のある点の座標を（Ｘｍ，Ｙｍ）とすると、Ｆ（Ｘｍ）の値をＹｍに加減して、眉の各点のＹ座標を変化させ、眉の曲率を変える。例をあげると、眉の一番左の点のＸ座標を０、眉の一番右の点のＸ座標を１とし、関数をＦ（Ｘ）＝ａ（Ｘ−０．５）−０．２５ａ（ａは眉の変化を決める任意の数）とすると、眉の形を山型に丸くしたり、谷型にしたりできる。同時に、眉を回転させたり、さらに眉の間を近づけるように眉の幅を伸ばしたり、眉を目に近づけたりすることで、驚いた表情や、怒りの表情のときの眉を連続的に表現できる。【００６１】表情変化によるまぶたの変形は、目、眉の移動、変形と連動させ、目が閉じているときは下に、見開いているときは上に移動させ、また、眉より上にはこないようにしたり、目より下にこないようにしたりする。【００６２】このときの顔の向きによる移動、変形は上述したものと同様でよい。ただし、表情変化をした後に、向きによる移動、変形を行なうのがよい。【００６３】上述のことを実際にプログラミングし、怒り顔（Ｆｃ１）驚きの顔（Ｆｃ２）を生成したものを図９に示す。ここで、分かりやすいように後で示す方法で色を塗り不要な部分を隠してある。符号は後で書き加えている。【００６４】次に、生成した顔画像に着色する方法を示す。顔は正面から左向きに動くものとする。はじめに各パーツを、後髪の左、後髪の右、前髪の移動の限界値に達した部分、前髪の移動の限界値に達しない部分、中髪の左、中髪の右、顔の輪郭と両耳、両目とまぶた、両眉、鼻、口に分け、それぞれ別の画像に描く（ただし、うまく塗るために他にも画像を分けたり他の部分を描き足したりすることがある）。そして、それぞれの画像の離れている点を直線（複数の場合もある）で結び、線で囲まれた部分の色を指定する色に変える。このとき、適切な場所に着色するために、他のパーツの線も補助的に入れる場合がある。また、目のパーツに、目の中の色（白目の色）を透過色として利用し、眼球を入れる。そして、各パーツが遠くにあると考えられる順番に適切な透過色を利用して重ね合わせていく。例えば、顔が正面向きのときは下から順に、後髪の左、後髪の右、前髪の移動の限界値に達した部分、顔の輪郭と両耳、鼻、口、中髪の左、中髪の右、前髪の移動の限界値に達しない部分、両目とまぶた、両眉と重ね合わせる。また、十分に横を向いているときは、中髪の左を���顔の輪郭と両耳より下に描く。【００６５】上述のことを実際にプログラミングし、着色し完成した顔画像を顔画像を図１０に示す。ここで、仕上がりを良くするために着色のとき、曲線、直線、各パーツの画像を利用し、各パーツに影の色、光の色を入れてある。
【図面の簡単な説明】
【図１】本発明の手順を示す図である。
【図２】本発明に係るアニメ風キャラクターの顔画像の自動生成プログラムを有するコンピュータのハードウェア構成例を示す図である。
【図３】本発明により自動生成した右目の輪郭の例である。
【図４】本発明により自動生成した右眉の例である。
【図５】本発明により自動生成した髪の例である。
【図６】本発明により自動生成した正面向きの顔画像の例である。
【図７】本発明により自動生成した顔画像の斜め向き、横向きの例である。
【図８】本発明により自動生成した顔画像のうつむき状態、見上げ状態、斜めうつむき状態、斜め見上げ状態、横向きうつむき状態、横向き見上げ状態の例である。
【図９】本発明により自動生成した怒り、驚きの表情の顔画像の例である。
【図１０】本発明により自動生成したアニメ風キャラクターの顔画像の例である。
【符号の説明】
Ｅ０〜Ｅ１６  目を構成する点
Ｍ０〜Ｍ６  眉を構成する点
Ｈ１  髪の毛のを前髪の外と前髪の分け目の髪
Ｈ２  肩にかかる中の髪
Ｈ３  頭の上から後に流れる髪
Ｈ４  Ｈ１、Ｈ２、Ｈ３の間を埋める髪
Ｆａ１  斜め向きの顔画像
Ｆａ２  横向きの顔画像
Ｆｂ１  うつむき状態の顔画像
Ｆｂ２  見上げ状態の顔画像
Ｆｂ３  斜めうつむき状態の顔画像
Ｆｂ４  斜め見上げ状態の顔画像
Ｆｂ５  横向きうつむき状態の顔画像
Ｆｂ６  横向き見上げ状態の顔画像
Ｆｃ１  怒りの顔画像
Ｆｃ２  驚きの顔画像
【図１】
2005141705.tif 000003
【図２】
2005141705.tif 000004
【図３】
2005141705.tif 000005
【図４】
2005141705.tif 000006
【図５】
2005141705.tif 000007
【図６】
2005141705.tif 000008
【図７】
2005141705.tif 000009
【図８】
2005141705.tif 000010
【図９】
2005141705.tif 000011
【図１０】
2005141705.tif 000012