(57)【要約】【課題】容易にハイライトを設定する。【解決手段】基本ハイライト画像生成部１２は、基本画像記憶部１３に記憶されている基本画像を表示部１４に表示する。ユーザは、入力部１１を操作して、表示部１４に表示された画像上の位置の情報を入力すると、入力部１１は、その位置の情報を基本ハイライト画像生成部１２に供給する。基本ハイライト画像生成部１２は、入力された画像上の位置の情報に基づいて、ハイライト領域を演算し、演算されたハイライト領域の情報に基づいて、基本画像にハイライトを付加して表示部１４に表示させる。本発明は、アニメーション画像のセル画の生成装置に適用することができる。【選択図】      図２
2005011100.tif 000002
【特許請求の範囲】
【請求項１】
３次元の空間情報からなる画像の情報を記憶する記憶手段と、
前記画像上の位置を指定する指定手段と、
前記画像の３次元の空間情報、および、前記指定手段により指定された前記画像上の位置の情報に基づいて、前記画像上にハイライトを生成するハイライト生成手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記ハイライト生成手段は、所定の光源位置、所定の視点位置、および前記画像上の位置に依存して設定されるベクトルと、前記画像の３次元の空間情報より求められる前記指定手段により指定された位置における法線ベクトルとの内積の値に基づいて前記画像上にハイライトを生成する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記ハイライトの形状を設定するパラメータを入力するパラメータ入力手段と、
前記パラメータ入力手段により入力されたパラメータに基づいて、前記ハイライトを加工する加工手段とをさらに備える
ことを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記パラメータ入力手段により入力された前記画像の前記パラメータと、前記画像と異なるその他の画像のパラメータとに基づいて、補間パラメータを生成する補間パラメータ生成手段と、
前記補間パラメータ生成手段により生成された前記補間パラメータに基づいて、前記ハイライト生成手段により生成されたハイライトとは異なるハイライトを補間生成するハイライト補間生成手段と、
前記ハイライト補間生成手段により補間生成されたハイライトに基づいて、前記画像と、前記その他の画像との補間画像を生成する補間画像生成手段とをさらに備える
ことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記補間パラメータ生成手段は、線形補間により前記補間パラメータを生成する
ことを特徴とする請求項４に記載の画像処理装置。
【請求項６】
３次元の空間情報からなる画像上の位置を指定する指定ステップと、
前記画像の３次元の空間情報、および、前記指定ステップの処理で指定された前記画像上の位置の情報に基づいて、前記画像上にハイライトを生成するハイライト生成ステップと
を含むことを特徴とする画像処理方法。
【請求項７】
３次元の空間情報からなる画像上の位置を指定する指定ステップと、
前記画像の３次元の空間情報、および、前記指定ステップの処理で指定された前記画像上の位置の情報に基づいて、前記画像上にハイライトを生成するハイライト生成ステップと
を含む処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置および方法、並びにプログラムに関し、特に、画像上のハイライトの設定と、ハイライトを用いたアニメーション画像の生成を容易にした画像処理装置および方法、並びにプログラムに関する。
【０００２】
【従来の技術】
コンピュータグラフィックスによる画像処理技術が一般に普及しつつある。
【０００３】
コンピュータグラフィックス（Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ、以下ＣＧとも称する）の分野では、表示される物体表面から発する光を環境光、拡散反射光、および、鏡面反射光に区別して捕らえている。これらのうち鏡面反射光とは、物体表面での直接反射により生じるもので、例えば、磨きのかかった大理石が照射されると、この鏡面反射により、物体表面の一部にハイライトが生じる。
【０００４】
ハイライトは、物体の表面の微小な構造に依存して様々な形状をとりうる。従って、ハイライトは、画像上で、その物体の材質感を表現する上で重要なものである。ＣＧにおいては、このハイライトを生成するため、物体の各点での鏡面反射光の強さを計る様々なモデルが提案されている。
【０００５】
例えば、図１で示されるように、物体表面Ｓ上の点ｐで光源（図中のＬｉｇｈｔ  Ｓｏｕｒｃｅ）方向Ｌから入射される光の直接反射光が、所定の視点（図中のＥｙｅ）方向にどの程度届くか（視点における光の強度の程度）は、物体上の所定の点ｐにおける法線ベクトルＮと、光源方向のベクトルＬと視線方向のベクトルＶとの成す角を２等分する方向のベクトルＨ（以下、このベクトルを中間ベクトルＨと称する）とが、どの程度、離れているかに依存することが知られており、一般に、図１で示されるようなモデルはブリンのモデルと呼ばれている（非特許文献１参照）。
【０００６】
また、上述したように、ハイライトは、物体の材質感を表現する上で重要であるため、３次元物体をＣＧで表示する際、ハイライトを所望の位置に配置したいという要求がある。
【０００７】
現実の世界では光源の位置や種類を決めればハイライトの位置は決まってしまうが、ＣＧで物体を表示する場合、より自由にハイライトの位置を指定することで、現実の世界よりもより印象的な画像とすることがある。
【０００８】
ハイライトの位置を制御する手法としては、第１の方法として、ハイライト専用の光源を仮想的に設定し、その仮想的な光源位置を指定するという方法がある。
【０００９】
その際、ハイライト領域の決定には上述したブリンのモデルを採用した方法が用いられるか、他の類似の鏡面反射光の計算モデルが用いられている。
【００１０】
上述したハイライト専用の光源を設定する第１の手法は、カメラ（視点位置）や光源位置が移動すれば、ハイライト領域も移動する。その際にブリンのモデルを用いると、これらのモデルは物理的に正確なものなので、視覚的に、あたかも現実の空間内で生じたかのようなハイライトの動きを表現することができる。
【００１１】
第２の方法は、テクスチャマッピングを用いる方法である。テクスチャマッピングを用いた手法は、所望のハイライトの形を予めデザインしておき、これを２次元画像として物体上に投影するものである。この場合のマッピング処理としては、射影マッピング（ｐｒｏｊｅｃｔｉｏｎ  ｍａｐｐｉｎｇ）や、環境マッピング（ｅｎｖｉｒｏｎｍｅｎｔ  ｍａｐｐｉｎｇ）などが確立されている。
【００１２】
テクスチャマッピングを用いた第２の方法の場合、光源位置の指定がないので、ハイライトが移動、変形するアニメーションは、カメラや光源位置の移動の効果を擬似的に取り入れたテクスチャの変形アニメーションを作って対応する必要がある。
【００１３】
第３の方法は、ライトマップ（ｌｉｇｈｔ  ｍａｐ）を使用する方法である。これは、上述した第１の方法、および、第２の方法を組み合わせた方法に類似したもので、ハイライト専用の仮想光源として点光源、および、平行光線を設定し、表示する物体と光源との間に仮想的なスリットを用意して、そのスリットに、所望のハイライト形状が得られるように、光の通り道としての形状を描くものである。
【００１４】
第３の方法の場合、ハイライトのアニメーションには、スリットに描くハイライト生成のための形状のアニメーションを作って対応する。
【００１５】
【非特許文献１】
Ｂｌｉｎｎ，  Ｊ．  Ｆ．，“Ｍｏｄｅｌｓ  ｏｆ  Ｌｉｇｈｔ  Ｒｅｆｌｅｃｔｉｏｎ  ｆｏｒ  Ｃｏｍｐｕｔｅｒ  ＳｙｎｔｈｅｓｉｚｅｄＰｉｃｔｕｒｅｓ”，  Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ  Ｖｏｌ．  １１  （２），  ｐｐ．  １９２−１９８．  １９７７  年
【００１６】
【発明が解決しようとする課題】
しかしながら、これらの手法で所望のハイライト形状を所望の位置に配置するには、多くの試行錯誤が必要となってしまうという課題があった。
【００１７】
また、視点や光源位置が移動した場合、自然に見えるハイライトのアニメーションを作るのにも膨大な手間が必要になってしまうと言う課題があった。
【００１８】
さらに、３次元ＣＧモデルを、セル（手描き）アニメーションと合成して用いる場合、一般的にＣＧの画像を、よりセルアニメーションに近い雰囲気の画像とするために、ハイライトを抽象化、または、単純化する必要が生じる。
【００１９】
このような場合、生成されるセルアニメーション画像は膨大なものであるため、ＣＧを用いた画像の制作は、効率の良いものとすることが大変重要である。
【００２０】
しかしながら、第１の方法では、ハイライト領域の中心部分がどこにくるかを指定するには、ハイライトのための仮想の光源位置を試行錯誤して決めることになり手間がかかってしまうという課題があった。
【００２１】
さらに、ハイライト領域の形状まで制御しようとすると、ハイライト専用の仮想光源をふやし、かつ所望の形になるように位置を試行錯誤して決めなければならず、非常に作業を煩雑なものとしてしまうと言う課題があった。
【００２２】
また、第２の方法でも、例えば、物体表面が曲面になっている場合、その曲面上にハイライトのテクスチャを投影すると、予め用意したハイライトの２次元画像がゆがんで変形するので、所望の形のハイライトを物体上にマッピングするために、位置あわせを繰り返す必要があり、場合によっては、もとのハイライト画像を書き直すなどの処理が必要となることもあり、やはり試行錯誤を多く繰り返さなければならないという課題があった。
【００２３】
さらに、第３の方法でも、スリットに描かれた形状を投影して物体表面にハイライトが生成されるので、第２の方法と同様な面倒な作業が発生する。
【００２４】
また、ＣＧのハイライトを用いたアニメーション画像を生成する場合、第１の手法では、ブリンのモデル等を用いるため、ハイライト用の光源の数が１ですむとき、自然なアニメーションを生成するのは、比較的容易なことである。
【００２５】
しかしながら、これは非常に限定的な条件が揃った場合であり、より多様で一般的なハイライト形状を作ってアニメーション画像を生成するには、ハイライト用の仮想光源が多数必要となり、各仮想光源をそれぞれ移動させるという非常に複雑な処理を行わなければならず、現実的には利用するのは困難であると言う課題があった。
【００２６】
さらに、第２の方法ではテクスチャの変形アニメーション画像を事前に作る必要があるため、平面ないし球面上にテクスチャを描く際、実際に投影される物体上での形を確認しながら試行錯誤的にテクスチャをデザインする必要があり、面倒な作業が発生してしまうという課題があった。
【００２７】
また、アニメーションの作成でよく使用される、キーフレームとなるアニメーション画像をいくつか設定し、それらの間に必要なアニメーション画像を補間生成する、いわゆるキーフレーム法を用いてハイライトを含むアニメーション画像を生成しようとすると、各キーフレームでのハイライトを作ることは可能であるが、それを補間して自然で滑らかなハイライトを含むアニメーション画像を生成する一般的な方式が確立されていないため、第３の手法の場合にも、第２の手法と同様な問題が生じてしまう。
【００２８】
以上のことから、上述した従来手法は共通して、ハイライトを入れたい物体の外から投影する方式で、物体のどの辺りにハイライトを配置するかについて、物体そのものにその位置指示を提供する手段がなく、また、ハイライト形状デザインについては、セルアニメーションの分野では単純化されたシンボリックな形状のバリエーションが必要だが、現状ではこうした形状を単純な操作で作る方法はないため、その作成には、非常に煩雑な作業が必要となってしまうと言う課題があった。
【００２９】
また、キーフレーム法でハイライトアニメーションを作成する場合に適した技術的手段が確立されておらず、各キーフレーム毎に、テクスチャとしてハイライトを定義しても、それらを滑らかに変形して繋ぐ技術的手段がないため、これらを実現させるには煩雑な作業が必要となってしまうという課題があった。
【００３０】
尚、３次元物体に直接ハイライトをテクスチャとして書込むことは技術的に可能であるが、この場合、単にテクスチャとしての貼り込みに過ぎず、ハイライト形状としての特性である、変形や移動、または、滑らかに繋ぐといった手法については、その手法が開発されていないので、試行錯誤を繰り返すしかないといった課題があった。
【００３１】
本発明はこのような状況に鑑みてなされたものであり、ハイライトを含むＣＧ画像を生成する際、３次元の画像と、ハイライトの形状を変形させるパラメータに基づいて、ハイライトを生成し、さらに、生成されたハイライト形状をキーフレーム法を用いて自動補間し、自然なハイライトを含むアニメーション画像を生成できるようにするものである。
【００３２】
【課題を解決するための手段】
本発明の画像処理装置は、３次元の空間情報からなる画像の情報を記憶する記憶手段と、画像上の位置を指定する指定手段と、画像の３次元の空間情報、および、指定手段により指定された画像上の位置の情報に基づいて、画像上にハイライトを生成するハイライト生成手段とを備えることを特徴とする。
【００３３】
前記ハイライト生成手段には、所定の光源位置、所定の視点位置、および画像上の位置に依存して設定されるベクトルと、画像の３次元の空間情報より求められる指定手段により指定された位置における法線ベクトルとの内積の値に基づいて画像上にハイライトを生成させるようにすることができる。
【００３４】
前記ハイライトの形状を設定するパラメータを入力するパラメータ入力手段と、パラメータ入力手段により入力されたパラメータに基づいて、ハイライトを加工する加工手段とをさらに設けるようにさせることができる。
【００３５】
前記パラメータ入力手段により入力された画像のパラメータと、前記画像と異なるその他の画像のパラメータとに基づいて、補間パラメータを生成する補間パラメータ生成手段と、補間パラメータ生成手段により生成された補間パラメータに基づいて、ハイライト生成手段により生成されたハイライトとは異なるハイライトを補間生成するハイライト補間生成手段と、ハイライト補間生成手段により補間生成されたハイライトに基づいて、画像と、その他の画像との補間画像を生成する補間画像生成手段とをさらに設けるようにさせることができる。
【００３６】
前記補間パラメータ生成手段は、線形補間により補間パラメータを生成させるようにすることができる。
【００３７】
本発明の画像処理方法は、３次元の空間情報からなる画像上の位置を指定する指定ステップと、画像の３次元の空間情報、および、指定ステップの処理で指定された画像上の位置の情報に基づいて、画像上にハイライトを生成するハイライト生成ステップとを含むことを特徴とする。
【００３８】
本発明のプログラムは、３次元の空間情報からなる画像上の位置を指定する指定ステップと、画像の３次元の空間情報、および、指定ステップの処理で指定された画像上の位置の情報に基づいて、画像上にハイライトを生成するハイライト生成ステップとを含む処理をコンピュータに実行させることを特徴とする。
【００３９】
本発明の画像処理装置および方法、並びにプログラムにおいては、３次元の空間情報からなる画像の情報が記憶され、画像上の位置が指定され、画像の３次元の空間情報、および、指定手段により指定された画像上の位置の情報に基づいて、画像上にハイライトが生成される。
【００４０】
【発明の実施の形態】
図２は、本発明に係る画像処理装置の一実施の形態の構成を示すブロック図である。
【００４１】
図１の入力部１１は、キーボード、マウス、またはその他のポインティングデバイスなどから構成され、ユーザにより操作されて画像上の位置の情報や、各種のパラメータが入力されるとき操作され、入力された情報に応じて、基本ハイライト画像生成部１２、画像化後部１５、アニメーション画像補間生成部１７、および、アニメーション再生部１９に対応する各種の信号、すなわち、パラメータの情報や、コマンドなどを出力する。
【００４２】
基本ハイライト画像生成部１２は、基本画像記憶部１３に予め記憶されている、複数のＣＧ画像のうち、入力部１１より指定されたＣＧ画像情報を読み出し、表示部１４に表示する。尚、ＣＧとは、ここでは、３次元の空間情報から得られる画像であるものとする。従って、３次元の空間情報からなる画像であれば、ＣＧ画像以外の画像であってもよいので、以降においては、単に画像とも称する。
【００４３】
さらに、基本ハイライト画像生成部１２は、表示部１４に表示された画像に基づいて、ユーザが入力部１１を操作することにより入力される、視点情報、位置情報、および基本画像記憶部１３に記憶されているＣＧ画像の３次元の空間情報に基づいて、ＣＧ画像上の指定された位置に対応するハイライト領域を計算し、さらに、ハイライトを付加した画像を生成して、これを基本ハイライト画像として画像加工部１５に出力する。
【００４４】
表示部１４は、例えば、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）、または、プラズマディスプレイなどから構成され、基本ハイライト画像生成部１２より供給された画像、画像加工部１５より供給された画像、入力画面、または、アニメーション再生部１９より供給された画像などを表示する。表示部１４は、これらの情報を複数のウィンドウで同時に表示することもできる。
【００４５】
画像加工部１５は、基本ハイライト画像生成部１２より供給されるハイライトが付加された画像、または、キーフレーム画像記憶部１６に記憶されている、一度、ハイライトが加工された画像を、入力部１１より供給されるハイライトを加工するためのパラメータに基づいて変形するなどして加工し、加工した画像を表示部１４に表示する。ここでいうハイライトの加工とは、ハイライトを平行移動、回転、分離、拡大縮小、または、スクエアリングすることであり、各種の処理には、対応するパラメータが設定されており、これらのパラメータに基づいて加工される。
【００４６】
より詳細には、平行移動とは、例えば、図３で示すようなハイライトＨが、球面状の物体Ｏからなる基本画像の物体Ｏの物体表面Ｓ上に生成された場合、図４で示されるように、ハイライトＨを加工して、画像に対して２次元の第１の方向、および、第２の方向に、それぞれ所定の距離だけ平行移動したハイライトＨ’を生成する処理である。この場合、パラメータは、第１の方向の移動量と第２の方向の移動量である。
【００４７】
また、回転とは、例えば、図３で示されるようなハイライトＨの中心点ｐを通る軸を、図５で示されるように所定の回転角θで回転させるように加工して、ハイライトＨ’を生成する処理である。この場合、パラメータは回転角θである。
【００４８】
さらに、分離とは、例えば、図３で示されるようなハイライトＨを、図６で示されるように分離するように加工し、ハイライトＨ’１，Ｈ’２を加工生成する処理である。この場合、パラメータは、第１の方向の離れ具合を設定するγ１と、第２の方向の離れ具合を設定するγ２である。
【００４９】
また、拡大縮小とは、例えば、図３で示されるようなハイライトＨを垂直方向に（１＋δ）だけ拡大させるように加工して、図７で示されるようなハイライトＨ’を生成する処理である。もちろん、水平方向に対して（１＋δ）倍だけ拡大させてもよいし、さらに、水平方向に（１＋δ）倍、および、垂直方向に（１＋δ）倍拡大してもよい。また、同様にして、縮小させてもよい。この場合、パラメータはδである。
【００５０】
さらに、スクエアリングとは、例えば、図３で示されるようなハイライトＨを変形するように加工して、図８で示されるような、所定の四角形からなるハイライトＨ’を生成する処理である。この場合、パラメータは、端部の尖り具合を設定するｍと、全体の形状の四角さの程度を設定するσである。
【００５１】
また、画像加工部１５は、ハイライトの加工が完了したＣＧ画像をキーフレーム画像として、キーフレーム画像記憶部１６に記憶させると共に、加工した際、使用されたパラメータをキーフレーム画像記憶部１６に供給する。
【００５２】
さらに、画像加工部１５は、一度加工されたキーフレーム画像を読み出し、再度加工処理を行うこともできる。この場合、新たにハイライトが設定されるような場合、基本ハイライト画像生成部１２と同様に、新たにハイライト領域をキーフレーム画像に付加するといった処理も実行する。
【００５３】
キーフレーム画像記憶部１６は、画像加工部１５より供給される複数のキーフレーム画像と、それぞれに対応するパラメータの値を対応付けて記憶する。
【００５４】
アニメーション画像補間生成部１７は、入力部１１より入力されるキーフレーム画像を指定するキーフレーム画像指定情報に基づいて、少なくとも２枚のキーフレーム画像記憶部１６に記憶されているキーフレーム画像とパラメータを呼び出し、上述したキーフレーム法によるアニメーション画像を再生させるのに必要な、キーフレーム画像間に存在するべきアニメーション画像を、読み出したパラメータに基づいて補間生成し、アニメーション画像記憶部１８に供給し、記憶させる。
【００５５】
より詳細には、図９で示されるように、キーフレーム画像Ｆ１，Ｆ２が指定された場合（図中、時間の変化は右方向に進むものとする）、アニメーション画像を再生するに当たり、アニメーション画像に対応する補間フレーム画像を２枚分補間生成する必要があるとき、例えば、平行移動に際して、キーフレーム画像Ｆ１，Ｆ２のパラメータが第１の方向に対してα、および、第２の方向に対してβであるとすると、アニメーション画像補間生成部１７は、各パラメータを線形補間し、水平方向のパラメータをα／３、垂直方向のパラメータをβ／３として、キーフレーム画像Ｆ１のハイライトを平行移動して補間フレーム画像Ｆ１１を生成する。同様にして、アニメーション画像補間生成部１７は、各パラメータを線形補間し、水平方向のパラメータを２α／３、垂直方向のパラメータを２β／３として、キーフレーム画像Ｆ１のハイライトを平行移動して補間フレーム画像Ｆ１２を生成する。尚、以降において、この補間フレーム画像は、補間アニメーション画像とも称する。
【００５６】
尚、アニメーション画像補間生成部１７は、その他の加工、すなわち、回転、分離、拡大縮小、または、スクエアリングについても同様に、それぞれのパラメータを線形補間することにより、キーフレーム間に必要とされる補間フレーム画像（補間アニメーション画像）を生成する。
【００５７】
この際、アニメーション画像補間生成部１７は、キーフレーム画像をもアニメーション画像記憶部１８に供給して記憶させる。
【００５８】
アニメーション再生部１９は、入力部１１より入力された再生コマンドに基づいて、アニメーション画像記憶部１８に記憶されているキーフレーム画像と、補間フレーム画像を時間方向に連続的に読み出して、アニメーション動画を生成させ、表示部１４に出力して、表示させる。また、アニメーション再生部１９は、入力部１１より必要に応じて停止コマンドが入力されるとアニメーションの再生を停止する。
【００５９】
次に、図１０のフローチャートを参照して、図２の画像処理装置によるキーフレーム画像生成処理について説明する。
【００６０】
ステップＳ１において、基本ハイライト画像生成部１２は、入力部１１がユーザにより操作されて、基本画像が指定されたか否かを判定し、指定されるまでその処理を繰り返す。このとき、基本ハイライト画像生成部１２は、例えば、基本画像記憶部１３に予め記憶されている全ての画像を読み出して、さらに、サムネイル画像を生成し、表示部１４に表示し、ユーザに、今、基本画像として記憶されている画像がどのようなものがあるかを示すようにしてもよく、さらに、サムネイル画像が選択されることで、基本画像が指定されるようにしてもよい。
【００６１】
例えば、ステップＳ１において、入力部１１が操作されて、基本画像を指定する情報が入力された場合、基本ハイライト画像生成部１２は、対応する信号が入力部１１より供給され、基本画像が指定されたと判定し、その処理は、ステップＳ２に進む。
【００６２】
ステップＳ２において、基本ハイライト画像生成部１２は、指定された基本画像を、基本画像記憶部１３より読み出して、表示部１４に表示する。このとき、基本画像記憶部１３に記憶されている画像は、例えば、ＣＧ画像であり、３次元空間の位置情報からなる情報となっているので、基本ハイライト画像生成部１２は、デフォルトの視点方向Ｖに対応する位置から表示される画像を表示部１４に表示する。
【００６３】
ステップＳ３において、基本ハイライト画像生成部１２は、入力部１１が操作されて、ハイライト領域の中心位置を指定する情報が入力されたか否かを判定し、ハイライト領域の中心位置を指定する情報が入力されるまで、その処理を繰り返す。
【００６４】
このとき、ユーザは、入力部１１を操作することにより、表示されている基本画像上の任意の位置を、自らが所望とするハイライトを生成する位置の中心位置として設定することができる。
【００６５】
そして、ステップＳ３において、例えば、図３で示すような、球面状の物体Ｏが表示され、ハイライトの中心位置を示す情報として点ｐで示される位置情報が入力された場合、ハイライト領域の中心位置が指定されたと判定され、その処理は、ステップＳ４に進む。
【００６６】
ステップＳ４において、基本ハイライト画像生成部１２は、入力部１１より係数εが入力されたか否かを判定し、係数εが入力されるまで、その処理が繰り返される。ステップＳ４において、入力部１１がユーザにより操作されて、係数εが入力されると、係数εが入力されたと判定され、その処理は、ステップＳ５に進む。尚、係数εは、ハイライト領域の大きさを設定するパラメータであり、詳細を後述する。
【００６７】
ステップＳ５において、基本ハイライト画像生成部１２は、ハイライト領域を計算し、対応する領域をハイライト表示する。
【００６８】
ここで、ハイライト領域の計算方法について説明する。
【００６９】
まず、ブリンのモデルを用いたハイライト領域の定義について説明する。図１において、表示対象となる物体Ｏの物体表面Ｓ上の点ｐにおけるハイライト領域から反射されて視点で観測されるの光の強度Φｓ（ｐ）は以下の式（１）ように定義される。
【００７０】
Φｓ（ｐ）＝ｋｓ（Ｎｖｅｃｔｏｒ，Ｈｖｅｃｔｏｒ）ｎ  ・・・（１）
【００７１】
ここで、係数ｋｓは、鏡面反射率を示す。この係数ｋｓは、厳密には入射角や、入射される光の波長により異なるが、ＣＧ画像の生成においては簡易的に所定の定数とすることが一般的であり、以下でも所定の定数であるものとする。また、図１で示したように、Ｎｖｅｃｔｏｒは物体表面Ｓ上の点ｐにおける法線ベクトルを示す。さらに、Ｈｖｅｃｔｏｒは、視線ベクトルＶｖｅｃｔｏｒと、光源ベクトルＬｖｅｃｔｏｒの成す角を２分する方向のベクトルを示しており、以下において、Ｈｖｅｃｔｏｒは、中間ベクトルと称する。さらに、これらのベクトルは、全て大きさが１に正規化された単位ベクトルであるものとする。また、以下において、ベクトルを示す符号には、ｖｅｃｔｏｒを付するものとし、付されていない係数については、スカラー量であるものとする。
【００７２】
従って、中間ベクトルＨｖｅｃｔｏｒは、以下の式（２）として定義される。
Ｈｖｅｃｔｏｒ＝（Ｌｖｅｃｔｏｒ＋Ｖｖｅｃｔｏｒ）／｜Ｌｖｅｃｔｏｒ＋Ｖｖｅｃｔｏｒ｜・・・（２）
【００７３】
ここで、｜Ｌｖｅｃｔｏｒ＋Ｖｖｅｃｔｏｒ｜は、ベクトル（Ｌｖｅｃｔｏｒ＋Ｖｖｅｃｔｏｒ）の大きさを示す。さらに、式（１）の右辺の係数ｎは、ハイライトの輪郭のシャープさを規定するものである。しかしながら、以降の説明においては、説明を簡単にするために係数ｎはｎ＝１とし、さらに、係数ｋｓもｋｓ＝１であるものとする。当然のことながら、これらの係数ｎ，ｋｓは自由に設定できる値である。
【００７４】
以上の式（１）により定義された、ハイライト上の点ｐにおける光の強度Φｓ（ｐ）に基づいて、ハイライト領域Ｈεは、以下の式（３）のように定義される。
【００７５】
Ｈε＝｛ｐ∈Ｓ｜Φｓ（ｐ）＞１−ε｝・・・（３）
【００７６】
ここで、係数εは、０＜ε＜１で設定される値であり、ユーザにより自由に設定される。ｐ∈Ｓは、点ｐが物体表面Ｓに含まれることを示している。従って、式（３）においては、物体表面Ｓ内の点ｐのうち、光の強度Φｓ（ｐ）がΦｓ（ｐ）＞１−εである点ｐからなる領域がハイライト領域Ｈεであることが示されている。
【００７７】
換言すれば、このように式（１）を用いてハイライト領域Ｈεを式（３）で定義するとき、各点ｐの中間ベクトルＨｖｅｃｔｏｒと法線ベクトルＮｖｅｃｔｏｒとの内積を求め、その値と（１−ε）との大小比較によって、その点がハイライト領域Ｈεに属するかどうかを判定することにより設定されるハイライト領域Ｈεがブリンのモデルを用いた従来のハイライト領域Ｈεの設定方法である。
【００７８】
従って、点ｐの色を決める際に、この点ｐが式（３）で定義される領域Ｈεに属するならば、ハイライト色（通常は白）が割り当てられる。尚、係数εが０に近いほどハイライト領域は小さくなり、係数εが１に近いほどハイライト領域Ｈεは物体表面Ｓに広がる。すなわち、係数εはハイライト領域Ｈεの大きさを規定する値である。
【００７９】
ところで、式（２）で示されるように、中間ベクトルＨｖｅｃｔｏｒは、視線ベクトルＶｖｅｃｔｏｒと光源ベクトルＬｖｅｃｔｏｒにより一意に決まるベクトルである。
【００８０】
このうち、視線ベクトルＶｖｅｃｔｏｒは、３次元空間の情報からなるＣＧ画像においては、表示する際に予め設定されることになるので、以下においては、デフォルトとなる所定の定数から構成されるベクトルとする。もちろん、視線ベクトルＶｖｅｃｔｏｒは、ユーザにより自由に設定できるものである。
【００８１】
また、以下において、光源ベクトルＬｖｅｃｔｏｒについても、視線ベクトルＶｖｅｃｔｏｒと同様に、デフォルトとなる所定の定数から構成されるベクトルであるものとする。もちろん、光源ベクトルＬｖｅｃｔｏｒも、ユーザにより自由に設定できるものである。
【００８２】
この結果、中間ベクトルＨｖｅｃｔｏｒは、以下の式（４）で示されるベクトルＨｖｅｃｔｏｒ（ｐ）として定義されることになる。
【００８３】
Ｈｖｅｃｔｏｒ（ｐ）＝（Ｌｖｅｃｔｏｒ（ｐ）＋Ｖｖｅｃｔｏｒ（ｐ））／｜Ｌｖｅｃｔｏｒ（ｐ）＋Ｖｖｅｃｔｏｒ（ｐ）｜・・・（４）
【００８４】
ここで、ｐは、物体表面Ｓ上の点ｐを示す。従って、Ｈｖｅｃｔｏｒ（ｐ）は、物体表面Ｓ上の点ｐにおける中間ベクトルである。
【００８５】
従って、式（４）を用いることにより、物体表面上の点ｐが指定されると、中間ベクトルＨｖｅｃｔｏｒ（ｐ）は、一意に定まる。
【００８６】
この式（４）を用いて、以下の式（５）で示されるベクトルｈｖｅｃｔｏｒ（ｐ）を定義する。
【００８７】
ｈｖｅｃｔｏｒ（ｐ）＝（Ｈｖｅｃｔｏｒ（ｐ）＋ｔｖｅｃｔｏｒ）／｜Ｈｖｅｃｔｏｒ（ｐ）＋ｔｖｅｃｔｏｒ｜・・・（５）
【００８８】
式（５）において、｜Ｈｖｅｃｔｏｒ（ｐ）＋ｔｖｅｃｔｏｒ｜は、ベクトル（Ｈｖｅｃｔｏｒ（ｐ）＋ｔｖｅｃｔｏｒ）の大きさを示し、ｔｖｅｃｔｏｒは、以下の式（６）で示される関係を有する。
【００８９】
ｔｖｅｃｔｏｒ＝Ｎｖｅｃｔｏｒ（ｐ０）−Ｈｖｅｃｔｏｒ（ｐ０）・・・（６）
【００９０】
式（６）において、ｐ０は、物体表面Ｓ上でユーザにより位置が指定された点を示し、Ｎｖｅｃｔｏｒ（ｐ０）は、点ｐ０を通る法線ベクトルを示し、Ｈｖｅｃｔｏｒ（ｐ０）は、点ｐ０を通る中間ベクトルを示す。従って、ベクトルｔｖｅｃｔｏｒは、点ｐ０上での中間ベクトルＨｖｅｃｔｏｒ（ｐ０）と法線ベクトルＮｖｅｃｔｏｒ（ｐ０）の差分ベクトルである。
【００９１】
すなわち、式（５）で定義されるベクトルｈｖｅｃｔｏｒ（ｐ）は、物体表面Ｓ上の任意の点ｐ上の中間ベクトルＨｖｅｃｔｏｒ（ｐ）と、点ｐ０上での中間ベクトルＨｖｅｃｔｏｒ（ｐ０）と法線ベクトルＮｖｅｃｔｏｒ（ｐ０）の差分ベクトルとのベクトル和の単位ベクトルである。
【００９２】
このため、式（５）のベクトルｈｖｅｃｔｏｒ（ｐ）は、物体表面Ｓ上の任意の点ｐの位置に応じて、中間ベクトルＨｖｅｃｔｏｒ（ｐ）に支配されるベクトルであって、かつ、点ｐ０上において、法線ベクトルＮｖｅｃｔｏｒ（ｐ０）と一致するベクトルである。換言すれば、ベクトルｈｖｅｃｔｏｒ（ｐ）は、中間ベクトルＨｖｅｃｔｏｒ（ｐ）をベクトルｔｖｅｃｔｏｒ分だけオフセットされたベクトルであると言える。
【００９３】
従って、上述した、式（５）で定義されるベクトルｈｖｅｃｔｏｒ（ｐ）の性質と、式（１），式（３）の関係を利用して、以下の式（７）で示されるハイライト領域Ｈ［ε］を新たに定義することができる。
【００９４】
Ｈ［ε］＝｛ｐ∈Ｓ｜（Ｎｖｅｃｔｏｒ（ｐ），ｈｖｅｃｔｏｒ（ｐ））＞１−ε｝・・・（７）
【００９５】
式（７）において、（Ｎｖｅｃｔｏｒ（ｐ），ｈｖｅｃｔｏｒ（ｐ））は、法線ベクトルＮｖｅｃｔｏｒ（ｐ）とベクトルｈｖｅｃｔｏｒ（ｐ）の内積を示す。
【００９６】
上述したように、ベクトルｈｖｅｃｔｏｒ（ｐ）は、中間ベクトルＨｖｅｃｔｏｒ（ｐ）に支配されるベクトルであるため、物体表面Ｓ上の任意の点ｐに対応して、定性的には中間ベクトルＨｖｅｃｔｏｒ（ｐ）と同様の挙動を示す。従って、式（７）で定義されるハイライト領域Ｈ［ε］で定義されるハイライト領域と、式（３）で定義される、いわゆるブリンのモデルを用いて定義されるハイライト領域Ｈεとは、いずれも係数εの変化に応じたそれぞれの挙動が定性的に同様のものと考えることができる。
【００９７】
また、物体表面Ｓ上の、指定された点ｐ０においては、上述したようにベクトルｈｖｅｃｔｏｒ（ｐ０）は、法線ベクトルＮｖｅｃｔｏｒ（ｐ０）と一致するため、（Ｎｖｅｃｔｏｒ（ｐ），ｈｖｅｃｔｏｒ（ｐ））＝（Ｎｖｅｃｔｏｒ（ｐ），Ｎｖｅｃｔｏｒ（ｐ））＝１となり、式（７）で定義されたハイライト領域Ｈ［ε］において、指定された点ｐ０を最もハイライト色が強くなる中心位置に設定することも可能となる。従って、ユーザは、ハイライトを設定したい位置を指定するだけで、ハイライトを設定することが可能となる。
【００９８】
そこで、図１０のフローチャートのステップＳ５において、基本ハイライト画像生成部１２は、ステップＳ４において、入力された係数εを用いて、上述した式（７）で定義されたハイライト領域Ｈ［ε］を求め、求められたハイライト領域の各点ｐについて、式（７）の（Ｎｖｅｃｔｏｒ（ｐ），ｈｖｅｃｔｏｒ（ｐ））の演算結果に応じたハイライト色（色の強さ）でハイライトを基本画像に付して、表示部１４に出力し、表示させると共に、画像加工部１５に出力する。尚、上述したベクトルｈｖｅｃｔｏｒ（ｐ）は、以降において、中心位置指定ベクトルｈｖｅｃｔｏｒ（ｐ）と称する。従って、上述の式（７）で定義されるハイライト領域Ｈ［ε］は、中心位置指定ベクトルｈｖｅｃｔｏｒ（ｐ）に依存して変化する。
【００９９】
ステップＳ６において、画像加工部１５は、画像上に設定されたハイライトの加工処理を実行する。
【０１００】
ここで、図１１のフローチャートを参照して、ハイライトの画像加工処理について説明する。
【０１０１】
ステップＳ２１において、画像加工部１５は、ハイライト領域の加工に必要なパラメータの入力画面を表示する。
【０１０２】
画像加工部１５が表示する入力画面（ＧＵＩ：Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）は、例えば、図１２で示されるような画面である。
【０１０３】
図１２においては、最上段にタブ３１が表示され、今の場合、「基本画像１」と表示されており、選択された基本画像を識別する情報が表示されている。
【０１０４】
タブ３１の下には、ファイル名表示欄３２が設けられており、選択された基本画像に対応するファイル名が表示されており、今の場合「Ｂａｓｉｃ１」と表示されている。
【０１０５】
ファイル名表示欄３２の下には、選択された基本画像のサンプルが表示されるサンプル画像表示欄３３が設けられている。今の場合、球状のサンプルが表示されている。
【０１０６】
サンプル画像表示欄３３の下には、平行移動のパラメータを入力するための第１の方向であるｕ方向パラメータ入力欄３４が設けられている。ｕ方向パラメータ入力欄３４には、直接値を入力できる他、その右側に設けられたつまみ３５を図中の左右に操作する（ここでいう、操作とは、例えば、ポインティングデバイスなどにより、つまみ３５をドラッグし、左右に操作することである）ことで値を変化させるようにすることもできる。今の場合、「Ｓｐｅｃｕｌｅｒ  Ｔｒａｎｓ  Ｕ」と表示されており、値として「−０．８１０」が表示されている。
【０１０７】
ｕ方向パラメータ入力欄３４の下には、平行移動のパラメータを入力するための第２の方向であるｖ方向パラメータ入力欄３６が設けられている。ｖ方向パラメータ入力欄３６には、直接値を入力できる他、その右側に設けられたつまみ３７を図中の左右に操作することで値を変化させるようにすることもできる。今の場合、「Ｓｐｅｃｕｌｅｒ  Ｔｒａｎｓ  Ｖ」と表示されており、値として「０．０８０」が表示されている。
【０１０８】
ｖ方向パラメータ入力欄３６の下には、回転のパラメータθを入力するための回転パラメータ入力欄３８が設けられている。回転パラメータ入力欄３８には、直接値を入力できる他、その右側に設けられたつまみ３９を図中の左右に操作することで値を変化させるようにすることもできる。今の場合、「Ｓｐｅｃｕｌｅｒ  Ｒｏｔａｔｅ」と表示されており、値として「０．０８０」が表示されている。
【０１０９】
回転パラメータ入力欄３８の下には、分離のパラメータγ１，γ２をそれぞれ入力するための分離パラメータ入力欄４０，４２が設けられている。分離パラメータ入力欄４０，４２には、直接値を入力できる他、その右側に設けられたつまみ４１，４３を図中の左右に操作することで値を変化させるようにすることもできる。今の場合、「Ｓｐｌｉｔ」と表示されており、値としていずれも「０．００」が表示されている。
【０１１０】
分離パラメータ入力欄４０の下には、拡大縮小のパラメータδを入力するための拡大縮小パラメータ入力欄４４が設けられている。拡大縮小パラメータ入力欄４４には、直接値を入力できる他、その右側に設けられたつまみ４５を図中の左右に操作することで値を変化させるようにすることもできる。今の場合、「Ｓｃａｌｅ  Ａｌｐｈａ」と表示されており、値としていずれも「０．０００」が表示されている。
【０１１１】
拡大縮小パラメータ入力欄４４の下には、スクエアリングのパラメータσ，ｍをそれぞれ入力するためのスクエアリングパラメータ入力欄４６，４８が設けられている。スクエアリングパラメータ入力欄４６，４８には、直接値を入力できる他、その右側に設けられたつまみ４７，４９を図中の左右に操作することで値を変化させるようにすることもできる。今の場合、「Ｓｑｕａｒｉｎｇ」と表示されており、値としていずれも「０．００」が表示されている。
【０１１２】
また、これらの入力欄は、全て入力される必要が無く、いずれかのパラメータだけを入力することができるようにされており、それ以外の値は、変更を加える必要のない状態の値（加工しない状態を示す値）がデフォルトで設定されている。
【０１１３】
ステップＳ２２において、画像加工部１５は、入力部１１よりハイライトを加工するためのパラメータが設定されたか否かを判定し、設定されていないと判定されると、その処理は、ステップＳ２１に戻り、設定されたと判定されるまで、ステップＳ２１，Ｓ２２の処理が繰り返される。
【０１１４】
ステップＳ２２において、例えば、入力部１１がユーザにより操作され、平行移動、回転、分離、拡大縮小、または、スクエアリングの加工に関するパラメータが、ステップＳ２１の処理で表示された各種の入力欄に入力され、決定操作がなされると、画像加工部１５は、パラメータの入力があったと判定し、その処理は、ステップＳ２３に進む。
【０１１５】
ステップＳ２３において、画像加工部１５は、入力されたパラメータに平行移動のパラメータが指定されているか否かを判定する。より詳細には、画像加工部１５は、平行移動のパラメータとなっている値が、０であるか否かを判定することにより、パラメータが指定されているか否かを判定する。例えば、平行移動のパラメータが入力されていると判定された場合、その処理は、ステップＳ２４に進む。
【０１１６】
ステップＳ２４において、画像加工部１５は、平行移動のパラメータに基づいて、ハイライト領域を並行移動させて、表示部１４に出力し表示させ、その処理は、ステップＳ２５に進む。
【０１１７】
より詳細には、例えば、平行移動のパラメータとして、第１の方向のパラメータｕ、および、第２の方向のパラメータｖが、（ｕ，ｖ）＝（α，β）として入力されていた場合、画像加工部１５は、物体表面Ｓ上の各点ｐの中間ベクトルＨｖｅｃｔｏｒ（ｐ）について、以下の式（８）を用いて、平行移動しベクトルＨ’ｖｅｃｔｏｒ（ｐ）を演算し、演算されたベクトルＨ’ｖｅｃｔｏｒ（ｐ）を用いて、式（９）による演算によりハイライトベクトルｔｖｅｃｔｏｒ（Ｈ）を求め、このハイライトベクトルｔｖｅｃｔｏｒ（Ｈ）から、上述した式（７）による演算を用いた手法によりハイライト領域Ｈ’［ε］を求めて、求められたハイライト領域に加工し、表示部１４に表示させる。
【０１１８】
Ｈ’ｖｅｃｔｏｒ（ｐ）＝Ｈｖｅｃｔｏｒ（ｐ）＋αｄｕｖｅｃｔｏｒ＋βｄｖｖｅｃｔｏｒ・・・（８）
【０１１９】
ｔｖｅｃｔｏｒ（Ｈ）＝Ｈ’ｖｅｃｔｏｒ（ｐ）／｜Ｈ’ｖｅｃｔｏｒ（ｐ）｜・・・（９）
【０１２０】
ここで、α，βは、上述した平行移動のパラメータであり、図１３で示されるように、ｄｕｖｅｃｔｏｒ，ｄｖｖｅｃｔｏｒは、第１の方向ｕと第２の方向ｖのそれぞれの単位ベクトルを示す。尚、図１３中においては、全ての符号にｖｅｃｔｏｒが、付されていないが、α，β以外の符号は全てベクトルである。また、後述する図１４乃至図１７についても同様とする。
【０１２１】
すなわち、図１３で示されるように、中間ベクトルＨｖｅｃｔｏｒ（ｐ）と、図１３中の点線で示される平行移動する方向と距離を示すベクトル（αｄｕｖｅｃｔｏｒ＋βｄｖｖｅｃｔｏｒ）とのベクトル和がベクトルＨ’ｖｅｃｔｏｒ（ｐ）であることが示されている。
【０１２２】
さらに、図１３には、求められたベクトルＨ’ｖｅｃｔｏｒ（ｐ）が、式（９）により単位ベクトルにされると、ハイライトベクトルｔｖｅｃｔｏｒ（Ｈ）となることが示されている。
【０１２３】
また、例えば、図１４で示されるように、第１の方向ｕについてのみ見ると、１点鎖線で示されているベクトルｔｖｅｃｔｏｒ（Ｈ）が、図１３の上部で示される元の中間ベクトルＨｖｅｃｔｏｒ（ｐ）と、図１４の下部で示されるように点線で示される平行移動する方向と距離を示すベクトル（αｄｕｖｅｃｔｏｒ＋βｄｖｖｅｃｔｏｒ）とのベクトル和によって求められる。画像加工部１５は、この新たに求められた中間ベクトルｔｖｅｃｔｏｒ（Ｈ）と法線ベクトルＮｖｅｃｔｏｒ（ｐ）との関係により新たなハイライト領域を求める。すなわち、図１４の下部で示されるように、ハイライトベクトルｔｖｅｃｔｏｒ（Ｈ）は、元の中間ベクトルＨｖｅｃｔｏｒ（ｐ）と比べて、全体として１点鎖線で示されている矢印が右側に傾くことになる。
【０１２４】
結果として、図１４中上部においては、左右両端の中間ベクトルＨｖｅｃｔｏｒ（ｐ）を示す実線の矢印は、法線ベクトルと一致する中央の矢印との角度の差が大きくなるため、上述した式（７）の関係からハイライト領域になっておらず、中央の５本の実線の矢印で示されている領域がハイライト領域となっているが、図１４の下部の１点鎖線の矢印で示されるように、ハイライトベクトルｔｖｅｃｔｏｒ（Ｈ）では、傾きが全体として右側に傾斜することで、法線ベクトルと一致する矢印が右から３番目の１点鎖線の矢印となり、左側の２本の１点鎖線の矢印で示される領域がハイライト領域から外れて、右側の５本の１点鎖線の矢印で示される領域がハイライト領域となっている。結果として、図１４においては、ハイライト領域が右側に平行移動したことが示されている。
【０１２５】
尚、図１４においては、実線の矢印が元の中間ベクトルを、点線の矢印が平行移動した方向と距離を示すベクトルを、１点鎖線の矢印のうち、大きな矢じりとなっている部分が、元の中間ベクトルと平行移動した方向と距離を示すベクトルのベクトル和を示し、さらに、１点鎖線で示された矢印の小さな矢じりとなっている部分が、元の中間ベクトルと平行移動した方向と距離を示すベクトルのベクトル和を示す単位ベクトル、すなわち、新たに求められた中間ベクトルを示している。
【０１２６】
また、上述の平行移動の処理に必要とされるパラメータ（α，β）は、例えば、表示部１４に表示されているハイライト領域をポインティングデバイスにより、ハイライト部分をドラッグアンドドロップするなどしたときのポインティングデバイスの移動方向、および、移動距離に基づいて入力されるものであってもよい。この際、上述の式（８），式（９）の演算が実行されるのみであるので、実際の表示処理などはリアルタイムで実行することが可能であり、結果として、ユーザは、移動量や方向などを意識せずにハイライトを平行移動させるようにすることが可能となり、例えば、図３で示されるようなハイライトＨが、図４で示されるようなハイライトＨ’に加工される。
【０１２７】
一方、ステップＳ２３において、平行移動のパラメータが含まれていないと判定された場合、ステップＳ２４の処理は、スキップされ、その処理は、ステップＳ２５に進む。
【０１２８】
ステップＳ２５において、画像加工部１５は、入力されたパラメータに回転のパラメータが指定されているか否かを判定する。より詳細には、画像加工部１５は、回転のパラメータとなっている値が、０であるか否かを判定することにより、パラメータが指定されているか否かを判定する。例えば、回転のパラメータが入力されていると判定された場合、その処理は、ステップＳ２６に進む。
【０１２９】
ステップＳ２６において、画像加工部１５は、回転のパラメータに基づいて、ハイライト領域を回転させて、表示部１４に出力し表示させ、その処理は、ステップＳ２７に進む。
【０１３０】
より詳細には、画像加工部１５は、回転のパラメータとして、回転角θが入力された場合、ハイライト領域を設定する座標の第１の方向の軸であるｕ軸および第２の方向の軸であるｖ軸を、ハイライト領域の中心点を中心として、入力された回転角θに対応して回転させることにより、ハイライト領域を回転させ、回転したｕ軸およびｖ軸に対応するハイライト領域を表示部１４に出力する。すなわち、例えば、図３で示されるようなハイライトＨが、図５で示されるようなハイライトＨ’に加工される。
【０１３１】
一方、ステップＳ２５において、平行移動のパラメータが含まれていないと判定された場合、ステップＳ２６の処理は、スキップされ、その処理は、ステップＳ２７に進む。
【０１３２】
ステップＳ２７において、画像加工部１５は、入力されたパラメータに分離のパラメータが指定されているか否かを判定する。より詳細には、画像加工部１５は、分離のパラメータとなっている値が、０であるか否かを判定することにより、パラメータが指定されているか否かを判定する。例えば、分離のパラメータが入力されていると判定された場合、その処理は、ステップＳ２８に進む。
【０１３３】
ステップＳ２８において、画像加工部１５は、分離のパラメータに基づいて、ハイライト領域を分離させて、表示部１４に出力し表示させ、その処理は、ステップＳ２９に進む。
【０１３４】
より詳細には、例えば、分離のパラメータとして、第１の方向のパラメータγ１および、第２の方向のパラメータγ２が入力されていた場合、画像加工部１５は、物体表面Ｓ上の各点ｐの中間ベクトルＨｖｅｃｔｏｒ（ｐ）について、以下の式（１０）を用いて、分離しベクトルＨ∨ｖｅｃｔｏｒ（ｐ）を演算し、演算されたベクトルＨ∨ｖｅｃｔｏｒ（ｐ）を用いて、式（１１）による演算によりハイライトベクトルｓｐｌｖｅｃｔｏｒ（Ｈ）を求め、このハイライトベクトルｓｐｌｖｅｃｔｏｒ（Ｈ）から、上述した式（７）による演算を用いた手法によりハイライト領域Ｈ’［ε］を求めて、求められたハイライト領域に加工し、表示部１４に表示させる。
【０１３５】
2005011100.tif 000003
【０１３６】
ｓｐｌｖｅｃｔｏｒ（Ｈ）＝Ｈ∨ｖｅｃｔｏｒ（ｐ）／｜Ｈ∨ｖｅｃｔｏｒ（ｐ）｜・・・（１１）
【０１３７】
ここで、ｓｇｎ［ｘ］は、以下の式（１２）で示されるように定義された関数である。
【０１３８】
ｓｇｎ［ｘ］＝１（ｉｆ  ｘ＝１）  ａｎｄ  ｘ／｜ｘ｜（ｉｆ  ｘ≠１）・・・（１２）
【０１３９】
パラメータγ１，γ２は、いずれも非負のパラメータであり、パラメータγ１は、第１の方向（ｕ方向）に２個にハイライト領域を分離する度合いを示すものであり、同様にして、パラメータγ２は第２の方向（ｖ方向）に２個にハイライト領域を分離する度合いを示すものである。
【０１４０】
また、例えば、図１５で示されるように、水平方向ｕについてのみ見ると、１点鎖線で示されているハイライトベクトルＨ∨ｖｅｃｔｏｒ（ｐ）は、図１５の上部で示される元の中間ベクトルＨｖｅｃｔｏｒ（ｐ）と、上述の式（１０）の右辺第２項の演算により、図１５の下部で示されるような点線で示されるベクトル（−γ１ｓｇｎ［（Ｈｖｅｃｔｏｒ（ｐ），ｄｕｖｅｃｔｏｒ）］ｄｕｖｅｃｔｏｒ）とのベクトル和によって求められる。画像加工部１５は、この新たに求められた中間ベクトルＨ∨ｖｅｃｔｏｒ（ｐ）と法線ベクトルＮｖｅｃｔｏｒ（ｐ）との関係により新たなハイライト領域を求める。すなわち、図１５の下部で示されるように、ハイライトベクトルＨ∨ｖｅｃｔｏｒ（ｐ）は、右から３本目までの実線で示される元の中間ベクトルＨｖｅｃｔｏｒ（ｐ）が右側に傾いたものとされ、左から４本目までの実線で示される元の中間ベクトルＨｖｅｃｔｏｒ（ｐ）が左側に傾いたものとされる。
【０１４１】
結果として、図１５中上部においては、左右両端から２本目までの中間ベクトルＨｖｅｃｔｏｒ（ｐ）を示す矢印は、法線ベクトルと一致する中央の矢印との角度の差が大きくなるため、上述した式（７）の関係からハイライト領域になっておらず、中央の３本の矢印で示されている領域がハイライト領域となっているが、図１５の下部の矢印で示されるように、ハイライトベクトルＨ∨ｖｅｃｔｏｒ（ｐ）では、右から３本目までは、元の中間ベクトルＨｖｅｃｔｏｒ（ｐ）に対して右側に傾き、左から３本目までは左側に傾くことで、法線ベクトルと一致する矢印が右から２番目の矢印と、左側の２番目の矢印となるため、左右３本の１点鎖線の矢印で示される領域となるため、中央の矢印の領域がハイライト領域から外れて、左右の３本の矢印で示される領域がハイライト領域となっている。結果として、図１５においては、ハイライト領域が２個に分離したことが示されている。すなわち、例えば、図３で示されるようなハイライトＨが、図６で示されるようなハイライトＨ’１，Ｈ’２に分離して、加工される。
【０１４２】
尚、図１５においては、実線の矢印が元の中間ベクトルを、点線の矢印が上述の式（１０）の右辺第２項により演算されたベクトルを、１点鎖線の矢印のうち、大きな矢じりとなっている部分が、元の中間ベクトルと式（１０）の右辺第２項により演算されたベクトルのベクトル和を示し、さらに、１点鎖線で示された矢印の小さな矢じりとなっている部分が、元の中間ベクトルと式（１０）の右辺第２項により演算されたベクトルのベクトル和を示す単位ベクトル、すなわち、新たに求められた中間ベクトルを示している。
【０１４３】
従って、パラメータγ１，γ２の何れもが正の値に設定されると、ハイライト領域は、第１の方向、および、第２の方向にそれぞれ２個に分離されることになるため、結果として、１個のハイライト領域が、４個に分離される。これらのパラメータを連続的に変えると、ハイライトの分離アニメーション画像を構成することができる。
【０１４４】
一方、ステップＳ２７において、分離のパラメータが含まれていないと判定された場合、ステップＳ２８の処理は、スキップされ、その処理は、ステップＳ２９に進む。
【０１４５】
ステップＳ２９において、画像加工部１５は、入力されたパラメータに拡大縮小のパラメータが指定されているか否かを判定する。より詳細には、画像加工部１５は、平行移動のパラメータとなっている値が、０であるか否かを判定することにより、パラメータが指定されているか否かを判定する（拡大縮小のパラメータは、等倍を１としたときの倍率１に対して加算される倍率の値である）。例えば、拡大縮小のパラメータが入力されていると判定された場合、その処理は、ステップＳ３０に進む。
【０１４６】
ステップＳ３０において、画像加工部１５は、拡大縮小のパラメータに基づいて、ハイライト領域を拡大縮小させて、表示部１４に出力し表示させ、その処理は、ステップＳ３１に進む。
【０１４７】
より詳細には、例えば、拡大縮小のパラメータとしてδが、入力されていた場合、画像加工部１５は、物体表面Ｓ上の各点ｐの中間ベクトルＨｖｅｃｔｏｒ（ｐ）について、以下の式（１３）を用いて、ベクトルＨ’’ｖｅｃｔｏｒ（ｐ）を演算し、演算されたベクトルＨ’’ｖｅｃｔｏｒ（ｐ）を用いて、式（１４）による演算によりハイライトベクトルｓｖｅｃｔｏｒ（Ｈ）を求め、このハイライトベクトルｓｖｅｃｔｏｒ（Ｈ）から、上述した式（７）による演算を用いた手法によりハイライト領域Ｈ’［ε］を求めて、求められたハイライト領域に加工し、表示部１４に表示させる。
【０１４８】
Ｈ’’ｖｅｃｔｏｒ（ｐ）＝Ｈｖｅｃｔｏｒ（ｐ）−δ（Ｈｖｅｃｔｏｒ（ｐ），ｄｕｖｅｃｔｏｒ）ｄｕｖｅｃｔｏｒ・・・（１３）
【０１４９】
ｓｖｅｃｔｏｒ（Ｈ）＝Ｈ’’ｖｅｃｔｏｒ（ｐ）／｜Ｈ’’ｖｅｃｔｏｒ（ｐ）｜・・・（１４）
【０１５０】
すなわち、図１６で示されるように、中間ベクトルＨｖｅｃｔｏｒ（ｐ）と、図１６中の点線で示される、式（１３）の右辺第２項で求められるベクトル（δ（Ｈｖｅｃｔｏｒ（ｐ），ｄｕｖｅｃｔｏｒ）ｄｕｖｅｃｔｏｒ）とのベクトル差がベクトルＨ’’ｖｅｃｔｏｒ（ｐ）であることが示されている。
【０１５１】
さらに、図１６には、求められたベクトルＨ’’ｖｅｃｔｏｒ（ｐ）が、式（１４）により単位ベクトルにされると、ハイライトベクトルｓｖｅｃｔｏｒ（Ｈ）となることが示されている。尚、式（１３），式（１４）は、第１の方向であるｕ方向の式であり、第２の方向であるｖ方向にも同様の演算がなされる。
【０１５２】
ところで、式（１３）は、本来以下の式（１５）が定義されるものである。
【０１５３】
2005011100.tif 000004
【０１５４】
すなわち、式（１５）で示されるように、式（１３）で求められるベクトルは、図１６で示されるように、法線ベクトルＮｖｅｃｔｏｒ（ｐ）と中間ベクトルＨｖｅｃｔｏｒ（ｐ）の差分ベクトル（Ｎｖｅｃｔｏｒ（ｐ）−Ｈｖｅｃｔｏｒ（ｐ））と、ｕ方向の単位ベクトルｄｕｖｅｃｔｏｒとの内積の値をｕ方向の単位ベクトルｄｕｖｅｃｔｏｒに乗じたベクトルと、中間ベクトルとのベクトル和を求める式となるはずである。
【０１５５】
しかしながら、以下の式（１６）で示されるように、式（１５）が展開されると、右辺第２項は、法線ベクトルとｕ方向の単位ベクトルとの内積を含む項となるため、０となりキャンセルされるので、結果として、上述した式（１３）が演算されることになる。
2005011100.tif 000005
【０１５６】
また、例えば、図１７で示されるように、水平方向ｕについてのみ見ると、１点鎖線で示されているハイライトベクトルｓｖｅｃｔｏｒ（Ｈ）は、図１７の上部で示される元の中間ベクトルＨｖｅｃｔｏｒ（ｐ）と、式（１３）の右辺第２項で求められるベクトル（−δ（Ｈｖｅｃｔｏｒ（ｐ），ｄｕｖｅｃｔｏｒ）ｄｕｖｅｃｔｏｒ）とのベクトル和によって求められる。画像加工部１５は、この新たに求められた中間ベクトルｓｖｅｃｔｏｒ（Ｈ）と法線ベクトルＮｖｅｃｔｏｒ（ｐ）との関係により新たなハイライト領域を求める。すなわち、図１７の下部で示されるように、ハイライトベクトルｓｖｅｃｔｏｒ（Ｈ）は、元の中間ベクトルＨｖｅｃｔｏｒ（ｐ）と比べて、図中中央より右側の矢印は右側に、図中中央より左側の１点鎖線の矢印は、左側に、それぞれ傾くことになる。
【０１５７】
結果として、図１７中上部においては、左右それぞれの２本の中間ベクトルＨｖｅｃｔｏｒ（ｐ）を示す実線の矢印は、法線ベクトルと一致する中央の矢印との角度の差が大きくなるため、上述した式（７）の関係からハイライト領域になっておらず、中央の３本の矢印で示されている領域がハイライト領域となっているが、図１７の下部の１点鎖線の矢印で示されるように、ハイライトベクトルｓｖｅｃｔｏｒ（Ｈ）では、全体として法線ベクトルに近い方向に傾きが変化することで、全ての矢印は、法線ベクトルとの傾きが近いものとなり、矢印で示される全ての領域がハイライト領域となっている。結果として、図１７においては、ハイライト領域が拡大したことが示されている。すなわち、例えば、図３で示されるようなハイライトＨが、図７で示されるようなハイライトＨ’に加工される。
【０１５８】
尚、図１７においては、実線の矢印が元の中間ベクトルを、点線の矢印が式（１３）の右辺第２項で求められるベクトルを、１点鎖線の矢印のうち、大きな矢じりとなっている部分が、元の中間ベクトルと式（１３）の右辺第２項で求められるベクトルのベクトル和を示し、さらに、１点鎖線で示された矢印の小さな矢じりとなっている部分が、元の中間ベクトルと平行移動した方向と距離を示すベクトルのベクトル和の単位ベクトル、すなわち、新たに求められた中間ベクトルを示している。
【０１５９】
尚、以上においては、ｕ方向の場合について説明してきたが、ｖ方向も拡大することが可能であり、同様の手法であるため、その説明は省略する。また、以上においては、拡大について説明してきたが、縮小の処理も同様にすることが可能である。また、ハイライト領域の拡大縮小は、以上の方法のみならず、例えば、上述した係数εの値により拡大縮小させるようにしてもよい。
【０１６０】
一方、ステップＳ２９において、分離のパラメータが含まれていないと判定された場合、ステップＳ３０の処理は、スキップされ、その処理は、ステップＳ３１に進む。
【０１６１】
ステップＳ３１において、画像加工部１５は、入力されたパラメータにスクエアリングのパラメータが指定されているか否かを判定する。より詳細には、画像加工部１５は、スクエアリングのパラメータとなっているσ，ｍ値が、０であるか否かを判定することにより、パラメータが指定されているか否かを判定する。例えば、スクエアリングのパラメータが入力されていると判定された場合、その処理は、ステップＳ３２に進む。
【０１６２】
ステップＳ３２において、画像加工部１５は、スクエアリングのパラメータに基づいて、ハイライト領域をスクエアリングさせて、表示部１４に出力し表示させ、その処理は、ステップＳ３３に進む。
【０１６３】
より詳細には、例えば、スクエアリングのパラメータとして、より四角形なハイライト形状にするパラメータσ、および、角の尖り具合を設定するパラメータｍが、入力されていた場合、画像加工部１５は、物体表面Ｓ上の各点ｐの中間ベクトルＨｖｅｃｔｏｒ（ｐ）について、以下の式（１７）を用いて、ベクトルＨ∧ｖｅｃｔｏｒ（ｐ）を演算し、演算されたベクトルＨ∧ｖｅｃｔｏｒ（ｐ）を用いて、式（１８）による演算によりハイライトベクトルｓｑｒｖｅｃｔｏｒ（ｐ）を求め、このハイライトベクトルｓｑｒｖｅｃｔｏｒ（ｐ）から、上述した式（７）による演算を用いた手法によりハイライト領域Ｈ’［ε］を求めて、求められたハイライト領域に加工し、表示部１４に表示させる。
【０１６４】
2005011100.tif 000006
【０１６５】
ｓｑｒｖｅｃｔｏｒ（ｐ）＝Ｈ∧ｖｅｃｔｏｒ（ｐ）／｜Ｈ∧ｖｅｃｔｏｒ（ｐ）｜・・・（１８）
【０１６６】
ここで、ｓｑｒｎｏｒｍは、以下の式（１９）で定義される関数である。
【０１６７】
ｓｑｒｎｏｒｍ＝ｓｉｎ（２θ）ｍ・・・（１９）
【０１６８】
また、θは、以下の式（２０）で定義されるものである。
【０１６９】
θ＝ｍｉｎ（ｃｏｓ−１（Ｈｖｅｃｔｏｒ（ｐ），ｄｕｖｅｃｔｏｒ），ｃｏｓ−１（Ｈｖｅｃｔｏｒ（ｐ），ｄｖｖｅｃｔｏｒ））・・・（２０）
【０１７０】
式（２０）において、ｃｏｓ−１は、ｃｏｓの逆関数であり、ｍｉｎ（Ａ，Ｂ）は、Ａ、および、Ｂのうちの最小値を選択することを示す。
【０１７１】
すなわち、例えば、図３で示されるようなハイライトＨが、図８で示されるようなハイライトＨ’に加工される。
【０１７２】
また、ステップＳ３１において、スクエアリングのパラメータが含まれていないと判定された場合、ステップＳ３２の処理はスキップされて、その処理は、ステップＳ３３に進む。
【０１７３】
ステップＳ３３において、画像加工部１５は、ハイライトの加工が完了したか否かを判定し、例えば、入力部１１が操作されて、ハイライトの加工が完了していない、すなわち、さらに加工することが要求された場合、その処理は、ステップＳ２１に戻り、それ以降の処理が繰り返される。すなわち、加工処理が、再び繰り返される。
【０１７４】
ステップＳ３３において、加工が完了したことを示す信号が、入力部１１が操作されて入力されると、完了と判定され、その処理は、ステップＳ３４に進む。
【０１７５】
ステップＳ３４において、画像加工部１５は、ハイライトが設定され、さらに、ハイライトが加工されている画像をキーフレーム画像としてキーフレーム画像記憶部１６に出力し、記憶させる。この際、画像加工部１５は、各画像をキーフレーム画像として識別できる情報と共に、加工（平行移動、回転、分離、拡大縮小、または、スクエアリング）のために設定されたパラメータの情報を付加して順次記憶させる。
【０１７６】
また、ステップＳ２４，Ｓ２６，Ｓ２８，Ｓ３０，Ｓ３２の全ての処理がスキップされた場合、実質的に、ハイライトの画像加工処理がなされずに、そのままの画像がキーフレーム画像に設定されることになる。
【０１７７】
尚、以上の処理においては、ステップＳ２４，Ｓ２６，Ｓ２８，Ｓ３０，Ｓ３２において、それぞれ個々のハイライト領域の加工方法について説明しているが、複数にパラメータが指定（設定）されている場合、これらの処理結果が順次重畳されることになる。従って、例えば、平行移動、回転、分離、拡大縮小、および、スクエアリングの全てのパラメータが入力された場合、ハイライト領域は、平行移動され、回転され、分離され、拡大縮小され、そして、スクエアリングされて、ハイライト領域は、全ての加工処理がなされて、最終的に入力された画像がキーフレーム画像として出力されることになる。
【０１７８】
また、加工処理は、パラメータが設定されると、上述したようにいずれの加工の演算も簡単な演算であるため、パラメータを置き換えていくだけで、ハイライトの編集を進めることができ、さらに、一回のハイライトの加工で気に入らない場合、何度でも、パラメータを置き換えるだけで、ハイライト領域を編集することができるため、効率のよいハイライト領域の編集が可能となる。
【０１７９】
ここで、図１０のフローチャートの説明に戻る。
【０１８０】
ステップＳ７において、基本ハイライト画像生成部１２は、入力部１１が操作されて、ハイライト領域の位置が移動されたか否かを判定する。すなわち、ステップＳ６の処理により、加工されたハイライト領域は、マウスなどのポインティングデバイスにより移動可能であるので、ドラッグ、アンド、ドロップなどの処理により位置を移動させる処理がなされたか否かが判定される。例えば、ステップＳ７において、移動されたと判定された場合、ステップＳ８において、画像加工部１５は、加工された画像を移動する。
【０１８１】
ステップＳ９において、基本ハイライト画像生成部１２は、入力部１１が操作されて、その他のハイライト領域の中心位置を指定する情報が入力されたか否かを判定し、その他のハイライト領域の中心位置を指定する情報が入力されたと判定された場合、その処理は、ステップＳ４に戻る。すなわち、新たなハイライト領域の中心位置を指定する処理が、繰り返される限り、ステップＳ４乃至Ｓ９の処理が繰り返される。
【０１８２】
また、ステップＳ７において、移動されていないと判定された場合、ステップＳ８の処理がスキップされて、その処理は、ステップＳ９に進む。
【０１８３】
ステップＳ９において、その他のハイライト領域の中心位置を指定する処理がなされないと判定された場合、その処理は終了する。
【０１８４】
以上の処理が繰り返されることにより、複数のハイライトを連続的に設定し、さらに、設定したハイライトを編集することができるので、複数のハイライトが設定されたキーフレーム画像が順次生成されて、キーフレーム画像記憶部１６に蓄えられていく。
【０１８５】
尚、以上の処理においては、ハイライト領域の中心位置を指定した（ステップＳ３の処理）後、εが指定される（ステップＳ４の処理）順序での処理となっていたが、εの指定を先に行ってから、ハイライト領域の中心位置を指定するようにしてもよい。このようにした場合、ステップＳ９においては、新たなハイライト領域のεが設定されたか否かが判定されることになる。また、上述の手法によるハイライト領域の設定のみならず、同時に、上述した従来のブリンのモデルを用いた方法で、中間ベクトルと、光源の位置を設定して、新たなハイライト領域も設定できるようにして、それらを選択できるようにしてもよい。
【０１８６】
次に、図１８のフローチャートを参照して、アニメーション画像補間生成処理について説明する。
【０１８７】
ステップＳ４１において、アニメーション画像補間生成部１７は、入力部１１よりキーフレーム画像を指定する情報が入力されてきたか否かを判定し、入力されたと判定されるまで、その処理が繰り返される。尚、上述したように、キーフレーム法によりアニメーション画像を生成する方法としては、少なくとも２枚以上のキーフレーム画像が指定されなければならない。また、キーフレーム画像は、上述したように、キーフレーム画像を識別するための情報と共にキーフレーム画像記憶部１６に記憶されているので、入力されるキーフレーム画像を指定する情報は、キーフレーム画像を識別する情報に対応する情報である。
【０１８８】
ステップＳ４１において、入力部１１がユーザにより操作され、キーフレーム画像を指定する情報が入力されたと判定された場合、その処理は、ステップＳ４２に進む。
【０１８９】
ステップＳ４２において、アニメーション画像補間生成部１７は、指定されたキーフレーム画像をキーフレーム画像記憶部１６より読み出すと共に、指定されたキーフレーム画像上のハイライトの加工に用いられたパラメータの情報を読み出す。
【０１９０】
ステップＳ４３において、アニメーション画像補間生成部１７は、補間生成すべきアニメーション画像の数を決定する。今の場合、この処理は、アニメーション画像補間生成部１７が、ユーザに補間生成するアニメーション画像の数を要求し、ユーザにより設定された数とするようにするが、これに限るものではなく、例えば、キーフレーム画像を生成する際に、キーフレーム画像の各々にタイムスタンプのような再生時刻を示す情報を付するものとし、これらの情報に基づいて、補間すべきアニメーション画像の数をアニメーション画像補間生成部１７が計算するようにしてもよい。
【０１９１】
ステップＳ４４において、アニメーション画像補間生成部１７は、キーフレーム画像のハイライト領域を設定するパラメータに基づいて、生成するアニメーション画像のハイライト領域のパラメータを線形補間により計算する。
【０１９２】
ステップＳ４５において、アニメーション画像補間生成部１７は、ステップＳ４４の処理により、線形補間で求められたハイライト領域の加工に用いられたパラメータに基づいて、補間アニメーション画像を生成し、アニメーション画像記憶部１８に出力し、記憶させる。この際、アニメーション画像補間生成部１７は、キーフレーム画像として選択された画像も合わせて、アニメーション画像記憶部１８に出力し、記憶させる。
【０１９３】
ここで、図１９で示されるような、宇宙船が描かれた画像に対応するキーフレーム画像から補間アニメーション画像を生成する方法について説明する。尚、今の場合の図１９中の領域Ｖで示される、宇宙船の翼上の画像を特に例として説明する。
【０１９４】
図１９の領域Ｖに対応する画像のキーフレーム画像として図２０の上部左部のキーフレーム画像Ｋ１、および、図２０上部右部のキーフレーム画像Ｋ２が選択された場合を想定する。ここで、再生される順序は、キーフレーム画像Ｋ１が先に再生され、後にキーフレーム画像Ｋ２が再生されるものとする。また、キーフレーム画像Ｋ１には、ハイライト領域６１ａ，６２ａが設定されており、キーフレーム画像Ｋ２には、ハイライト領域６１ｃ，６２ｃが設定されている。ここでは、特に、ハイライト領域６１ａ，６１ｃを例として用いて、キーフレーム画像Ｋ１，Ｋ２の間に、図２０上部中央の１枚の補間アニメーション画像Ｒ１を線形補間により生成する方法について説明する。尚、ハイライト領域６１ａ，６１ｃは、表示位置が異なるのみで、回転、分離、拡大縮小、または、スクエアリングなどの加工処理が施されていないものとする。
【０１９５】
キーフレーム画像Ｋ１上のハイライト領域６１ａの中心位置Ｃ１における、ハイライト領域６１ａが指定されたパラメータが（α１，β１）である。また、同様にして、キーフレーム画像Ｋ２上のハイライト領域６１ｃの中心位置Ｃ２における、ハイライト領域６１ｃが指定されたパラメータが（α２，β２）である。
【０１９６】
従って、アニメーション画像補間生成部１７は、ステップＳ４４の処理により、これらの中心位置Ｃ１，Ｃ２の中央位置から線形補間によりパラメータ（（α１＋α２）／２，（β１＋β２）／２）を求め、ステップＳ４５の処理で、線形補間で求められたパラメータに基づいた中心Ｃ３とするハイライト領域６１ｂを設定することで補間アニメーション画像Ｒ１を生成する。
【０１９７】
また、回転、分離、拡大縮小、および、スクエアリングに関するパラメータは、初期設定の位置に影響しないので、加工に用いられたパラメータのみの線形補間により補間アニメーション画像上のハイライト領域を設定することができる。
【０１９８】
ステップＳ４６において、アニメーション画像補間生成部１７は、生成すべき全ての補間アニメーション画像が補間生成されたか否かを判定する。すなわち、アニメーション画像補間生成部１７は、ステップＳ４３の処理で決定された数の補間アニメーション画像を補間生成したか否かを判定し、全て生成していないと判定した場合、その処理は、ステップＳ４４に戻る。
【０１９９】
すなわち、補間生成すべき全ての補間アニメーション画像が生成されたと判定されるまで、ステップＳ４４乃至Ｓ４６の処理が繰り返される。
【０２００】
ステップＳ４６において、補間生成されるべき全ての補間アニメーション画像が生成されたと判定された場合、その処理は、ステップＳ４７に進む。
【０２０１】
ステップＳ４７において、アニメーション再生部１９は、入力部１１より今、補間生成されたアニメーション画像の再生が指示されたか否かを判定し、入力されるまで、その処理を繰り返す。すなわち、通常、キーフレーム画像を用いて補間生成されるアニメーション画像は、膨大な数であるので、補間生成されたアニメーション画像を再生することにより確認するものである。
【０２０２】
ステップＳ４７において、アニメーション画像を再生する指示が入力されたと判定された場合、ステップＳ４８において、アニメーション再生部１９は、アニメーション画像記憶部１８に記憶されているキーフレーム画像と、上述の処理で補間生成された補間アニメーション画像を再生する。
【０２０３】
アニメーション画像（アニメーション動画）の再生について、図２０で示されるようなキーフレーム画像Ｋ１，Ｋ２より、補間アニメーション画像Ｒ１が生成された場合を例にして説明する。
【０２０４】
図２０のキーフレーム画像Ｋ１，Ｋ２においては、上述したハイライト領域６１ａ，６１ｃの他にハイライト領域６２ａ，６２ｃが設定されている。しかしながら、ハイライト領域６２ａ，６２ｃは、キーフレーム画像Ｋ１，Ｋ２においても同一のものが設定されているため、補間生成されたアニメーション画像Ｒ１にも、同一の位置に設定されることになる。例えば、ハイライト領域６１ａ乃至６１ｃは、画像上の宇宙船の翼と同じ色に設定されて、ハイライト領域６２ａ乃至６２ｃは、白色に設定されているものとする。さらに、ハイライト領域６１ａ乃至６１ｃは、ハイライト領域６２ａ乃至６２ｃを覆い隠すような配置であるものとする（ハイライト領域６１ａ乃至６１ｃが、ハイライト領域６２ａ乃至６２ｃよりも常に上に配置されるものとする）と、実際に、アニメーション画像として再生される場合、図２０下部のキーフレーム画像Ｋ１’、アニメーション画像Ｒ１’、および、キーフレーム画像Ｋ２’の順序で再生される。
【０２０５】
結果として、ハイライト領域６２ａ乃至６２ｃは、図２０の下部で示されるように、キーフレーム画像Ｋ１’、アニメーション画像Ｒ１’、および、キーフレーム画像Ｋ２’の順序で再生されることにより、形状の変化が一見すると複雑なハイライト領域６２ａ’乃至６２ｃ’を、滑らかなアニメーションの動きとして再生させることが可能となる。
【０２０６】
ステップＳ４８の処理で、アニメーションが再生された後、ステップＳ４９において、アニメーション画像補間生成部１７は、アニメーション画像補間生成の処理を終了させるコマンドが入力部１１より供給されたか否かを判定する。すなわち、ステップＳ４８の処理で再生されたアニメーション画像をユーザが確認し、ユーザの所望とするアニメーション画像が生成されたと認められると、処理を終了させるコマンドが入力されることになる。
【０２０７】
そこで、ステップＳ４９において、入力部１１がユーザにより操作されて、アニメーション画像の補間生成処理の終了のコマンドが入力された場合、その処理は、終了する。
【０２０８】
一方、ステップＳ４９において、入力部１１がユーザにより操作されて、アニメーション画像の補間生成処理の終了が指示されない場合、すなわち、再度補間生成の処理、または、キーフレーム画像の編集が必要であると見なされた場合、その処理は、ステップＳ５０に進む。
【０２０９】
ステップＳ５０において、アニメーション画像補間生成部１７は、キーフレーム画像変更処理を実行する。
【０２１０】
ここで、図２１のフローチャートを参照して、キーフレーム画像変更処理について説明する。尚、図２１のフローチャートのステップＳ６４乃至Ｓ６８の処理は、図１０のフローチャートを参照して説明したステップＳ４乃至Ｓ８の処理と同様であるので、その説明は、省略する。
【０２１１】
ステップＳ６１において、画像加工部１５は、指定されたキーフレーム画像をキーフレーム画像記憶部１６より読み出して、表示部１４に出力して表示すると共に、ハイライトの加工に用いられたパラメータを読み出す。
【０２１２】
ステップＳ６２において、画像加工部１５は、新規のハイライト領域の中心位置が指定されたか、または、既設のハイライト領域が指定されたか否かを判定し、いずれかが指定されるまで、その処理を繰り返す。
【０２１３】
ステップＳ６２において、新規のハイライト領域の中心位置が指定されたか、または、既設のハイライト領域が指定されたと判定された場合、ステップＳ６３において、画像加工部１５は、指定されたのは、新規のハイライト領域の中心位置であるか否かを判定し、新規のハイライト領域の中心位置であると判定した場合、その処理は、ステップＳ６４に進む。すなわち、図１０のフローチャートを参照して説明したように、新規でハイライト領域を設定する。
【０２１４】
一方、ステップＳ６３において、新規ではないと判定された場合、いずれか既設のハイライト領域の変更を意図した指定であるので、ステップＳ６４，Ｓ６５の処理はスキップされる。
【０２１５】
ステップＳ６６の処理で、ハイライト領域が加工処理された後、または、さらに、その後、ステップＳ６８において、ハイライト領域が移動された後、ステップＳ６９において、画像加工部１５は、その他の新規のハイライト領域の中心位置が指定されたか、または、その他の既設のハイライト領域が指定されたか否かを判定し、いずれかが指定された場合、その処理は、ステップＳ６３に戻る。すなわち、ユーザが変更を加えるハイライト領域が指定され続ける限り、ステップＳ６３乃至Ｓ６９の処理が繰り返される。
【０２１６】
ステップＳ６９において、その他の新規のハイライト領域の中心位置も、その他の既設のハイライト領域も指定がなされなかったと判定された場合、すなわち、ハイライト領域の変更が終了したと判定された場合、その処理は終了し、図１８のフローチャートのステップＳ４１に戻り、それ以降の処理が繰り返される。
【０２１７】
以上の処理により、ハイライト領域を設定したキーフレーム画像のハイライトを設定するパラメータを補間生成しながら、アニメーション動画における滑らかなハイライト領域の動きを実現するための補間アニメーション画像を生成することができ、さらに、補間生成された補間アニメーション画像を再生しながら、必要に応じてキーフレーム画像上のハイライトを再編集しつつ、再びハイライト領域を滑らかに変化させるアニメーション画像を補間生成する処理を繰り返すことができるので、ハイライトを用いたアニメーション画像を容易に生成し、さらに、編集することが可能となる。
【０２１８】
尚、以上においては、画像を補間する際、線形補間を用いた例について説明してきたが、これに限るものではなく、その他の補間方法を用いるようにしてもよい。
【０２１９】
また、以上の各種の演算においては、中間ベクトルを用いた場合について説明してきたが、中間ベクトルの代わりに、中心位置指定ベクトルを用いるようにしても同様の結果を得る事ができる。尚、中心位置指定ベクトルを用いた場合の処理については、中間ベクトルを使用した場合と同様であるので、その説明は省略する。
【０２２０】
さらに、以上においては、図２０を参照して、キーフレーム画像からアニメーション画像を生成する際の処理を説明してきたが、同様の手法により、キーフレーム画像から、アニメーション画像の代わりに、キーフレーム画像を生成するようにしてもよい。このようにして、生成されたキーフレーム画像により、より詳細なアニメーション画像を生成することが可能となる。
【０２２１】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行させることが可能な、例えば汎用のパーソナルコンピュータなどに記録媒体からインストールされる。
【０２２２】
図２２は、図２の画像処理装置をソフトウェアにより実現する場合のパーソナルコンピュータの一実施の形態の構成を示している。パーソナルコンピュータのＣＰＵ１０１は、パーソナルコンピュータの全体の動作を制御する。また、ＣＰＵ１０１は、バス１０４および入出力インタフェース２０５を介してユーザからキーボードやマウスなどからなる入力部１０６から指令が入力されると、それに対応してＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０２に格納されているプログラムを実行する。あるいはまた、ＣＰＵ１０１は、ドライブ１１０に接続された磁気ディスク１２１、光ディスク１２２、光磁気ディスク１２３、または半導体メモリ１２４から読み出され、記憶部１０８にインストールされたプログラムを、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０３にロードして実行する。これにより、上述した画像処理装置の機能が、ソフトウェアにより実現されている。さらに、ＣＰＵ１０１は、通信部１０９を制御して、外部と通信し、データの授受を実行する。
【０２２３】
プログラムが記録されている記録媒体は、図２２に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク１２１（フレキシブルディスクを含む）、光ディスク１２２（ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ），ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）を含む）、光磁気ディスク１２３（ＭＤ（Ｍｉｎｉ−Ｄｉｓｃ）を含む）、もしくは半導体メモリ１２４などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているＲＯＭ１０２や、記憶部１０８に含まれるハードディスクなどで構成される。
【０２２４】
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
【０２２５】
【発明の効果】
本発明によれば、ハイライトの加工を含むアニメーション画像の生成処理を容易にすることが可能となる。
【図面の簡単な説明】
【図１】ブリンのモデルを説明する図である。
【図２】本発明を適用した画像処理装置の一実施の形態の構成を示す図である。
【図３】ハイライトの例を示す図である。
【図４】図３のハイライトの平行移動による加工を説明する図である。
【図５】図３のハイライトの回転による加工を説明する図である。
【図６】図３のハイライトの分離による加工を説明する図である。
【図７】図３のハイライトの拡大縮小による加工を説明する図である。
【図８】図３のハイライトのスクエアリングによる加工を説明する図である。
【図９】キーフレーム画像から補間アニメーション画像を生成する処理を説明する図である。
【図１０】キーフレーム画像生成処理を説明するフローチャートである。
【図１１】画像加工処理を説明するフローチャートである。
【図１２】パラメータの入力画面を説明する図である。
【図１３】ハイライトの平行移動の加工処理を説明する図である。
【図１４】ハイライトの平行移動の加工処理を説明する図である。
【図１５】ハイライトの分離の加工処理を説明する図である。
【図１６】ハイライトの拡大縮小の加工処理を説明する図である。
【図１７】ハイライトの拡大縮小の加工処理を説明する図である。
【図１８】アニメーション画像の補間生成処理を説明するフローチャートである。
【図１９】アニメーション画像の補間生成処理を説明する図である。
【図２０】アニメーション画像の補間生成処理と、アニメーションの再生処理を説明する図である。
【図２１】キーフレーム画像の変更処理を説明するフローチャートである。
【図２２】記録媒体を説明する図である。
【符号の説明】
１１  入力部
１２  基本ハイライト画像生成部
１３  基本画像記憶部
１４  表示部
１５  画像加工部
１６  キーフレーム画像記憶部
１７  アニメーション画像補間生成部
１８  アニメーション画像記憶部
１９  アニメーション再生部
【図１】
2005011100.tif 000007
【図２】
2005011100.tif 000008
【図３】
2005011100.tif 000009
【図４】
2005011100.tif 000010
【図５】
2005011100.tif 000011
【図６】
2005011100.tif 000012
【図７】
2005011100.tif 000013
【図８】
2005011100.tif 000014
【図９】
2005011100.tif 000015
【図１０】
2005011100.tif 000016
【図１１】
2005011100.tif 000017
【図１２】
2005011100.tif 000018
【図１３】
2005011100.tif 000019
【図１４】
2005011100.tif 000020
【図１５】
2005011100.tif 000021
【図１６】
2005011100.tif 000022
【図１７】
2005011100.tif 000023
【図１８】
2005011100.tif 000024
【図１９】
2005011100.tif 000025
【図２０】
2005011100.tif 000026
【図２１】
2005011100.tif 000027
【図２２】
2005011100.tif 000028