(57)【特許請求の範囲】
【請求項１】
表示画面上でユーザから入力された手書きストロークに従って描画を行なう画像編集装置であって、
使用可能な１以上のインクを配設するインク・エリアと、描画作業を行なうワーク・エリアとを前記表示画面上に表示する描画インターフェース部と、
前記表示画面上でユーザの指示座標を入力するユーザ入力部と、
ユーザ入力に従って前記ワーク・エリア上の描画オブジェクトを処理する描画処理部と、
を備え、
前記インク・エリアでは、ＲＧＢ色空間上で定義される色インク以外に、設定された属性パラメータ値に応じて描画処理が時々刻々と変動するアニメーション作用を持つ属性インクが用意されており、
前記描画処理部は、
前記インク・エリアにおいて前記ユーザ入力部を介して指示されたインクとそれ以後前記ユーザ入力部を介して操作される手書きストロークとを関連付けるとともに、前記ワーク・エリアにおいてユーザ入力部を介して操作された手書きストロークと描画オブジェクトとを関連付けて、該関連付けられたインクを用いて描画オブジェクトを描画することにより手書きストロークが塗られたことを表現し、
属性インクと関連付けられた手書きストロークからなる描画オブジェクトを微小な描画単位に分割してなるメッシュにして、描画単位毎にインク情報を管理して、隣接する描画単位間で働く引力又は斥力の相互作用を計算して該計算結果を基に描画単位が持つ属性パラメータ値を変更することによって属性インクのアニメーション作用を生成する、
ことを特徴とする画像編集装置。
【請求項２】
表示画面上でユーザから入力された手書きストロークに従って描画を行なう画像編集装置であって、
使用可能な１以上のインクを配設するインク・エリアと、描画作業を行なうワーク・エリアとを前記表示画面上に表示する描画インターフェース部と、
前記表示画面上でユーザの指示座標を入力するユーザ入力部と、
ユーザ入力に従って前記ワーク・エリア上の描画オブジェクトを処理する描画処理部と、
を備え、
前記インク・エリアでは、ＲＧＢ色空間上で定義される色インク以外に、設定された属性パラメータ値に応じて描画処理が時々刻々と変動するアニメーション作用を持つ属性インクが用意されており、
前記描画処理部は、
前記インク・エリアにおいて前記ユーザ入力部を介して指示されたインクとそれ以後前記ユーザ入力部を介して操作される手書きストロークとを関連付けるとともに、前記ワーク・エリアにおいてユーザ入力部を介して操作された手書きストロークと描画オブジェクトとを関連付けて、該関連付けられたインクを用いて描画オブジェクトを描画することにより手書きストロークが塗られたことを表現し、
属性インクと関連付けられた手書きストロークからなる描画オブジェクトを微小な描画単位に分割してなるメッシュにして、描画単位毎にインク情報を管理するとともに、描画単位毎にパーティクルを放出するエミッタを配置し、属性インクが持つ属性パラメータ値を基に、エミッタの放出するパーティクル、放出の方向と広がり角度、放出速度、パーティクルに対して印加する重力、静電気力（引力と斥力）、渦巻きの効果、風の効果、乱流の効果、パーティクルの寿命やフォースに対する特性、サイズ、色と透明度、テクスチャを設定し、又はパーティクルが活動する場に障害物を設置して、放出するパーティクルによる属性インクのアニメーション作用を計算する、
ことを特徴とする画像編集装置。
【請求項３】
表示画面上でユーザから入力された手書きストロークに従って描画を行なう画像編集方法であって、
使用可能な１以上のインクを配設するインク・エリアと、描画作業を行なうワーク・エリアとを前記表示画面上に表示する描画インターフェース提示ステップと、
前記表示画面上でユーザの指示座標を入力するユーザ入力ステップと、
ユーザ入力に従って前記ワーク・エリア上の描画オブジェクトを処理する描画処理ステップと、
を備え、
前記インク・エリアでは、ＲＧＢ色空間上で定義される色インク以外に、設定された属性パラメータ値に応じて描画処理が時々刻々と変動するアニメーション作用を持つ属性インクが用意されており、
前記描画処理ステップでは、
前記インク・エリアにおいて前記ユーザ入力ステップを介して指示されたインクとそれ以後前記ユーザ入力ステップを介して操作される手書きストロークとを関連付けるとともに、前記ワーク・エリアにおいてユーザ入力ステップを介して操作された手書きストロークと描画オブジェクトとを関連付けて、該関連付けられたインクを用いて描画オブジェクトを描画することにより手書きストロークが塗られたことを表現し、
属性インクと関連付けられた手書きストロークからなる描画オブジェクトを微小な描画単位に分割してなるメッシュにして、描画単位毎にインク情報を管理して、隣接する描画単位間で働く引力又は斥力の相互作用を計算して該計算結果を基に描画単位が持つ属性パラメータ値を変更することによって属性インクのアニメーション作用を生成する、
ことを特徴とする画像編集方法。
【請求項４】
表示画面上でユーザから入力された手書きストロークに従って描画を行なう画像編集方法であって、
使用可能な１以上のインクを配設するインク・エリアと、描画作業を行なうワーク・エリアとを前記表示画面上に表示する描画インターフェース提示ステップと、
前記表示画面上でユーザの指示座標を入力するユーザ入力ステップと、
ユーザ入力に従って前記ワーク・エリア上の描画オブジェクトを処理する描画処理ステップと、
を備え、
前記インク・エリアでは、ＲＧＢ色空間上で定義される色インク以外に、設定された属性パラメータ値に応じて描画処理が時々刻々と変動するアニメーション作用を持つ属性インクが用意されており、
前記描画処理ステップでは、
前記インク・エリアにおいて前記ユーザ入力ステップを介して指示されたインクとそれ以後前記ユーザ入力ステップを介して操作される手書きストロークとを関連付けるとともに、前記ワーク・エリアにおいてユーザ入力ステップを介して操作された手書きストロークと描画オブジェクトとを関連付けて、該関連付けられたインクを用いて描画オブジェクトを描画することにより手書きストロークが塗られたことを表現し、
属性インクと関連付けられた手書きストロークからなる描画オブジェクトを微小な描画単位に分割してなるメッシュにして、描画単位毎にインク情報を管理するとともに、描画単位毎にパーティクルを放出するエミッタを配置し、属性インクが持つ属性パラメータ値を基に、エミッタの放出するパーティクル、放出の方向と広がり角度、放出速度、パーティクルに対して印加する重力、静電気力（引力と斥力）、渦巻きの効果、風の効果、乱流の効果、パーティクルの寿命やフォースに対する特性、サイズ、色と透明度、テクスチャを設定し、又はパーティクルが活動する場に障害物を設置して、放出するパーティクルによる属性インクのアニメーション作用を計算する、
ことを特徴とする画像編集方法。
【請求項５】
前記属性インクは、属性パラメータ値により水や雲、雪、炎、煙などの時々刻々と様相が変化する動的な自然現象を表現する自然現象インクを含む、
ことを特徴とする請求項３又は４のいずれかに記載の画像編集方法。
【請求項６】
前記描画インターフェース提示ステップは、さらに複数のインクを用いて混合処理するパレット・エリアを表示し、
前記描画処理ステップでは、前記インク・エリア又は前記パレット・エリアにおいて前記ユーザ入力ステップを介して指示されたインクとそれ以後前記ユーザ入力ステップを介して操作される手書きストロークとを関連付けるとともに、前記パレット・エリアにおいてユーザ入力ステップを介して操作された手書きストロークと描画オブジェクトとを逐次関連付けて、同じ描画オブジェクトに関連付けられた２以上のインク同士を混合処理する、
ことを特徴とする請求項３又は４のいずれかに記載の画像編集方法。
【請求項７】
前記描画処理ステップでは、各属性インクが持つ属性パラメータ値を平均化することにより２以上の属性インク同士を混合処理する、
ことを特徴とする請求項６に記載の画像編集方法。
【請求項８】
前記インク・エリアには属性インクの濃淡を調整するテクニカル・インクが用意されており、
前記描画処理ステップは、前記ワーク・エリア内の描画オブジェクトを微小な描画単位に分割してなるメッシュにして、
描画オブジェクトに対して濃くするテクニカル・インクが適用されたことに応答して、隣接する描画単位間で働く引力を強めて（又は斥力を弱めて）属性パラメータ値を計算し、
描画オブジェクトに対して薄く又は淡くするテクニカル・インクが適用されたことに応答して、隣接する描画単位間で働く引力を弱めて（又は斥力を強めて）属性パラメータ値を計算する、
ことを特徴とする請求項３に記載の画像編集方法。
【請求項９】
表示画面上でユーザから入力された手書きストロークに従って描画を行なう画像編集方法であって、
使用可能な１以上のインクを配設するインク・エリアと、描画作業を行なうワーク・エリアとを前記表示画面上に表示する描画インターフェース提示ステップと、
前記表示画面上でユーザの指示座標を入力するユーザ入力ステップと、
ユーザ入力に従って前記ワーク・エリア上の描画オブジェクトを処理する描画処理ステップと、
を備え、
前記インク・エリアでは、ＲＧＢ色空間上で定義される色インク以外に、設定された属性パラメータ値に応じて描画処理が時々刻々と変動するアニメーション作用を持つ属性インク、及び属性インクの大まかさ及び細かさを調整するテクニカル・インクが用意されており、
前記描画処理ステップでは、
前記インク・エリアにおいて前記ユーザ入力ステップを介して指示されたインクとそれ以後前記ユーザ入力ステップを介して操作される手書きストロークとを関連付けるとともに、前記ワーク・エリアにおいてユーザ入力ステップを介して操作された手書きストロークと描画オブジェクトとを関連付けて、該関連付けられたインクを用いて描画オブジェクトを描画することにより手書きストロークが塗られたことを表現し、
前記ワーク・エリア内の描画オブジェクトを微小な描画単位に分割してなるメッシュにして、
描画オブジェクトに対して大まかにするテクニカル・インクが適用されたことに応答して、隣接する複数の描画単位をまとめて１つの描画単位として扱い、
描画オブジェクトに対して細かくするテクニカル・インクが適用されたことに応答して、描画単位をさらに複数の描画単位に細分化する、
ことを特徴とする画像編集方法。
【請求項１０】
表示画面上でユーザから入力された手書きストロークに従って描画を行なう画像編集方法であって、
使用可能な１以上のインクを配設するインク・エリアと、描画作業を行なうワーク・エリアとを前記表示画面上に表示する描画インターフェース提示ステップと、
前記表示画面上でユーザの指示座標を入力するユーザ入力ステップと、
ユーザ入力に従って前記ワーク・エリア上の描画オブジェクトを処理する描画処理ステップと、
を備え、
前記インク・エリアでは、ＲＧＢ色空間上で定義される色インク以外に、設定された属性パラメータ値に応じて描画処理が時々刻々と変動するアニメーション作用を持つ属性インクが用意されており、
前記描画処理ステップでは、
前記インク・エリアにおいて前記ユーザ入力ステップを介して指示されたインクとそれ以後前記ユーザ入力ステップを介して操作される手書きストロークとを関連付けるとともに、前記ワーク・エリアにおいてユーザ入力ステップを介して操作された手書きストロークと描画オブジェクトとを関連付けて、該関連付けられたインクを用いて描画オブジェクトを描画することにより手書きストロークが塗られたことを表現し、
前記ワーク・エリア上に作画された描画オブジェクトに対して奥行き成分を付与して、２次元的な前記ワーク・エリア内で作画された描画内容を３次元空間に拡張する、
ことを特徴とする画像編集方法。
【請求項１１】
表示画面上でユーザから入力された手書きストロークに従って描画を行なう画像編集方法であって、
使用可能な１以上のインクを配設するインク・エリアと、描画作業を行なうワーク・エリアとを前記表示画面上に表示する描画インターフェース提示ステップと、
前記表示画面上でユーザの指示座標を入力するユーザ入力ステップと、
ユーザ入力に従って前記ワーク・エリア上の描画オブジェクトを処理する描画処理ステップと、
を備え、
前記インク・エリアでは、ＲＧＢ色空間上で定義される色インク以外に、設定された属性パラメータ値に応じて描画処理が時々刻々と変動するアニメーション作用を持つ属性インクが用意されており、
前記描画処理ステップでは、
前記インク・エリアにおいて前記ユーザ入力ステップを介して指示されたインクとそれ以後前記ユーザ入力ステップを介して操作される手書きストロークとを関連付けるとともに、前記ワーク・エリアにおいてユーザ入力ステップを介して操作された手書きストロークと描画オブジェクトとを関連付けて、該関連付けられたインクを用いて描画オブジェクトを描画することにより手書きストロークが塗られたことを表現し、
前記ワーク・エリア上に作画された描画オブジェクトを構成する各描画単位を３次元的なＶｏｘｅｌに変換するとともに、属性インクが塗られたＶｏｘｅｌに対してアニメーション作用を表現するための計算を適用して、アニメーション作用を３次元空間に拡張する、
ことを特徴とする画像編集方法。
【請求項１２】
前記描画処理ステップでは、前記ユーザ入力部から入力されたストロークに従って描画オブジェクトに関連付けられている属性インクの属性パラメータ値を変更する、
ことを特徴とする請求項３又は４のいずれかに記載の画像編集方法。
【請求項１３】
表示画面上でユーザから入力された手書きストロークに従って描画を行なう画像編集処理をコンピュータ上で実行するように記述されたコンピュータ・プログラムであって、前記コンピュータに対し、
使用可能な１以上のインクを配設するインク・エリアと、描画作業を行なうワーク・エリアとを前記表示画面上に表示する描画インターフェース提示手順と、
前記表示画面上でユーザの指示座標を入力するユーザ入力手順と、
ユーザ入力に従って前記ワーク・エリア上の描画オブジェクトを処理する描画処理手順と、
を実行させ、
前記インク・エリアでは、ＲＧＢ色空間上で定義される色インク以外に、設定された属性パラメータ値に応じて描画処理が時々刻々と変動するアニメーション作用を持つ属性インクが用意されており、
前記描画処理手順では、前記インク・エリアにおいて前記ユーザ入力手順を実行した際に指示されたインクとそれ以後前記ユーザ入力手順を実行した際に操作される手書きストロークとを関連付けるとともに、前記ワーク・エリアにおいてユーザ入力ステップを介して操作された手書きストロークと描画オブジェクトとを関連付けて、該関連付けられたインクを用いて描画オブジェクトを描画することにより手書きストロークが塗られたことを表現し、
属性インクと関連付けられた手書きストロークからなる描画オブジェクトを微小な描画単位に分割してなるメッシュにして、描画単位毎にインク情報を管理して、隣接する描画単位間で働く引力又は斥力の相互作用を計算して該計算結果を基に描画単位が持つ属性パラメータ値を変更することによって属性インクのアニメーション作用を生成する、
ことを特徴とするコンピュータ・プログラム。
【請求項１４】
表示画面上でユーザから入力された手書きストロークに従って描画を行なう画像編集処理をコンピュータ上で実行するように記述されたコンピュータ・プログラムであって、前記コンピュータに対し、
使用可能な１以上のインクを配設するインク・エリアと、描画作業を行なうワーク・エリアとを前記表示画面上に表示する描画インターフェース提示手順と、
前記表示画面上でユーザの指示座標を入力するユーザ入力手順と、
ユーザ入力に従って前記ワーク・エリア上の描画オブジェクトを処理する描画処理手順と、
を実行させ、
前記インク・エリアでは、ＲＧＢ色空間上で定義される色インク以外に、設定された属性パラメータ値に応じて描画処理が時々刻々と変動するアニメーション作用を持つ属性インクが用意されており、
前記描画処理手順では、前記インク・エリアにおいて前記ユーザ入力手順を実行した際に指示されたインクとそれ以後前記ユーザ入力手順を実行した際に操作される手書きストロークとを関連付けるとともに、前記ワーク・エリアにおいてユーザ入力ステップを介して操作された手書きストロークと描画オブジェクトとを関連付けて、該関連付けられたインクを用いて描画オブジェクトを描画することにより手書きストロークが塗られたことを表現し、
属性インクと関連付けられた手書きストロークからなる描画オブジェクトを微小な描画単位に分割してなるメッシュにして、描画単位毎にインク情報を管理するとともに、描画単位毎にパーティクルを放出するエミッタを配置し、属性インクが持つ属性パラメータ値を基に、エミッタの放出するパーティクル、放出の方向と広がり角度、放出速度、パーティクルに対して印加する重力、静電気力（引力と斥力）、渦巻きの効果、風の効果、乱流の効果、パーティクルの寿命やフォースに対する特性、サイズ、色と透明度、テクスチャを設定し、又はパーティクルが活動する場に障害物を設置して、放出するパーティクルによる属性インクのアニメーション作用を計算する、
ことを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、計算機システム上で２次元的又は３次元的なイメージを作成・編集するための画像編集装置及び画像編集方法、記憶媒体、並びにコンピュータ・プログラムに係り、特に、マウスなどの装置によって入力された手書きストロークに従って計算機システム上で２次元的又は３次元的なイメージを作成・編集するための画像編集装置及び画像編集方法、記憶媒体、並びにコンピュータ・プログラムに関する。
【０００２】
さらに詳しくは、本発明は、マウス操作などによりユーザ入力されたストロークを筆やブラシによる手書き操作として扱うことにより、デジタル空間のキャンバス上で水彩画又は油絵などのペインティングを模した擬似的な作画操作を行なうための直感的な描画インターフェースを提供する画像編集装置及び画像編集方法、記憶媒体、並びにコンピュータ・プログラムに係り、特に、デジタル空間のキャンバス上でユーザ入力されたストロークに従ってテクスチャやアニメーションなどのさまざまな属性（ａｔｔｒｉｂｕｔｅ）やアクティビティ（ａｃｔｉｖｉｔｙ）を持ったインクを利用したペインティングを行なう画像編集装置及び画像編集方法、記憶媒体、並びにコンピュータ・プログラムに関する。
【０００３】
【従来の技術】
昨今の半導体技術や情報技術の進歩に伴い、比較的安価で且つ高性能な計算機システムが、職場や一般家庭内に深く浸透してきている。この種の計算機システム上では、一般に、オペレーティング・システム（ＯＳ）が提供する実行環境下で、各種のアプリケーションを起動することができる。
【０００４】
計算機システム上で使用されるアプリケーションの種類は、ワープロ、表計算、データベース、通信、グラフィックスなど多岐にわたる。例えば、演算能力や描画機能が強化された計算機システム上では、２Ｄや３Ｄなどのリアリティの高いグラフィックスを比較的容易に作成し、描画したり、さらに画像変形処理を行ったりすることができる。
【０００５】
水彩画、油絵などを始めとする実世界におけるほとんどの作画作業は、所望の絵の具が浸された筆先をキャンバス上で所定の軌跡を描かせることによって実現する。これに対し、計算機システム上での作画は、例えば「筆」の機能を選択したマウス・カーソルをディスプレイ・スクリーン上で軌跡を描くことによって線画が入力される。すなわち、マウス操作によるストロークを筆やブラシによる手書き操作として扱うことにより、デジタル空間上のキャンバスに水彩画又は油絵などのペインティングを模した擬似的な作画を行なうという直感的な描画インターフェースを提供することができる。
【０００６】
実世界上のキャンバスには、筆やブラシに浸した色がそのままストロークに従って塗り付けられる。この場合、キャンバス上で使用することができる色は、パレット上に垂らした絵の具やインクの色や、あるいはパレット上で混合・調色された混合色である。また、キャンバス上で描かれる模様は、画家の筆さばきにより逐次得られるものであって、模様そのものをキャンバス上にペイントすることはできない。また、絵の表現がいかにダイナミックであっても、描かれた絵のパターンそのものは静的・固定的なものであって、キャンバス上で時間的・空間的に変化するものではない。
【０００７】
これに対し、デジタル空間上のキャンバス上では、コンピュータ上での描画演算により、単純にＲＧＢ色空間上で定義されるインクの色だけでなく、テクスチャを直接塗りつけることができたり、さらにはアニメーションなどのさまざまな属性（ａｔｔｒｉｂｕｔｅ）やアクティビティ（ａｃｔｉｖｉｔｙ）を持ったインクを利用したペインティングを行なうことが可能である。
【０００８】
しかしながら、既存の画像編集システムでは、３次元コンピュータ・グラフィックスを対象としたさまざまな表現をサポートするために、ＧＵＩ（Graphical User Interface）が複雑であり、ポリゴンとその頂点に対する操作であるため、誰でも簡単に操作できるとは言えない。また、属性は、変数の設定やスクリプトの記述によって実現されるので、アニメーションや属性を付けることも、初心者にとって困難である。
【０００９】
また、既存の画像編集システムでは、描画オブジェクトの質感はテクスチャ・マッピングやマテリアルによって行なわれる一方、水や雲などのアニメーションの表現はパーティクル・システムを用いて実現されている。これらはすべてオブジェクト表面に対する属性であるにも拘わらず、別々の種類のデータとして管理されているので、各々を使用するための操作系統が統一化されておらず、ユーザビリティに欠ける。
【００１０】
また、既存の画像編集システムでは、変数の設定やスクリプトの記述を行なった後で、プレビューやレンダリングを実行しないと、オブジェクトに対して実際に設定した動きを確認することができない。
【００１１】
また、既存の画像編集システムでは、変数やスクリプトの記述によりアニメーションや属性を表現するので、インク同士を混ぜ合わせることはできない。アニメーションの属性の設定と同様に、微妙な調整もさまざまなパラメータを操作しなければならない。
【００１２】
【発明が解決しようとする課題】
本発明の目的は、マウスなどの装置によって入力された手書きストロークに従って計算機システム上で２次元的又は３次元的なイメージを好適に作成・編集することができる、優れた画像編集装置及び画像編集方法、記憶媒体、並びにコンピュータ・プログラムを提供することにある。
【００１３】
本発明のさらなる目的は、マウス操作などによりユーザ入力されたストロークを筆やブラシによる手書き操作として扱うことにより、デジタル空間のキャンバス上で、水彩画又は油絵などのペインティングを模した擬似的な描画を行なうための直感的な描画インターフェースを提供することができる、優れた画像編集装置及び画像編集方法、記憶媒体、並びにコンピュータ・プログラムを提供することにある。
【００１４】
本発明のさらなる目的は、デジタル空間のキャンバス上で、ユーザ入力されたストロークに従ってテクスチャやアニメーションなどのさまざまな属性（ａｔｔｒｉｂｕｔｅ）やアクティビティ（ａｃｔｉｖｉｔｙ）を持ったインクを利用したペインティングを行なうことができる、優れた画像編集装置及び画像編集方法、記憶媒体、並びにコンピュータ・プログラムを提供することにある。
【００１５】
本発明のさらなる目的は、変数の設定やスクリプトの記述など専門的な知識を必要とせず、簡単で且つ直感的なＧＵＩ操作によって描画オブジェクトに対してアニメーションやさまざまな属性を付けることができる、優れた画像編集装置及び画像編集方法、記憶媒体、並びにコンピュータ・プログラムを提供することにある。
【００１６】
【課題を解決するための手段及び作用】
本発明は、上記課題を参酌してなされたものであり、その第１の側面は、表示画面上でユーザから入力された手書きストロークに従って描画を行なう画像編集装置又は画像編集方法であって、
使用可能な１以上のインクを配設するインク・エリアと、描画作業を行なうワーク・エリアとを前記表示画面上に表示する描画インターフェース部又はステップと、
前記表示画面上でユーザの指示座標を入力するユーザ入力部又はステップと、ユーザ入力に従って前記ワーク・エリア上の描画オブジェクトを処理する描画処理部又はステップと、
を備え、
前記インク・エリアでは、ＲＧＢ色空間上で定義される色インク以外に、設定された属性パラメータ値に応じて描画処理が時々刻々と変動するアニメーション作用を持つ属性インクが用意されており、
前記描画処理部又はステップは、前記インク・エリアにおいて前記ユーザ入力部又はステップを介して指示されたインクとそれ以後前記ユーザ入力部又はステップを介して操作される手書きストロークとを関連付けるとともに、前記ワーク・エリアにおいてユーザ入力部又はステップを介して操作された手書きストロークと描画オブジェクトとを関連付けて、該関連付けられたインクを用いて描画オブジェクトを描画することにより手書きストロークが塗られたことを表現する、ことを特徴とする画像編集装置又は画像編集方法である。
【００１７】
ここで、前記属性インクは、属性パラメータ値により水や雲、雪、炎、煙などの時々刻々と様相が変化する動的な自然現象を表現する自然現象インクやそのたのアクティブな属性を持つインクが含まれる。
【００１８】
本発明の第１の側面に係る画像編集装置又は画像編集方法によれば、マウス及びディスプレイなどの一般的なユーザ・インターフェースは、デジタル空間のキャンバス、パレット、筆又はブラシなどの道具に対応する描画インターフェースとして作用する。
【００１９】
そして、マウスのドラッグ操作などによりユーザ入力さたれ手書きストロークを筆やブラシによる作画操作として扱うことができる。また、デジタル空間のキャンバス上で、ユーザ入力されたストロークに従って、テクスチャやアニメーションなどのさまざまな属性やアニメーションを持ったインクを利用したペインティングを行なうことができる。
【００２０】
本発明に係る描画インターフェース上では、ＲＧＢ色空間上で定義される色インク以外に、テクスチャやマテリアルなどのオブジェクトの質感を表す質感インクや、属性パラメータ値に応じて描画処理が時々刻々と変動するアニメーション作用を持つ自然現象インクやその他の属性インクは、すべてインク・エリア上で統一して取り扱われる。
【００２１】
したがって、インクを選択してキャンバス上でペイント又はペーストするという作画作業を円滑に行なうことができるので、ユーザビリティに優れている。
【００２２】
また、描画オブジェクトに対してアニメーションやその他の属性を与えるためには、デジタル・キャンバスに相当するワーク・エリア上で筆で描くように手書きストロークを与えるだけでよく、変数の設定やスクリプトの記述など専門的な知識や特殊な作業を必要としない。
【００２３】
また、属性インクを指定した後、手書きストロークを入力するだけで即座にアニメーション作用が表示されるので、画像編集作業と並行して動きを確認することができる。
【００２４】
また、前記描画インターフェース部又はステップは、さらに複数のインクを用いて混合処理するパレット・エリアを表示するようにしてもよい。
【００２５】
このような場合、前記描画処理部又はステップは、前記インク・エリア又は前記パレット・エリアにおいて前記ユーザ入力部又はステップを介して指示されたインクとそれ以後前記ユーザ入力部又はステップを介して操作される手書きストロークとを関連付けるとともに、前記パレット・エリアにおいてユーザ入力部又はステップを介して操作された手書きストロークと描画オブジェクトとを逐次関連付けて、同じ描画オブジェクトに関連付けられた２以上のインク同士を混合処理するようにすればよい。
【００２６】
例えば、各属性インクが持つ属性パラメータ値を平均化することによって、２以上の属性インク同士を混合処理すればよい。
【００２７】
したがって、インク同士を混ぜるために、変数やスクリプトの記述などを操作する必要はなく、パレット上に属性インクを逐次塗り足していくという直感的なＧＵＩ操作だけでインクの微妙な調整を行なうことができる。
【００２８】
また、前記描画処理部又はステップは、前記ワーク・エリア及び／又は前記パレット・エリア内で描画オブジェクトを微小な描画単位に分割してなるメッシュにして、各描画単位毎にインク情報を管理するようにしてもよい。
【００２９】
このような場合、属性インクをオブジェクトに塗るという描画処理に対して、例えばセルラー・オートマトンを適用することができる。すなわち、隣接する各描画単位間で働く引力又は斥力などの相互作用を計算して該計算結果を基に描画単位が持つ属性パラメータ値を変更することによって、属性インクのアニメーション作用を自動生成することができる。
【００３０】
あるいは、属性インクでオブジェクトを描画処理するために、パーティクル・システムを適用することができる。すなわち、各描画単位毎に配置されたエミッタから属性インクに対応するパーティクルを放出することによって属性インクのアニメーション作用を計算することができる。
【００３１】
パーティクル・システムを適用した場合、属性インクが持つ属性パラメータ値を基に、エミッタの放出するパーティクル、放出の方向と広がり角度、放出速度、パーティクルに対して印加する重力、静電気力（引力と斥力）、渦巻きの効果、風の効果、乱流の効果、パーティクルの寿命やフォースに対する特性、サイズ、色と透明度、テクスチャを設定したり、パーティクルが活動する場に障害物を設置することができる。
【００３２】
また、前記インク・エリアには属性インクの濃淡を調整するテクニカル・インクを用意してもよい。このような場合、描画オブジェクトに対して濃くするテクニカル・インクが適用されたことに応答して、隣接する描画単位間で働く引力を強めて（又は斥力を弱めて）属性パラメータ値を計算する一方、描画オブジェクトに対して薄く又は淡くするテクニカル・インクが適用されたことに応答して、隣接する描画単位間で働く引力を弱めて（又は斥力を強めて）属性パラメータ値を計算するようにして、属性インクの微妙な調整を実現することができる。
【００３３】
また、前記インク・エリアには属性インクの大まかさ及び細かさを調整するテクニカル・インクを用意していてもよい。このような場合、描画オブジェクトに対して大まかにするテクニカル・インクが適用されたことに応答して、隣接する複数の描画単位をまとめて１つの描画単位として扱う一方、描画オブジェクトに対して細かくするテクニカル・インクが適用されたことに応答して、描画単位をさらに複数の描画単位に細分化するようにして、属性インクの微妙な調整を実現することができる。
【００３４】
また、前記描画処理部又はステップは、前記ワーク・エリア上に作画された描画オブジェクトに対して奥行き成分を付与して、２次元的な前記ワーク・エリア内で作画された描画内容を３次元空間に拡張するようにしてもよい。
【００３５】
例えば、前記ワーク・エリア上に作画された描画オブジェクトを構成する２次元的な描画単位を３次元的なＶｏｘｅｌに変換すればよい。このような場合、属性インクが塗られた個々のＶｏｘｅｌに対して、セルラー・オートマトンやパーティクル・システムなどのアニメーション作用を表現するための計算を適用することによって、属性インクによるアニメーション作用を３次元空間に拡張することができる。
【００３６】
また、前記描画処理部又はステップは、前記ユーザ入力部から入力されたストローク、例えばマウスを用いたインタラクションに従って描画オブジェクトに関連付けられている属性インクの属性パラメータ値を変更すようにしてもよい。このような場合、属性インクの微妙な調整を、変数の設定やスクリプトの記述など専門的な操作を必要とせず、簡単なＧＵＩ操作により簡単に実現することができるので、ユーザビリティに優れている。
【００３７】
また、本発明の第２の側面は、表示画面上でユーザから入力された手書きストロークに従って描画を行なう画像編集処理をコンピュータ・システム上で実行するように記述されたコンピュータ・ソフトウェアをコンピュータ可読形式で物理的に格納した記憶媒体であって、前記コンピュータ・ソフトウェアは、
使用可能な１以上のインクを配設するインク・エリアと、描画作業を行なうワーク・エリアとを前記表示画面上に表示する描画インターフェース提示ステップと、
前記表示画面上でユーザの指示座標を入力するユーザ入力ステップと、
ユーザ入力に従って前記ワーク・エリア上の描画オブジェクトを処理する描画処理ステップと、
を備え、
前記インク・エリアでは、ＲＧＢ色空間上で定義される色インク以外に、設定された属性パラメータ値に応じて描画処理が時々刻々と変動するアニメーション作用を持つ属性インクが用意されており、
前記描画処理ステップでは、前記インク・エリアにおいて前記ユーザ入力ステップを介して指示されたインクとそれ以後前記ユーザ入力ステップを介して操作される手書きストロークとを関連付けるとともに、前記ワーク・エリアにおいてユーザ入力ステップを介して操作された手書きストロークと描画オブジェクトとを関連付けて、該関連付けられたインクを用いて描画オブジェクトを描画することにより手書きストロークが塗られたことを表現する、
ことを特徴とする記憶媒体である。
【００３８】
本発明の第２の側面に係る記憶媒体は、例えば、さまざまなプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ・ソフトウェアをコンピュータ可読な形式で提供する媒体である。このような媒体は、例えば、ＤＶＤ（Digital Versatile Disc）、ＣＤ（Compact Disc）やＦＤ（Flexible Disk）、ＭＯ（Magneto-Optical disc）などの着脱自在で可搬性の記憶媒体である。あるいは、ネットワーク（ネットワークは無線、有線の区別を問わない）などの伝送媒体などを経由してコンピュータ・ソフトウェアを特定のコンピュータ・システムに提供することも技術的に可能である。
【００３９】
本発明の第２の側面に係る記憶媒体は、コンピュータ・システム上で所定のコンピュータ・ソフトウェアの機能を実現するための、コンピュータ・ソフトウェアと記憶媒体との構造上又は機能上の協働的関係を定義したものである。換言すれば、本発明の第２の側面に係る記憶媒体を介して所定のコンピュータ・ソフトウェアをコンピュータ・システムにインストールすることによって、コンピュータ・システム上では協働的作用が発揮され、本発明の第１の側面に係る画像編集装置又は画像編集方法と同様の作用効果を得ることができる。
【００４０】
また、本発明の第３の側面は、表示画面上でユーザから入力された手書きストロークに従って描画を行なう画像編集処理をコンピュータ・システム上で実行するように記述されたコンピュータ・プログラムであって、
使用可能な１以上のインクを配設するインク・エリアと、描画作業を行なうワーク・エリアとを前記表示画面上に表示する描画インターフェース提示ステップと、
前記表示画面上でユーザの指示座標を入力するユーザ入力ステップと、
ユーザ入力に従って前記ワーク・エリア上の描画オブジェクトを処理する描画処理ステップと、
を備え、
前記インク・エリアでは、ＲＧＢ色空間上で定義される色インク以外に、設定された属性パラメータ値に応じて描画処理が時々刻々と変動するアニメーション作用を持つ属性インクが用意されており、
前記描画処理ステップでは、前記インク・エリアにおいて前記ユーザ入力ステップを介して指示されたインクとそれ以後前記ユーザ入力ステップを介して操作される手書きストロークとを関連付けるとともに、前記ワーク・エリアにおいてユーザ入力ステップを介して操作された手書きストロークと描画オブジェクトとを関連付けて、該関連付けられたインクを用いて描画オブジェクトを描画することにより手書きストロークが塗られたことを表現する、
ことを特徴とするコンピュータ・プログラムである。
【００４１】
本発明の第３の側面に係るコンピュータ・プログラムは、コンピュータ・システム上で所定の処理を実現するようにコンピュータ可読形式で記述されたコンピュータ・プログラムを定義したものである。換言すれば、本発明の第３の側面に係るコンピュータ・プログラムをコンピュータ・システムにインストールすることによって、コンピュータ・システム上では協働的作用が発揮され、本発明の第１の側面に係る画像編集装置又は画像編集方法と同様の作用効果を得ることができる。
【００４２】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【００４３】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態について詳解する。
【００４４】
Ａ．システム構成
図１には、本発明の実施に供される画像編集装置１００のハードウェア構成を模式的に示している。以下、同図を参照しながら、各部について説明する。
【００４５】
メイン・コントローラであるＣＰＵ（Central Processing Unit）１０１は、オペレーティング・システム（ＯＳ）の制御下で、各種のアプリケーションを実行する。オペレーティング・システムは、より好ましくは、ビットマップ表示機能をサポートし、マウスなどによる座標指示入力をベースとしたＧＵＩ（Graphical User Interface）環境を提供する。
【００４６】
ＣＰＵ１０１は、例えば、デジタル空間上のキャンバスに水彩画又は油絵などのペインティングを模した擬似的な描画を行なうための直感的な描画インターフェースを提供する画像編集アプリケーションなどを実行することができる。この画像編集アプリケーションによれば、マウスとディスプレイという一般的なユーザ・インターフェースを用いて描画インターフェースを提供し、テクスチャやアニメーションなどのさまざまな属性（ａｔｔｒｉｂｕｔｅ）やアクティビティ（ａｃｔｉｖｉｔｙ）を持ったインクを利用したペインティングを行なうことができる（後述）。
【００４７】
図示の通り、ＣＰＵ１０１は、バス１０８によって他の機器類（後述）と相互接続されている。
【００４８】
主メモリ１０２は、ＣＰＵ１０１において実行されるプログラム・コードを格納したり、描画データなどの実行中の作業データを一時保管するために使用される記憶装置であり、例えばＤＲＡＭ（Dynamic RAM）のような半導体メモリが使用される。
【００４９】
また、ＲＯＭ（Read Only Memory）１０３は、データを恒久的に格納する半導体メモリであり、例えば、起動時の自己診断テスト（ＰＯＳＴ：Power On Self Test）や、ハードウェア入出力用のプログラム・コード（ＢＩＯＳ：Basic Input/Output System）などが書き込まれている。
【００５０】
ディスプレイ・コントローラ１０４は、ＣＰＵ１０１が発行する描画命令を実際に処理するための専用コントローラである。ディスプレイ・コントローラ１０３において処理された描画データは、例えばフレーム・バッファ（図示しない）に一旦書き込まれた後、ディスプレイ１１１によって画面出力される。本実施形態では、ディスプレイ・コントローラ１０４は、デジタル空間のキャンバス上でのペインティング操作をより快適に実行するためには、ビットマップ表示機能をサポートしていることが好ましい。
【００５１】
ディスプレイ１１１の表示画面は、一般に、ユーザからの入力内容やその処理結果、あるいはエラーその他のシステム・メッセージをユーザに視覚的にフィードバックする役割を持つ。また、本実施形態においては、ディスプレイ１１１の表示画面は、デジタル空間のキャンバス並びにパレットを表示するとともに、キャンバス上でのペインティングの作業場を与えるが、この点については後に詳解する。
【００５２】
入力機器インターフェース１０５は、キーボード１１２やマウス１１３などのユーザ入力機器を対話装置１００に接続するための装置である。
【００５３】
キーボード１１２やマウス１１３は、データやコマンドなどのユーザ入力をシステムに取り込む役割を持つ。キーボード１１２上でキー入力が行なわれたり、マウス１１３によりクリックあるいはドラッグ／ドロップなどの座標指示入力が行なわれると、所定の割り込みレベルを使用した割り込み要求が発生して、ＣＰＵ１０１は、割り込みレベルに対応した割り込みハンドラを実行する。割り込みハンドラは、ユーザ入力を、画像編集アプリケーションなど該当する起動アプリケーションへのメッセージにする。勿論、デジタイザ／タブレット及び入力ペン（図示しない）のように、マウス１１３以外の座標指示装置を本画像編集装置１００に適用することもできる。
【００５４】
本実施形態では、マウス１１３のドラッグ操作などによりユーザ入力さたれストロークを筆やブラシによる手書き操作として扱うことができる。そして、このストロークに従って、デジタル空間のキャンバス上で、水彩画又は油絵などのペインティングを模した擬似的な描画処理を行ない、処理結果をディスプレイ１１１の表示画面上に表示出力する。この場合、マウス１１３及びディスプレイ１１１は、デジタル空間のキャンバス、パレット、筆又はブラシなどの描画インターフェースとして作用する。
【００５５】
ネットワーク・インターフェース１０６は、Ｅｔｈｅｒｎｅｔなどの所定の通信プロトコルに従って、システム１００をＬＡＮ（Local Area Network）などの局所的ネットワーク、さらにはインターネットのような広域ネットワークに接続することができる。
【００５６】
ネットワーク上では、複数のホスト端末（図示しない）がトランスペアレントな状態で接続され、分散コンピューティング環境が構築されている。ネットワーク上では、ソフトウェア・プログラムやデータ・コンテンツなどの配信サービスを行うことができる。例えば、デジタル空間上のキャンバスに水彩画又は油絵などのペインティングを模した擬似的な作画作業を行なうための直感的な描画インターフェースを提供する画像編集アプリケーションなどを、ネットワーク経由でダウンロードすることができる。また、この画像編集アプリケーションを用いて制作された描画情報を、ネットワーク経由で他のホスト装置に配信・配布することができる。
【００５７】
また、ネットワーク経由でトランスペアレントな状態で接続された２台以上のホスト端末は、互いの協働的動作により描画インターフェースを提供して、デジタル空間のキャンバス上でのペインティングをサポートすることができる。例えば、１台のホスト端末はキャンバスを提供し、他のホスト端末はインクを選択又は調色するためのパレットを提供することができる（後述）。
【００５８】
外部機器インターフェース１０７は、ハード・ディスク・ドライブ（ＨＤＤ）１１４やメディア・ドライブ１１５などの外部装置を本画像編集装置１００に接続するための装置である。
【００５９】
ＨＤＤ１１４は、記憶担体としての磁気ディスクを固定的に搭載した外部記憶装置であり（周知）、記憶容量やデータ転送速度などの点で他の外部記憶装置よりも優れている。ソフトウェア・プログラムを実行可能な状態でＨＤＤ１１４上に置くことをプログラムのシステムへの「インストール」と呼ぶ。通常、ＨＤＤ１１４には、ＣＰＵ１０１が実行すべきオペレーティング・システムのプログラム・コードや、アプリケーション・プログラム、デバイス・ドライバなどが不揮発的に格納されている。例えば、デジタル空間上のキャンバスに水彩画又は油絵などのペインティングを模した擬似的な作画作業を行なうための直感的な描画インターフェースを提供する画像編集アプリケーションなどを、ＨＤＤ１１４上にインストールすることができる。また、この画像編集アプリケーションを用いて制作された描画情報をＨＤＤ１１４上に蓄積しておいてもよい。
【００６０】
メディア・ドライブ１１５は、ＣＤ（Compact Disc）やＭＯ（Magneto-Optical disc）、ＤＶＤ（Digital Versatile Disc）などの可搬型メディアを装填して、そのデータ記録面にアクセスするための装置である。
【００６１】
可搬型メディアは、主として、ソフトウェア・プログラムやデータ・ファイルなどをコンピュータ可読形式のデータとしてバックアップすることや、これらをシステム間で移動（すなわち販売・流通・配布を含む）する目的で使用される。例えば、デジタル空間上のキャンバスに水彩画又は油絵などのペインティングを模した擬似的な作画作業を行なうための直感的な描画インターフェースを提供する画像編集アプリケーションなどを、これら可搬型メディアを利用して複数の機器間で物理的に流通・配布することができる。また、この画像編集アプリケーションを用いて制作された描画情報を、恒久的に保存（アーカイブ）したり、他の装置に移動するために、可搬型メディアを利用する。
【００６２】
なお、図１に示すような画像編集装置１００の一例は、米ＩＢＭ社のパーソナル・コンピュータ"ＰＣ／ＡＴ（Personal Computer/Advanced Technology）"の互換機又は後継機である。勿論、他のアーキテクチャを備えたコンピュータを、本実施形態に係る画像編集装置１００として適用することも可能である。
【００６３】
Ｂ．描画インターフェース
本実施形態に係る画像編集装置１００は、例えば所定のアプリケーションを起動することにより、デジタル空間上のキャンバスに水彩画又は油絵などのペインティングを模した擬似的な作画作業を行なうための直感的な描画インターフェースを提供することができる。
【００６４】
この描画インターフェースは、例えば、マウス１１３及びディスプレイ１１１の組み合わせによって構成され、デジタル空間のキャンバス、パレット、筆又はブラシなどを備えている。また、デジタル空間のキャンバス上では、単純にＲＧＢ色空間上で定義されるインクの色だけでなく、テクスチャやアニメーションなどのさまざまな属性（ａｔｔｒｉｂｕｔｅ）やアクティビティ（ａｃｔｉｖｉｔｙ）を持ったインクを利用することができる。
【００６５】
図２には、ディスプレイ１１１の表示画面上での描画インターフェース１０の構成例を示している。但し、ビットマップ表示並びにＧＵＩ環境が提供されているものとする。
【００６６】
同図に示すように、描画インターフェース１０は、使用する絵の具やインクの色を指定するためのＧＵＩであるインク・エリア１１と、複数のインクの色を混合・調色したり濃淡を調整したり、使用する筆の太さの変更などを行なうためのＧＵＩであるパレット・エリア１２と、作画する場所すなわち筆で絵の具を塗るキャンバスに相当するワーク・エリア１３とで構成される。
【００６７】
インク・エリア１１では、ＲＧＢ色空間で定義される色を表す色インクやテクスチャ以外に、自然現象（あるいは時々刻々と様相が変化する動的な現象）を対象とした自然現象インク（アクティブ・インク）や、事物の質感を表す質感インクなどを、色のメニューに持っている。ユーザは、インク・エリア１１上で所望の色をクリックすることによりインクを指定することができる。
【００６８】
自然現象インク又はアクティブ・インクは、自然現象のような時々刻々と様相が変化する動的な現象を表現するためのインクであり、例えば、水や雲、雪、炎、煙などの自然現象を対象とする。
【００６９】
アクティブ・インクの自然現象を表した動き（アニメーション）は、例えば、「セルラー・オートマトン（Ｃｅｌｌｕｌａｒ  Ａｕｔｏｍａｔａ）」や、「パーティクル・システム（Ｐａｒｔｉｃｌｅ  Ｓｙｓｔｅｍ）」などの手法を用いて生成することができる。これらの手法を用いたアニメーション作用は、描画オブジェクトを無数の微小な描画単位（セル）からなるメッシュに分割して、描画単位毎に描画情報の管理並びにアニメーションの計算を行なうことによって実現する（後述）。
【００７０】
また、質感インクは、服やゴム、金属、ガラス、地形、模様などの質感を表すインクである。各質感インクは、属性を指定する１以上のパラメータを備えており、単純に水インクでも複数の水インクが存在する。
【００７１】
以下では、自然現象インク（アクティブ・インク）と質感インクを合わせて「属性インク」と呼ぶことにする。
【００７２】
また、これら以外に、「テクニカル・インク」がインク領域１１に用意されている。テクニカル・インクとは、上記の属性インクが持つ属性パラメータ値が及ぼすアニメーション作用を変更するためのインクのことであり、属性インクの濃淡を調整したり、描画単位の大まかさや細かさを調整することができる。
【００７３】
また、テクニカル・インクの他の例として、オブジェクトの整形を行なう「ゴム・インク」を用意しておいてもよい。例えば、描画オブジェクトの変形したい部分にゴム・インクを塗ることにより、任意の部分まで伸ばしたり縮めたりすることができる。一般に、３次元オブジェクトの変形操作は、モデルを構成するポリゴンの頂点に対して操作しなければならない。本実施形態に係る描画インターフェース１０によれば、そうした操作はシステムの内部処理に任せてしまい、ユーザは変形するための属性インクを選択して、該当箇所に塗って好きな部分までドラッグするという直感的なマウス操作により３次元オブジェクトの変形を行なうことができる。
【００７４】
このようなテクニカル・インクを、パレット・エリア１２内で属性インクと混合して、ワーク・エリア１３上での作画に利用することができる。
【００７５】
パレット・エリア１２では、インク・エリア１１内で指定した複数のインクの色を混合・調色したり、その濃淡を調整したり、使用する筆の太さの変更などを行なうことができる。
【００７６】
ワーク・エリア１３は、筆で絵の具を塗るデジタル空間上のキャンバスすなわち「デジタル・キャンバス」に相当する。ワーク・エリア１３内で例えばマウス１１３をドラッグ操作することにより、そのストロークが手書き操作された、すなわち指定されたインクで塗られた領域となる。デジタル・キャンバス上では、単純に２次元平面に対してインクを適用する以外に、３次元オブジェクトを読み込んでインクを塗ることができる。なお、図２に示す例では、ワーク・エリア１３内ではマウス１１３による手書き操作を判り易くするためにグリッドを表示しているが、これは本発明の必須の構成要素ではない。
【００７７】
ユーザは、基本的にはマウス１１３を用いたＧＵＩ操作によりインク・エリア１１内で色インクや属性インクを選択するとともに、パレット・エリア１２内で色インクや属性インクの混合を行なう。そして、ワーク・エリア１３を用いて、色インクや属性インクを用いて描画オブジェクトを塗るという作画作業を行なう。
【００７８】
パレット・エリア１２やワーク・エリア１３内では、インクを塗る対象は、描画オブジェクトを微小な描画単位（セル）に分割してなるメッシュであり、自然現象インクなどのアクティブ・インクが塗られた領域には、描画単位毎にセルラー・オートマトンやパーティクル・システムを適用して、アニメーション作用の計算が行なわれる。
【００７９】
アプリケーション起動時には、パレット・エリア１２やワーク・エリア１３内のメッシュ情報の初期化がなされる。そして、システムの内部処理としてフレーム毎にアニメーション作用の計算とそれを反映させたシーンの描画を行なうことにより、ディスプレイ１１１の表示画面上には自然現象を表した色や模様が活動的なアニメーションとして表示される。すなわち、パレット・エリア１２やワーク・エリア１３に手書きストロークを入力するだけで即座にアニメーション作用が表示されるので、プレビューしなくても、作画作業と並行して動きを確認することができる。但し、属性インクによるアニメーション作用の詳細については、後述に譲る。
【００８０】
図３には、描画インターフェース１０上でのユーザ操作例として、ワーク・エリア１６上で自然現象インクとしての雲インクでペイントしている様子を示している。
【００８１】
まず、インク・エリア１１で雲インクを指定してから、マウス１１３などの座標指示装置を用いてワーク・エリア１６に対してドラッグ操作を印加して、ストロークを描く（図３（ａ））。これに応答して、その手書きストロークに沿って、（あらかじめ指定されている線種や太さに応じて）雲インクの描画領域が生成される。例えば、最初の一筆でそのストロークに沿った雲のアニメーションが生成され（図３（ｂ））、次の一筆でさらにその手書きストロークに沿った雲のアニメーションが生成される（図３（ｃ），（ｄ））。
【００８２】
次いで、雲インクで囲み込んだ領域を作っておいて、さらにその領域内を塗りつぶすようなドラッグ操作を印加すると（図３（ｅ））、雲のアニメーションによって領域が塗りつぶされて、大きな雲のアニメーションができる（図３（ｆ））。
【００８３】
勿論、「消しゴム」のようなツールを指定することにより（図３（ｇ））、ドラッグ操作して雲インクで描かれた領域を消し去ることができる（図３（ｈ））。
【００８４】
なお、図２に示す例では、描画インターフェース１０は、インク・エリア１１、パレット・エリア１２、並びにワーク・エリア１３を統合した単一のウィンドウとして構成されているが、本発明の要旨はこのような構成に限定されるものではない。例えば、図４に示すように、各エリア１１〜１３が分割してそれぞれ独立したウィンドウとして表示して、デスクトップ画面上に散在していてもよい。このような場合、ユーザは、各エリア１１〜１３のウィンドウをドラッグにより好きな場所に移動して、描画インターフェース１１を自分がペイント作業し易い配置に変更することができる。
【００８５】
また、図５には、描画インターフェース１０のさらに他の変形例を示している。ネットワーク（例えば、ＩＥＥＥ  ８０２．１１のような無線通信ネットワークや、Ｂｌｕｅｔｏｏｔｈのような近距離無線データ通信）経由でトランスペアレントな状態で接続された２台以上のホスト端末が、互いの協働的動作により描画インターフェースを提供して、デジタル空間のキャンバス上でのペインティングをサポートすることができる。
【００８６】
図５に示す例では、比較的大画面を持つ１台のホスト端末が、２人以上のユーザが同時にストローク入力操作を行なうことができる程度の広いワーク・エリア１１を提供している。また、他のホスト端末は、ＰＤＡ（personal Digital Assistant）のような各ユーザが個々に操作する小型（パームトップ）の情報処理端末で構成されており、インクを選択又は調色するためのインク・エリア１１並びにパレット・エリア１２を提供する。そして、これら各ホスト端末は、有線又は無線のローカル・エリア・ネットワークで相互接続されている。
【００８７】
この場合、各ホスト端末のディスプレイは、デジタイザ／タブレット一体型で、ペン入力機能を装備していることが好ましい。すなわち、各ユーザは、自分のホスト端末上でペン操作により、インクの色を選択して、次いで、大画面のワーク・エリア１３上で同じペンを持ったままストロークの入力すなわちペインティングを行なうことができる。
【００８８】
また、他のユーザは同様に自分のホスト端末上でペン操作により、インクの色を選択して、次いで、大画面のワーク・エリア１３上で同じペンを持ったままストロークの入力を行なうことができる。このような場合、ユーザがＰＤＡ上のインク・エリア又はパレット・エリアで指定した属性インクの情報は、ネットワーク経由でワーク・エリアを提供するホスト端末に転送されるので、上述したような手書きストロークに沿ったアニメーション作用を実現することができる。言い換えれば、図５に示した形態の描画インターフェースによれば、複数のユーザによるコラボレーションが可能である。
【００８９】
ここで、本実施形態に係る描画インターフェース１１が持つ特徴について、以下にまとめておく。
【００９０】
（１）パレット上での属性インク同士の混合
本実施形態では、コンピュータの演算機能及び自在な描画機能を利用して、自然現象を動的に表現する自然現象インクや、服やゴム、金属、ガラス、地形、模様などの質感を表す質感インクなどの属性インクをデジタル・キャンバス上でペイントすることができる。
【００９１】
さらに、これら属性インク同士をパレット１２上で混合して、デジタル・キャンバス上でペイントすることができる。例えば、水インクと炎インクを混ぜることができる。自然界すなわち実世界上では水と炎の混合は成立し得ないが、仮想世界においては、互いの属性パラメータ値を基に、起こり得る現象を仮想的に創り出すことができる。
【００９２】
また、インクを薄めてから、混ぜることもできる。これにより、少しだけ水っぽい感じを表出することができる。
【００９３】
また、ＲＧＢ空間で定義される通常の色インクと属性インクとを混ぜることもできる。これによって、緑色の炎や赤い雲などをパレット・エリア１２上で作り、デジタル・キャンバス上に塗布することができる。
【００９４】
属性インクの混合という作用は、例えば、混合すべき各属性インクが持つ属性パラメータ値の平均値（あるいは加重平均値）をとることによって、動的に実現することができる。
【００９５】
あるいは、各々の属性インクが表す自然現象から想起される現象（例えば、炎に水をかけたらどのようになるか）を基に、属性インク同士の組み合わせをあらかじめ定義してルールベースを構築しておき、パレット・エリア１２上で属性インクの混合が指示されたときにはルールベースから取り出した属性インクを使用するようにしてもよい。
【００９６】
図６には、パレット・エリア１２上で雲インクに水インクを混ぜる様子を表している。雲インクのような自然現象インクは、パレット・エリア１２上で塗られるとアニメーション作用が活性化される。これら自然現象インクが塗布された表示領域は、「セル（ｃｅｌｌ）」などの微小な矩形（又は多角形）の描画単位に分割された「メッシュ（ｍｅｓｈ）」として管理されている。
【００９７】
そして、雲インクの表示領域内で、水インクが指定された状態でマウスのドラッグ操作が印加されると、そのドラッグされたストロークによって横切られたセル（描画単位）において、属性インク同士の混合処理が実行される。属性インクの混合は、各属性インクの属性パラメータ値を平均化処理すること、あるいは、各属性インクが表す自然現象から規定されたルールに従って描画処理される。
【００９８】
（２）オブジェクトやシーンに対するインクの塗布
例えば、ワーク・エリア１３に既存のオブジェクトやシーンを読み込んで、それに対して属性インクを適用することができる。図７には、描画インターフェース１０上でワーク・エリア１３にオブジェクトやシーンを読み込んだ様子を示している。
【００９９】
オブジェクトやシーンには、微小な描画単位（セル）からなるメッシュがあらかじめ作成されている。あるいは、メッシュがない場合には、ワーク・エリア１３に読み込んだ時点でメッシュを動的に生成してもよい。そして、インク・エリア１１又はパレット・エリア１２で使用する属性インクを指定してから、オブジェクト又はシーン上をドラッグ操作することにより、そのドラッグされたストロークによって横切られた描画単位（セル）において、属性インクによるペイントが行われる。該当する描画単位内では、例えば、セルラー・オートマトンや、パーティクル・システムなどの手法を用いて属性インクのアニメーションが生成される（後述）。
【０１００】
また、ワーク・エリア１３にオブジェクトが存在しない場合には、ワーク・エリア１３内に３次元シーン上の仮想的なキャンバスを設定して、手書きストロークに従ってこのキャンバス上に属性インクを塗り付けるようにしてもよい。
【０１０１】
なお、本出願人に既に譲渡されている特願２０００−２０９７３１号明細書には、仮想的に設定されたキャンバス上に手書きにより描画されたイメージを基に３次元的なイメージを作成する画像編集システムについて開示されている。この画像編集システムによれば、まず、地平線のみの３次元空間がディスプレイ・スクリーン上に現れ、該空間に対してストローク線を引くと、該ストローク線を底辺とする壁がキャンバスとして設定される。スクリーンを介してユーザが描いた絵はキャンバス上にマッピングされるので、結果として３次元的な絵を描いたことになる。キャンバス設定と絵を描く操作を重ねることで、所望のシーンを構築することができる。また、キャンバス回転や視点移動により所望の３次元シーンが得られる。
【０１０２】
図８には、ユーザが描いたストローク線に従って３Ｄキャンバスが生成される様子、生成された３Ｄキャンバス上にさらに絵を描く様子、並びにキャンバス回転により所望の３Ｄシーンを生成する様子を示している。
【０１０３】
（３）描画効果（Ｅｆｆｅｃｔ）の追加
ワーク・エリア１３内では、手書きストロークにより属性インクで塗られた描画オブジェクトに対してエフェクトを追加することができる。
【０１０４】
既に述べたように、インク・エリア１１上で属性インクを指定し、あるいはパレット・エリア１２上で混合された属性インクを指定してから、ワーク・エリア１３内でドラッグ操作などによる手書きストロークを入力することにより、属性インクで塗り付けられた描画オブジェクトが生成される。属性インクは、例えば自然現象インク又はアクティブ・インクのように、設定された属性パラメータ値に応じて描画処理が時々刻々と変動するというアニメーション作用を有している。手書きストロークからなる描画領域には、例えば、雲や水、炎などのアニメーションが与えられる。
【０１０５】
属性インクのアニメーション作用を規定する属性パラメータ値には、デフォルト値が与えられる。これに対し、マウス１１３を用いたインタラクションによって、デフォルト値を意図に反映させることができる。マウス・インタラクションによる属性パラメータ値の変更手続きについては、後に詳解する。
【０１０６】
また、コピー・アンド・ペーストのような一般的な文書編集処理に用意されている機能も、ワーク・エリア１３内でのＧＵＩ操作で行うことができる。例えば、ワーク・エリア１３内に表示されているある描画オブジェクトを範囲指定した後、他の場所にドラッグ・アンド・ドロップすることにより、オブジェクトが複製される。描画オブジェクトが属性インクでペイント若しくはペーストされているような場合には、元のオブジェクトが持つ属性パラメータ値を継承する。例えば、炎インクで描かれた描画オブジェクトを、幾つも生成することができる。
【０１０７】
Ｃ．属性インクを用いた手書きストロークによるペインティング 
この項では、描画インターフェース１０を用いて、属性インクを用いた手書きストロークによるペインティングを実現するための処理手順について詳解する。本実施形態に係る手書きストロークに基づく描画処理は、以下の３段階のフェーズに分けられる。
【０１０８】
（１）ユーザがインクを選んで塗る。
（２）塗った部分を無数の描画単位（セル）に分割してメッシュを生成し、各描画単位毎にインク情報を格納していく。
（３）メッシュ情報により計算を行ない、描画する。
【０１０９】
Ｃ−１．描画インターフェースを用いた作画処理
図９には、描画インターフェース１０上での属性インクを用いた手書きストロークによるペインティングを実現するための、画像編集処理全体の概略的な流れをフローチャートの形式で示している。この処理は、実際には、ＣＰＵ１０１が所定のプログラム・コードを実行するという形態で実現される。
【０１１０】
画像編集アプリケーションを起動すると、まず描画インターフェース１０の初期化を行なう（ステップＳ１）。初期化処理については後述する。
【０１１１】
次いで、現在の動作モードをチェックする（ステップＳ２）。ここで、描画モードであれば、別途定義されている描画ルーチンを実行する（ステップＳ３）。描画ルーチンでは、描画インターフェース１０上で属性インクの指定並びに手書きストロークに従った描画オブジェクトの生成が行なわれる。描画オブジェクトは、無数の微小な描画単位に分割してなるメッシュによって管理されるが、その処理の詳細については後述に譲る。
【０１１２】
他方、描画モードでなければ、コントロール・モードかどうかをチェックする（ステップＳ４）。描画モードであれば、別途定義されているコントロール・ルーチンを実行する（ステップＳ５）。コントロール・ルーチンでは、描画オブジェクトにペイント又はペーストされている属性インクの属性パラメータ値のコントロールが行われる。属性パラメータ値の変更は、マウス・インタラクションなどを利用して行なわれるが、その詳細については後述に譲る。
【０１１３】
次いで、別途定義されているシーンの計算ルーチンを実行する（ステップＳ６）。シーンの計算は、描画オブジェクトを構成するメッシュ情報の各描画単位（セル）毎に行なわれるが、その処理の詳細については後述に譲る。
【０１１４】
次いで、別途定義されているシーンの描画ルーチンを実行する（ステップＳ７）。シーンの描画は、描画オブジェクトを構成するメッシュ情報の各描画単位（セル）毎の計算結果に従って行なわれるが、その処理のルーチンの詳細については後述に譲る。
【０１１５】
ステップＳ８では、システムが終了条件に到達したかどうかを判別する。
【０１１６】
終了条件に到達していなければ、ステップＳ２に戻って、上述した描画ルーチン、コントロール・ルーチン、シーンの計算、シーンの描画を繰り返し実行する。フレーム毎にシーンの計算を繰り返し行なって、炎や水、雲、煙などのアクティブ・インクがペイント又はペーストされた描画オブジェクトの描画を逐次更新していくことによって、時々刻々と変動するアニメーションを生成することができる。
【０１１７】
他方、終了条件に到達したならば、本処理ルーチン全体を終了する。本処理の終了条件の何であるかは本発明の要旨には直接関連しないので、ここでは説明しない。
【０１１８】
なお、描画モードやコントロール・モードなどのモード設定、モード切り替えは、例えばマウスのボタン操作によって行なうようにする。例えば、マウスの左ボタンを押すと描画モードになり、ドラッグした軌跡は手書きストロークとして入力される。また、マウスの右ボタンを押すとコントロール・モードになり、マウス・インタラクション（前述）が行なわれると、ドラッグした軌跡は属性インクの属性パラメータ値として入力される。
【０１１９】
Ｃ−２．初期化処理
図１０には、図９に示したフローチャート中のステップＳ１における初期化処理の手順をより詳細に示している。
【０１２０】
まず、ディスプレイ１１１の表示画面上に、インク・エリア１１、パレット・エリア１２、及び描画インターフェース１０（図２を参照のこと）のウィンドウ・フレーム（図２又は図３を参照のこと）を用意する（ステップＳ１１）。
【０１２１】
このうち、パレット・エリア１２は、複数のインクを混合・調色したり濃淡を調整したりする作業領域であり、マウス操作からなる手書きストロークに従って属性インクをペイントする必要があることから（図６を参照のこと）、パレット・エリア１２内にはあらかじめ属性インクを描画するためのメッシュを作成しておく（ステップＳ１２）。
【０１２２】
次いで、インク・エリア１１で用意する色インクや属性インクが使用するテクスチャなどの描画データを、ＨＤＤ１１４などの外部記憶装置から読み込む（ステップＳ１３）。頻繁に使用するテクスチャは、あらかじめキャッシュしておいてもよい。
【０１２３】
次いで、各インクの計算に使用する変数の初期化、並びにデータの作成を行なう（ステップＳ１４）。例えば、属性インクで使用する色の変化配列などをこのステップで用意しておく。
【０１２４】
Ｃ−３．描画ルーチン
図１１には、図９に示したフローチャート中のステップＳ３に該当する描画ルーチンにおける処理手順を詳細に示している。
【０１２５】
まず、ユーザは、パレット・エリア１２に付設されているペン選択エリアから所望の線種を持つペンを選択する（ステップＳ２１）。そして、選択されたペンを用いた「塗る」処理を実行する（ステップＳ２２）。塗る処理は別途定義された処理ルーチンであり、その詳細については後述に譲る。
【０１２６】
ユーザが選択ツールを選択した場合には（ステップＳ２３）、該選択されたツールを適用した描画処理を実行する（ステップＳ２４）。
【０１２７】
ここで言うツール選択には、例えば、「コピー・アンド・ペースト」を挙げることができる。この場合、ワーク・エリア１３内に表示されているある描画オブジェクトを範囲指定した後、他の場所にドラッグ・アンド・ドロップすることにより、オブジェクトが複製される。描画オブジェクトが属性インクでペイント若しくはペーストされているような場合には、元のオブジェクトが持つ属性パラメータ値を継承する。例えば、炎インクで描かれた描画オブジェクトを、幾つも生成することができる。
【０１２８】
また、キャンバス作成を選択した場合には（ステップＳ２５）、別途定義されているキャンバス作成処理を実行する（ステップＳ２６）。
【０１２９】
ステップＳ２６では、ワーク・エリア１３内に３次元シーン上の仮想的なキャンバスを設定して、手書きストロークに従ってこのキャンバス上に属性インクを塗り付けるようにしてもよい。例えば、ユーザが描いたストローク線に従って生成された３Ｄキャンバス上に、属性インクを用いて絵を描くことができる。また、この３Ｄキャンバスを視点移動やキャンバス回転により、所望の３Ｄシーンを生成することができる（図８を参照のこと）。
【０１３０】
既に述べたように、本実施形態に係る描画インターフェース１０は、ワーク・エリア１３並びにパレット・エリア１２内の描画オブジェクトを、「セル（ｃｅｌｌ）」などの微小な矩形（又は多角形）の描画単位に分割された「メッシュ（ｍｅｓｈ）」として管理するようになっている。
【０１３１】
ユーザがインクを選んで塗ると、塗った部分（オブジェクトやシーン）を無数の描画単位（セル）に分割してメッシュを生成して、各描画単位毎にインク情報を格納していく。そして、メッシュ情報により計算を行ない、オブジェクトやシーンを描画する。
【０１３２】
オブジェクトやシーンには、微小な描画単位（セル）からなるメッシュがあらかじめ作成されている。あるいは、メッシュがない場合には、読み込んだ時点でメッシュを動的に生成してもよい。図１２には、ワーク・エリア１３内で塗られた部分に対してメッシュを動的に生成していく様子を図解している。
【０１３３】
インク・エリア１１又はパレット・エリア１２で使用する属性インクを指定してから、オブジェクト又はシーン上をドラッグ操作することにより、そのドラッグされたストロークによって横切られたセル（描画単位）において、属性インクによるペイントが行われる。
【０１３４】
そして、同じ属性インクからなる描画オブジェクトに対してラベリング値とマウス・インタラクションによる操作方向のベクトル（Ｕ，Ｖ情報）が割り当てられる。
【０１３５】
ラベリング値が与えられた描画オブジェクトは、さらに、微小な描画単位からなるメッシュを補間する。また、必要に応じて、メッシュをさらに細分化する。また、各描画オブジェクトの描画情報を管理するために、メッシュ情報ブロックが生成される。
【０１３６】
図１３には、メッシュ情報ブロックのデータ構造を模式的に示している。図示の通り、メッシュ情報ブロックは、割り当てられたラベリング値と、マウス・インタラクションすなわち描画オブジェクト内を横切った手書きストロークを構成する操作方向ベクトル（Ｕ，Ｖ情報）のリストと、メッシュを構成する各描画単位（ｍｅｓｈ_ｄａｔａ）のリストで構成される。
【０１３７】
また、図１４には、描画オブジェクトすなわちメッシュを構成する描画単位に関する描画情報を管理するためのデータ・ブロック"ｍｅｓｈ_ｄａｔａ"のデータ構造を模式的に示している。既に述べたように、各描画単位（セル）に対して、セルラー・オートマトンやパーティクル・システムなどの手法を適用することによって、属性インクが持つ自然現象を表した動きなどのアニメーション作用が生成される。同図に示すように、データ・ブロックｍｅｓｈ_ｄａｔａは、該当する描画単位に塗られている属性インクのインク・リストと、この描画単位に対してセルラー・オートマトンやパーティクル・システムなどの手法を適用するために使用する変数（カラー情報（color information）、位置情報（position information）、テクスチャ情報（texture information）など）で構成される。
【０１３８】
また、本実施形態では、インク・エリア１１によりあらかじめ用意されている属性インク、並びに、パレット・エリア１２上で２以上のインクを混合・調色してなる属性インクを管理するために、各属性インク毎にデータ・ブロックを設けて管理している。
【０１３９】
図１５には、ｍｅｓｈ_ｄａｔａに登録されている属性インクの情報を管理するためのデータ・ブロックのデータ構造を模式的に示している。このデータ・ブロックは、該当するインクを構成する元の各インクのＩＤのリスト（ＩｎｋＩＤ）と、テクニカル・インクを適用して指定されているインクの濃淡を示すカウント値（Ｔｅｃｈｎｉｃａｌ_ｃｏｕｎｔ）を含んでいる。テクニカル・インクのカウント値は、属性インクの濃淡を示すカウント値Ｔｅｃｈｎｉｃａｌ_Ｉｎｋ［０］と、属性インクの細かさ（すなわち粒度）を示すカウント値Ｔｅｃｈｎｉｃａｌ_Ｉｎｋ［１］の２種類がある。
【０１４０】
Ｃ−３−１．塗る処理
図１６には、図１１に示した描画ルーチンのうち、ステップＳ２２の塗る処理の手順をフローチャートの形式でより詳細に示している。
【０１４１】
ユーザは、インク・エリア１１上で所望のインクをマウス１１３でクリックすることによりインクを選択することができる（ステップＳ３１）。このとき、選択したインクのＩＤが一時保持される（ステップＳ３２）。
【０１４２】
また、ワーク・エリア１３をクリックすることにより（ステップＳ３３）、ワーク・エリア１３上での絵を描く処理が実行される（ステップＳ３４）。ワーク・エリア１３内での処理ルーチンは別途定義されているが、その詳細については後述に譲る。
【０１４３】
また、パレット・エリア１２をクリックすることにより（ステップＳ３５）、パレット・エリア１２内で複数の属性インクを混合・調色したり濃淡を調整したりするための処理が実行される（ステップＳ３６）。パレット・エリア１２内での処理ルーチンは別途定義されているが、その詳細については後述に譲る。
【０１４４】
ステップＳ３７では、システムが終了条件に到達したかどうかを判別する。
【０１４５】
終了条件に到達していなければ、ステップＳ３１に戻って、インク・エリア11、ワーク・エリア１３、及び、パレット・エリア１２などの描画インターフェース１０を用いてユーザが絵を描く処理を繰り返し実行する。
【０１４６】
他方、終了条件に到達したならば、本処理ルーチン全体を終了する。本処理の終了条件の何であるかは本発明の要旨には直接関連しないので、ここでは説明しない。
【０１４７】
Ｃ−３−２．ワーク・エリア上での処理
図１７には、図１６に示した塗る処理手順のうち、ステップＳ３４に相当するワーク・エリア１３を用いた絵を描くための処理手順をフローチャートの形式でより詳細に示している。ワーク・エリア１３は、デジタル空間上のキャンバスを実世界上に表示した一形態である。ユーザは、ワーク・エリア１３内でマウスをドラッグ操作することによって得られる手書きストロークに従って、指定されたインクが塗り付けられる。以下、図１７を参照しながら、ワーク・エリア１３上での作画処理の手順について説明する。
【０１４８】
ワーク・エリア１３内での作画処理は、ユーザがマウス１１３の左ボタンを解除するまでの間継続する（Ｌｏｏｐ１）。
【０１４９】
ワーク・エリア１３内でマウス１１３がドラッグされると（ステップＳ４１）、属性インクが保持されているかどうか（すなわちインク・エリア１１で既にインクを指定しているかどうか）がチェックされる（ステップＳ４２）。
【０１５０】
属性インクを保持している場合には、さらに、マウス１１３がクリック又はドラッグされた場所が描画オブジェクト上であるかどうかをチェックする（ステップＳ４３）。
【０１５１】
描画オブジェクト上でクリック又はドラッグ操作が行なわれた場合には、マウス１１３による指示座標をＵ，Ｖ値に変換する（ステップＳ４４）。そして、このＵ，Ｖ座標値にメッシュが存在するかどうかを判別する（ステップＳ４５）。
【０１５２】
メッシュが存在しない場合には、新たにメッシュを生成する（ステップＳ４７）。メッシュの生成は別途定義された処理ルーチンによって実行されるが、その詳細については後述に譲る。
【０１５３】
既に述べたように、描画オブジェクトに対して生成されたメッシュはメッシュ情報ブロック（図１３を参照のこと）によって管理される。メッシュは、無数の微小な描画単位（セル）に分割されており、各描画単位はデータ・ブロックｍｅｓｈ_ｄａｔａ（図１４を参照のこと）によって管理されている。ステップＳ４６では、マウス１１３でクリック又はドラッグにより通過した各描画単位のｍｅｓｈ_ｄａｔａに、今回指定されている属性インクをインク・リストに書き込む。ｍｅｓｈ_ｄａｔａが既にインクＩＤを持つメッシュに塗った場合には、インクＩＤの値がインク・リストに追加される。
【０１５４】
マウス１１３の左ボタンを楷書すると、処理は上記のＬｏｏｐ１を抜ける。そして、ステップＳ４８では、描画オブジェクトのメッシュ情報ブロックにラベリング値とデフォルトのベクトルＵ，Ｖを付与して、本処理ルーチン全体を終了する。ベクトルＵ，Ｖは、セルラー・オートマトンやパーティクル・システムを用いて属性インクのアニメーション処理を行う際に利用される。ステップＳ４８により与えられたこれらのデフォルト値を、マウス・インタラクション（前述）によって変更することができる。
【０１５５】
図１８には、図１７に示したワーク・エリア１３内での処理のうち、ステップＳ４７のメッシュを生成する処理の手順をフローチャートの形式でより詳細に示している。
【０１５６】
まず、Ｕ，Ｖの値から、マウス１１３がクリック又はドラッグされた位置のポリゴン情報を得る（ステップＳ５１）。但し、ここで言うポリゴンは３角形を想定する。
【０１５７】
次いで、ポリゴンを構成する３辺で最も長いものを保持する（ステップＳ５２）。そして、長い辺を共有する他のポリゴンと結合して４角形を生成して、これをメッシュを構成する描画単位として、各点の情報をこの描画単位を管理するｍｅｓｈ_ｄａｔａに格納する（ステップＳ５３）。
【０１５８】
このようにして、描画オブジェクトから微小な４角形の描画単位に分割したメッシュが生成される。次いで、メッシュを構成する各描画単位について、辺の長さが所定の閾値より大きいかどうかをチェックする（ステップＳ５４）。そして、所定の閾値よりも大きい辺を持つ描画単位に関しては、さらにその細分化処理を適用する（ステップＳ５５）。
【０１５９】
ステップＳ５５におけるメッシュの細分化の処理ルーチンは別途定義されている。図１９には、このメッシュ細分化処理ルーチンをフローチャートの形式で示している。
【０１６０】
まず、対象となる辺を所定の閾値で割り、その値を整数値で保持する（ステップＳ６１）。
【０１６１】
次いで、対象となる辺と対角にある辺をこの保持値で分割する（ステップＳ６２）。
【０１６２】
次いで、分割した個数だけ、メッシュに描画単位を補間するとともに、メッシュ情報ブロックに対応するｍｅｓｈ_ｄａｔａを追加する（ステップＳ６３）。
【０１６３】
Ｃ−３−３．パレット・エリア上での処理
図２０には、図１６に示した塗る処理手順のうち、ステップＳ３６に相当するパレット・エリア１２上での属性インクを混合するための処理手順をフローチャートの形式でより詳細に示している。以下、図２０を参照しながら、パレット・エリア１２上での処理手順について説明する。
【０１６４】
パレット・エリア１２内での作画処理は、ユーザがマウス１１３の左ボタンを解除するまでの間継続する（Ｌｏｏｐ１）。
【０１６５】
ワーク・エリア１３内でマウス１１３がドラッグされると（ステップＳ７１）、属性インクが保持されているかどうか（すなわちインク・エリア１１で既にインクを指定しているかどうか）がチェックされる（ステップＳ７２）。
【０１６６】
パレット・エリア１２でクリック又はドラッグ操作が行なわれると、マウス１１３による指示座標をＵ，Ｖ値に変換する（ステップＳ７３）。そして、パレット・エリア１２内で生成されたメッシュ中の該当する描画単位のｍｅｓｈ_ｄａｔａにこのインクＩＤを加える（ステップＳ７４）。
【０１６７】
メッシュを構成する描画単位のｍｅｓｈ_ｄａｔａにインクＩＤを加える処理は、別途定義されている処理ルーチンによって実行される。図２１には、ｍｅｓｈ_ｄａｔａにインクＩＤを加える処理をフローチャートの形式で示している。
【０１６８】
まず、付け加えるべきインクが属性インクかどうかをチェックする（ステップＳ８１）。
【０１６９】
属性インクである場合には、ｍｅｓｈ_ｄａｔａのインク・リストを検索して、同じインクＩＤを既に保持しているかどうかをチェックする（ステップＳ８２）。
【０１７０】
そして、同じインクＩＤを保持していない場合には、この属性インクをインク・リストに追加する（ステップＳ８３）。
【０１７１】
他方、付け加えるべきインクが属性インクではない場合には、さらに、これがテクニカル・インクであるかどうかをチェックする（ステップＳ８４）。
【０１７２】
テクニカル・インクは、属性インクが持つ属性値を変更するためのインクであり、本実施形態ではインクの濃淡を調整したり、メッシュの描画単位を大まかにしたり細かくすることができる（前述）。
【０１７３】
付け加えるべきインクがテクニカル・インクである場合には、インクの濃淡又は粒度のいずれを指定するインクであるかをさらにチェックする（ステップＳ８５）。
【０１７４】
そして、テクニカル・インクがインクの濃淡を指定するものである場合には、薄める又は濃くするインクの処理を実行する（ステップＳ８６）。また、テクニカル・インクがインクの粒度を指定するものである場合には、大まか又は細かくするインクの処理を実行する（ステップＳ８７）。
【０１７５】
ステップＳ８６及びステップＳ８７におけるテクニカル・インクの処理は、別途定義された処理ルーチンにより実行されるが、各処理ルーチンの詳細については後述に譲る。
【０１７６】
ここで、テクニカル・インクの機能について説明する。テクニカル・インクは、それ自体は、色や模様、自然現象などのビヘイビア／アニメーションを持っている訳ではなく、他の属性インクと組み合わせることにより、属性インクに対して以下のような作用を与えることができる。
【０１７７】
（１）薄める、濃くするインクでの調整
すなわち、炎や煙などの自然現象インクについて、そのアニメーションの動作速度を早くしたり遅くしたりすることができる。例えば、粒子の放出により自然現象を表現する場合には、その放出速度や放出周期を変更することにより、インクの濃淡を表現することができる。
【０１７８】
（２）大まかにする、細かくする
描画オブジェクトを構成するメッシュの粒度を大まかにしたり、細かくする。この結果、テクスチャの質感を大まかにしたり細かくしたりすることができる。また、セルラー・オートマトンやパーティクル・システムを用いてアニメーション作用を表現する場合には、メッシュの粒度により質感を変更することができる。
【０１７９】
例えば、セルラー・オートマトンにおいては、隣接する描画単位間で働く引力や斥力などの相互作用によりアニメーション作用を生成することから、描画単位を大まかにするか細かくするかで相互作用が変わる。また、パーティクル・システムでは各描画単位毎に粒子のエミッタを配設することから、描画単位を大まかにするか細かくするかで質感に影響を与える。
【０１８０】
（３）部分的に変化を加える
テクニカル・インクを塗った部分だけスピードや振る舞いが変化するので、塗った部分の属性だけを部分的に変えることができる。例えば、既に属性インクが塗り付けられた描画オブジェクトの一部分だけをテクニカル・インクを用いてマウス１１３でドラッグすることにより、メッシュのうちマウス・カーソルが横切った部分の描画単位に対してだけテクニカル・インクの作用（薄める／濃くする、あるいは大まかにする／細かくする）が適用される。
【０１８１】
図２２には、図２１に示したメッシュにインクＩＤを加える処理ルーチンのうち、ステップＳ８６における属性インクを薄める又は濃くするテクニカル・インクの処理手順をフローチャートの形式で示している。
【０１８２】
まず、指定されたテクニカル・インクが濃くするインクであるかどうかをチェックする（ステップＳ９１）。
【０１８３】
濃くするインクである場合には、該当する描画単位（すなわち、マウス１１３でクリック又はドラッグされた描画単位）のｍｅｓｈ_ｄａｔａに登録されている属性インクについてのインクの濃淡を示すカウント値Ｔｅｃｈｎｉｃａｌ_ｃｏｕｎｔ［０］を１だけインクリメントする（ステップＳ９２）。
【０１８４】
他方、濃くするインクである場合には、該当する描画単位のｍｅｓｈ_ｄａｔａに登録されている属性インクについてのインクの濃淡を示すカウント値Ｔｅｃｈｎｉｃａｌ_ｃｏｕｎｔ［０］を１だけデクリメントする（ステップＳ９３）。
【０１８５】
図２３には、属性インクの濃淡を示すテクニカル・インクのカウント値Ｔｅｃｈｎｉｃａｌ_ｃｏｕｎｔ［０］による作用の一例を図解している。
【０１８６】
既に述べたように、本実施形態では、各描画単位（セル）に対して、セルラー・オートマトンやパーティクル・システムなどの手法を適用することによって、属性インクが持つ自然現象を表した動きなどのアニメーション作用を生成するようになっている。このうち、セルラー・オートマトンは、隣接する描画単位間で働く引力や斥力などの相互作用によりアニメーション作用を生成する。
【０１８７】
図２３で示す例では、属性インクの濃淡を示すテクニカル・インクのカウント値Ｔｅｃｈｎｉｃａｌ_ｃｏｕｎｔ［０］を大きくした、すなわち濃くした場合には、隣接する描画単位間で働く引力を強くして（あるいは斥力を弱くして）、属性パラメータ値が近隣の描画単位から受ける影響を大きくすることにより、「濃さ」を表現している。逆に、属性インクの濃淡を示すテクニカル・インクのカウント値Ｔｅｃｈｎｉｃａｌ_ｃｏｕｎｔ［０］を小さくした、すなわち薄くした場合には、隣接する描画単位間で働く引力を弱くして（あるいは斥力を強くして）、属性パラメータ値が近隣の描画単位から受ける影響を小さくすることにより、「薄さ」又は「淡さ」を表現している。
【０１８８】
また、図２４には、図２１に示したメッシュにインクＩＤを加える処理ルーチンのうち、ステップＳ８７における属性インクを大まかにする又は細かくするテクニカル・インクの処理手順をフローチャートの形式で示している。
【０１８９】
まず、指定されたテクニカル・インクが細かくするインクであるかどうかをチェックする（ステップＳ１０１）。
【０１９０】
細かくするインクである場合には、該当する描画単位（すなわち、マウス１１３でクリック又はドラッグされた描画単位）のｍｅｓｈ_ｄａｔａを現在処理対象のｍｅｓｈ_ｄａｔａとして保持する（ステップＳ１０２）。
【０１９１】
次いで、４個分の描画単位のｍｅｓｈ_ｄａｔａを保持するためのメモリ領域を確保してから（ステップＳ１０３）、保持中の描画単位を４等分して、４個の描画単位の情報を新たに生成したｍｅｓｈ_ｄａｔａにそれぞれ格納する（ステップＳ１０４）。
【０１９２】
そして、４等分された描画単位の各片を現在処理対象の描画単位の子供として位置付けて、そのｍｅｓｈ_ｄａｔａに子供の描画単位（ｐｉｘｅｌ ｃｈｉｌｄ［４］）としてリストに加えていく（ステップＳ１０５）。
【０１９３】
他方、指定されたテクニカル・インクが細かくするインクでない場合には、該当する描画単位（すなわち、マウス１１３でクリック又はドラッグされた描画単位）が既に子供（ｐｉｘｅｌ ｃｈｉｌｄ［４］）を持っているかどうかをチェックする（ステップＳ１０６）。
【０１９４】
該当する描画単位が既に子供の描画単位を持っている場合には、その最下層の子供をリストから外す（ステップＳ１０７）。この結果、４等分された粒度の細かい描画単位が失われるので、その分だけ描画単位は大きくなる。また、子供に使用していたｍｅｓｈ_ｄａｔａは不要となるので、メモリ上から解放する（ステップＳ１０８）。
【０１９５】
また、ステップＳ１０７において子供が存在しないと判定された場合には、属性インクの大まかさ又は細かさを示すテクニカル・インクのカウント値Ｔｅｃｈｎｉｃａｌ_ｃｏｕｎｔ［１］を１だけインクリメントする（ステップＳ１０９）。
【０１９６】
図２５には、属性インクの大まかさ又は細かさを示すテクニカル・インクを描画オブジェクトに適用した様子を図解している。
【０１９７】
パレット・エリア１２内では、初期化処理時に既にメッシュが生成されている（図１０を参照のこと）。メッシュは、４角形の微小な描画単位（セル）によって構成されている。
【０１９８】
まず、インク・エリア１１上で属性インクの大まかさ又は細かさを調整するためのテクニカル・インクを指定した後、パレット・エリア１２内で属性インクが既にペイントされている領域上でマウス１１３をドラッグする。
【０１９９】
ドラッグしたときの軌跡すなわち手書きストロークが、例えば図２５（ａ）に示す通りであったとする。この場合、テクニカル・インクを適用する対象は、手書きストロークによって横切られた各描画単位である。
【０２００】
大まかにするテクニカル・インクである場合には、図２４に示した処理手順に従って、手書きストロークによって横切られた各描画単位を大まかにする処理を行う。
【０２０１】
また、細かくするテクニカル・インクである場合には、図２４に示した処理手順に従って、手書きストロークによって横切られた各描画単位を大まかにする処理を行う。すなわち、各描画単位を４等分して新たなｍｅｓｈ_ｄａｔａにその情報を格納する。また、４等分された描画単位を、元の描画単位のｍｅｓｈ_ｄａｔａに子供の描画単位としてリストに加えていく。
【０２０２】
図２６には、属性インクの大まかさ又は細かさを示すテクニカル・インクのカウント値Ｔｅｃｈｎｉｃａｌ_ｃｏｕｎｔ［１］による作用の一例を図解している。
【０２０３】
既に述べたように、本実施形態では、各描画単位（セル）に対して、セルラー・オートマトンやパーティクル・システムなどの手法を適用することによって、属性インクが持つ自然現象を表した動きなどのアニメーション作用を生成するようになっている。このうち、セルラー・オートマトンは、隣接する描画単位間で働く引力や斥力などの相互作用によりアニメーション作用を生成する。
【０２０４】
大まかにするテクニカル・インクを適用した場合、図２５（ｂ）に示したように、メッシュの描画単位は大きくなる。図２６（ａ）に示す普通の状態では、隣接する描画単位の間でこれに対し、描画単位が大きくなった場合には、図２６（ｂ）に示す例では、１つの描画単位に結合した結果として元の描画単位間での引力又は（斥力）などの相互作用はなくなる。すなわち、仮想的にメッシュが大きくなったようにして計算を省くことで、「大まか」になったことを実現することができる。
【０２０５】
他方、細かくするテクニカル・インクを適用した場合、図２５（ｃ）に示したように、メッシュの描画単位は４等分される。このような場合には、図２６（ｃ）に示すように、元の描画単位の中に子供となる描画単位を挿入して、これら子供と隣接する各描画単位との引力又は（斥力）などの相互作用の計算を補うことによって、「細かく」なったことを実現することができる。
【０２０６】
Ｃ−３−４．アニメーション作用の処理
以上説明してきたように、本実施形態に係る描画インターフェース１０によれば、ディスプレイ画面上のワーク・エリア１３として仮体されたデジタル・キャンバスに、自然現象を表した動きなどのアニメーション作用を持つ属性インクをペイント又はペーストすることができる。また、ワーク・エリア１３上で使用する属性インクは、パレット・エリア１２を用いて混合したり、テクニカル・インクと混合して濃淡などを調整してから、ワーク・エリア１３上でペイントやペーストに使用することができる。
【０２０７】
ワーク・エリア１３やパレット・エリア１２内で使用される属性インクのアニメーション作用は、例えば、セルラー・オートマトンやパーティクル・システムなどの手法によって実現することができる。ここで、これらの各手法について詳解しておく。
【０２０８】
（１）セルラー・オートマトン（Ｃｅｌｌｌａｒ  Ａｕｔｏｍａｔｏｎ）
セルラーは、英語で「細胞状の」を意味し、オートマトンは「自動機械」を意味する。
【０２０９】
セルラー・オートマトンにおいては、オブジェクトを無数の微小なセル（細胞）の集まりとしてとらえて、隣接するセル間で働く引力や斥力などの相互作用によりアニメーション作用を生成することができる。セルラー・オートマトンにより描画を行う場合には、この引力や斥力を基に各セルの属性パラメータ値を決定すればよい。
【０２１０】
ここでは、説明の簡素化のため、各セルが白又は黒の２種類の属性パラメータ値しか持たない場合を例にとって、セルラー・オートマトンのルールについて説明する。
【０２１１】
セルラー・オートマトンでは、上の階層の連続する３個のセルの状態からその下の階層における真中１つのセルの状態が定まる。但し、白は「死」を、黒は「生」を意味する。例えば、図２７（ａ）に示す例では、すべてのセルが死んでいるので、突然変異で「生まれる」というルールを示している。また、図２７（ｂ）では１匹しか生きていないので、「死滅する」というルールを示している。また、図２７（ｃ）及び図２７（ｄ）では、それぞれ２匹生きているので、真中の状態で「生き延びる」か「死滅する」かが決定されるというルールを示している。また、図２７（ｅ）では、３匹とも生きているので、「食糧不足で死んでしまう」というルールを示している。
【０２１２】
例えば、上記のような初期状態（黒、白、黒、白、白、黒、黒、白、白、黒、白、黒、黒）から始めると、段階を追って下に下に行く。この結果、図２８に示すように、３段階目では、黒、白、黒、黒、白、黒、黒、白、黒、黒、白、黒、黒のようになる。
【０２１３】
次いで、セルラー・オートマトンを用いたアニメーション作用の記述について、図２９を参照しながら説明する。
【０２１４】
既に述べたように、セルラー・オートマトンでは、隣接するセル間で働く相互作用によって、セルの次の状態すなわち属性パラメータ値を計算する（図２９（ａ）を参照のこと）。
【０２１５】
例えば、あるセルは、これを囲む四方八方のセルから８方向の引力（又は斥力）Ｆ１〜Ｆ８が印加されているととらえることができる（図２９（ａ）を参照のこと）。したがって、真中のセルに対しては、Ｆ＝（Ｆ１＋Ｆ２＋Ｆ３＋Ｆ４＋Ｆ５＋Ｆ６＋Ｆ７＋Ｆ８）／８という力が作用し、このＦを基にセルの位置を決定することにより、セルに「動き」という作用を付与することができる。
【０２１６】
次いで、セルラー・オートマトンを利用した塗る作用の表現について、図３０を参照しながら説明する。
【０２１７】
ワーク・エリア１３内で、マウス１１３をドラッグするなどして手書きストロークを入力すると、ストロークの軌跡は塗られたことを意味し、塗られた部分すなわち描画オブジェクトには複数の微小な描画単位すなわちセルからなるメッシュが補間される。
【０２１８】
各セルには、Ｕ，Ｖ情報のデフォルト値が与えられている（前述）。デフォルト状態のＵ，Ｖ情報は、マウス・インタラクションで変更することができる。このＵ，Ｖ情報を用いて、セルの色や位置の変化（動き）を計算する。
【０２１９】
（２）パーティクル・システム
パーティクル・システムは、エミッタから放出されるパーティクルに対してさまざまな力をかけるという現象を利用するものであり、各描画単位毎にエミッタを配置することによって、描画オブジェクトに対して動きの表現を与えることができる。
【０２２０】
図３１には、パーティクル・システムの原理図を示している。同図に示すように、パーティクル・システムは、パーティクルと、所定周期でパーティクルを放出するエミッタと、エミッタに対してさまざまな作用を及ぼすフォースで構成される。
【０２２１】
エミッタは、放出するパーティクルと、放出の方向と広がり角度、放出速度などをパラメータとして持つ。また、フォースとは、パーティクルに印加する重力、静電気力（引力と斥力）、渦巻きの効果、風の効果、乱流の効果など、非接触又は間接的な作用を及ぼす。また、パーティクルは、寿命やフォースに対する特性、サイズ、色と透明度、テクスチャなどをパラメータとして持つ。さらに、パーティクルが活動する場に障害物を設置することができ、障害物に対するパーティクルのバウンドなどの現象を動きとして利用することもできる。
【０２２２】
次いで、パーティクル・システムを利用した塗る作用の表現について、図３２を参照しながら説明する。
【０２２３】
ワーク・エリア１３内で、マウス１１３をドラッグするなどして手書きストロークを入力すると、ストロークの軌跡は塗られたことを意味し、塗られた部分すなわち描画オブジェクトには複数の微小な描画単位すなわちセルからなるメッシュが補間される。
【０２２４】
各描画単位毎に（例えばその中心に）、パーティクルのエミッタが配置される。各エミッタは、属性インクの属性パラメータ値によって求められたパーティクルを放出する。放出された各パーティクルは放出速度、放出方向、並びにフォースの影響に応じた軌跡を描く。
【０２２５】
パーティクル、エミッタ、及びフォースが持つ属性値には、メッシュを補間した時点ではデフォルト値が代入される。その後、マウス・インタラクションでパラメータを変更することができる。
【０２２６】
Ｃ−４．シーンの計算
上述した描画ルーチンでは、メッシュ化された描画オブジェクトを構成する各描画単位毎に塗られた属性インクによる描画情報が計算されて、その計算結果は各描画単位についてのｍｅｓｈ_ｄａｔａに格納される。
【０２２７】
図９に示した作画処理の全体処理ルーチンにおける、ステップＳ６では、これら各描画単位毎のｍｅｓｈ_ｄａｔａを基に、シーンの計算が行われる。この項では、シーンの計算処理について説明する。
【０２２８】
図３３には、シーンの計算処理の手順をフローチャートの形式でより詳細に示している。
【０２２９】
ワーク・エリア１３内で入力された手書きストロークを基に生成された描画オブジェクトは、無数の微小な描画単位からなるメッシュで補間されるとともに、ラベリング値が割り当てられている。描画オブジェクトはシーンの計算は、ラベリングされた各描画オブジェクト毎に行われる（Ｌｏｏｐ１）。
【０２３０】
１つの描画オブジェクトは、適用されたインクを共有している。Ｌｏｏｐ２では、インク・リスト（図１５を参照のこと）に登録されている各インク毎に、テクニカル・インクの値とベクターＵ，Ｖ値を基に、インク・アルゴリズムを適用して（ステップＳ１１１）、その計算結果を保持しておく（ステップＳ１１２）。
【０２３１】
インク・アルゴリズムは、主に、属性インクで塗られた描画オブジェクトに対して、その属性パラメータ値に基づくアニメーション作用すなわち動きを与える処理を行う。既に述べたように、属性インクは、自然現象のような時々刻々と様相が変化する動的な現象を表現するためのインクであるが、水や雲、雪、炎、煙など対象とする現象毎にその処理手順は異なる。また、同じ自然現象を対象とする場合であっても、セルラー・オートマトン、又はパーティクル・システムのいずれの手法を利用するかによってもインク・アルゴリズムは相違する。インク・アルゴリズムの処理手順の詳細については後述に譲る。
【０２３２】
次いで、Ｌｏｏｐ３及びＬｏｏｐ４で構成される閉ループでは、ラベリング値が割り当てられた描画オブジェクトの塗られた部分に対して、インク・リストに登録されているすべてのインクについて、ステップＳ１１１におけるインク・アルゴリズムの計算結果の和を保持する（ステップＳ１１３）。
【０２３３】
ステップＳ１１４では、計算結果の平均をとり、現在の描画オブジェクトの状態とする。この平均化処理により、２以上の属性インクを混合する処理が実現される。
【０２３４】
Ｃ−４−１．インク・アルゴリズムの計算例１（炎の場合）
属性インクは、自然現象のような時々刻々と様相が変化する動的な現象を表現するためのインクであるが、水や雲、雪、炎、煙など対象とする現象毎にその処理手順は異なる。また、同じ自然現象を対象とする場合であっても、セルラー・オートマトン、又はパーティクル・システムのいずれの手法を利用するかによってもインク・アルゴリズムは相違する。
【０２３５】
この項では、炎を表す属性インク、すなわち炎インクを処理するインク・アルゴリズムについて説明する。
【０２３６】
図３４には、炎インクを処理するためのインク・アルゴリズムをフローチャートの形式でより詳細に示している。但し、このアルゴリズムは、セルラー・オートマトンに従うものとする。
【０２３７】
まず、描画オブジェクトを構成する描画単位についてのｍｅｓｈ_ｄａｔａを一時変数にコピーする（ステップＳ１２１）。
【０２３８】
次いで、属性インクの濃淡を表すテクニカル・インクの値ＴｅｃｈｎｉｃａｌＩｎｋ［０］と乱数から発生確率を計算して（ステップＳ１２２）、その計算結果を保持する（ステップＳ１２３）。
【０２３９】
次いで、描画オブジェクトを構成するすべての描画単位に対して、大まかさ又は細かさを表すテクニカル・インクの値Ｔｅｃｈｎｉｃａｌ Ｉｎｋ［１］に従って色の計算を行う（ステップＳ１２４）。Ｔｅｃｈｎｉｃａｌ Ｉｎｋ［１］に従った色の計算は、別途定義された処理ルーチンによって実行されるが、その詳細については後述に譲る。
【０２４０】
次いで、各描画単位の色を、炎の色を定義するカラーパレット（図示しない）により計算する（ステップＳ１２５）。
【０２４１】
そして、描画オブジェクトのメッシュを構成するすべての描画単位について色を計算し終えると、その計算結果をｍｅｓｈ＿ｄａｔａに代入する（ステップＳ１２６）。
【０２４２】
ステップＳ１２２では乱数を使用しているが、例えば発火点をランダムに点滅させることによって、描画オブジェクトに対して炎を表す独特の揺らぎの効果を与えることができる。
【０２４３】
また、ステップＳ１２５ではカラー・パレットを使用しているが、カラーパレットを黒→赤→黄色→白のグラデーションで構成することによって、ぼかして平均化することで発火点の周辺を明るい黄色にして、その上にいくに従って赤みを増すような効果を与えることができる。
【０２４４】
図３５には、ステップＳ１２４における大まかさ又は細かさを表すテクニカル・インクの値Ｔｅｃｈｎｉｃａｌ Ｉｎｋ［１］に従った色の計算を行う処理手順を、フローチャートの形式でより詳細に示している。
【０２４５】
まず、計算対象となる描画単位のｍｅｓｈ_ｄａｔａから、大まかさ又は細かさを表すテクニカル・インクの値Ｔｅｃｈｎｉｃａｌ_ｃｏｕｎｔ［１］を保持する（ステップＳ１３１）。
【０２４６】
次いで、この描画単位と隣接する上下及び左右（並びに左右斜め方向の上下）で隣接する各描画単位のｍｅｓｈ_ｄａｔａを参照して、これらのＴｅｃｈｎｉｃａｌ_ｃｏｕｎｔ［１］が保持値と等しいかどうかをチェックする（ステップＳ１３２）。
【０２４７】
そして、これらのＴｅｃｈｎｉｃａｌ_ｃｏｕｎｔ［１］が保持値と等しくない場合には、これらの色の和を保持する（ステップＳ１３３）。
【０２４８】
このようにして隣接する描画単位との間でＴｅｃｈｎｉｃａｌ_ｃｏｕｎｔ［１］の比較を終えると、色の平均を計算する（ステップＳ１３４）。
【０２４９】
Ｃ−４−２．インク・アルゴリズムの計算例２（水の場合）
この項では、水を表す属性インク、すなわち水インクを処理するインク・アルゴリズムについて説明する。
【０２５０】
図３６には、水インクを処理するためのインク・アルゴリズムをフローチャートの形式でより詳細に示している。但し、このアルゴリズムは、セルラー・オートマトンに従うものとする。
【０２５１】
まず、描画オブジェクトを構成する描画単位についてのｍｅｓｈ_ｄａｔａを一時変数にコピーする（ステップＳ１４１）。
【０２５２】
そして、塗られた部分の各描画単位毎に、インク・アルゴリズムの処理を行なう（Ｌｏｏｐ１）。
【０２５３】
まず、現在の描画単位を保持すると（ステップＳ１４２）、この描画単位と隣接する上下及び左右（並びに左右斜め方向の上下）で隣接する各描画単位との間で（Ｌｏｏｐ２）、現在の描画単位との距離を計算する（ステップＳ１４３）。この距離計算は、ベクター値Ｕ，Ｖを基に行われる。
【０２５４】
次いで、現在の描画単位が持つ大まかさ又は細かさを表すテクニカル・インクの値Ｔｅｃｈｎｉｃａｌ_ｃｏｕｎｔ［１］に従って力の計算を行なう（ステップＳ１４４）。Ｔｅｃｈｎｉｃａｌ Ｉｎｋ［１］に従った力の計算は、別途定義された処理ルーチンによって実行されるが、その詳細については後述に譲る。
【０２５５】
そして、現在保持している描画単位が隣接する各描画単位から及ぼされている力の計算を終了すると、これらの力の平均値を計算して、これを描画単位の位置に反映させる（ステップＳ１４５）。
【０２５６】
このような処理をすべての描画単位に対して適用することにより、水インクのシーンを算出することができる。
【０２５７】
図３７には、ステップＳ１４４における大まかさ又は細かさを表すテクニカル・インクの値Ｔｅｃｈｎｉｃａｌ Ｉｎｋ［１］に従った力の計算を行う処理手順を、フローチャートの形式でより詳細に示している。
【０２５８】
まず、計算対象となる描画単位のｍｅｓｈ_ｄａｔａから、大まかさ又は細かさを表すテクニカル・インクの値Ｔｅｃｈｎｉｃａｌ_ｃｏｕｎｔ［１］を保持する（ステップＳ１５１）。
【０２５９】
次いで、この描画単位と隣接する上下及び左右（並びに左右斜め方向の上下）で隣接する各描画単位のｍｅｓｈ_ｄａｔａを参照して、これらのＴｅｃｈｎｉｃａｌ_ｃｏｕｎｔ［１］が保持値と等しいかどうかをチェックする（ステップＳ１５２）。
【０２６０】
そして、これらのＴｅｃｈｎｉｃａｌ_ｃｏｕｎｔ［１］が保持値と等しくない場合には、計算対象となる描画単位のＴｅｃｈｎｉｃａｌ_ｃｏｕｎｔ［１］の方が小さいかどうかをさらにチェックする（ステップＳ１５３）。
【０２６１】
計算対象となる描画単位のＴｅｃｈｎｉｃａｌ_ｃｏｕｎｔ［１］の方が小さい場合には、描画単位間の距離を計算する（ステップＳ１５４）。
【０２６２】
他方、計算対象となる描画単位のＴｅｃｈｎｉｃａｌ_ｃｏｕｎｔ［１］の方が大きい場合には、同じサイズの描画単位を一時的に補い（ステップＳ１５５）、この擬似的な描画単位との間で距離計算を行ってから（ステップＳ１５６）、擬似的な描画単位を元の状態に解放する（ステップＳ１５７）。
【０２６３】
このような大まかさ又は細かさを表すテクニカル・インクの値Ｔｅｃｈｎｉｃａｌ Ｉｎｋ［１］に従った距離計算を描画オブジェクト内のすべての描画単位に対して実行し終えると、描画単位間の距離から力を計算することができる（ステップＳ１５８）。
【０２６４】
Ｃ−４−３．インク・アルゴリズムの計算例３（パーティクル・システムを適用した場合）
属性インクは、自然現象のような時々刻々と様相が変化する動的な現象を表現するためのインクであるが、同じ自然現象を対象とする場合であっても、セルラー・オートマトン、又はパーティクル・システムのいずれの手法を利用するかによってもインク・アルゴリズムは相違する。
【０２６５】
図３８には、パーティクル・システムを適用した場合のインク・アルゴリズムをフローチャートの形式でより詳細に示している。
【０２６６】
この項では、パーティクル・システムを適用した場合におけるインク・アルゴリズムについて説明する。
【０２６７】
この場合、塗られた部分すなわち描画オブジェクトの各描画単位に対して、パーティクルの放出を行なう（Ｌｏｏｐ１）。
【０２６８】
まず、属性インクの濃淡を表すテクニカル・インクの値Ｔｅｃｈｎｉｃａｌ Ｉｎｋ［０］と乱数を基に、パーティクルを生成する（ステップＳ１６１）。
【０２６９】
次いで、エミッタにおける各パーティクルの放出速度を設定する（ステップＳ１６２）。
【０２７０】
次いで、各パーティクルの色とサイズを設定する（ステップＳ１６３）。
【０２７１】
次いで、重力など、パーティクルに作用する外的な力を設定する（ステップＳ１６４）。
【０２７２】
そして、各パーティクルの寿命を設定する（ステップＳ１６５）。
【０２７３】
Ｃ−５．シーンの描画
上述した描画ルーチンでは、メッシュ化された描画オブジェクトを構成する各描画単位毎に塗られた属性インクによる描画情報が計算されて、その計算結果は各描画単位についてのｍｅｓｈ_ｄａｔａに格納される。さらに、シーンの計算処理では、これら各描画単位毎のｍｅｓｈ_ｄａｔａを基に、シーンの計算が行われる。
【０２７４】
図９に示した作画処理の全体処理ルーチンにおけるステップＳ７では、さらにシーンの計算結果を基に、シーンの描画を行なう。この項では、シーンの描画処理について説明する。
【０２７５】
図３９には、シーンの描画処理の手順をフローチャートの形式でより詳細に示している。
【０２７６】
まず、あらかじめ存在する描画オブジェクトをワーク・エリア１３上に描画しておく（ステップＳ１７１）。
【０２７７】
そして、塗られた部分すなわち描画オブジェクトの各描画単位に対して、描画処理を行なう（Ｌｏｏｐ１）。
【０２７８】
まず、描画単位の描画情報を格納するｍｅｓｈ_ｄａｔａを参照して（図１４を参照のこと）、描画単位の各頂点についての変数ｒｅｄ［４］，ｇｒｅｅｎ［４］，ｂｌｕｅ［４］，ａｌｐｈａ［４］の値に従って、色を設定する（ステップＳ１７２）。
【０２７９】
次いで、描画単位の各頂点についてのベクターの値ｕ［４］，ｖ［４］、並びに、テクスチャの名前ｔｅｘｔｕｒｅ_ｎａｍｅに従って、テクスチャを設定する（ステップＳ１７３）。
【０２８０】
次いで、描画単位の各頂点についての位置情報ｘ［４］，ｙ［４］，ｚ［４］に従って、描画単位の位置を設定する（ステップＳ１７４）。
【０２８１】
そして、描画単位の描画処理を行なう（ステップＳ１７５）。
【０２８２】
このようにして、描画オブジェクトを構成する各描画単位についての描画処理を終えると、設定されているカメラ位置すなわち視点を基に、３次元的な描画情報を座標変換して、２次元画像を生成する（ステップＳ１７６）。
【０２８３】
そして、得られた２次元画像を、ディスプレイ１１１上のワーク・エリア１３に表示する（ステップＳ１７７）。
【０２８４】
図４０には、パーティクル・システムを適用して自然現象インクである雲インクを作画する様子を示している。
【０２８５】
ユーザは、インク・エリア１１で雲インクを指定した後、ワーク・エリア１３上で、マウス１１３のドラッグ操作を行なって、丸囲みした手書きストロークを入力する（図４０（ａ）を参照のこと）。さらに、丸内でドラッグ操作を引き続き行って、塗りつぶす（図４０（ｂ）を参照のこと）。塗りつぶされた描画オブジェクトは、無数の微小な描画単位からなるメッシュに分割される。
【０２８６】
次いで、シーンの計算を行なう。この場合、各描画単位毎にエミッタを設定するとともに、雲インクが持つ属性パラメータ値を基に、エミッタの放出するパーティクル、放出の方向と広がり角度、放出速度、パーティクルに対して印加する重力、静電気力（引力と斥力）、渦巻きの効果、風の効果、乱流の効果、パーティクルの寿命やフォースに対する特性、サイズ、色と透明度、テクスチャを設定して、各エミッタからパーティクルを放出させる（図４０（ｃ）を参照のこと）。
【０２８７】
放出されたパーティクルは寿命を持つとともに、消滅するまでの間、外的な力の作用に従って空間をさまよう。そして、全体としては、雲が動いているようなイメージになる（図４０（ｄ）を参照のこと）。
【０２８８】
また、図４１には、パーティクル・システムを適用して自然現象インクである煙インクを作画する様子を示している。
【０２８９】
ユーザは、インク・エリア１１で雲インクを指定した後、ワーク・エリア１３上で、マウス１１３のドラッグ操作を行なって、煙が漂う軌跡を描いた手書きストロークを入力する（図４１（ａ）を参照のこと）。
【０２９０】
次いで、シーンの計算を行なう。この場合、各描画単位毎にエミッタを設定するとともに、煙インクが持つ属性パラメータ値を基に、エミッタの放出するパーティクル、放出の方向と広がり角度、放出速度、パーティクルに対して印加する重力、静電気力（引力と斥力）、渦巻きの効果、風の効果、乱流の効果、パーティクルの寿命やフォースに対する特性、サイズ、色と透明度、テクスチャを設定して、各エミッタからパーティクルを放出させる（図４１（ｂ）を参照のこと）。
【０２９１】
放出されたパーティクルは寿命を持つとともに、消滅するまでの間、外的な力の作用に従って空間をさまよう。そして、全体としては、煙が流れているようなイメージになる（図４１（ｃ）を参照のこと）。
【０２９２】
ワーク・エリア１３上では、属性インクを指定した状態でマウス１１３をドラッグ操作することによって、入力された手書きストロークに沿って属性インクからなるアニメーションがリアルタイムで生成される。図４２には、ストローク・データからアニメーションを生成するための処理手順をフローチャートの形式で示している。
【０２９３】
まず、リストの先頭を現在の位置とする（ステップＳ１８１）。
【０２９４】
そして、ワーク・エリア１３上でドラッグされた手書きストロークすなわち描画ストロークをストローク方向に沿って連続する微小な描画単位の集合としてとらえ、各描画単位毎の描画情報を格納するｍｅｓｈ_ｄａｔａのデータ・リストとして描画処理する（Ｌｏｏｐ１）。
【０２９５】
まず、処理対象となる描画単位について、現在の位置と次の位置との距離を求める（ステップＳ１８２）。
【０２９６】
次いで、現在の位置をパーティクルの発生位置とする（ステップＳ１８３）。
【０２９７】
そして、差を基にパーティクルの放出速度を設定し（ステップＳ１８４）、各パーティクルの色とサイズを設定する（ステップＳ１８５）。
【０２９８】
また、重力などの外的な力を設定するとともに（ステップＳ１８６）、各パーティクルの寿命を設定する（ステップＳ１８７）。
【０２９９】
次いで、次の位置を現在の位置として（ステップＳ１８８）、上述したパーティクルの描画処理を繰り返し実行する。
【０３００】
Ｄ．３Ｄキャンバス上での描画
本実施形態に係る描画インターフェース１０は、デジタル空間上のキャンバス上での手書きストロークによる属性インクを用いた作画を実現するものである。このデジタル・キャンバス上での描画内容は、ワーク・エリア１２に仮体されている。
【０３０１】
ワーク・エリア１３自体は２次元表示平面であるが、手書きストロークにより作画された描画オブジェクトをコンピュータ処理により３次元平面上に割り付けて、座標変換や回転などの３次元的な画像変形処理を行なうことができる。
【０３０２】
例えば、本実施形態に係る描画インターフェース１０を本出願人に既に譲渡されている特願２０００−２０９７３１号明細書に開示されている画像編集システム（先述）に適用することができる。
【０３０３】
図４３には、３Ｄキャンバスを設定するための処理手順をフローチャートの形式で示している。
【０３０４】
まず、地平線のみの３次元空間がディスプレイ・スクリーン上に現れる。そして、この空間に対してストローク線を引くと（ステップＳ１９１）、マウス１１３による入力座標が地面のＵ，Ｖ座標に変換される（ステップＳ１９２）。
【０３０５】
このＵ，Ｖ値と地面の縦横の長さから３次元位置の計算を行ない（ステップＳ１９３）、ストロークを底辺とする３次元キャンバスを計算する（ステップＳ１９４）。
【０３０６】
このような３次元キャンバスを用いた場合、スクリーンを介してユーザが描いた絵はキャンバス上にマッピングされるので、結果として３次元的な絵を描いたことになる。キャンバス設定と絵を描く操作を重ねることで、所望のシーンを構築することができる。また、キャンバス回転や視点移動により所望の３次元シーンが得られる。
【０３０７】
図８（先述）には、ユーザが描いたストローク線に従って３Ｄキャンバスが生成される様子（図８（ａ）〜（ｂ））、生成された３Ｄキャンバス上に手書きストロークに沿ってペイントしたりペーストしたりする様子（図８（ｃ）〜（ｅ））、並びにキャンバス回転により所望の３Ｄシーンを生成する様子（図８（ｆ））を示している。
【０３０８】
このような３Ｄキャンバス上に、自然現象インクなどの属性インクを塗ることができる。このような場合、上述したように、描画オブジェクトをメッシュに分割して描画情報を管理するとともに、セルラー・オートマトンやパーティクル・システムなどの手法を適用して、炎や雲などの時々刻々と描画内容が変動するアニメーション作用を３Ｄ空間上に付与することができる。
【０３０９】
また、図４４に示すように、ワーク・エリア１３上で手書きストロークにより作画された２次元的な描画オブジェクト（図４４（ａ））に対して奥行き成分を付与して（図４４（ｂ））、３次元的な描画オブジェクトに拡張することができる（図４４（ｃ））。このような場合も、描画オブジェクトに対して座標変換や回転などの３次元的な画像変形処理を行なうことができる。描画オブジェクトを３次元に拡張することにより、よりリアルな表現が可能になる。
【０３１０】
図４５には、ワーク・エリア１３上で手書きストロークにより作画された２次元的な描画オブジェクトを３次元的な描画オブジェクトに拡張するための処理手順をフローチャートの形式で示している。このような場合、描画オブジェクトをメッシュに分割したときの各描画単位は、"Ｖｏｘｅｌ"と呼ばれる３次元的な描画単位に変換される。
【０３１１】
まず、ワーク・エリア１３すなわちデジタル・キャンバス上に作画されたデータを一時変数にコピーする（ステップＳ２０１）。
【０３１２】
次いで、コピーされたデータをラベリング処理して（ステップＳ２０２）、ラベリング結果をリストに保持する（ステップＳ２０３）。
【０３１３】
次いで、ラベリング・リスト全体に対して（Ｌｏｏｐ１）、描画領域の縦軸に沿って（Ｌｏｏｐ２）、２次元的な描画単位を３次元的な描画単位であるＶｏｘｅｌに変換する（ステップＳ２０４）。
【０３１４】
図４６には、ステップＳ２０４において実行される、描画オブジェクトを構成する各描画単位を３次元的な描画単位であるＶｏｘｅｌに変換するための処理手順をフローチャートの形式で示している。
【０３１５】
まず、描画領域の横軸に連結成分を探索していく（ステップＳ２１１）（図４７を参照のこと）。
【０３１６】
次いで、連結成分の中点を計算する（ステップＳ２１２）（図４８を参照のこと）。
【０３１７】
次いで、中点を軸に、横軸を奥行き成分に拡張する（ステップＳ２１３）。次いで、中点が１０で、最も深い位置を１にして描画単位を補間していく（ステップＳ２１４）（図４９を参照のこと）。
【０３１８】
そして、メッシュを基に縦軸との関係からＶｏｘｅｌを構築する（ステップＳ２１５）（図５０を参照のこと）。
【０３１９】
描画オブジェクトを３次元空間上に拡張した場合も、描画オブジェクトに対して自然現象インクなどの属性インクを塗ることができる。このような場合、Ｖｏｘｅｌを最小の描画単位として描画情報を管理するとともに、各Ｖｏｘｅｌに対してセルラー・オートマトンやパーティクル・システムなどの手法を適用することによって、炎や雲などの時々刻々と描画内容が変動するアニメーション作用を３Ｄ空間上に拡張することができる。
【０３２０】
Ｅ．ツールの適用
本実施形態に係る描画インターフェース１０においては、コピー・アンド・ペーストのような一般的な文書編集処理に用意されている機能も、ワーク・エリア１３内でのＧＵＩ操作で行うことができる（前述）。
【０３２１】
例えば、ワーク・エリア１３内に表示されているある描画オブジェクトを範囲指定した後（図５１（ａ）を参照のこと）、他の場所にドラッグ・アンド・ドロップすることにより、オブジェクトが複製される（図５１（ｂ）を参照のこと）。
【０３２２】
描画オブジェクトが属性インクでペイント若しくはペーストされているような場合には、元のオブジェクトが持つ属性パラメータ値を継承する。例えば、炎インクで描かれた描画オブジェクトを、幾つも生成することができる。
【０３２３】
図５２には、本実施形態に係る描画インターフェース１０において、描画オブジェクトをコピー・アンド・ペースト操作するための処理手順をフローチャートの形式で示している。
【０３２４】
まず、デジタル・キャンバス（ワーク・エリア１３）又はパレット・エリア１２内の一部を選択（又は範囲指定）して、コピーする（ステップＳ２２１）。
【０３２５】
選択された領域の描画情報は、所定のメモリ領域（例えば、クリップボード）上に一時的に保持される（ステップＳ２２２）。
【０３２６】
そして、選択した描画オブジェクトをドラッグするとともに、所望の位置でドラッグ操作を解除すなわちドロップすることにより、ペースト位置を決める。この結果、メモリ領域に保持されていた描画情報がこの場所に貼り付けられる（ステップＳ２３２）。
【０３２７】
このとき、選択又は範囲指定された描画オブジェクトが属性インクでペイント若しくはペーストされている場合には、元のオブジェクトが持つ属性パラメータ値を継承する。
【０３２８】
Ｆ．コントロール・モード
図９に示した作画処理の全体処理ルーチンにおけるステップＳ５では  コントロール・ルーチンが実行される。このコントロール・ルーチンでは、また、ワーク・エリア１３内では、描画オブジェクトにペイント又はペーストされている属性インクの属性パラメータ値のコントロールが行われる。
【０３２９】
属性パラメータ値の変更は、マウス・インタラクションなどの簡単なＧＵＩ操作を利用して行なわれる。例えば、マウスの右ボタンを押すとコントロール・モードになり、マウス・インタラクションが行なわれると、ドラッグした軌跡は属性インクの属性パラメータ値として入力される。例えば、マウス・インタラクションで取得されたドラッグ方向に従って、アニメーションの方向を定めることができる（図５３を参照のこと）。
【０３３０】
描画モードやコントロール・モードなどのモード設定、モード切り替えは、例えばマウスのボタン操作によって行なうようにする。例えば、マウスの左ボタンを押すと描画モードになり、ドラッグした軌跡は手書きストロークとして入力される。また、マウスの右ボタンを押すとコントロール・モードになり、マウス・インタラクション（前述）が行なわれると、ドラッグした軌跡は属性インクの属性パラメータ値として入力される。
【０３３１】
図５４には、コントロール・モード下で、マウス・インタラクションにより属性インクの属性パラメータ値を生成するための処理手順をフローチャートの形式で示している。
【０３３２】
マウス１１３の右ボタンがクリックされると（ステップＳ２３１）、右ボタンが再び開放されるまでの間、システムはコントロール・モードとして動作する。
【０３３３】
マウス１１３のドラッグ操作が描画オブジェクト上で行なわれると（ステップＳ２３２）、そのマウス位置を逐次リストに保持していく（ステップＳ２３３）。
【０３３４】
そして、マウス１１３の右ボタンが解放されて、コントロール・モードから通常の描画モードに復帰すると、取得されたマウス１１３のドラッグ情報からパラメータ値を生成する（ステップＳ２３４）
【０３３５】
また、図５５には、図５４に示したフローチャート中のステップＳ２３４に相当する、マウス１１３のドラッグ情報からパラメータ値を生成するため処理手順をフローチャートの形式で示している。
【０３３６】
まず、マウス・インタラクションによって、リストにデータが生成されているかどうかをチェックする（ステップＳ２４１）。
【０３３７】
リストが生成されている場合には、リスト全体に対して、点の差からベクトルを計算して（ステップＳ２４２）、差をオブジェクトの各描画単位に対応させて、ｍｅｓｈ_ｄａｔａ（図１４を参照のこと）のベクトル値に反映させる（ステップＳ２４３）。
【０３３８】
［追補］
以上、特定の実施形態を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【０３３９】
【発明の効果】
以上詳記したように、本発明によれば、マウスなどの装置によって入力された手書きストロークに従って計算機システム上で２次元的又は３次元的なイメージを好適に作成・編集することができる、優れた画像編集装置及び画像編集方法、記憶媒体、並びにコンピュータ・プログラムを提供することができる。
【０３４０】
また、本発明によれば、マウス操作などによりユーザ入力されたストロークを筆やブラシによる手書き操作として扱うことにより、デジタル空間のキャンバス上に水彩画又は油絵などのペインティングを模した擬似的な描画を行なうための直感的な描画インターフェースを提供することができる、優れた画像編集装置及び画像編集方法、記憶媒体、並びにコンピュータ・プログラムを提供することができる。
【０３４１】
また、本発明によれば、ユーザ入力されたストロークに従って、デジタル空間のキャンバス上で、テクスチャやアニメーションなどのさまざまな属性（ａｔｔｒｉｂｕｔｅ）やアクティビティ（ａｃｔｉｖｉｔｙ）を持ったインクを利用したペインティングを行なうことができる、優れた画像編集装置及び画像編集方法、記憶媒体、並びにコンピュータ・プログラムを提供することができる。
【０３４２】
また、本発明によれば、変数の設定やスクリプトの記述など専門的な知識を必要とせず、簡単で且つ直感的なＧＵＩ操作によって描画オブジェクトに対してアニメーションやさまざまな属性を付けることができる、優れた画像編集装置及び画像編集方法、記憶媒体、並びにコンピュータ・プログラムを提供することができる。
【０３４３】
本発明によれば、ユーザは、デスクトップに用意された描画インターフェースを介して、属性を持つインクの中から任意のインクを選択し、塗るだけでインクが持つアニメーションや質感といった属性を描画オブジェクトに付け加えることができる。インクを選び、塗ることがユーザ操作のすべてであり、変数の設定やスクリプトの記述をしないで、２次元画像、３次元シーンや３次元オブジェクトに対してアニメーションや質感を付けることができる。描画インターフェース上でのユーザ操作は、実世界で絵の具を塗るのと同じ操作であり、誰でも簡単且つ直感的に操作することができる。本発明において対象とするインク属性は、自然現象（雲、火、雪、煙、霧、水など）、質感（服、鉄、ガラス、ゴムなど）とその他（毛、埃、地面など）などであり、塗ることで付けることが可能で、且つ、空間的な変化や時間や光源によって変化する現象を含む。
【０３４４】
アニメーションや属性を表現する手法として、セルラー・オートマトンによるメッシュをベースとした表現手法や、パーティクルを用いた表現手法などを採用して、塗った部分に対して自動的に計算が行なわれる。本発明に係る描画インターフェース上では、表現方法と塗るインタラクションが直接結び付いている。インク属性を表現するこれらの手法は、写実的な属性の表現が可能であり、リアルな属性も塗るという操作だけで簡単に実現することができる。
【０３４５】
また、本発明に係る描画インターフェース上ではパレットが用意されているので、異なる属性を持つインクをパレット上で混ぜ合わせることで、新しい（若しくはカスタマイズされた）インクを作ることができる。混ぜる操作に関しても、変数の設定やスクリプトの記述などの専門的な知識や特殊な作業は必要としない。また、実世界では不可能な、水のインクと火のインクを混ぜた仮想的なインクを作ることも可能である。
【０３４６】
さらに、本発明に係る描画インターフェース上では、属性を表すインクの他に、インタラクションを支援するインク（薄める又は淡くするインクや、濃くするインク）なども含まれている。アニメーションのスピードや質感の細かさなども、これらのインクと属性インクとをパレット上で組み合わせることで、塗る操作を基本として調整することができる。
【０３４７】
また、本発明に係る描画インターフェース上では、塗った部分をダイレクトに計算するので、プレビュー画面の操作やレンダリングを行なわなくても、属性インクの効果を画面上で確認にすることができる。この結果、ユーザの作業効率が格段に向上する。
【０３４８】
本発明が対象とするインク属性は、従来の画像編集ツールでは変数の設定やスクリプトの記述などの専門的な作業を必要としていたが、本発明によれば操作が簡略化されるので、初心者や子供でも簡単に描画オブジェクトに属性を付けることができる。
【０３４９】
このような簡単操作により、３次元コンピュータ・グラフィックスの初心者であっても、動きを伴った３次元シーン（建築シミュレーションなど）を構築することや、子供の教育現場での利用が可能になる。２次元画像の操作に関しても、雪のインクを使ってクリスマス・カードを書くことや、動きのある日記を書くことが可能となる。また、混ぜることで、さまざまなインクを生み出すことが可能であり、現在、世の中に存在しない属性やアニメーションのインクも生み出すことができ、そうしたインクが特殊な効果をもたらすことができる。
【０３５０】
また、本発明に係る画像編集装置及び画像編集方法では、２次元画像はビットマップをベースとして構成されるので、他の画像編集システムへの移植が容易である。
【０３５１】
また、本発明に係る描画インターフェースの用途は、単に塗ることにとどまらず、インク属性を文章に反映させることも可能である。例えば、水のインクを使って文字を書くことで、揺れる文章の表現も可能である。Ｗｅｂコンテンツにエフェクトとして適用することもできる。
【０３５２】
また、本発明に係る描画インターフェースによれば、３次元オブジェクトを対象としてオブジェクトの変形も、インクを塗るという操作を介して行うことができる。たとえば、変形させたい部分に水インクを塗り、中心をマウスでドラッグすることで、水の動きをベースとした緩やかな変形を行なうことが可能である。本発明によれば、ユーザは、３次元モデルのポリゴンと頂点を意識せずにこうした変形操作を行うことができる。
【０３５３】
また、粘土属性を変形に用いる既存の手法も多く存在するが、それらはすべて粘土として存在しているので、部分的に鋭角に形成することは困難である。これに対し、本発明によれば、変形において、部分的にインクを塗り、マウスで押したり引張ったりするだけで、簡単に変形作業を行なうことができる。
【図面の簡単な説明】
【図１】本発明の実施に供される画像編集装置１００のハードウェア構成を模式的に示した図である。
【図２】ディスプレイ１１１の表示画面上での描画インターフェース１０の構成例を示した図である。
【図３】ワーク・エリア１６上で自然現象インクとしての雲インクでペイントする様子を示した図である。
【図４】描画インターフェース１０の変形例を示した図である。
【図５】描画インターフェース１０の変形例を示した図である。
【図６】パレット・エリア１２上で雲インクに水インクを混ぜる様子を表した図である。
【図７】描画インターフェース１０上でワーク・エリア１３にオブジェクトやシーンを読み込んだ様子を示した図である。
【図８】ユーザが描いたストローク線に従って生成された３Ｄキャンバス上にさらに絵を描く様子、並びにキャンバス回転により所望の３Ｄシーンを生成する様子を示した図である。
【図９】描画インターフェース１０上での属性インクを用いた手書きストロークによるペインティングを実現するための処理全体の流れをフローチャートの形式で示した図である。
【図１０】図９に示したフローチャート中のステップＳ１における初期化処理の手順をより詳細に示した図である。
【図１１】図９に示したフローチャート中のステップＳ３に該当する描画ルーチンに置ける処理手順を詳細に示した図である。
【図１２】ワーク・エリア１３内で塗られた部分に対してメッシュを動的に生成していく様子を示した図である。
【図１３】メッシュ情報ブロックのデータ構造を模式的に示した図である。
【図１４】メッシュを構成する描画単位に関する描画情報を管理するためのデータ・ブロックｍｅｓｈ_ｄａｔａのデータ構造を模式的に示した図である。
【図１５】ｍｅｓｈ_ｄａｔａに登録されている属性インクの情報を管理するためのデータ・ブロックのデータ構造を模式的に示した図である。
【図１６】図１１に示した描画ルーチンのうち、ステップＳ２２の塗る処理の手順をより詳細に示したフローチャートである。
【図１７】図１６に示した塗る処理手順のうち、ステップＳ３４に相当するワーク・エリア１３を用いた絵を描くための処理手順をより詳細に示したフローチャートである。
【図１８】図１７に示したワーク・エリア１３内での処理のうち、ステップＳ４７のメッシュを生成する処理の手順をより詳細に示したフローチャートである。
【図１９】図１８に示したフローチャートのステップＳ５５におけるメッシュ細分化処理ルーチンを示したフローチャートである。
【図２０】図１６に示した塗る処理手順のうち、ステップＳ３６に相当するパレット・エリア１２を用いて属性インクを混合するための処理手順をより詳細に示したフローチャートである。
【図２１】ｍｅｓｈ_ｄａｔａにインクＩＤを加える処理を示したフローチャートである。
【図２２】属性インクを薄める又は濃くするテクニカル・インクの処理手順をより詳細に示したフローチャートである。
【図２３】属性インクの濃淡を示すテクニカル・インクのカウント値Ｔｅｃｈｎｉｃａｌ_ｃｏｕｎｔ［０］による作用の一例を示した図である。
【図２４】属性インクを大まかにする又は細かくするテクニカル・インクの処理手順をより詳細にフローチャートである。
【図２５】属性インクの大まかさ又は細かさを示すテクニカル・インクを描画オブジェクトに適用した様子を示した図である。
【図２６】属性インクの大まかさ又は細かさを示すテクニカル・インクのカウント値Ｔｅｃｈｎｉｃａｌ_ｃｏｕｎｔ［１］による作用の一例を示した図である。
【図２７】セルラー・オートマトンのルールを説明するための図である。
【図２８】セルラー・オートマトンのルールを説明するための図である。
【図２９】セルラー・オートマトンによるアニメーション作用の記述方法を説明するための図である。
【図３０】セルラー・オートマトンを利用した塗る作用を説明するための図である。
【図３１】パーティクル・システムの原理を示した図である。
【図３２】パーティクル・システムを利用した塗る作用を説明するための図である。
【図３３】シーンの計算処理の手順をより詳細に示したフローチャートである。
【図３４】炎インクを処理するためのインク・アルゴリズムをより詳細に示したフローチャートである。
【図３５】図３４中のステップＳ１２４における大まかさ又は細かさを表すテクニカル・インクの値Ｔｅｃｈｎｉｃａｌ Ｉｎｋ［１］に従った色の計算を行う処理手順をより詳細に示したフローチャートである。
【図３６】水インクを処理するためのインク・アルゴリズムをより詳細に示したフローチャートである。
【図３７】図３６中のステップＳ１４４における大まかさ又は細かさを表すテクニカル・インクの値Ｔｅｃｈｎｉｃａｌ Ｉｎｋ［１］に従った色の計算を行う処理手順をより詳細に示したフローチャートである。
【図３８】パーティクル・システムを適用した場合のインク・アルゴリズムをより詳細に示したフローチャートである。
【図３９】  シーンの描画処理の手順をより詳細に示したフローチャートである。
【図４０】パーティクル・システムを適用して自然現象インクである雲インクを作画する様子を示した図である。
【図４１】パーティクル・システムを適用して自然現象インクである煙インクを作画する様子を示した図である。
【図４２】ストローク・データからアニメーションを生成するための処理手順を示したフローチャートである。
【図４３】３Ｄキャンバスを設定するための処理手順を示したフローチャートである。
【図４４】ワーク・エリア１３上で手書きストロークにより作画された２次元的な描画オブジェクトに対して奥行き成分を付与して３次元的な描画オブジェクトに拡張する様子を示した図である。
【図４５】ワーク・エリア１３上で手書きストロークにより作画された２次元的な描画オブジェクトを３次元的な描画オブジェクトに拡張するための処理手順を示したフローチャートである。
【図４６】描画オブジェクトを構成する各描画単位を３次元的な描画単位であるＶｏｘｅｌに変換するための処理手順を示したフローチャートである。
【図４７】描画オブジェクトを構成する各描画単位を３次元的な描画単位であるＶｏｘｅｌに変換する様子を説明するための図である。
【図４８】描画オブジェクトを構成する各描画単位を３次元的な描画単位であるＶｏｘｅｌに変換する様子を説明するための図である。
【図４９】描画オブジェクトを構成する各描画単位を３次元的な描画単位であるＶｏｘｅｌに変換する様子を説明するための図である。
【図５０】描画オブジェクトを構成する各描画単位を３次元的な描画単位であるＶｏｘｅｌに変換する様子を説明するための図である。
【図５１】本実施形態に係る描画インターフェース１０において、描画オブジェクトをコピー・アンド・ペースト操作する様子を示した図である。
【図５２】本実施形態に係る描画インターフェース１０において、描画オブジェクトをコピー・アンド・ペースト操作するための処理手順を示したフローチャートである。
【図５３】マウス・インタラクションにより、アニメーションの方向を定める様子を示した図である。
【図５４】コントロール・モード下で、マウス・インタラクションにより属性インクの属性パラメータ値を生成するための処理手順を示したフローチャートである。
【図５５】マウス１１３のドラッグ情報からパラメータ値を生成するため処理手順を示したフローチャートである。
【符号の説明】
１０…描画インターフェース
１１…インク・エリア
１２…パレット・エリア
１３…ワーク・エリア
１００…画像編集装置
１０１…ＣＰＵ，
１０２…主メモリ，１０３…ＲＯＭ
１０４…ディスプレイ・コントローラ
１０５…入力機器インターフェース
１０６…ネットワーク・インターフェース
１０７…外部機器インターフェース
１０８…バス
１１１…ディスプレイ
１１２…キーボード，１１３…マウス
１１４…ハード・ディスク装置
１１５…メディア・ドライブ
【図１】
0003861690.tif 000002
【図２】
0003861690.tif 000003
【図３】
0003861690.tif 000004
【図４】
0003861690.tif 000005
【図５】
0003861690.tif 000006
【図６】
0003861690.tif 000007
【図７】
0003861690.tif 000008
【図８】
0003861690.tif 000009
【図９】
0003861690.tif 000010
【図１０】
0003861690.tif 000011
【図１１】
0003861690.tif 000012
【図１２】
0003861690.tif 000013
【図１３】
0003861690.tif 000014
【図１４】
0003861690.tif 000015
【図１５】
0003861690.tif 000016
【図１６】
0003861690.tif 000017
【図１７】
0003861690.tif 000018
【図１８】
0003861690.tif 000019
【図１９】
0003861690.tif 000020
【図２０】
0003861690.tif 000021
【図２１】
0003861690.tif 000022
【図２２】
0003861690.tif 000023
【図２３】
0003861690.tif 000024
【図２４】
0003861690.tif 000025
【図２５】
0003861690.tif 000026
【図２６】
0003861690.tif 000027
【図２７】
0003861690.tif 000028
【図２８】
0003861690.tif 000029
【図２９】
0003861690.tif 000030
【図３０】
0003861690.tif 000031
【図３１】
0003861690.tif 000032
【図３２】
0003861690.tif 000033
【図３３】
0003861690.tif 000034
【図３４】
0003861690.tif 000035
【図３５】
0003861690.tif 000036
【図３６】
0003861690.tif 000037
【図３７】
0003861690.tif 000038
【図３８】
0003861690.tif 000039
【図３９】
0003861690.tif 000040
【図４０】
0003861690.tif 000041
【図４１】
0003861690.tif 000042
【図４２】
0003861690.tif 000043
【図４３】
0003861690.tif 000044
【図４４】
0003861690.tif 000045
【図４５】
0003861690.tif 000046
【図４６】
0003861690.tif 000047
【図４７】
0003861690.tif 000048
【図４８】
0003861690.tif 000049
【図４９】
0003861690.tif 000050
【図５０】
0003861690.tif 000051
【図５１】
0003861690.tif 000052
【図５２】
0003861690.tif 000053
【図５３】
0003861690.tif 000054
【図５４】
0003861690.tif 000055
【図５５】
0003861690.tif 000056