(57)【要約】【課題】システム資源の限られる民生機器等においても、一体整形モデルによる表現力豊かなキャラクタ描画を高速描画できる描画方法を提供する。【解決手段】あらかじめシステム資源の豊富な計算機上で、一体整形モデルデータを高速描画に適した形式に変換する。すなわち、頂点データに対し（ボーンウェイト、ボーン番号）の組が等しいものが連続するように並び替えておくことにより、ボーン変形の処理工程において導出される値の再利用率が向上し、計算量を大幅に減少させることが可能となる。【選択図】図８
2005141545.tif 000002
【特許請求の範囲】
【請求項１】
複数の頂点から構成されるモデルと、他の１つ以上のモデルに変形の影響を与えるモデルとを、階層的に連結した構造からなる一体整形モデルデータを記録した記録媒体において、
前記モデル毎にその既定の位置姿勢を記述したモデルマトリクスデータと、
前記頂点を有するモデル毎に独自の頂点ＩＤにより識別可能な頂点データと、
ポリゴンを構成するために必要な頂点列を前記頂点ＩＤにより指定するポリゴンリストと、
前記頂点毎に、他のモデルから変形の影響を受けるウェイト値をモデル毎に記述したウェイトリストとを有し、
前記頂点データはウェイト値が等しいものが連続して並ぶようにソートされていることを特徴とする、
一体整形モデルデータを記録したコンピュータ読み取り可能な記録媒体。
【請求項２】
請求項１において、
前記頂点データは、変形の影響を与えるモデルとそのモデルにより影響を受けるウェイト値との組合せが等しいものが連続して並ぶようにソートされていることを特徴とする、
一体整形モデルデータを記録したコンピュータ読み取り可能な記録媒体。
【請求項３】
請求項１または２において、
前記頂点データは、前記頂点の位置座標データと法線方向データとを有することを特徴とする、
一体整形モデルデータを記録したコンピュータ読み取り可能な記録媒体。
【請求項４】
請求項３において、
前記頂点データは、それが属するモデル独自のローカル座標系により記述されていることを特徴とする、
一体整形モデルデータを記録したコンピュータ読み取り可能な記録媒体。
【請求項５】
複数の頂点から構成されるモデルと、他の１つ以上のモデルに変形の影響を与えるモデルとを、階層的に連結した構造からなる一体整形モデルデータを元モデルデータから変換する画像処理方法において、
前記モデル毎にその既定の位置姿勢を記述したモデルマトリクスデータを生成する工程と、
前記頂点を有するモデル毎に独自の頂点ＩＤにより識別可能な頂点データを生成する工程と、
ポリゴンを構成するために必要な頂点列を前記頂点ＩＤにより指定するポリゴンリストを生成する工程と、
前記頂点毎に、他のモデルから変形の影響を受けるウェイト値をモデル毎に記述したウェイトリストとを生成する肯定とを有し、
前記頂点データはウェイト値が等しいものが連続して並ぶようにソートする工程を有することを特徴とする、
モデルデータ変換用の画像処理方法。
【請求項６】
請求項５において、
前記頂点データを、変形の影響を与えるモデルとそのモデルにより影響を受けるウェイト値との組合せが等しいものが連続して並ぶようにソートする工程を有すること特徴とする、
モデルデータ変換用の画像処理方法。
【請求項７】
複数の頂点から構成されるモデルと、他の１つ以上のモデルに変形の影響を与えるモデルとを、階層的に連結した構造からなる一体整形モデルデータを描画する画像描画方法において、前記一体整形モデルデータが、
前記モデル毎にその既定の位置姿勢を記述したモデルマトリクスデータと、
前記頂点を有するモデル毎に独自の頂点ＩＤにより識別可能な頂点データと、
ポリゴンを構成するために必要な頂点列を前記頂点ＩＤにより指定するポリゴンリストと、
前記頂点毎に、他のモデルから変形の影響を受けるウェイト値をモデル毎に記述したウェイトリストとを有し、
前記頂点データはウェイト値が等しいものが連続して並ぶようにソートされており、
前画像描画方法は、
前記階層的に連結した構造を順に探索してモデル毎の変換マトリクスを生成する工程と、
前記頂点データに対して前記モデルのマトリクスを乗算する工程と、
前記ウェイトリストからウェイト値を検索してウェイト乗算した頂点データを加算し頂点毎にその位置座標を変形させる工程と、
前記ポリゴンリストに基づいてポリゴンを生成し描画する工程と、
を有することを特徴とする、画像描画方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各種情報端末においてキャラクタなどのオブジェクトを高速に描画する画像処理方法、キャラクタなどのオブジェクトを高速に描画するために適したモデルデータ構造を生成する画像処理方法、及び当該モデルデータ構造または画像処理プログラムを記録した記録媒体に関するものである。
【背景技術】
【０００２】
従来、テレビ受像機などの各種家電機器や携帯電話などの各種情報機器に用いられるインタフェースとしては、リモコンやタッチパネルなどを介して画面に表示された操作メニューを選択する方法や、アイコンと呼ばれる絵文字を指定する方法が主流である。
【０００３】
一方、近年の情報処理技術の向上に伴い、各種家電機器の機能は高機能化の一途をたどっている。たとえばテレビの例では、それまでのアナログ放送からデジタル放送に変化することによって、多チャンネル放送の受信が可能となったり、データ放送の受信や、双方向通信によるユーザ参加型放送の受信が可能となったりといったような例がある。
【０００４】
このような高機能を有する機器を操作するとき、前述のリモコンやタッチパネルなどのいわゆる手先操作によるインタフェースでは、画面に表示する操作メニューの数を増加させるか、あるいは一度に表示する操作メニューの数を少なく限定するかわりに機能階層を深くするなどの対応がとられてきた。しかしながら、操作メニューの数が増加した場合、ユーザは提示された数多くのメニュー項目の中から希望する機能を探し出す必要があり、操作が煩雑になるという問題が生じる。また、機能階層を深くすれば同時に提示される選択肢の数は減るものの、目的の機能に到達するまでに深い機能階層をたどらなければならず、やはり操作が煩雑になるという問題が生じる。
【０００５】
そこで、最近ではキャラクタをディスプレイに表示させ、ユーザがディスプレイ上のキャラクタと会話を行う形式で機器の操作を行う対話型操作支援システムが提案されている。このシステムによれば、ユーザの発した音声を機器側が認識し、その認識結果に基づいてユーザの要求を解析することで機器の操作が可能となることから、ユーザは多数の操作メニューの中から所望する選択肢を探す手間や深い機能階層をたどる手間が不要となり、機器操作時の負荷を軽減することが出来る。
【０００６】
たとえば、特許文献１によれば、自然言語に近い命令体系を備え、また、応答時間を要する処理をユーザが命令した場合に、機器の進行状況をユーザにフィードバックすることでユーザの不安を生じさせないようにした対話型操作支援システムである。これによれば、ディスプレイ上に出現したアシスタントとの対話に基づいて、ユーザが不安を感じることなく機器を容易に操作することが可能となる。
【０００７】
その一方で、ＣＰＵ演算能力やメモリ量などシステム資源の限られる民生機器においては、表現力豊かで生物的なアニメーションを描画することができず、表現力の乏しいキャラクタしか描画できないという問題があった。このため、ユーザのキャラクタに対する親近感が得にくく、円滑なインタフェースとして機能を十分に果たしていないという問題があった。
【０００８】
キャラクタの表現力を向上し、自然な動きを描画するための技術として、例えばリアルタイム性を要求されないＣＧムービーなどで一体整形モデルを利用した方法が提案されている。この一体整形モデルでは、キャラクタ全身形状データであるオブジェクトと、それに変形の影響を与えるボーン（Ｂｏｎｅ、骨）とから構成されるモデルを利用して描画する。
【０００９】
図１は、前記リアルタイム性を要求しないＣＧムービーにおける一体整形モデルの動きの例を示す例である。図１に示されたモデルは、上腕部分１１と下腕部分１２とで構成されるモデルであり、図１（Ａ）は、その既定状態での姿勢である腕を水平に伸ばした状態を示している。この状態から腕を曲げたとすると、図１（Ｂ）に示すように、上腕部分１１と下腕部分１２との関節部分が自然に曲がった形状に変形する。この変形は次のようにして行われる。
【００１０】
図２は、前記腕モデルがボーンにより変形される様子を模式的に表した図である。上腕部分１１と下腕部分１２とからなる腕モデルは頂点Ｖ１〜Ｖ１４から構成されている。また腕モデルの内部にはその関節に沿うようにして上腕ボーン２１と下腕ボーン２２とが埋め込まれている。頂点Ｖ１〜Ｖ１４が上腕ボーン２１、下腕ボーン２２の動きに影響を受けてその位置を変えることにより、滑らかな腕の屈伸が表現される。
【００１１】
図３は、Ｖ１〜Ｖ１４の各頂点が上腕ボーン２１、下腕ボーン２２の動きに影響を受ける度合いであるウェイト値を示した図である。この図では、上腕部分１１に位置するＶ１やＶ２は上腕ボーン２１から影響を受ける割合が１００％に設定されており、下腕ボーン２２の動きによる影響は受けないように設定されている。逆に下腕部分１２に位置するＶ６やＶ７は下腕ボーン２２から影響を受ける割合が１００％に設定されている。これらのウェイト値はデザイナによって設定される。
【００１２】
図４は前記腕モデルと上腕ボーン２１、下腕ボーン２２との階層構造を示す図である。図４において最上位階層に相当するＭ１は腕モデルが該当し、Ｍ２は上腕ボーン２１が該当し、最下位階層に相当するＭ３は下腕ボーン２２が該当する。これらの各モデルは、その上の階層のモデルに対する相対的な位置情報として、回転量・平行移動量・拡縮量を乗算したマトリクスとして保持している。
【００１３】
以上のデータ構造をもつ一体整形モデルに対し、一般的に用いられている画像処理の手順を図５に従って説明する。まず、腕モデルとボーンからなる全てのモデルの動きを実現するためのマトリクスを計算する（Ｓ５１）。次に、モデルのうちある１つのボーンマトリクスを読み出し、腕モデルを構成する１つの頂点に乗算する（Ｓ５２）。次にウェイトリストを参照し、当該ボーンが当該頂点に与える影響を取得し、そのウェイトを乗算したものを頂点リストに格納する（Ｓ５３）。１つのボーンに対し、腕モデルを構成する全ての頂点に対して上記の手順Ｓ５２、Ｓ５３を施し（Ｓ５４）、さらに全てのボーンに対して上記の手順Ｓ５２、Ｓ５３、Ｓ５４を施す（Ｓ５５）。最後に上記手順により変形された腕モデルを描画する（Ｓ５６）。
【特許文献１】特開２００２−４１２７６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、上記で説明した画像処理方法は、ＣＰＵ演算能力やメモリ量などシステム資源の限られる民生機器においては適用できない。なぜならば、オブジェクトを構成する全頂点の１個１個に対し、（１）ボーン変形マトリクスを乗算し、（２）ボーンが概頂点に与えるウェイト値を検索し、（３）ウェイト値を乗算し、（４）さらに上記処理を全てのボーンに対して行う必要が有り、その演算量が膨大なものになるからである。このため、リアルタイムでの描画処理が困難となり、対話型操作支援システムにおいては、ユーザがキャラクタに命令を出した後、キャラクタが反応を示すまで長時間待たされてしまうことになるからである。
【００１５】
そこで、本発明の目的は、一体整形モデルを利用してリアルタイムで画像処理を行うことができる画像処理方法、その画像処理に利用する一体整形モデルの画像データを生成する画像処理方法、及び当該画像データや画像処理プログラムを記録した記録媒体を提供することにある。
【課題を解決するための手段】
【００１６】
かかる目的を達成するために、本発明は、複数の頂点から構成されるモデルと、他の１つ以上のモデルに変形の影響を与えるモデルとを、階層的に連結した構造からなる一体整形モデルデータを記録した記録媒体において、前記モデル毎にその既定の位置姿勢を記述したモデルマトリクスデータと、前記頂点を有するモデル毎に独自の頂点ＩＤにより識別可能な頂点データと、ポリゴンを構成するために必要な頂点列を前記頂点ＩＤにより指定するポリゴンリストと、前記頂点毎に、他のモデルから変形の影響を受けるウェイト値をモデル毎に記述したウェイトリストとを有し、前記頂点データはウェイト値が等しいものが連続して並ぶようにソートされていることを特徴とする、一体整形モデルデータを記録したコンピュータ読み取り可能な記録媒体を提供する。
【００１７】
上記の一体整形も出るデータを記録した記録媒体は、各種情報端末において、キャラクタなどのオブジェクトを高速に描画することが可能となる。
【００１８】
さらに、本発明は、上記の発明において、前記頂点データは、変形の影響を与えるモデルとそのモデルにより影響を受けるウェイト値との組合せが等しいものが連続して並ぶようにソートされていることを特徴とする。
【００１９】
さらに、本発明は、上記の発明において、前記頂点データは、前記頂点の位置座標データと法線方向データとを有することを特徴とする。
【００２０】
さらに、本発明は、前記頂点データは、それが属するモデル独自のローカル座標系により記述されていることを特徴とする。
【００２１】
また、上記の目的を達成するために、本発明は、複数の頂点から構成されるモデルと、他の１つ以上のモデルに変形の影響を与えるモデルとを、階層的に連結した構造からなる一体整形モデルデータを元モデルデータから変換する画像処理方法において、前記モデル毎にその既定の位置姿勢を記述したモデルマトリクスデータを生成する工程と、前記頂点を有するモデル毎に独自の頂点ＩＤにより識別可能な頂点データを生成する工程と、ポリゴンを構成するために必要な頂点列を前記頂点ＩＤにより指定するポリゴンリストを生成する工程と、前記頂点毎に、他のモデルから変形の影響を受けるウェイト値をモデル毎に記述したウェイトリストとを生成する肯定とを有し、前記頂点データはウェイト値が等しいものが連続して並ぶようにソートする工程を有することを特徴とする、モデルデータ変換用の画像処理方法を提供する。
【００２２】
上記の画像処理方法によれば、キャラクタなどのオブジェクトを高速に描画することが可能となる一体整形モデルの変換データを生成することが出来る。
【００２３】
さらに、本発明は、前記頂点データを、変形の影響を与えるモデルとそのモデルにより影響を受けるウェイト値との組合せが等しいものが連続して並ぶようにソートする工程を有すること特徴とする。
【００２４】
また、上記目的を達成するために、本発明は、複数の頂点から構成されるモデルと、他の１つ以上のモデルに変形の影響を与えるモデルとを、階層的に連結した構造からなる一体整形モデルデータを描画する画像描画方法において、前記一体整形モデルデータが、前記モデル毎にその既定の位置姿勢を記述したモデルマトリクスデータと、前記頂点を有するモデル毎に独自の頂点ＩＤにより識別可能な頂点データと、ポリゴンを構成するために必要な頂点列を前記頂点ＩＤにより指定するポリゴンリストと、前記頂点毎に、他のモデルから変形の影響を受けるウェイト値をモデル毎に記述したウェイトリストとを有し、前記頂点データはウェイト値が等しいものが連続して並ぶようにソートされており、前画像描画方法は、前記階層的に連結した構造を順に探索してモデル毎の変換マトリクスを生成する工程と、前記頂点データに対して前記モデルのマトリクスを乗算する工程と、前記ウェイトリストからウェイト値を検索してウェイト乗算した頂点データを加算し頂点毎にその位置座標を変形させる工程と、前記ポリゴンリストに基づいてポリゴンを生成し描画する工程と、を有することを特徴とする、画像描画方法を提供する。
【発明の効果】
【００２５】
本発明によれば民生機器のように資源の少ない機器においても生物的で滑らかなアニメーションを高速に動作させることが可能となる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施の形態を図面に基づいて説明する。
【００２７】
（実施の形態１）
図９は、本発明の実施の形態においてキャラクタなどの一体整形モデルを描画するまでに必要な一連の処理の流れを示すフローチャートである。以降、この図をもとに各処理の詳細について説明する。
【００２８】
まず始めに、デザイナは３次元モデラを利用して所望するオブジェクトの基本形状を作成する（Ｓ９１）。具体的にはオブジェクトを構成する頂点データの３次元位置座標を示す座標データを作成する。
【００２９】
こうして作成したオブジェクトに対し、オブジェクトを変形させるボーンをオブジェクト内部あるいは外部に配置する。また、オブジェクトの各頂点がそれぞれのボーンによりどの程度変形の影響を受けるかを設定するためにウェイト値を設定する（Ｓ９２）。以上の作業によりデザイナは所望するキャラクタの姿勢を実現する一体整形モデルを作成する。
【００３０】
図６（Ａ）は、本発明の実施の形態における３次元モデラを利用して生成される一体整形モデルの例を示す図である。図６（Ａ）の一体整形モデルは、図１に示したような滑らかな腕関節の屈伸を実現するための例である。図６（Ａ）はデザイナが作成した腕モデルの基本形状と、それに設定されたボーンの位置関係を示す。腕モデルは頂点Ｖ１〜Ｖ１４の１４個の頂点から構成されており、頂点Ｖ１〜Ｖ１４が上腕ボーン２１、下腕ボーン２２の動きに影響を受けてその位置を変えることにより、滑らかな腕の屈伸が表現される。腕を伸ばした状態にある基本形状から、ボーンが回転することにより腕を曲げた状態に変形した様子を示すものが図６（Ｂ）である。すなわち、基本姿勢で水平状態にあるボーン２１が下方に向かう方向へ回転する。このとき、上腕ボーン２１の子に相当する下腕ボーン２２も下方へ回転するが、図６（Ｂ）では、上方へ向かう方向へ回転した状態を示している。
【００３１】
図３は、デザイナが設定したウェイト値の例である。Ｖ１〜Ｖ１４の１４個の頂点がそれぞれ、上腕ボーン２１、下腕ボーン２２の動きにどの程度影響を受けるかを示している。この図では、上腕部分に位置するＶ１やＶ２は上腕ボーン２１から影響を受ける割合が１００％に設定されており、下腕ボーン２２の動きによる影響は受けないように設定されている。このため、頂点Ｖ１やＶ２はボーン２１の動きと全く同じ動きをする。具体的には、ボーン２１が平行移動した場合は頂点Ｖ１、Ｖ２も同じ量だけ平行移動し、上腕ボーン２１が回転した場合は頂点Ｖ１、Ｖ２も同じ量だけ回転し、上腕ボーン２１が拡縮縮した場合は頂点Ｖ１、Ｖ２の座標も同じだけ拡縮する。逆に下腕部分に位置するＶ６やＶ７は下腕ボーン２２から影響を受ける割合が１００％に設定されている。また、上腕と下腕との関節部分に位置する頂点Ｖ４やＶ１１は、上腕ボーン２１からの影響と下腕ボーン２２からの影響とがそれぞれ５０％の割合に設定されている。このため、頂点Ｖ４やＶ１１は上腕ボーン２１の動きと下腕ボーン２２の動きとをそれぞれ５０％ずつ混合した動きをする。具体的には、ボーン２１とボーン２２がともに平行移動した場合、頂点Ｖ４、Ｖ１１は上腕ボーン２１の平行移動量の半分と下腕ボーン２２の平行移動量の半分とを加算した量だけ移動する。
【００３２】
図４は、図６に示した一体整形モデルの階層構造例である。腕モデルが相当するモデルＭ１を最上位階層に配置し、Ｍ１の子として上腕ボーンが相当するモデルＭ２を配置し、さらにＭ２の子として下腕ボーンが相当するモデルＭ３を配置する。この階層構造において、各モデルは上位階層のモデルの原点に対するそのモデルの座標系の相対位置姿勢として、回転量・平行移動量・拡縮量を乗算したマトリクスを保持している。各モデルはモデル毎の独自の座標系により記述された頂点データを持っており、上位階層のマトリクスを全て乗算したマトリクスと頂点データとを乗算することにより、描画に必要な頂点データを取得することができる。ここで、頂点データとは、頂点の位置を示す位置座標データと、その頂点によって構成される面の法線の向きを示す法線データとからなる。複数のモデルから構成されるキャラクタを動作させるときは、各モデル毎に平行移動・回転・拡縮量を変化させて、それらを乗算することでキャラクタの動きを制御することができる。
【００３３】
次に、デザイナが作成した一体整形モデルを、後述するコンバータプログラムにより高速描画可能な形式に変換する（Ｓ９３）。
【００３４】
図１０はコンバータプログラムの処理の流れを示したものである。コンバータはまず、オブジェクトを構成する頂点データのうち１つの頂点に注目して、この頂点に影響を与えるボーンを全て抽出する（Ｓ１０１）。たとえば図６（Ａ）の頂点Ｖ３に注目した場合、上腕ボーン２１と下腕ボーン２２が抽出される。
【００３５】
次にコンバータは、Ｓ１０１で抽出されたボーンが注目している頂点に与える影響をデザイナが設定したウェイトデータから抽出する。たとえばデザイナが図３に示すようなウェイトデータを設定していたとすると、頂点Ｖ３の場合、上腕ボーン２１の影響は７０％、下腕ボーン２２の影響は３０％であると抽出される。コンバータは各頂点に対して、こうして抽出されたウェイト値とボーン番号を組として保持しておく。
【００３６】
次にコンバータは、Ｓ１０１とＳ１０２の処理をオブジェクトを構成する全頂点に対して施して、全頂点に対し、ウェイト値とボーン番号との組を作成する（Ｓ１０３）。このとき、頂点データのうち隣接するいくつかの頂点では、ウェイト値とボーン番号との組が等しくなる場合が生じる。たとえば、頂点Ｖ３はウェイト値７０％で上腕ボーン２１から影響をうけるとともに、ウェイト値３０％で下腕ボーン２２から影響をうけるが、頂点Ｖ３と近い位置に存在する頂点Ｖ１２に関しても、同じくウェイト値７０％で上腕ボーン２１から影響をうけるとともに、ウェイト値３０％で下腕ボーン２２から影響をうける。
【００３７】
次にコンバータは、ウェイト値とボーン番号の組が等しい頂点が連続するように頂点データの順序を並び替える（Ｓ１０４）。デザイナが作成した頂点データはその順序が不定であるが、たとえばウェイト値とボーン番号の組が等しい頂点Ｖ３と頂点Ｖ１２のデータ出現順序が連続するように並び替える。
【００３８】
次にコンバータは、並び替えられた頂点データに対し、ウェイト値とボーン番号の組が等しい頂点がいくつずつ連続しているかを数える。たとえば頂点Ｖ３とＶ１２に関しては２個連続する、といった具合である。
【００３９】
次にコンバータは、以上のようにして作成されたデータを出力する（Ｓ１０５）。図８はコンバータの出力するデータ例である。このデータでは、ウェイト値とボーン番号の組が等しい頂点が連続する数を記述し、それらの頂点が何個のボーンから影響を受けるかの数を記述し、ウェイト値とボーン番号の組を記述し、その組により変形される頂点の番号を記述する。図８では、ウェイト値１００％、ボーン番号２１という組によって変形させられる頂点がＶ１、Ｖ２、Ｖ１３、Ｖ１４の４つが存在している場合の例を示している。
【００４０】
このようにしてコンバータにより作成された一体整形モデルデータを、ＣＤ−ＲＯＭやＤＶＤなど民生機器が読み取り可能な記録媒体に格納する（Ｓ９４）。
【００４１】
以上のＳ９１〜Ｓ９４までの工程は、ＣＰＵ演算能力が高くメモリ量も多い計算機上で処理を行い、コンバートプログラムの動作速度は比較的時間を要してもかまわない。しかし、後述するＳ９５〜Ｓ９８の処理はシステム資源の少ない民生機器などで処理を行い、かつリアルタイム描画を実現するための高速な動作が要求される。
【００４２】
以降、記録媒体に格納された一体整形モデルデータを用いて、システム資源の少ない民生機器においてオブジェクトの描画を行うための描画処理について説明する。
【００４３】
まず、民生機器に記録媒体が挿入されたタイミングや、民生機器の電源が投入されたタイミング、あるいはオブジェクトの描画要求があったタイミングなど、適切なタイミングにおいて、記録媒体に格納された一体整形モデルデータの全部あるいは一部をメモリ上に格納する（Ｓ９５）。
【００４４】
次に、キャラクタなどのオブジェクトに対して所望する姿勢あるいは動きを実現するために、一体整形モデルを構成する全てのモデルに対して、その移動量を表すマトリクスを設定する（Ｓ９６）。このマトリクスは、モデルの移動量・回転量・拡縮量を乗算したマトリクスである。図６（Ｂ）において、上腕ボーン２１が初期状態から回転する動きをマトリクスＭ６１で表現し、下腕ボーン２２がその上位階層である上腕ボーン２１に対して回転する動きをマトリクスＭ６２で表現すると、上腕ボーン２１の初期状態からみた下腕ボーン２２の位置姿勢は、マトリクスＭ６１とマトリクスＭ６２とを乗算して生成されるマトリクス（Ｍ６１・Ｍ６２）で表現される。
【００４５】
次に、オブジェクトを構成する全頂点に対しマトリクス演算とウェイト演算を行い、ボーンにより変形された後の頂点データを作成する（Ｓ９７）。図６（Ｂ）の例では、頂点Ｖ１〜Ｖ１４が上腕ボーン２１から受ける移動の影響は、マトリクスＭ６１で表現される移動量にウェイト値を乗算した移動量となる。また、下腕ボーン２２から頂点Ｖ１〜Ｖ１４が受ける移動の影響は、マトリクスＭ６１とＭ６２とを乗算したマトリクス（Ｍ６１・Ｍ６２）で表現される移動量にウェイト値を乗算した移動量となる。このことを数式で記述したものが図７である。図７は基本姿勢状態にある任意の１頂点座標Ｖｏｒｇが、複数のボーンにより影響を受けて、頂点座標Ｖｂｏｎｅに移動するまでの計算式を記述したものである。図６に示す腕モデルの場合、頂点は１４個存在するため、Ｖ１〜Ｖ１４の各頂点に対して図７に示す演算を行う必要がある。図７において、ｎはボーンの総数である。図６に示す腕モデルの場合、ボーン総数は２であるため、ｎ＝２である。またＷｉは頂点Ｖｏｒｇがｉ番目のボーンに影響を受けるウェイト値である。これは図３に示すようなデ設定した値を使用する。また、Ｍｉはｉ番目のボーンの移動を表現するマトリクスである。図６の腕モデルの場合、上腕ボーン２１に関してはＭ６１が、下腕ボーン２２に関しては（Ｍ６１・Ｍ６２）が相当する。
【００４６】
一般に、図７に示すボーン変形のための演算量は膨大なものになり、システム資源の少ない民生機器等では高速に処理を行うことが出来ないが、本発明によるボーン変形処理では、あらかじめシステム資源の豊富な計算機上でコンバートプログラムを適用し図８に示すようなデータを作成しておくので、民生機器での計算量を大幅に減らすことが出来る。すなわち、ボーン変形処理を施す頂点の順序が、ウェイト値とボーン番号の組が等しいものが連続して並ぶようにソートされているので、図７における（ＷｉＭｉ）の積和演算結果を複数の頂点で再利用することが可能となり、演算対象のマトリクスを頂点毎に差し替える必要がないので、演算量を大幅に削減できると同時にキャッシュ効率も向上する。
【００４７】
図１１に、本発明によるボーン変形処理の手順を示す。本手順は図８に示したような、コンバータによって作成されたデータによりボーン変形を行う工程を示したものである。
【００４８】
まず始めに、（ウェイト値、ボーン番号）の組が等しい頂点が連続する数Ｎｓａｍｅを取得する（Ｓ１１１）。図８の例では値‘４’が取得される。
【００４９】
次に、ボーンの数を取得する（Ｓ１１２）。図８の例では値‘１’が取得される。データにはここで取得したボーン数だけ（ウェイト値、ボーン番号）の組が連続して記述されているので、そのデータを随時読み込みながら図７における（ＷｉＭｉ）の積和演算を行う（Ｓ１１３）。この積和演算結果は複数個の頂点に対して再利用するので、メモリに保持しておく。
【００５０】
次に、データには頂点連続数Ｎｓａｍｅだけ頂点番号が連続して記述されているので、この頂点番号を１つずつ取得しながら、その頂点データに対して積和演算結果との乗算処理を行う（Ｓ１１４）。ここで、乗算対象である頂点データとは、頂点の位置を示す座標データだけでなく、法線の方向を示す法線データに対しても同様の処理を行うことが可能である。
【００５１】
積和演算結果が再利用できる全ての頂点データに対して乗算処理を行ったのち（Ｓ１１５）、図８に示すデータを読み進め、データの末端に到達するまでＳ１１１〜Ｓ１１５の処理を繰り返す（Ｓ１１６）。
【００５２】
以上のようにして求められた頂点データと法線データとを用いて光源に対する拡散計算などを行い、実際に描画する色を決定し、ポリゴン描画を行うことでキャラクタをユーザに提示することが可能となる（Ｓ９８）。これらポリゴン描画を行う方法については公知の技術を利用することができる。
【産業上の利用可能性】
【００５３】
本発明にかかる画像処理方法は、一体整形モデルを用いたキャラクタなどのオブジェクトをシステム資源の少ない民生機器においても高速に描画することが可能となるため、民生機器でニーズの高まっているキャラクタを介した対話型操作支援システム等への応用が有用である。
【図面の簡単な説明】
【００５４】
【図１】キャラクタの腕を滑らかに変形することができる一体整形モデルの概念を示す図
【図２】一体整形モデルを構成する頂点とボーンの例を示す図
【図３】一体整形モデルを構成する各頂点が、ボーンによる変形の影響をどの程度うけるかを示すウェイト値一覧の例を示す図
【図４】一体整形モデルを構成する各モデルの階層構造を示す図
【図５】一般的に用いられるボーン変形処理の手順を示したフローチャート
【図６】本発明の実施の形態における一体整形モデルの基本姿勢と変形後の形状例を示す図
【図７】ボーン変形によって変換される頂点データを示した数式を示す図
【図８】一体整形モデルを高速に描画することが可能となるように変換されたデータの例を示す図
【図９】本発明の実施の形態において一体整形モデルを描画するために必要な一連の処理手順を示すフローチャート
【図１０】本発明の実施の形態においてコンバータプログラムが実行する処理手順を示すフローチャート
【図１１】本発明の実施の形態においてボーン変形の処理手順を示すフローチャート
【符号の説明】
【００５５】
１１    上腕部分
１２    下腕部分
２１    上腕ボーン
２２    下腕ボーン
【図１】
2005141545.tif 000003
【図２】
2005141545.tif 000004
【図３】
2005141545.tif 000005
【図４】
2005141545.tif 000006
【図５】
2005141545.tif 000007
【図６】
2005141545.tif 000008
【図７】
2005141545.tif 000009
【図８】
2005141545.tif 000010
【図９】
2005141545.tif 000011
【図１０】
2005141545.tif 000012
【図１１】
2005141545.tif 000013