JP3861690B2 - 画像編集装置及び画像編集方法、記憶媒体、並びにコンピュータ・プログラム - Google Patents
画像編集装置及び画像編集方法、記憶媒体、並びにコンピュータ・プログラム Download PDFInfo
- Publication number
- JP3861690B2 JP3861690B2 JP2002000945A JP2002000945A JP3861690B2 JP 3861690 B2 JP3861690 B2 JP 3861690B2 JP 2002000945 A JP2002000945 A JP 2002000945A JP 2002000945 A JP2002000945 A JP 2002000945A JP 3861690 B2 JP3861690 B2 JP 3861690B2
- Authority
- JP
- Japan
- Prior art keywords
- ink
- attribute
- user input
- area
- work area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 188
- 238000004590 computer program Methods 0.000 title claims description 22
- 239000000976 ink Substances 0.000 claims description 592
- 238000012545 processing Methods 0.000 claims description 136
- 239000002245 particle Substances 0.000 claims description 96
- 230000008569 process Effects 0.000 claims description 61
- 230000009471 action Effects 0.000 claims description 53
- 230000000694 effects Effects 0.000 claims description 50
- 238000004364 calculation method Methods 0.000 claims description 40
- 230000003993 interaction Effects 0.000 claims description 32
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 27
- 238000002156 mixing Methods 0.000 claims description 15
- 239000000779 smoke Substances 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 9
- 238000012935 Averaging Methods 0.000 claims description 5
- 230000003247 decreasing effect Effects 0.000 claims description 4
- 238000010422 painting Methods 0.000 description 45
- 230000001413 cellular effect Effects 0.000 description 37
- 238000010586 diagram Methods 0.000 description 33
- 238000004422 calculation algorithm Methods 0.000 description 24
- 230000000875 corresponding effect Effects 0.000 description 21
- 230000033001 locomotion Effects 0.000 description 18
- 239000003086 colorant Substances 0.000 description 13
- 239000003973 paint Substances 0.000 description 12
- 238000010428 oil painting Methods 0.000 description 11
- 238000010429 water colour painting Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 238000013515 script Methods 0.000 description 10
- 239000013598 vector Substances 0.000 description 9
- 238000002372 labelling Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 238000009877 rendering Methods 0.000 description 7
- 230000005484 gravity Effects 0.000 description 6
- 238000007591 painting process Methods 0.000 description 5
- 239000005060 rubber Substances 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000000717 retained effect Effects 0.000 description 4
- 241001465754 Metazoa Species 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000011521 glass Substances 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- XEEYBQQBJWHFJM-UHFFFAOYSA-N Iron Chemical compound [Fe] XEEYBQQBJWHFJM-UHFFFAOYSA-N 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 239000004927 clay Substances 0.000 description 2
- 230000002079 cooperative effect Effects 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- 229910052751 metal Inorganic materials 0.000 description 2
- 230000008719 thickening Effects 0.000 description 2
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 1
- 230000001154 acute effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000008264 cloud Substances 0.000 description 1
- 238000002405 diagnostic procedure Methods 0.000 description 1
- 238000007865 diluting Methods 0.000 description 1
- 239000000428 dust Substances 0.000 description 1
- -1 fire Substances 0.000 description 1
- 239000003897 fog Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 229910052742 iron Inorganic materials 0.000 description 1
- 230000002147 killing effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000035772 mutation Effects 0.000 description 1
- 238000007788 roughening Methods 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000003313 weakening effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
Description
【発明の属する技術分野】
本発明は、計算機システム上で2次元的又は3次元的なイメージを作成・編集するための画像編集装置及び画像編集方法、記憶媒体、並びにコンピュータ・プログラムに係り、特に、マウスなどの装置によって入力された手書きストロークに従って計算機システム上で2次元的又は3次元的なイメージを作成・編集するための画像編集装置及び画像編集方法、記憶媒体、並びにコンピュータ・プログラムに関する。
【0002】
さらに詳しくは、本発明は、マウス操作などによりユーザ入力されたストロークを筆やブラシによる手書き操作として扱うことにより、デジタル空間のキャンバス上で水彩画又は油絵などのペインティングを模した擬似的な作画操作を行なうための直感的な描画インターフェースを提供する画像編集装置及び画像編集方法、記憶媒体、並びにコンピュータ・プログラムに係り、特に、デジタル空間のキャンバス上でユーザ入力されたストロークに従ってテクスチャやアニメーションなどのさまざまな属性(attribute)やアクティビティ(activity)を持ったインクを利用したペインティングを行なう画像編集装置及び画像編集方法、記憶媒体、並びにコンピュータ・プログラムに関する。
【0003】
【従来の技術】
昨今の半導体技術や情報技術の進歩に伴い、比較的安価で且つ高性能な計算機システムが、職場や一般家庭内に深く浸透してきている。この種の計算機システム上では、一般に、オペレーティング・システム(OS)が提供する実行環境下で、各種のアプリケーションを起動することができる。
【0004】
計算機システム上で使用されるアプリケーションの種類は、ワープロ、表計算、データベース、通信、グラフィックスなど多岐にわたる。例えば、演算能力や描画機能が強化された計算機システム上では、2Dや3Dなどのリアリティの高いグラフィックスを比較的容易に作成し、描画したり、さらに画像変形処理を行ったりすることができる。
【0005】
水彩画、油絵などを始めとする実世界におけるほとんどの作画作業は、所望の絵の具が浸された筆先をキャンバス上で所定の軌跡を描かせることによって実現する。これに対し、計算機システム上での作画は、例えば「筆」の機能を選択したマウス・カーソルをディスプレイ・スクリーン上で軌跡を描くことによって線画が入力される。すなわち、マウス操作によるストロークを筆やブラシによる手書き操作として扱うことにより、デジタル空間上のキャンバスに水彩画又は油絵などのペインティングを模した擬似的な作画を行なうという直感的な描画インターフェースを提供することができる。
【0006】
実世界上のキャンバスには、筆やブラシに浸した色がそのままストロークに従って塗り付けられる。この場合、キャンバス上で使用することができる色は、パレット上に垂らした絵の具やインクの色や、あるいはパレット上で混合・調色された混合色である。また、キャンバス上で描かれる模様は、画家の筆さばきにより逐次得られるものであって、模様そのものをキャンバス上にペイントすることはできない。また、絵の表現がいかにダイナミックであっても、描かれた絵のパターンそのものは静的・固定的なものであって、キャンバス上で時間的・空間的に変化するものではない。
【0007】
これに対し、デジタル空間上のキャンバス上では、コンピュータ上での描画演算により、単純にRGB色空間上で定義されるインクの色だけでなく、テクスチャを直接塗りつけることができたり、さらにはアニメーションなどのさまざまな属性(attribute)やアクティビティ(activity)を持ったインクを利用したペインティングを行なうことが可能である。
【0008】
しかしながら、既存の画像編集システムでは、3次元コンピュータ・グラフィックスを対象としたさまざまな表現をサポートするために、GUI(Graphical User Interface)が複雑であり、ポリゴンとその頂点に対する操作であるため、誰でも簡単に操作できるとは言えない。また、属性は、変数の設定やスクリプトの記述によって実現されるので、アニメーションや属性を付けることも、初心者にとって困難である。
【0009】
また、既存の画像編集システムでは、描画オブジェクトの質感はテクスチャ・マッピングやマテリアルによって行なわれる一方、水や雲などのアニメーションの表現はパーティクル・システムを用いて実現されている。これらはすべてオブジェクト表面に対する属性であるにも拘わらず、別々の種類のデータとして管理されているので、各々を使用するための操作系統が統一化されておらず、ユーザビリティに欠ける。
【0010】
また、既存の画像編集システムでは、変数の設定やスクリプトの記述を行なった後で、プレビューやレンダリングを実行しないと、オブジェクトに対して実際に設定した動きを確認することができない。
【0011】
また、既存の画像編集システムでは、変数やスクリプトの記述によりアニメーションや属性を表現するので、インク同士を混ぜ合わせることはできない。アニメーションの属性の設定と同様に、微妙な調整もさまざまなパラメータを操作しなければならない。
【0012】
【発明が解決しようとする課題】
本発明の目的は、マウスなどの装置によって入力された手書きストロークに従って計算機システム上で2次元的又は3次元的なイメージを好適に作成・編集することができる、優れた画像編集装置及び画像編集方法、記憶媒体、並びにコンピュータ・プログラムを提供することにある。
【0013】
本発明のさらなる目的は、マウス操作などによりユーザ入力されたストロークを筆やブラシによる手書き操作として扱うことにより、デジタル空間のキャンバス上で、水彩画又は油絵などのペインティングを模した擬似的な描画を行なうための直感的な描画インターフェースを提供することができる、優れた画像編集装置及び画像編集方法、記憶媒体、並びにコンピュータ・プログラムを提供することにある。
【0014】
本発明のさらなる目的は、デジタル空間のキャンバス上で、ユーザ入力されたストロークに従ってテクスチャやアニメーションなどのさまざまな属性(attribute)やアクティビティ(activity)を持ったインクを利用したペインティングを行なうことができる、優れた画像編集装置及び画像編集方法、記憶媒体、並びにコンピュータ・プログラムを提供することにある。
【0015】
本発明のさらなる目的は、変数の設定やスクリプトの記述など専門的な知識を必要とせず、簡単で且つ直感的なGUI操作によって描画オブジェクトに対してアニメーションやさまざまな属性を付けることができる、優れた画像編集装置及び画像編集方法、記憶媒体、並びにコンピュータ・プログラムを提供することにある。
【0016】
【課題を解決するための手段及び作用】
本発明は、上記課題を参酌してなされたものであり、その第1の側面は、表示画面上でユーザから入力された手書きストロークに従って描画を行なう画像編集装置又は画像編集方法であって、
使用可能な1以上のインクを配設するインク・エリアと、描画作業を行なうワーク・エリアとを前記表示画面上に表示する描画インターフェース部又はステップと、
前記表示画面上でユーザの指示座標を入力するユーザ入力部又はステップと、ユーザ入力に従って前記ワーク・エリア上の描画オブジェクトを処理する描画処理部又はステップと、
を備え、
前記インク・エリアでは、RGB色空間上で定義される色インク以外に、設定された属性パラメータ値に応じて描画処理が時々刻々と変動するアニメーション作用を持つ属性インクが用意されており、
前記描画処理部又はステップは、前記インク・エリアにおいて前記ユーザ入力部又はステップを介して指示されたインクとそれ以後前記ユーザ入力部又はステップを介して操作される手書きストロークとを関連付けるとともに、前記ワーク・エリアにおいてユーザ入力部又はステップを介して操作された手書きストロークと描画オブジェクトとを関連付けて、該関連付けられたインクを用いて描画オブジェクトを描画することにより手書きストロークが塗られたことを表現する、ことを特徴とする画像編集装置又は画像編集方法である。
【0017】
ここで、前記属性インクは、属性パラメータ値により水や雲、雪、炎、煙などの時々刻々と様相が変化する動的な自然現象を表現する自然現象インクやそのたのアクティブな属性を持つインクが含まれる。
【0018】
本発明の第1の側面に係る画像編集装置又は画像編集方法によれば、マウス及びディスプレイなどの一般的なユーザ・インターフェースは、デジタル空間のキャンバス、パレット、筆又はブラシなどの道具に対応する描画インターフェースとして作用する。
【0019】
そして、マウスのドラッグ操作などによりユーザ入力さたれ手書きストロークを筆やブラシによる作画操作として扱うことができる。また、デジタル空間のキャンバス上で、ユーザ入力されたストロークに従って、テクスチャやアニメーションなどのさまざまな属性やアニメーションを持ったインクを利用したペインティングを行なうことができる。
【0020】
本発明に係る描画インターフェース上では、RGB色空間上で定義される色インク以外に、テクスチャやマテリアルなどのオブジェクトの質感を表す質感インクや、属性パラメータ値に応じて描画処理が時々刻々と変動するアニメーション作用を持つ自然現象インクやその他の属性インクは、すべてインク・エリア上で統一して取り扱われる。
【0021】
したがって、インクを選択してキャンバス上でペイント又はペーストするという作画作業を円滑に行なうことができるので、ユーザビリティに優れている。
【0022】
また、描画オブジェクトに対してアニメーションやその他の属性を与えるためには、デジタル・キャンバスに相当するワーク・エリア上で筆で描くように手書きストロークを与えるだけでよく、変数の設定やスクリプトの記述など専門的な知識や特殊な作業を必要としない。
【0023】
また、属性インクを指定した後、手書きストロークを入力するだけで即座にアニメーション作用が表示されるので、画像編集作業と並行して動きを確認することができる。
【0024】
また、前記描画インターフェース部又はステップは、さらに複数のインクを用いて混合処理するパレット・エリアを表示するようにしてもよい。
【0025】
このような場合、前記描画処理部又はステップは、前記インク・エリア又は前記パレット・エリアにおいて前記ユーザ入力部又はステップを介して指示されたインクとそれ以後前記ユーザ入力部又はステップを介して操作される手書きストロークとを関連付けるとともに、前記パレット・エリアにおいてユーザ入力部又はステップを介して操作された手書きストロークと描画オブジェクトとを逐次関連付けて、同じ描画オブジェクトに関連付けられた2以上のインク同士を混合処理するようにすればよい。
【0026】
例えば、各属性インクが持つ属性パラメータ値を平均化することによって、2以上の属性インク同士を混合処理すればよい。
【0027】
したがって、インク同士を混ぜるために、変数やスクリプトの記述などを操作する必要はなく、パレット上に属性インクを逐次塗り足していくという直感的なGUI操作だけでインクの微妙な調整を行なうことができる。
【0028】
また、前記描画処理部又はステップは、前記ワーク・エリア及び/又は前記パレット・エリア内で描画オブジェクトを微小な描画単位に分割してなるメッシュにして、各描画単位毎にインク情報を管理するようにしてもよい。
【0029】
このような場合、属性インクをオブジェクトに塗るという描画処理に対して、例えばセルラー・オートマトンを適用することができる。すなわち、隣接する各描画単位間で働く引力又は斥力などの相互作用を計算して該計算結果を基に描画単位が持つ属性パラメータ値を変更することによって、属性インクのアニメーション作用を自動生成することができる。
【0030】
あるいは、属性インクでオブジェクトを描画処理するために、パーティクル・システムを適用することができる。すなわち、各描画単位毎に配置されたエミッタから属性インクに対応するパーティクルを放出することによって属性インクのアニメーション作用を計算することができる。
【0031】
パーティクル・システムを適用した場合、属性インクが持つ属性パラメータ値を基に、エミッタの放出するパーティクル、放出の方向と広がり角度、放出速度、パーティクルに対して印加する重力、静電気力(引力と斥力)、渦巻きの効果、風の効果、乱流の効果、パーティクルの寿命やフォースに対する特性、サイズ、色と透明度、テクスチャを設定したり、パーティクルが活動する場に障害物を設置することができる。
【0032】
また、前記インク・エリアには属性インクの濃淡を調整するテクニカル・インクを用意してもよい。このような場合、描画オブジェクトに対して濃くするテクニカル・インクが適用されたことに応答して、隣接する描画単位間で働く引力を強めて(又は斥力を弱めて)属性パラメータ値を計算する一方、描画オブジェクトに対して薄く又は淡くするテクニカル・インクが適用されたことに応答して、隣接する描画単位間で働く引力を弱めて(又は斥力を強めて)属性パラメータ値を計算するようにして、属性インクの微妙な調整を実現することができる。
【0033】
また、前記インク・エリアには属性インクの大まかさ及び細かさを調整するテクニカル・インクを用意していてもよい。このような場合、描画オブジェクトに対して大まかにするテクニカル・インクが適用されたことに応答して、隣接する複数の描画単位をまとめて1つの描画単位として扱う一方、描画オブジェクトに対して細かくするテクニカル・インクが適用されたことに応答して、描画単位をさらに複数の描画単位に細分化するようにして、属性インクの微妙な調整を実現することができる。
【0034】
また、前記描画処理部又はステップは、前記ワーク・エリア上に作画された描画オブジェクトに対して奥行き成分を付与して、2次元的な前記ワーク・エリア内で作画された描画内容を3次元空間に拡張するようにしてもよい。
【0035】
例えば、前記ワーク・エリア上に作画された描画オブジェクトを構成する2次元的な描画単位を3次元的なVoxelに変換すればよい。このような場合、属性インクが塗られた個々のVoxelに対して、セルラー・オートマトンやパーティクル・システムなどのアニメーション作用を表現するための計算を適用することによって、属性インクによるアニメーション作用を3次元空間に拡張することができる。
【0036】
また、前記描画処理部又はステップは、前記ユーザ入力部から入力されたストローク、例えばマウスを用いたインタラクションに従って描画オブジェクトに関連付けられている属性インクの属性パラメータ値を変更すようにしてもよい。このような場合、属性インクの微妙な調整を、変数の設定やスクリプトの記述など専門的な操作を必要とせず、簡単なGUI操作により簡単に実現することができるので、ユーザビリティに優れている。
【0037】
また、本発明の第2の側面は、表示画面上でユーザから入力された手書きストロークに従って描画を行なう画像編集処理をコンピュータ・システム上で実行するように記述されたコンピュータ・ソフトウェアをコンピュータ可読形式で物理的に格納した記憶媒体であって、前記コンピュータ・ソフトウェアは、
使用可能な1以上のインクを配設するインク・エリアと、描画作業を行なうワーク・エリアとを前記表示画面上に表示する描画インターフェース提示ステップと、
前記表示画面上でユーザの指示座標を入力するユーザ入力ステップと、
ユーザ入力に従って前記ワーク・エリア上の描画オブジェクトを処理する描画処理ステップと、
を備え、
前記インク・エリアでは、RGB色空間上で定義される色インク以外に、設定された属性パラメータ値に応じて描画処理が時々刻々と変動するアニメーション作用を持つ属性インクが用意されており、
前記描画処理ステップでは、前記インク・エリアにおいて前記ユーザ入力ステップを介して指示されたインクとそれ以後前記ユーザ入力ステップを介して操作される手書きストロークとを関連付けるとともに、前記ワーク・エリアにおいてユーザ入力ステップを介して操作された手書きストロークと描画オブジェクトとを関連付けて、該関連付けられたインクを用いて描画オブジェクトを描画することにより手書きストロークが塗られたことを表現する、
ことを特徴とする記憶媒体である。
【0038】
本発明の第2の側面に係る記憶媒体は、例えば、さまざまなプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ・ソフトウェアをコンピュータ可読な形式で提供する媒体である。このような媒体は、例えば、DVD(Digital Versatile Disc)、CD(Compact Disc)やFD(Flexible Disk)、MO(Magneto-Optical disc)などの着脱自在で可搬性の記憶媒体である。あるいは、ネットワーク(ネットワークは無線、有線の区別を問わない)などの伝送媒体などを経由してコンピュータ・ソフトウェアを特定のコンピュータ・システムに提供することも技術的に可能である。
【0039】
本発明の第2の側面に係る記憶媒体は、コンピュータ・システム上で所定のコンピュータ・ソフトウェアの機能を実現するための、コンピュータ・ソフトウェアと記憶媒体との構造上又は機能上の協働的関係を定義したものである。換言すれば、本発明の第2の側面に係る記憶媒体を介して所定のコンピュータ・ソフトウェアをコンピュータ・システムにインストールすることによって、コンピュータ・システム上では協働的作用が発揮され、本発明の第1の側面に係る画像編集装置又は画像編集方法と同様の作用効果を得ることができる。
【0040】
また、本発明の第3の側面は、表示画面上でユーザから入力された手書きストロークに従って描画を行なう画像編集処理をコンピュータ・システム上で実行するように記述されたコンピュータ・プログラムであって、
使用可能な1以上のインクを配設するインク・エリアと、描画作業を行なうワーク・エリアとを前記表示画面上に表示する描画インターフェース提示ステップと、
前記表示画面上でユーザの指示座標を入力するユーザ入力ステップと、
ユーザ入力に従って前記ワーク・エリア上の描画オブジェクトを処理する描画処理ステップと、
を備え、
前記インク・エリアでは、RGB色空間上で定義される色インク以外に、設定された属性パラメータ値に応じて描画処理が時々刻々と変動するアニメーション作用を持つ属性インクが用意されており、
前記描画処理ステップでは、前記インク・エリアにおいて前記ユーザ入力ステップを介して指示されたインクとそれ以後前記ユーザ入力ステップを介して操作される手書きストロークとを関連付けるとともに、前記ワーク・エリアにおいてユーザ入力ステップを介して操作された手書きストロークと描画オブジェクトとを関連付けて、該関連付けられたインクを用いて描画オブジェクトを描画することにより手書きストロークが塗られたことを表現する、
ことを特徴とするコンピュータ・プログラムである。
【0041】
本発明の第3の側面に係るコンピュータ・プログラムは、コンピュータ・システム上で所定の処理を実現するようにコンピュータ可読形式で記述されたコンピュータ・プログラムを定義したものである。換言すれば、本発明の第3の側面に係るコンピュータ・プログラムをコンピュータ・システムにインストールすることによって、コンピュータ・システム上では協働的作用が発揮され、本発明の第1の側面に係る画像編集装置又は画像編集方法と同様の作用効果を得ることができる。
【0042】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【0043】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態について詳解する。
【0044】
A.システム構成
図1には、本発明の実施に供される画像編集装置100のハードウェア構成を模式的に示している。以下、同図を参照しながら、各部について説明する。
【0045】
メイン・コントローラであるCPU(Central Processing Unit)101は、オペレーティング・システム(OS)の制御下で、各種のアプリケーションを実行する。オペレーティング・システムは、より好ましくは、ビットマップ表示機能をサポートし、マウスなどによる座標指示入力をベースとしたGUI(Graphical User Interface)環境を提供する。
【0046】
CPU101は、例えば、デジタル空間上のキャンバスに水彩画又は油絵などのペインティングを模した擬似的な描画を行なうための直感的な描画インターフェースを提供する画像編集アプリケーションなどを実行することができる。この画像編集アプリケーションによれば、マウスとディスプレイという一般的なユーザ・インターフェースを用いて描画インターフェースを提供し、テクスチャやアニメーションなどのさまざまな属性(attribute)やアクティビティ(activity)を持ったインクを利用したペインティングを行なうことができる(後述)。
【0047】
図示の通り、CPU101は、バス108によって他の機器類(後述)と相互接続されている。
【0048】
主メモリ102は、CPU101において実行されるプログラム・コードを格納したり、描画データなどの実行中の作業データを一時保管するために使用される記憶装置であり、例えばDRAM(Dynamic RAM)のような半導体メモリが使用される。
【0049】
また、ROM(Read Only Memory)103は、データを恒久的に格納する半導体メモリであり、例えば、起動時の自己診断テスト(POST:Power On Self Test)や、ハードウェア入出力用のプログラム・コード(BIOS:Basic Input/Output System)などが書き込まれている。
【0050】
ディスプレイ・コントローラ104は、CPU101が発行する描画命令を実際に処理するための専用コントローラである。ディスプレイ・コントローラ103において処理された描画データは、例えばフレーム・バッファ(図示しない)に一旦書き込まれた後、ディスプレイ111によって画面出力される。本実施形態では、ディスプレイ・コントローラ104は、デジタル空間のキャンバス上でのペインティング操作をより快適に実行するためには、ビットマップ表示機能をサポートしていることが好ましい。
【0051】
ディスプレイ111の表示画面は、一般に、ユーザからの入力内容やその処理結果、あるいはエラーその他のシステム・メッセージをユーザに視覚的にフィードバックする役割を持つ。また、本実施形態においては、ディスプレイ111の表示画面は、デジタル空間のキャンバス並びにパレットを表示するとともに、キャンバス上でのペインティングの作業場を与えるが、この点については後に詳解する。
【0052】
入力機器インターフェース105は、キーボード112やマウス113などのユーザ入力機器を対話装置100に接続するための装置である。
【0053】
キーボード112やマウス113は、データやコマンドなどのユーザ入力をシステムに取り込む役割を持つ。キーボード112上でキー入力が行なわれたり、マウス113によりクリックあるいはドラッグ/ドロップなどの座標指示入力が行なわれると、所定の割り込みレベルを使用した割り込み要求が発生して、CPU101は、割り込みレベルに対応した割り込みハンドラを実行する。割り込みハンドラは、ユーザ入力を、画像編集アプリケーションなど該当する起動アプリケーションへのメッセージにする。勿論、デジタイザ/タブレット及び入力ペン(図示しない)のように、マウス113以外の座標指示装置を本画像編集装置100に適用することもできる。
【0054】
本実施形態では、マウス113のドラッグ操作などによりユーザ入力さたれストロークを筆やブラシによる手書き操作として扱うことができる。そして、このストロークに従って、デジタル空間のキャンバス上で、水彩画又は油絵などのペインティングを模した擬似的な描画処理を行ない、処理結果をディスプレイ111の表示画面上に表示出力する。この場合、マウス113及びディスプレイ111は、デジタル空間のキャンバス、パレット、筆又はブラシなどの描画インターフェースとして作用する。
【0055】
ネットワーク・インターフェース106は、Ethernetなどの所定の通信プロトコルに従って、システム100をLAN(Local Area Network)などの局所的ネットワーク、さらにはインターネットのような広域ネットワークに接続することができる。
【0056】
ネットワーク上では、複数のホスト端末(図示しない)がトランスペアレントな状態で接続され、分散コンピューティング環境が構築されている。ネットワーク上では、ソフトウェア・プログラムやデータ・コンテンツなどの配信サービスを行うことができる。例えば、デジタル空間上のキャンバスに水彩画又は油絵などのペインティングを模した擬似的な作画作業を行なうための直感的な描画インターフェースを提供する画像編集アプリケーションなどを、ネットワーク経由でダウンロードすることができる。また、この画像編集アプリケーションを用いて制作された描画情報を、ネットワーク経由で他のホスト装置に配信・配布することができる。
【0057】
また、ネットワーク経由でトランスペアレントな状態で接続された2台以上のホスト端末は、互いの協働的動作により描画インターフェースを提供して、デジタル空間のキャンバス上でのペインティングをサポートすることができる。例えば、1台のホスト端末はキャンバスを提供し、他のホスト端末はインクを選択又は調色するためのパレットを提供することができる(後述)。
【0058】
外部機器インターフェース107は、ハード・ディスク・ドライブ(HDD)114やメディア・ドライブ115などの外部装置を本画像編集装置100に接続するための装置である。
【0059】
HDD114は、記憶担体としての磁気ディスクを固定的に搭載した外部記憶装置であり(周知)、記憶容量やデータ転送速度などの点で他の外部記憶装置よりも優れている。ソフトウェア・プログラムを実行可能な状態でHDD114上に置くことをプログラムのシステムへの「インストール」と呼ぶ。通常、HDD114には、CPU101が実行すべきオペレーティング・システムのプログラム・コードや、アプリケーション・プログラム、デバイス・ドライバなどが不揮発的に格納されている。例えば、デジタル空間上のキャンバスに水彩画又は油絵などのペインティングを模した擬似的な作画作業を行なうための直感的な描画インターフェースを提供する画像編集アプリケーションなどを、HDD114上にインストールすることができる。また、この画像編集アプリケーションを用いて制作された描画情報をHDD114上に蓄積しておいてもよい。
【0060】
メディア・ドライブ115は、CD(Compact Disc)やMO(Magneto-Optical disc)、DVD(Digital Versatile Disc)などの可搬型メディアを装填して、そのデータ記録面にアクセスするための装置である。
【0061】
可搬型メディアは、主として、ソフトウェア・プログラムやデータ・ファイルなどをコンピュータ可読形式のデータとしてバックアップすることや、これらをシステム間で移動(すなわち販売・流通・配布を含む)する目的で使用される。例えば、デジタル空間上のキャンバスに水彩画又は油絵などのペインティングを模した擬似的な作画作業を行なうための直感的な描画インターフェースを提供する画像編集アプリケーションなどを、これら可搬型メディアを利用して複数の機器間で物理的に流通・配布することができる。また、この画像編集アプリケーションを用いて制作された描画情報を、恒久的に保存(アーカイブ)したり、他の装置に移動するために、可搬型メディアを利用する。
【0062】
なお、図1に示すような画像編集装置100の一例は、米IBM社のパーソナル・コンピュータ"PC/AT(Personal Computer/Advanced Technology)"の互換機又は後継機である。勿論、他のアーキテクチャを備えたコンピュータを、本実施形態に係る画像編集装置100として適用することも可能である。
【0063】
B.描画インターフェース
本実施形態に係る画像編集装置100は、例えば所定のアプリケーションを起動することにより、デジタル空間上のキャンバスに水彩画又は油絵などのペインティングを模した擬似的な作画作業を行なうための直感的な描画インターフェースを提供することができる。
【0064】
この描画インターフェースは、例えば、マウス113及びディスプレイ111の組み合わせによって構成され、デジタル空間のキャンバス、パレット、筆又はブラシなどを備えている。また、デジタル空間のキャンバス上では、単純にRGB色空間上で定義されるインクの色だけでなく、テクスチャやアニメーションなどのさまざまな属性(attribute)やアクティビティ(activity)を持ったインクを利用することができる。
【0065】
図2には、ディスプレイ111の表示画面上での描画インターフェース10の構成例を示している。但し、ビットマップ表示並びにGUI環境が提供されているものとする。
【0066】
同図に示すように、描画インターフェース10は、使用する絵の具やインクの色を指定するためのGUIであるインク・エリア11と、複数のインクの色を混合・調色したり濃淡を調整したり、使用する筆の太さの変更などを行なうためのGUIであるパレット・エリア12と、作画する場所すなわち筆で絵の具を塗るキャンバスに相当するワーク・エリア13とで構成される。
【0067】
インク・エリア11では、RGB色空間で定義される色を表す色インクやテクスチャ以外に、自然現象(あるいは時々刻々と様相が変化する動的な現象)を対象とした自然現象インク(アクティブ・インク)や、事物の質感を表す質感インクなどを、色のメニューに持っている。ユーザは、インク・エリア11上で所望の色をクリックすることによりインクを指定することができる。
【0068】
自然現象インク又はアクティブ・インクは、自然現象のような時々刻々と様相が変化する動的な現象を表現するためのインクであり、例えば、水や雲、雪、炎、煙などの自然現象を対象とする。
【0069】
アクティブ・インクの自然現象を表した動き(アニメーション)は、例えば、「セルラー・オートマトン(Cellular Automata)」や、「パーティクル・システム(Particle System)」などの手法を用いて生成することができる。これらの手法を用いたアニメーション作用は、描画オブジェクトを無数の微小な描画単位(セル)からなるメッシュに分割して、描画単位毎に描画情報の管理並びにアニメーションの計算を行なうことによって実現する(後述)。
【0070】
また、質感インクは、服やゴム、金属、ガラス、地形、模様などの質感を表すインクである。各質感インクは、属性を指定する1以上のパラメータを備えており、単純に水インクでも複数の水インクが存在する。
【0071】
以下では、自然現象インク(アクティブ・インク)と質感インクを合わせて「属性インク」と呼ぶことにする。
【0072】
また、これら以外に、「テクニカル・インク」がインク領域11に用意されている。テクニカル・インクとは、上記の属性インクが持つ属性パラメータ値が及ぼすアニメーション作用を変更するためのインクのことであり、属性インクの濃淡を調整したり、描画単位の大まかさや細かさを調整することができる。
【0073】
また、テクニカル・インクの他の例として、オブジェクトの整形を行なう「ゴム・インク」を用意しておいてもよい。例えば、描画オブジェクトの変形したい部分にゴム・インクを塗ることにより、任意の部分まで伸ばしたり縮めたりすることができる。一般に、3次元オブジェクトの変形操作は、モデルを構成するポリゴンの頂点に対して操作しなければならない。本実施形態に係る描画インターフェース10によれば、そうした操作はシステムの内部処理に任せてしまい、ユーザは変形するための属性インクを選択して、該当箇所に塗って好きな部分までドラッグするという直感的なマウス操作により3次元オブジェクトの変形を行なうことができる。
【0074】
このようなテクニカル・インクを、パレット・エリア12内で属性インクと混合して、ワーク・エリア13上での作画に利用することができる。
【0075】
パレット・エリア12では、インク・エリア11内で指定した複数のインクの色を混合・調色したり、その濃淡を調整したり、使用する筆の太さの変更などを行なうことができる。
【0076】
ワーク・エリア13は、筆で絵の具を塗るデジタル空間上のキャンバスすなわち「デジタル・キャンバス」に相当する。ワーク・エリア13内で例えばマウス113をドラッグ操作することにより、そのストロークが手書き操作された、すなわち指定されたインクで塗られた領域となる。デジタル・キャンバス上では、単純に2次元平面に対してインクを適用する以外に、3次元オブジェクトを読み込んでインクを塗ることができる。なお、図2に示す例では、ワーク・エリア13内ではマウス113による手書き操作を判り易くするためにグリッドを表示しているが、これは本発明の必須の構成要素ではない。
【0077】
ユーザは、基本的にはマウス113を用いたGUI操作によりインク・エリア11内で色インクや属性インクを選択するとともに、パレット・エリア12内で色インクや属性インクの混合を行なう。そして、ワーク・エリア13を用いて、色インクや属性インクを用いて描画オブジェクトを塗るという作画作業を行なう。
【0078】
パレット・エリア12やワーク・エリア13内では、インクを塗る対象は、描画オブジェクトを微小な描画単位(セル)に分割してなるメッシュであり、自然現象インクなどのアクティブ・インクが塗られた領域には、描画単位毎にセルラー・オートマトンやパーティクル・システムを適用して、アニメーション作用の計算が行なわれる。
【0079】
アプリケーション起動時には、パレット・エリア12やワーク・エリア13内のメッシュ情報の初期化がなされる。そして、システムの内部処理としてフレーム毎にアニメーション作用の計算とそれを反映させたシーンの描画を行なうことにより、ディスプレイ111の表示画面上には自然現象を表した色や模様が活動的なアニメーションとして表示される。すなわち、パレット・エリア12やワーク・エリア13に手書きストロークを入力するだけで即座にアニメーション作用が表示されるので、プレビューしなくても、作画作業と並行して動きを確認することができる。但し、属性インクによるアニメーション作用の詳細については、後述に譲る。
【0080】
図3には、描画インターフェース10上でのユーザ操作例として、ワーク・エリア16上で自然現象インクとしての雲インクでペイントしている様子を示している。
【0081】
まず、インク・エリア11で雲インクを指定してから、マウス113などの座標指示装置を用いてワーク・エリア16に対してドラッグ操作を印加して、ストロークを描く(図3(a))。これに応答して、その手書きストロークに沿って、(あらかじめ指定されている線種や太さに応じて)雲インクの描画領域が生成される。例えば、最初の一筆でそのストロークに沿った雲のアニメーションが生成され(図3(b))、次の一筆でさらにその手書きストロークに沿った雲のアニメーションが生成される(図3(c),(d))。
【0082】
次いで、雲インクで囲み込んだ領域を作っておいて、さらにその領域内を塗りつぶすようなドラッグ操作を印加すると(図3(e))、雲のアニメーションによって領域が塗りつぶされて、大きな雲のアニメーションができる(図3(f))。
【0083】
勿論、「消しゴム」のようなツールを指定することにより(図3(g))、ドラッグ操作して雲インクで描かれた領域を消し去ることができる(図3(h))。
【0084】
なお、図2に示す例では、描画インターフェース10は、インク・エリア11、パレット・エリア12、並びにワーク・エリア13を統合した単一のウィンドウとして構成されているが、本発明の要旨はこのような構成に限定されるものではない。例えば、図4に示すように、各エリア11〜13が分割してそれぞれ独立したウィンドウとして表示して、デスクトップ画面上に散在していてもよい。このような場合、ユーザは、各エリア11〜13のウィンドウをドラッグにより好きな場所に移動して、描画インターフェース11を自分がペイント作業し易い配置に変更することができる。
【0085】
また、図5には、描画インターフェース10のさらに他の変形例を示している。ネットワーク(例えば、IEEE 802.11のような無線通信ネットワークや、Bluetoothのような近距離無線データ通信)経由でトランスペアレントな状態で接続された2台以上のホスト端末が、互いの協働的動作により描画インターフェースを提供して、デジタル空間のキャンバス上でのペインティングをサポートすることができる。
【0086】
図5に示す例では、比較的大画面を持つ1台のホスト端末が、2人以上のユーザが同時にストローク入力操作を行なうことができる程度の広いワーク・エリア11を提供している。また、他のホスト端末は、PDA(personal Digital Assistant)のような各ユーザが個々に操作する小型(パームトップ)の情報処理端末で構成されており、インクを選択又は調色するためのインク・エリア11並びにパレット・エリア12を提供する。そして、これら各ホスト端末は、有線又は無線のローカル・エリア・ネットワークで相互接続されている。
【0087】
この場合、各ホスト端末のディスプレイは、デジタイザ/タブレット一体型で、ペン入力機能を装備していることが好ましい。すなわち、各ユーザは、自分のホスト端末上でペン操作により、インクの色を選択して、次いで、大画面のワーク・エリア13上で同じペンを持ったままストロークの入力すなわちペインティングを行なうことができる。
【0088】
また、他のユーザは同様に自分のホスト端末上でペン操作により、インクの色を選択して、次いで、大画面のワーク・エリア13上で同じペンを持ったままストロークの入力を行なうことができる。このような場合、ユーザがPDA上のインク・エリア又はパレット・エリアで指定した属性インクの情報は、ネットワーク経由でワーク・エリアを提供するホスト端末に転送されるので、上述したような手書きストロークに沿ったアニメーション作用を実現することができる。言い換えれば、図5に示した形態の描画インターフェースによれば、複数のユーザによるコラボレーションが可能である。
【0089】
ここで、本実施形態に係る描画インターフェース11が持つ特徴について、以下にまとめておく。
【0090】
(1)パレット上での属性インク同士の混合
本実施形態では、コンピュータの演算機能及び自在な描画機能を利用して、自然現象を動的に表現する自然現象インクや、服やゴム、金属、ガラス、地形、模様などの質感を表す質感インクなどの属性インクをデジタル・キャンバス上でペイントすることができる。
【0091】
さらに、これら属性インク同士をパレット12上で混合して、デジタル・キャンバス上でペイントすることができる。例えば、水インクと炎インクを混ぜることができる。自然界すなわち実世界上では水と炎の混合は成立し得ないが、仮想世界においては、互いの属性パラメータ値を基に、起こり得る現象を仮想的に創り出すことができる。
【0092】
また、インクを薄めてから、混ぜることもできる。これにより、少しだけ水っぽい感じを表出することができる。
【0093】
また、RGB空間で定義される通常の色インクと属性インクとを混ぜることもできる。これによって、緑色の炎や赤い雲などをパレット・エリア12上で作り、デジタル・キャンバス上に塗布することができる。
【0094】
属性インクの混合という作用は、例えば、混合すべき各属性インクが持つ属性パラメータ値の平均値(あるいは加重平均値)をとることによって、動的に実現することができる。
【0095】
あるいは、各々の属性インクが表す自然現象から想起される現象(例えば、炎に水をかけたらどのようになるか)を基に、属性インク同士の組み合わせをあらかじめ定義してルールベースを構築しておき、パレット・エリア12上で属性インクの混合が指示されたときにはルールベースから取り出した属性インクを使用するようにしてもよい。
【0096】
図6には、パレット・エリア12上で雲インクに水インクを混ぜる様子を表している。雲インクのような自然現象インクは、パレット・エリア12上で塗られるとアニメーション作用が活性化される。これら自然現象インクが塗布された表示領域は、「セル(cell)」などの微小な矩形(又は多角形)の描画単位に分割された「メッシュ(mesh)」として管理されている。
【0097】
そして、雲インクの表示領域内で、水インクが指定された状態でマウスのドラッグ操作が印加されると、そのドラッグされたストロークによって横切られたセル(描画単位)において、属性インク同士の混合処理が実行される。属性インクの混合は、各属性インクの属性パラメータ値を平均化処理すること、あるいは、各属性インクが表す自然現象から規定されたルールに従って描画処理される。
【0098】
(2)オブジェクトやシーンに対するインクの塗布
例えば、ワーク・エリア13に既存のオブジェクトやシーンを読み込んで、それに対して属性インクを適用することができる。図7には、描画インターフェース10上でワーク・エリア13にオブジェクトやシーンを読み込んだ様子を示している。
【0099】
オブジェクトやシーンには、微小な描画単位(セル)からなるメッシュがあらかじめ作成されている。あるいは、メッシュがない場合には、ワーク・エリア13に読み込んだ時点でメッシュを動的に生成してもよい。そして、インク・エリア11又はパレット・エリア12で使用する属性インクを指定してから、オブジェクト又はシーン上をドラッグ操作することにより、そのドラッグされたストロークによって横切られた描画単位(セル)において、属性インクによるペイントが行われる。該当する描画単位内では、例えば、セルラー・オートマトンや、パーティクル・システムなどの手法を用いて属性インクのアニメーションが生成される(後述)。
【0100】
また、ワーク・エリア13にオブジェクトが存在しない場合には、ワーク・エリア13内に3次元シーン上の仮想的なキャンバスを設定して、手書きストロークに従ってこのキャンバス上に属性インクを塗り付けるようにしてもよい。
【0101】
なお、本出願人に既に譲渡されている特願2000−209731号明細書には、仮想的に設定されたキャンバス上に手書きにより描画されたイメージを基に3次元的なイメージを作成する画像編集システムについて開示されている。この画像編集システムによれば、まず、地平線のみの3次元空間がディスプレイ・スクリーン上に現れ、該空間に対してストローク線を引くと、該ストローク線を底辺とする壁がキャンバスとして設定される。スクリーンを介してユーザが描いた絵はキャンバス上にマッピングされるので、結果として3次元的な絵を描いたことになる。キャンバス設定と絵を描く操作を重ねることで、所望のシーンを構築することができる。また、キャンバス回転や視点移動により所望の3次元シーンが得られる。
【0102】
図8には、ユーザが描いたストローク線に従って3Dキャンバスが生成される様子、生成された3Dキャンバス上にさらに絵を描く様子、並びにキャンバス回転により所望の3Dシーンを生成する様子を示している。
【0103】
(3)描画効果(Effect)の追加
ワーク・エリア13内では、手書きストロークにより属性インクで塗られた描画オブジェクトに対してエフェクトを追加することができる。
【0104】
既に述べたように、インク・エリア11上で属性インクを指定し、あるいはパレット・エリア12上で混合された属性インクを指定してから、ワーク・エリア13内でドラッグ操作などによる手書きストロークを入力することにより、属性インクで塗り付けられた描画オブジェクトが生成される。属性インクは、例えば自然現象インク又はアクティブ・インクのように、設定された属性パラメータ値に応じて描画処理が時々刻々と変動するというアニメーション作用を有している。手書きストロークからなる描画領域には、例えば、雲や水、炎などのアニメーションが与えられる。
【0105】
属性インクのアニメーション作用を規定する属性パラメータ値には、デフォルト値が与えられる。これに対し、マウス113を用いたインタラクションによって、デフォルト値を意図に反映させることができる。マウス・インタラクションによる属性パラメータ値の変更手続きについては、後に詳解する。
【0106】
また、コピー・アンド・ペーストのような一般的な文書編集処理に用意されている機能も、ワーク・エリア13内でのGUI操作で行うことができる。例えば、ワーク・エリア13内に表示されているある描画オブジェクトを範囲指定した後、他の場所にドラッグ・アンド・ドロップすることにより、オブジェクトが複製される。描画オブジェクトが属性インクでペイント若しくはペーストされているような場合には、元のオブジェクトが持つ属性パラメータ値を継承する。例えば、炎インクで描かれた描画オブジェクトを、幾つも生成することができる。
【0107】
C.属性インクを用いた手書きストロークによるペインティング
この項では、描画インターフェース10を用いて、属性インクを用いた手書きストロークによるペインティングを実現するための処理手順について詳解する。本実施形態に係る手書きストロークに基づく描画処理は、以下の3段階のフェーズに分けられる。
【0108】
(1)ユーザがインクを選んで塗る。
(2)塗った部分を無数の描画単位(セル)に分割してメッシュを生成し、各描画単位毎にインク情報を格納していく。
(3)メッシュ情報により計算を行ない、描画する。
【0109】
C−1.描画インターフェースを用いた作画処理
図9には、描画インターフェース10上での属性インクを用いた手書きストロークによるペインティングを実現するための、画像編集処理全体の概略的な流れをフローチャートの形式で示している。この処理は、実際には、CPU101が所定のプログラム・コードを実行するという形態で実現される。
【0110】
画像編集アプリケーションを起動すると、まず描画インターフェース10の初期化を行なう(ステップS1)。初期化処理については後述する。
【0111】
次いで、現在の動作モードをチェックする(ステップS2)。ここで、描画モードであれば、別途定義されている描画ルーチンを実行する(ステップS3)。描画ルーチンでは、描画インターフェース10上で属性インクの指定並びに手書きストロークに従った描画オブジェクトの生成が行なわれる。描画オブジェクトは、無数の微小な描画単位に分割してなるメッシュによって管理されるが、その処理の詳細については後述に譲る。
【0112】
他方、描画モードでなければ、コントロール・モードかどうかをチェックする(ステップS4)。描画モードであれば、別途定義されているコントロール・ルーチンを実行する(ステップS5)。コントロール・ルーチンでは、描画オブジェクトにペイント又はペーストされている属性インクの属性パラメータ値のコントロールが行われる。属性パラメータ値の変更は、マウス・インタラクションなどを利用して行なわれるが、その詳細については後述に譲る。
【0113】
次いで、別途定義されているシーンの計算ルーチンを実行する(ステップS6)。シーンの計算は、描画オブジェクトを構成するメッシュ情報の各描画単位(セル)毎に行なわれるが、その処理の詳細については後述に譲る。
【0114】
次いで、別途定義されているシーンの描画ルーチンを実行する(ステップS7)。シーンの描画は、描画オブジェクトを構成するメッシュ情報の各描画単位(セル)毎の計算結果に従って行なわれるが、その処理のルーチンの詳細については後述に譲る。
【0115】
ステップS8では、システムが終了条件に到達したかどうかを判別する。
【0116】
終了条件に到達していなければ、ステップS2に戻って、上述した描画ルーチン、コントロール・ルーチン、シーンの計算、シーンの描画を繰り返し実行する。フレーム毎にシーンの計算を繰り返し行なって、炎や水、雲、煙などのアクティブ・インクがペイント又はペーストされた描画オブジェクトの描画を逐次更新していくことによって、時々刻々と変動するアニメーションを生成することができる。
【0117】
他方、終了条件に到達したならば、本処理ルーチン全体を終了する。本処理の終了条件の何であるかは本発明の要旨には直接関連しないので、ここでは説明しない。
【0118】
なお、描画モードやコントロール・モードなどのモード設定、モード切り替えは、例えばマウスのボタン操作によって行なうようにする。例えば、マウスの左ボタンを押すと描画モードになり、ドラッグした軌跡は手書きストロークとして入力される。また、マウスの右ボタンを押すとコントロール・モードになり、マウス・インタラクション(前述)が行なわれると、ドラッグした軌跡は属性インクの属性パラメータ値として入力される。
【0119】
C−2.初期化処理
図10には、図9に示したフローチャート中のステップS1における初期化処理の手順をより詳細に示している。
【0120】
まず、ディスプレイ111の表示画面上に、インク・エリア11、パレット・エリア12、及び描画インターフェース10(図2を参照のこと)のウィンドウ・フレーム(図2又は図3を参照のこと)を用意する(ステップS11)。
【0121】
このうち、パレット・エリア12は、複数のインクを混合・調色したり濃淡を調整したりする作業領域であり、マウス操作からなる手書きストロークに従って属性インクをペイントする必要があることから(図6を参照のこと)、パレット・エリア12内にはあらかじめ属性インクを描画するためのメッシュを作成しておく(ステップS12)。
【0122】
次いで、インク・エリア11で用意する色インクや属性インクが使用するテクスチャなどの描画データを、HDD114などの外部記憶装置から読み込む(ステップS13)。頻繁に使用するテクスチャは、あらかじめキャッシュしておいてもよい。
【0123】
次いで、各インクの計算に使用する変数の初期化、並びにデータの作成を行なう(ステップS14)。例えば、属性インクで使用する色の変化配列などをこのステップで用意しておく。
【0124】
C−3.描画ルーチン
図11には、図9に示したフローチャート中のステップS3に該当する描画ルーチンにおける処理手順を詳細に示している。
【0125】
まず、ユーザは、パレット・エリア12に付設されているペン選択エリアから所望の線種を持つペンを選択する(ステップS21)。そして、選択されたペンを用いた「塗る」処理を実行する(ステップS22)。塗る処理は別途定義された処理ルーチンであり、その詳細については後述に譲る。
【0126】
ユーザが選択ツールを選択した場合には(ステップS23)、該選択されたツールを適用した描画処理を実行する(ステップS24)。
【0127】
ここで言うツール選択には、例えば、「コピー・アンド・ペースト」を挙げることができる。この場合、ワーク・エリア13内に表示されているある描画オブジェクトを範囲指定した後、他の場所にドラッグ・アンド・ドロップすることにより、オブジェクトが複製される。描画オブジェクトが属性インクでペイント若しくはペーストされているような場合には、元のオブジェクトが持つ属性パラメータ値を継承する。例えば、炎インクで描かれた描画オブジェクトを、幾つも生成することができる。
【0128】
また、キャンバス作成を選択した場合には(ステップS25)、別途定義されているキャンバス作成処理を実行する(ステップS26)。
【0129】
ステップS26では、ワーク・エリア13内に3次元シーン上の仮想的なキャンバスを設定して、手書きストロークに従ってこのキャンバス上に属性インクを塗り付けるようにしてもよい。例えば、ユーザが描いたストローク線に従って生成された3Dキャンバス上に、属性インクを用いて絵を描くことができる。また、この3Dキャンバスを視点移動やキャンバス回転により、所望の3Dシーンを生成することができる(図8を参照のこと)。
【0130】
既に述べたように、本実施形態に係る描画インターフェース10は、ワーク・エリア13並びにパレット・エリア12内の描画オブジェクトを、「セル(cell)」などの微小な矩形(又は多角形)の描画単位に分割された「メッシュ(mesh)」として管理するようになっている。
【0131】
ユーザがインクを選んで塗ると、塗った部分(オブジェクトやシーン)を無数の描画単位(セル)に分割してメッシュを生成して、各描画単位毎にインク情報を格納していく。そして、メッシュ情報により計算を行ない、オブジェクトやシーンを描画する。
【0132】
オブジェクトやシーンには、微小な描画単位(セル)からなるメッシュがあらかじめ作成されている。あるいは、メッシュがない場合には、読み込んだ時点でメッシュを動的に生成してもよい。図12には、ワーク・エリア13内で塗られた部分に対してメッシュを動的に生成していく様子を図解している。
【0133】
インク・エリア11又はパレット・エリア12で使用する属性インクを指定してから、オブジェクト又はシーン上をドラッグ操作することにより、そのドラッグされたストロークによって横切られたセル(描画単位)において、属性インクによるペイントが行われる。
【0134】
そして、同じ属性インクからなる描画オブジェクトに対してラベリング値とマウス・インタラクションによる操作方向のベクトル(U,V情報)が割り当てられる。
【0135】
ラベリング値が与えられた描画オブジェクトは、さらに、微小な描画単位からなるメッシュを補間する。また、必要に応じて、メッシュをさらに細分化する。また、各描画オブジェクトの描画情報を管理するために、メッシュ情報ブロックが生成される。
【0136】
図13には、メッシュ情報ブロックのデータ構造を模式的に示している。図示の通り、メッシュ情報ブロックは、割り当てられたラベリング値と、マウス・インタラクションすなわち描画オブジェクト内を横切った手書きストロークを構成する操作方向ベクトル(U,V情報)のリストと、メッシュを構成する各描画単位(mesh_data)のリストで構成される。
【0137】
また、図14には、描画オブジェクトすなわちメッシュを構成する描画単位に関する描画情報を管理するためのデータ・ブロック"mesh_data"のデータ構造を模式的に示している。既に述べたように、各描画単位(セル)に対して、セルラー・オートマトンやパーティクル・システムなどの手法を適用することによって、属性インクが持つ自然現象を表した動きなどのアニメーション作用が生成される。同図に示すように、データ・ブロックmesh_dataは、該当する描画単位に塗られている属性インクのインク・リストと、この描画単位に対してセルラー・オートマトンやパーティクル・システムなどの手法を適用するために使用する変数(カラー情報(color information)、位置情報(position information)、テクスチャ情報(texture information)など)で構成される。
【0138】
また、本実施形態では、インク・エリア11によりあらかじめ用意されている属性インク、並びに、パレット・エリア12上で2以上のインクを混合・調色してなる属性インクを管理するために、各属性インク毎にデータ・ブロックを設けて管理している。
【0139】
図15には、mesh_dataに登録されている属性インクの情報を管理するためのデータ・ブロックのデータ構造を模式的に示している。このデータ・ブロックは、該当するインクを構成する元の各インクのIDのリスト(InkID)と、テクニカル・インクを適用して指定されているインクの濃淡を示すカウント値(Technical_count)を含んでいる。テクニカル・インクのカウント値は、属性インクの濃淡を示すカウント値Technical_Ink[0]と、属性インクの細かさ(すなわち粒度)を示すカウント値Technical_Ink[1]の2種類がある。
【0140】
C−3−1.塗る処理
図16には、図11に示した描画ルーチンのうち、ステップS22の塗る処理の手順をフローチャートの形式でより詳細に示している。
【0141】
ユーザは、インク・エリア11上で所望のインクをマウス113でクリックすることによりインクを選択することができる(ステップS31)。このとき、選択したインクのIDが一時保持される(ステップS32)。
【0142】
また、ワーク・エリア13をクリックすることにより(ステップS33)、ワーク・エリア13上での絵を描く処理が実行される(ステップS34)。ワーク・エリア13内での処理ルーチンは別途定義されているが、その詳細については後述に譲る。
【0143】
また、パレット・エリア12をクリックすることにより(ステップS35)、パレット・エリア12内で複数の属性インクを混合・調色したり濃淡を調整したりするための処理が実行される(ステップS36)。パレット・エリア12内での処理ルーチンは別途定義されているが、その詳細については後述に譲る。
【0144】
ステップS37では、システムが終了条件に到達したかどうかを判別する。
【0145】
終了条件に到達していなければ、ステップS31に戻って、インク・エリア11、ワーク・エリア13、及び、パレット・エリア12などの描画インターフェース10を用いてユーザが絵を描く処理を繰り返し実行する。
【0146】
他方、終了条件に到達したならば、本処理ルーチン全体を終了する。本処理の終了条件の何であるかは本発明の要旨には直接関連しないので、ここでは説明しない。
【0147】
C−3−2.ワーク・エリア上での処理
図17には、図16に示した塗る処理手順のうち、ステップS34に相当するワーク・エリア13を用いた絵を描くための処理手順をフローチャートの形式でより詳細に示している。ワーク・エリア13は、デジタル空間上のキャンバスを実世界上に表示した一形態である。ユーザは、ワーク・エリア13内でマウスをドラッグ操作することによって得られる手書きストロークに従って、指定されたインクが塗り付けられる。以下、図17を参照しながら、ワーク・エリア13上での作画処理の手順について説明する。
【0148】
ワーク・エリア13内での作画処理は、ユーザがマウス113の左ボタンを解除するまでの間継続する(Loop1)。
【0149】
ワーク・エリア13内でマウス113がドラッグされると(ステップS41)、属性インクが保持されているかどうか(すなわちインク・エリア11で既にインクを指定しているかどうか)がチェックされる(ステップS42)。
【0150】
属性インクを保持している場合には、さらに、マウス113がクリック又はドラッグされた場所が描画オブジェクト上であるかどうかをチェックする(ステップS43)。
【0151】
描画オブジェクト上でクリック又はドラッグ操作が行なわれた場合には、マウス113による指示座標をU,V値に変換する(ステップS44)。そして、このU,V座標値にメッシュが存在するかどうかを判別する(ステップS45)。
【0152】
メッシュが存在しない場合には、新たにメッシュを生成する(ステップS47)。メッシュの生成は別途定義された処理ルーチンによって実行されるが、その詳細については後述に譲る。
【0153】
既に述べたように、描画オブジェクトに対して生成されたメッシュはメッシュ情報ブロック(図13を参照のこと)によって管理される。メッシュは、無数の微小な描画単位(セル)に分割されており、各描画単位はデータ・ブロックmesh_data(図14を参照のこと)によって管理されている。ステップS46では、マウス113でクリック又はドラッグにより通過した各描画単位のmesh_dataに、今回指定されている属性インクをインク・リストに書き込む。mesh_dataが既にインクIDを持つメッシュに塗った場合には、インクIDの値がインク・リストに追加される。
【0154】
マウス113の左ボタンを楷書すると、処理は上記のLoop1を抜ける。そして、ステップS48では、描画オブジェクトのメッシュ情報ブロックにラベリング値とデフォルトのベクトルU,Vを付与して、本処理ルーチン全体を終了する。ベクトルU,Vは、セルラー・オートマトンやパーティクル・システムを用いて属性インクのアニメーション処理を行う際に利用される。ステップS48により与えられたこれらのデフォルト値を、マウス・インタラクション(前述)によって変更することができる。
【0155】
図18には、図17に示したワーク・エリア13内での処理のうち、ステップS47のメッシュを生成する処理の手順をフローチャートの形式でより詳細に示している。
【0156】
まず、U,Vの値から、マウス113がクリック又はドラッグされた位置のポリゴン情報を得る(ステップS51)。但し、ここで言うポリゴンは3角形を想定する。
【0157】
次いで、ポリゴンを構成する3辺で最も長いものを保持する(ステップS52)。そして、長い辺を共有する他のポリゴンと結合して4角形を生成して、これをメッシュを構成する描画単位として、各点の情報をこの描画単位を管理するmesh_dataに格納する(ステップS53)。
【0158】
このようにして、描画オブジェクトから微小な4角形の描画単位に分割したメッシュが生成される。次いで、メッシュを構成する各描画単位について、辺の長さが所定の閾値より大きいかどうかをチェックする(ステップS54)。そして、所定の閾値よりも大きい辺を持つ描画単位に関しては、さらにその細分化処理を適用する(ステップS55)。
【0159】
ステップS55におけるメッシュの細分化の処理ルーチンは別途定義されている。図19には、このメッシュ細分化処理ルーチンをフローチャートの形式で示している。
【0160】
まず、対象となる辺を所定の閾値で割り、その値を整数値で保持する(ステップS61)。
【0161】
次いで、対象となる辺と対角にある辺をこの保持値で分割する(ステップS62)。
【0162】
次いで、分割した個数だけ、メッシュに描画単位を補間するとともに、メッシュ情報ブロックに対応するmesh_dataを追加する(ステップS63)。
【0163】
C−3−3.パレット・エリア上での処理
図20には、図16に示した塗る処理手順のうち、ステップS36に相当するパレット・エリア12上での属性インクを混合するための処理手順をフローチャートの形式でより詳細に示している。以下、図20を参照しながら、パレット・エリア12上での処理手順について説明する。
【0164】
パレット・エリア12内での作画処理は、ユーザがマウス113の左ボタンを解除するまでの間継続する(Loop1)。
【0165】
ワーク・エリア13内でマウス113がドラッグされると(ステップS71)、属性インクが保持されているかどうか(すなわちインク・エリア11で既にインクを指定しているかどうか)がチェックされる(ステップS72)。
【0166】
パレット・エリア12でクリック又はドラッグ操作が行なわれると、マウス113による指示座標をU,V値に変換する(ステップS73)。そして、パレット・エリア12内で生成されたメッシュ中の該当する描画単位のmesh_dataにこのインクIDを加える(ステップS74)。
【0167】
メッシュを構成する描画単位のmesh_dataにインクIDを加える処理は、別途定義されている処理ルーチンによって実行される。図21には、mesh_dataにインクIDを加える処理をフローチャートの形式で示している。
【0168】
まず、付け加えるべきインクが属性インクかどうかをチェックする(ステップS81)。
【0169】
属性インクである場合には、mesh_dataのインク・リストを検索して、同じインクIDを既に保持しているかどうかをチェックする(ステップS82)。
【0170】
そして、同じインクIDを保持していない場合には、この属性インクをインク・リストに追加する(ステップS83)。
【0171】
他方、付け加えるべきインクが属性インクではない場合には、さらに、これがテクニカル・インクであるかどうかをチェックする(ステップS84)。
【0172】
テクニカル・インクは、属性インクが持つ属性値を変更するためのインクであり、本実施形態ではインクの濃淡を調整したり、メッシュの描画単位を大まかにしたり細かくすることができる(前述)。
【0173】
付け加えるべきインクがテクニカル・インクである場合には、インクの濃淡又は粒度のいずれを指定するインクであるかをさらにチェックする(ステップS85)。
【0174】
そして、テクニカル・インクがインクの濃淡を指定するものである場合には、薄める又は濃くするインクの処理を実行する(ステップS86)。また、テクニカル・インクがインクの粒度を指定するものである場合には、大まか又は細かくするインクの処理を実行する(ステップS87)。
【0175】
ステップS86及びステップS87におけるテクニカル・インクの処理は、別途定義された処理ルーチンにより実行されるが、各処理ルーチンの詳細については後述に譲る。
【0176】
ここで、テクニカル・インクの機能について説明する。テクニカル・インクは、それ自体は、色や模様、自然現象などのビヘイビア/アニメーションを持っている訳ではなく、他の属性インクと組み合わせることにより、属性インクに対して以下のような作用を与えることができる。
【0177】
(1)薄める、濃くするインクでの調整
すなわち、炎や煙などの自然現象インクについて、そのアニメーションの動作速度を早くしたり遅くしたりすることができる。例えば、粒子の放出により自然現象を表現する場合には、その放出速度や放出周期を変更することにより、インクの濃淡を表現することができる。
【0178】
(2)大まかにする、細かくする
描画オブジェクトを構成するメッシュの粒度を大まかにしたり、細かくする。この結果、テクスチャの質感を大まかにしたり細かくしたりすることができる。また、セルラー・オートマトンやパーティクル・システムを用いてアニメーション作用を表現する場合には、メッシュの粒度により質感を変更することができる。
【0179】
例えば、セルラー・オートマトンにおいては、隣接する描画単位間で働く引力や斥力などの相互作用によりアニメーション作用を生成することから、描画単位を大まかにするか細かくするかで相互作用が変わる。また、パーティクル・システムでは各描画単位毎に粒子のエミッタを配設することから、描画単位を大まかにするか細かくするかで質感に影響を与える。
【0180】
(3)部分的に変化を加える
テクニカル・インクを塗った部分だけスピードや振る舞いが変化するので、塗った部分の属性だけを部分的に変えることができる。例えば、既に属性インクが塗り付けられた描画オブジェクトの一部分だけをテクニカル・インクを用いてマウス113でドラッグすることにより、メッシュのうちマウス・カーソルが横切った部分の描画単位に対してだけテクニカル・インクの作用(薄める/濃くする、あるいは大まかにする/細かくする)が適用される。
【0181】
図22には、図21に示したメッシュにインクIDを加える処理ルーチンのうち、ステップS86における属性インクを薄める又は濃くするテクニカル・インクの処理手順をフローチャートの形式で示している。
【0182】
まず、指定されたテクニカル・インクが濃くするインクであるかどうかをチェックする(ステップS91)。
【0183】
濃くするインクである場合には、該当する描画単位(すなわち、マウス113でクリック又はドラッグされた描画単位)のmesh_dataに登録されている属性インクについてのインクの濃淡を示すカウント値Technical_count[0]を1だけインクリメントする(ステップS92)。
【0184】
他方、濃くするインクである場合には、該当する描画単位のmesh_dataに登録されている属性インクについてのインクの濃淡を示すカウント値Technical_count[0]を1だけデクリメントする(ステップS93)。
【0185】
図23には、属性インクの濃淡を示すテクニカル・インクのカウント値Technical_count[0]による作用の一例を図解している。
【0186】
既に述べたように、本実施形態では、各描画単位(セル)に対して、セルラー・オートマトンやパーティクル・システムなどの手法を適用することによって、属性インクが持つ自然現象を表した動きなどのアニメーション作用を生成するようになっている。このうち、セルラー・オートマトンは、隣接する描画単位間で働く引力や斥力などの相互作用によりアニメーション作用を生成する。
【0187】
図23で示す例では、属性インクの濃淡を示すテクニカル・インクのカウント値Technical_count[0]を大きくした、すなわち濃くした場合には、隣接する描画単位間で働く引力を強くして(あるいは斥力を弱くして)、属性パラメータ値が近隣の描画単位から受ける影響を大きくすることにより、「濃さ」を表現している。逆に、属性インクの濃淡を示すテクニカル・インクのカウント値Technical_count[0]を小さくした、すなわち薄くした場合には、隣接する描画単位間で働く引力を弱くして(あるいは斥力を強くして)、属性パラメータ値が近隣の描画単位から受ける影響を小さくすることにより、「薄さ」又は「淡さ」を表現している。
【0188】
また、図24には、図21に示したメッシュにインクIDを加える処理ルーチンのうち、ステップS87における属性インクを大まかにする又は細かくするテクニカル・インクの処理手順をフローチャートの形式で示している。
【0189】
まず、指定されたテクニカル・インクが細かくするインクであるかどうかをチェックする(ステップS101)。
【0190】
細かくするインクである場合には、該当する描画単位(すなわち、マウス113でクリック又はドラッグされた描画単位)のmesh_dataを現在処理対象のmesh_dataとして保持する(ステップS102)。
【0191】
次いで、4個分の描画単位のmesh_dataを保持するためのメモリ領域を確保してから(ステップS103)、保持中の描画単位を4等分して、4個の描画単位の情報を新たに生成したmesh_dataにそれぞれ格納する(ステップS104)。
【0192】
そして、4等分された描画単位の各片を現在処理対象の描画単位の子供として位置付けて、そのmesh_dataに子供の描画単位(pixel child[4])としてリストに加えていく(ステップS105)。
【0193】
他方、指定されたテクニカル・インクが細かくするインクでない場合には、該当する描画単位(すなわち、マウス113でクリック又はドラッグされた描画単位)が既に子供(pixel child[4])を持っているかどうかをチェックする(ステップS106)。
【0194】
該当する描画単位が既に子供の描画単位を持っている場合には、その最下層の子供をリストから外す(ステップS107)。この結果、4等分された粒度の細かい描画単位が失われるので、その分だけ描画単位は大きくなる。また、子供に使用していたmesh_dataは不要となるので、メモリ上から解放する(ステップS108)。
【0195】
また、ステップS107において子供が存在しないと判定された場合には、属性インクの大まかさ又は細かさを示すテクニカル・インクのカウント値Technical_count[1]を1だけインクリメントする(ステップS109)。
【0196】
図25には、属性インクの大まかさ又は細かさを示すテクニカル・インクを描画オブジェクトに適用した様子を図解している。
【0197】
パレット・エリア12内では、初期化処理時に既にメッシュが生成されている(図10を参照のこと)。メッシュは、4角形の微小な描画単位(セル)によって構成されている。
【0198】
まず、インク・エリア11上で属性インクの大まかさ又は細かさを調整するためのテクニカル・インクを指定した後、パレット・エリア12内で属性インクが既にペイントされている領域上でマウス113をドラッグする。
【0199】
ドラッグしたときの軌跡すなわち手書きストロークが、例えば図25(a)に示す通りであったとする。この場合、テクニカル・インクを適用する対象は、手書きストロークによって横切られた各描画単位である。
【0200】
大まかにするテクニカル・インクである場合には、図24に示した処理手順に従って、手書きストロークによって横切られた各描画単位を大まかにする処理を行う。
【0201】
また、細かくするテクニカル・インクである場合には、図24に示した処理手順に従って、手書きストロークによって横切られた各描画単位を大まかにする処理を行う。すなわち、各描画単位を4等分して新たなmesh_dataにその情報を格納する。また、4等分された描画単位を、元の描画単位のmesh_dataに子供の描画単位としてリストに加えていく。
【0202】
図26には、属性インクの大まかさ又は細かさを示すテクニカル・インクのカウント値Technical_count[1]による作用の一例を図解している。
【0203】
既に述べたように、本実施形態では、各描画単位(セル)に対して、セルラー・オートマトンやパーティクル・システムなどの手法を適用することによって、属性インクが持つ自然現象を表した動きなどのアニメーション作用を生成するようになっている。このうち、セルラー・オートマトンは、隣接する描画単位間で働く引力や斥力などの相互作用によりアニメーション作用を生成する。
【0204】
大まかにするテクニカル・インクを適用した場合、図25(b)に示したように、メッシュの描画単位は大きくなる。図26(a)に示す普通の状態では、隣接する描画単位の間でこれに対し、描画単位が大きくなった場合には、図26(b)に示す例では、1つの描画単位に結合した結果として元の描画単位間での引力又は(斥力)などの相互作用はなくなる。すなわち、仮想的にメッシュが大きくなったようにして計算を省くことで、「大まか」になったことを実現することができる。
【0205】
他方、細かくするテクニカル・インクを適用した場合、図25(c)に示したように、メッシュの描画単位は4等分される。このような場合には、図26(c)に示すように、元の描画単位の中に子供となる描画単位を挿入して、これら子供と隣接する各描画単位との引力又は(斥力)などの相互作用の計算を補うことによって、「細かく」なったことを実現することができる。
【0206】
C−3−4.アニメーション作用の処理
以上説明してきたように、本実施形態に係る描画インターフェース10によれば、ディスプレイ画面上のワーク・エリア13として仮体されたデジタル・キャンバスに、自然現象を表した動きなどのアニメーション作用を持つ属性インクをペイント又はペーストすることができる。また、ワーク・エリア13上で使用する属性インクは、パレット・エリア12を用いて混合したり、テクニカル・インクと混合して濃淡などを調整してから、ワーク・エリア13上でペイントやペーストに使用することができる。
【0207】
ワーク・エリア13やパレット・エリア12内で使用される属性インクのアニメーション作用は、例えば、セルラー・オートマトンやパーティクル・システムなどの手法によって実現することができる。ここで、これらの各手法について詳解しておく。
【0208】
(1)セルラー・オートマトン(Celllar Automaton)
セルラーは、英語で「細胞状の」を意味し、オートマトンは「自動機械」を意味する。
【0209】
セルラー・オートマトンにおいては、オブジェクトを無数の微小なセル(細胞)の集まりとしてとらえて、隣接するセル間で働く引力や斥力などの相互作用によりアニメーション作用を生成することができる。セルラー・オートマトンにより描画を行う場合には、この引力や斥力を基に各セルの属性パラメータ値を決定すればよい。
【0210】
ここでは、説明の簡素化のため、各セルが白又は黒の2種類の属性パラメータ値しか持たない場合を例にとって、セルラー・オートマトンのルールについて説明する。
【0211】
セルラー・オートマトンでは、上の階層の連続する3個のセルの状態からその下の階層における真中1つのセルの状態が定まる。但し、白は「死」を、黒は「生」を意味する。例えば、図27(a)に示す例では、すべてのセルが死んでいるので、突然変異で「生まれる」というルールを示している。また、図27(b)では1匹しか生きていないので、「死滅する」というルールを示している。また、図27(c)及び図27(d)では、それぞれ2匹生きているので、真中の状態で「生き延びる」か「死滅する」かが決定されるというルールを示している。また、図27(e)では、3匹とも生きているので、「食糧不足で死んでしまう」というルールを示している。
【0212】
例えば、上記のような初期状態(黒、白、黒、白、白、黒、黒、白、白、黒、白、黒、黒)から始めると、段階を追って下に下に行く。この結果、図28に示すように、3段階目では、黒、白、黒、黒、白、黒、黒、白、黒、黒、白、黒、黒のようになる。
【0213】
次いで、セルラー・オートマトンを用いたアニメーション作用の記述について、図29を参照しながら説明する。
【0214】
既に述べたように、セルラー・オートマトンでは、隣接するセル間で働く相互作用によって、セルの次の状態すなわち属性パラメータ値を計算する(図29(a)を参照のこと)。
【0215】
例えば、あるセルは、これを囲む四方八方のセルから8方向の引力(又は斥力)F1〜F8が印加されているととらえることができる(図29(a)を参照のこと)。したがって、真中のセルに対しては、F=(F1+F2+F3+F4+F5+F6+F7+F8)/8という力が作用し、このFを基にセルの位置を決定することにより、セルに「動き」という作用を付与することができる。
【0216】
次いで、セルラー・オートマトンを利用した塗る作用の表現について、図30を参照しながら説明する。
【0217】
ワーク・エリア13内で、マウス113をドラッグするなどして手書きストロークを入力すると、ストロークの軌跡は塗られたことを意味し、塗られた部分すなわち描画オブジェクトには複数の微小な描画単位すなわちセルからなるメッシュが補間される。
【0218】
各セルには、U,V情報のデフォルト値が与えられている(前述)。デフォルト状態のU,V情報は、マウス・インタラクションで変更することができる。このU,V情報を用いて、セルの色や位置の変化(動き)を計算する。
【0219】
(2)パーティクル・システム
パーティクル・システムは、エミッタから放出されるパーティクルに対してさまざまな力をかけるという現象を利用するものであり、各描画単位毎にエミッタを配置することによって、描画オブジェクトに対して動きの表現を与えることができる。
【0220】
図31には、パーティクル・システムの原理図を示している。同図に示すように、パーティクル・システムは、パーティクルと、所定周期でパーティクルを放出するエミッタと、エミッタに対してさまざまな作用を及ぼすフォースで構成される。
【0221】
エミッタは、放出するパーティクルと、放出の方向と広がり角度、放出速度などをパラメータとして持つ。また、フォースとは、パーティクルに印加する重力、静電気力(引力と斥力)、渦巻きの効果、風の効果、乱流の効果など、非接触又は間接的な作用を及ぼす。また、パーティクルは、寿命やフォースに対する特性、サイズ、色と透明度、テクスチャなどをパラメータとして持つ。さらに、パーティクルが活動する場に障害物を設置することができ、障害物に対するパーティクルのバウンドなどの現象を動きとして利用することもできる。
【0222】
次いで、パーティクル・システムを利用した塗る作用の表現について、図32を参照しながら説明する。
【0223】
ワーク・エリア13内で、マウス113をドラッグするなどして手書きストロークを入力すると、ストロークの軌跡は塗られたことを意味し、塗られた部分すなわち描画オブジェクトには複数の微小な描画単位すなわちセルからなるメッシュが補間される。
【0224】
各描画単位毎に(例えばその中心に)、パーティクルのエミッタが配置される。各エミッタは、属性インクの属性パラメータ値によって求められたパーティクルを放出する。放出された各パーティクルは放出速度、放出方向、並びにフォースの影響に応じた軌跡を描く。
【0225】
パーティクル、エミッタ、及びフォースが持つ属性値には、メッシュを補間した時点ではデフォルト値が代入される。その後、マウス・インタラクションでパラメータを変更することができる。
【0226】
C−4.シーンの計算
上述した描画ルーチンでは、メッシュ化された描画オブジェクトを構成する各描画単位毎に塗られた属性インクによる描画情報が計算されて、その計算結果は各描画単位についてのmesh_dataに格納される。
【0227】
図9に示した作画処理の全体処理ルーチンにおける、ステップS6では、これら各描画単位毎のmesh_dataを基に、シーンの計算が行われる。この項では、シーンの計算処理について説明する。
【0228】
図33には、シーンの計算処理の手順をフローチャートの形式でより詳細に示している。
【0229】
ワーク・エリア13内で入力された手書きストロークを基に生成された描画オブジェクトは、無数の微小な描画単位からなるメッシュで補間されるとともに、ラベリング値が割り当てられている。描画オブジェクトはシーンの計算は、ラベリングされた各描画オブジェクト毎に行われる(Loop1)。
【0230】
1つの描画オブジェクトは、適用されたインクを共有している。Loop2では、インク・リスト(図15を参照のこと)に登録されている各インク毎に、テクニカル・インクの値とベクターU,V値を基に、インク・アルゴリズムを適用して(ステップS111)、その計算結果を保持しておく(ステップS112)。
【0231】
インク・アルゴリズムは、主に、属性インクで塗られた描画オブジェクトに対して、その属性パラメータ値に基づくアニメーション作用すなわち動きを与える処理を行う。既に述べたように、属性インクは、自然現象のような時々刻々と様相が変化する動的な現象を表現するためのインクであるが、水や雲、雪、炎、煙など対象とする現象毎にその処理手順は異なる。また、同じ自然現象を対象とする場合であっても、セルラー・オートマトン、又はパーティクル・システムのいずれの手法を利用するかによってもインク・アルゴリズムは相違する。インク・アルゴリズムの処理手順の詳細については後述に譲る。
【0232】
次いで、Loop3及びLoop4で構成される閉ループでは、ラベリング値が割り当てられた描画オブジェクトの塗られた部分に対して、インク・リストに登録されているすべてのインクについて、ステップS111におけるインク・アルゴリズムの計算結果の和を保持する(ステップS113)。
【0233】
ステップS114では、計算結果の平均をとり、現在の描画オブジェクトの状態とする。この平均化処理により、2以上の属性インクを混合する処理が実現される。
【0234】
C−4−1.インク・アルゴリズムの計算例1(炎の場合)
属性インクは、自然現象のような時々刻々と様相が変化する動的な現象を表現するためのインクであるが、水や雲、雪、炎、煙など対象とする現象毎にその処理手順は異なる。また、同じ自然現象を対象とする場合であっても、セルラー・オートマトン、又はパーティクル・システムのいずれの手法を利用するかによってもインク・アルゴリズムは相違する。
【0235】
この項では、炎を表す属性インク、すなわち炎インクを処理するインク・アルゴリズムについて説明する。
【0236】
図34には、炎インクを処理するためのインク・アルゴリズムをフローチャートの形式でより詳細に示している。但し、このアルゴリズムは、セルラー・オートマトンに従うものとする。
【0237】
まず、描画オブジェクトを構成する描画単位についてのmesh_dataを一時変数にコピーする(ステップS121)。
【0238】
次いで、属性インクの濃淡を表すテクニカル・インクの値TechnicalInk[0]と乱数から発生確率を計算して(ステップS122)、その計算結果を保持する(ステップS123)。
【0239】
次いで、描画オブジェクトを構成するすべての描画単位に対して、大まかさ又は細かさを表すテクニカル・インクの値Technical Ink[1]に従って色の計算を行う(ステップS124)。Technical Ink[1]に従った色の計算は、別途定義された処理ルーチンによって実行されるが、その詳細については後述に譲る。
【0240】
次いで、各描画単位の色を、炎の色を定義するカラーパレット(図示しない)により計算する(ステップS125)。
【0241】
そして、描画オブジェクトのメッシュを構成するすべての描画単位について色を計算し終えると、その計算結果をmesh_dataに代入する(ステップS126)。
【0242】
ステップS122では乱数を使用しているが、例えば発火点をランダムに点滅させることによって、描画オブジェクトに対して炎を表す独特の揺らぎの効果を与えることができる。
【0243】
また、ステップS125ではカラー・パレットを使用しているが、カラーパレットを黒→赤→黄色→白のグラデーションで構成することによって、ぼかして平均化することで発火点の周辺を明るい黄色にして、その上にいくに従って赤みを増すような効果を与えることができる。
【0244】
図35には、ステップS124における大まかさ又は細かさを表すテクニカル・インクの値Technical Ink[1]に従った色の計算を行う処理手順を、フローチャートの形式でより詳細に示している。
【0245】
まず、計算対象となる描画単位のmesh_dataから、大まかさ又は細かさを表すテクニカル・インクの値Technical_count[1]を保持する(ステップS131)。
【0246】
次いで、この描画単位と隣接する上下及び左右(並びに左右斜め方向の上下)で隣接する各描画単位のmesh_dataを参照して、これらのTechnical_count[1]が保持値と等しいかどうかをチェックする(ステップS132)。
【0247】
そして、これらのTechnical_count[1]が保持値と等しくない場合には、これらの色の和を保持する(ステップS133)。
【0248】
このようにして隣接する描画単位との間でTechnical_count[1]の比較を終えると、色の平均を計算する(ステップS134)。
【0249】
C−4−2.インク・アルゴリズムの計算例2(水の場合)
この項では、水を表す属性インク、すなわち水インクを処理するインク・アルゴリズムについて説明する。
【0250】
図36には、水インクを処理するためのインク・アルゴリズムをフローチャートの形式でより詳細に示している。但し、このアルゴリズムは、セルラー・オートマトンに従うものとする。
【0251】
まず、描画オブジェクトを構成する描画単位についてのmesh_dataを一時変数にコピーする(ステップS141)。
【0252】
そして、塗られた部分の各描画単位毎に、インク・アルゴリズムの処理を行なう(Loop1)。
【0253】
まず、現在の描画単位を保持すると(ステップS142)、この描画単位と隣接する上下及び左右(並びに左右斜め方向の上下)で隣接する各描画単位との間で(Loop2)、現在の描画単位との距離を計算する(ステップS143)。この距離計算は、ベクター値U,Vを基に行われる。
【0254】
次いで、現在の描画単位が持つ大まかさ又は細かさを表すテクニカル・インクの値Technical_count[1]に従って力の計算を行なう(ステップS144)。Technical Ink[1]に従った力の計算は、別途定義された処理ルーチンによって実行されるが、その詳細については後述に譲る。
【0255】
そして、現在保持している描画単位が隣接する各描画単位から及ぼされている力の計算を終了すると、これらの力の平均値を計算して、これを描画単位の位置に反映させる(ステップS145)。
【0256】
このような処理をすべての描画単位に対して適用することにより、水インクのシーンを算出することができる。
【0257】
図37には、ステップS144における大まかさ又は細かさを表すテクニカル・インクの値Technical Ink[1]に従った力の計算を行う処理手順を、フローチャートの形式でより詳細に示している。
【0258】
まず、計算対象となる描画単位のmesh_dataから、大まかさ又は細かさを表すテクニカル・インクの値Technical_count[1]を保持する(ステップS151)。
【0259】
次いで、この描画単位と隣接する上下及び左右(並びに左右斜め方向の上下)で隣接する各描画単位のmesh_dataを参照して、これらのTechnical_count[1]が保持値と等しいかどうかをチェックする(ステップS152)。
【0260】
そして、これらのTechnical_count[1]が保持値と等しくない場合には、計算対象となる描画単位のTechnical_count[1]の方が小さいかどうかをさらにチェックする(ステップS153)。
【0261】
計算対象となる描画単位のTechnical_count[1]の方が小さい場合には、描画単位間の距離を計算する(ステップS154)。
【0262】
他方、計算対象となる描画単位のTechnical_count[1]の方が大きい場合には、同じサイズの描画単位を一時的に補い(ステップS155)、この擬似的な描画単位との間で距離計算を行ってから(ステップS156)、擬似的な描画単位を元の状態に解放する(ステップS157)。
【0263】
このような大まかさ又は細かさを表すテクニカル・インクの値Technical Ink[1]に従った距離計算を描画オブジェクト内のすべての描画単位に対して実行し終えると、描画単位間の距離から力を計算することができる(ステップS158)。
【0264】
C−4−3.インク・アルゴリズムの計算例3(パーティクル・システムを適用した場合)
属性インクは、自然現象のような時々刻々と様相が変化する動的な現象を表現するためのインクであるが、同じ自然現象を対象とする場合であっても、セルラー・オートマトン、又はパーティクル・システムのいずれの手法を利用するかによってもインク・アルゴリズムは相違する。
【0265】
図38には、パーティクル・システムを適用した場合のインク・アルゴリズムをフローチャートの形式でより詳細に示している。
【0266】
この項では、パーティクル・システムを適用した場合におけるインク・アルゴリズムについて説明する。
【0267】
この場合、塗られた部分すなわち描画オブジェクトの各描画単位に対して、パーティクルの放出を行なう(Loop1)。
【0268】
まず、属性インクの濃淡を表すテクニカル・インクの値Technical Ink[0]と乱数を基に、パーティクルを生成する(ステップS161)。
【0269】
次いで、エミッタにおける各パーティクルの放出速度を設定する(ステップS162)。
【0270】
次いで、各パーティクルの色とサイズを設定する(ステップS163)。
【0271】
次いで、重力など、パーティクルに作用する外的な力を設定する(ステップS164)。
【0272】
そして、各パーティクルの寿命を設定する(ステップS165)。
【0273】
C−5.シーンの描画
上述した描画ルーチンでは、メッシュ化された描画オブジェクトを構成する各描画単位毎に塗られた属性インクによる描画情報が計算されて、その計算結果は各描画単位についてのmesh_dataに格納される。さらに、シーンの計算処理では、これら各描画単位毎のmesh_dataを基に、シーンの計算が行われる。
【0274】
図9に示した作画処理の全体処理ルーチンにおけるステップS7では、さらにシーンの計算結果を基に、シーンの描画を行なう。この項では、シーンの描画処理について説明する。
【0275】
図39には、シーンの描画処理の手順をフローチャートの形式でより詳細に示している。
【0276】
まず、あらかじめ存在する描画オブジェクトをワーク・エリア13上に描画しておく(ステップS171)。
【0277】
そして、塗られた部分すなわち描画オブジェクトの各描画単位に対して、描画処理を行なう(Loop1)。
【0278】
まず、描画単位の描画情報を格納するmesh_dataを参照して(図14を参照のこと)、描画単位の各頂点についての変数red[4],green[4],blue[4],alpha[4]の値に従って、色を設定する(ステップS172)。
【0279】
次いで、描画単位の各頂点についてのベクターの値u[4],v[4]、並びに、テクスチャの名前texture_nameに従って、テクスチャを設定する(ステップS173)。
【0280】
次いで、描画単位の各頂点についての位置情報x[4],y[4],z[4]に従って、描画単位の位置を設定する(ステップS174)。
【0281】
そして、描画単位の描画処理を行なう(ステップS175)。
【0282】
このようにして、描画オブジェクトを構成する各描画単位についての描画処理を終えると、設定されているカメラ位置すなわち視点を基に、3次元的な描画情報を座標変換して、2次元画像を生成する(ステップS176)。
【0283】
そして、得られた2次元画像を、ディスプレイ111上のワーク・エリア13に表示する(ステップS177)。
【0284】
図40には、パーティクル・システムを適用して自然現象インクである雲インクを作画する様子を示している。
【0285】
ユーザは、インク・エリア11で雲インクを指定した後、ワーク・エリア13上で、マウス113のドラッグ操作を行なって、丸囲みした手書きストロークを入力する(図40(a)を参照のこと)。さらに、丸内でドラッグ操作を引き続き行って、塗りつぶす(図40(b)を参照のこと)。塗りつぶされた描画オブジェクトは、無数の微小な描画単位からなるメッシュに分割される。
【0286】
次いで、シーンの計算を行なう。この場合、各描画単位毎にエミッタを設定するとともに、雲インクが持つ属性パラメータ値を基に、エミッタの放出するパーティクル、放出の方向と広がり角度、放出速度、パーティクルに対して印加する重力、静電気力(引力と斥力)、渦巻きの効果、風の効果、乱流の効果、パーティクルの寿命やフォースに対する特性、サイズ、色と透明度、テクスチャを設定して、各エミッタからパーティクルを放出させる(図40(c)を参照のこと)。
【0287】
放出されたパーティクルは寿命を持つとともに、消滅するまでの間、外的な力の作用に従って空間をさまよう。そして、全体としては、雲が動いているようなイメージになる(図40(d)を参照のこと)。
【0288】
また、図41には、パーティクル・システムを適用して自然現象インクである煙インクを作画する様子を示している。
【0289】
ユーザは、インク・エリア11で雲インクを指定した後、ワーク・エリア13上で、マウス113のドラッグ操作を行なって、煙が漂う軌跡を描いた手書きストロークを入力する(図41(a)を参照のこと)。
【0290】
次いで、シーンの計算を行なう。この場合、各描画単位毎にエミッタを設定するとともに、煙インクが持つ属性パラメータ値を基に、エミッタの放出するパーティクル、放出の方向と広がり角度、放出速度、パーティクルに対して印加する重力、静電気力(引力と斥力)、渦巻きの効果、風の効果、乱流の効果、パーティクルの寿命やフォースに対する特性、サイズ、色と透明度、テクスチャを設定して、各エミッタからパーティクルを放出させる(図41(b)を参照のこと)。
【0291】
放出されたパーティクルは寿命を持つとともに、消滅するまでの間、外的な力の作用に従って空間をさまよう。そして、全体としては、煙が流れているようなイメージになる(図41(c)を参照のこと)。
【0292】
ワーク・エリア13上では、属性インクを指定した状態でマウス113をドラッグ操作することによって、入力された手書きストロークに沿って属性インクからなるアニメーションがリアルタイムで生成される。図42には、ストローク・データからアニメーションを生成するための処理手順をフローチャートの形式で示している。
【0293】
まず、リストの先頭を現在の位置とする(ステップS181)。
【0294】
そして、ワーク・エリア13上でドラッグされた手書きストロークすなわち描画ストロークをストローク方向に沿って連続する微小な描画単位の集合としてとらえ、各描画単位毎の描画情報を格納するmesh_dataのデータ・リストとして描画処理する(Loop1)。
【0295】
まず、処理対象となる描画単位について、現在の位置と次の位置との距離を求める(ステップS182)。
【0296】
次いで、現在の位置をパーティクルの発生位置とする(ステップS183)。
【0297】
そして、差を基にパーティクルの放出速度を設定し(ステップS184)、各パーティクルの色とサイズを設定する(ステップS185)。
【0298】
また、重力などの外的な力を設定するとともに(ステップS186)、各パーティクルの寿命を設定する(ステップS187)。
【0299】
次いで、次の位置を現在の位置として(ステップS188)、上述したパーティクルの描画処理を繰り返し実行する。
【0300】
D.3Dキャンバス上での描画
本実施形態に係る描画インターフェース10は、デジタル空間上のキャンバス上での手書きストロークによる属性インクを用いた作画を実現するものである。このデジタル・キャンバス上での描画内容は、ワーク・エリア12に仮体されている。
【0301】
ワーク・エリア13自体は2次元表示平面であるが、手書きストロークにより作画された描画オブジェクトをコンピュータ処理により3次元平面上に割り付けて、座標変換や回転などの3次元的な画像変形処理を行なうことができる。
【0302】
例えば、本実施形態に係る描画インターフェース10を本出願人に既に譲渡されている特願2000−209731号明細書に開示されている画像編集システム(先述)に適用することができる。
【0303】
図43には、3Dキャンバスを設定するための処理手順をフローチャートの形式で示している。
【0304】
まず、地平線のみの3次元空間がディスプレイ・スクリーン上に現れる。そして、この空間に対してストローク線を引くと(ステップS191)、マウス113による入力座標が地面のU,V座標に変換される(ステップS192)。
【0305】
このU,V値と地面の縦横の長さから3次元位置の計算を行ない(ステップS193)、ストロークを底辺とする3次元キャンバスを計算する(ステップS194)。
【0306】
このような3次元キャンバスを用いた場合、スクリーンを介してユーザが描いた絵はキャンバス上にマッピングされるので、結果として3次元的な絵を描いたことになる。キャンバス設定と絵を描く操作を重ねることで、所望のシーンを構築することができる。また、キャンバス回転や視点移動により所望の3次元シーンが得られる。
【0307】
図8(先述)には、ユーザが描いたストローク線に従って3Dキャンバスが生成される様子(図8(a)〜(b))、生成された3Dキャンバス上に手書きストロークに沿ってペイントしたりペーストしたりする様子(図8(c)〜(e))、並びにキャンバス回転により所望の3Dシーンを生成する様子(図8(f))を示している。
【0308】
このような3Dキャンバス上に、自然現象インクなどの属性インクを塗ることができる。このような場合、上述したように、描画オブジェクトをメッシュに分割して描画情報を管理するとともに、セルラー・オートマトンやパーティクル・システムなどの手法を適用して、炎や雲などの時々刻々と描画内容が変動するアニメーション作用を3D空間上に付与することができる。
【0309】
また、図44に示すように、ワーク・エリア13上で手書きストロークにより作画された2次元的な描画オブジェクト(図44(a))に対して奥行き成分を付与して(図44(b))、3次元的な描画オブジェクトに拡張することができる(図44(c))。このような場合も、描画オブジェクトに対して座標変換や回転などの3次元的な画像変形処理を行なうことができる。描画オブジェクトを3次元に拡張することにより、よりリアルな表現が可能になる。
【0310】
図45には、ワーク・エリア13上で手書きストロークにより作画された2次元的な描画オブジェクトを3次元的な描画オブジェクトに拡張するための処理手順をフローチャートの形式で示している。このような場合、描画オブジェクトをメッシュに分割したときの各描画単位は、"Voxel"と呼ばれる3次元的な描画単位に変換される。
【0311】
まず、ワーク・エリア13すなわちデジタル・キャンバス上に作画されたデータを一時変数にコピーする(ステップS201)。
【0312】
次いで、コピーされたデータをラベリング処理して(ステップS202)、ラベリング結果をリストに保持する(ステップS203)。
【0313】
次いで、ラベリング・リスト全体に対して(Loop1)、描画領域の縦軸に沿って(Loop2)、2次元的な描画単位を3次元的な描画単位であるVoxelに変換する(ステップS204)。
【0314】
図46には、ステップS204において実行される、描画オブジェクトを構成する各描画単位を3次元的な描画単位であるVoxelに変換するための処理手順をフローチャートの形式で示している。
【0315】
まず、描画領域の横軸に連結成分を探索していく(ステップS211)(図47を参照のこと)。
【0316】
次いで、連結成分の中点を計算する(ステップS212)(図48を参照のこと)。
【0317】
次いで、中点を軸に、横軸を奥行き成分に拡張する(ステップS213)。次いで、中点が10で、最も深い位置を1にして描画単位を補間していく(ステップS214)(図49を参照のこと)。
【0318】
そして、メッシュを基に縦軸との関係からVoxelを構築する(ステップS215)(図50を参照のこと)。
【0319】
描画オブジェクトを3次元空間上に拡張した場合も、描画オブジェクトに対して自然現象インクなどの属性インクを塗ることができる。このような場合、Voxelを最小の描画単位として描画情報を管理するとともに、各Voxelに対してセルラー・オートマトンやパーティクル・システムなどの手法を適用することによって、炎や雲などの時々刻々と描画内容が変動するアニメーション作用を3D空間上に拡張することができる。
【0320】
E.ツールの適用
本実施形態に係る描画インターフェース10においては、コピー・アンド・ペーストのような一般的な文書編集処理に用意されている機能も、ワーク・エリア13内でのGUI操作で行うことができる(前述)。
【0321】
例えば、ワーク・エリア13内に表示されているある描画オブジェクトを範囲指定した後(図51(a)を参照のこと)、他の場所にドラッグ・アンド・ドロップすることにより、オブジェクトが複製される(図51(b)を参照のこと)。
【0322】
描画オブジェクトが属性インクでペイント若しくはペーストされているような場合には、元のオブジェクトが持つ属性パラメータ値を継承する。例えば、炎インクで描かれた描画オブジェクトを、幾つも生成することができる。
【0323】
図52には、本実施形態に係る描画インターフェース10において、描画オブジェクトをコピー・アンド・ペースト操作するための処理手順をフローチャートの形式で示している。
【0324】
まず、デジタル・キャンバス(ワーク・エリア13)又はパレット・エリア12内の一部を選択(又は範囲指定)して、コピーする(ステップS221)。
【0325】
選択された領域の描画情報は、所定のメモリ領域(例えば、クリップボード)上に一時的に保持される(ステップS222)。
【0326】
そして、選択した描画オブジェクトをドラッグするとともに、所望の位置でドラッグ操作を解除すなわちドロップすることにより、ペースト位置を決める。この結果、メモリ領域に保持されていた描画情報がこの場所に貼り付けられる(ステップS232)。
【0327】
このとき、選択又は範囲指定された描画オブジェクトが属性インクでペイント若しくはペーストされている場合には、元のオブジェクトが持つ属性パラメータ値を継承する。
【0328】
F.コントロール・モード
図9に示した作画処理の全体処理ルーチンにおけるステップS5では コントロール・ルーチンが実行される。このコントロール・ルーチンでは、また、ワーク・エリア13内では、描画オブジェクトにペイント又はペーストされている属性インクの属性パラメータ値のコントロールが行われる。
【0329】
属性パラメータ値の変更は、マウス・インタラクションなどの簡単なGUI操作を利用して行なわれる。例えば、マウスの右ボタンを押すとコントロール・モードになり、マウス・インタラクションが行なわれると、ドラッグした軌跡は属性インクの属性パラメータ値として入力される。例えば、マウス・インタラクションで取得されたドラッグ方向に従って、アニメーションの方向を定めることができる(図53を参照のこと)。
【0330】
描画モードやコントロール・モードなどのモード設定、モード切り替えは、例えばマウスのボタン操作によって行なうようにする。例えば、マウスの左ボタンを押すと描画モードになり、ドラッグした軌跡は手書きストロークとして入力される。また、マウスの右ボタンを押すとコントロール・モードになり、マウス・インタラクション(前述)が行なわれると、ドラッグした軌跡は属性インクの属性パラメータ値として入力される。
【0331】
図54には、コントロール・モード下で、マウス・インタラクションにより属性インクの属性パラメータ値を生成するための処理手順をフローチャートの形式で示している。
【0332】
マウス113の右ボタンがクリックされると(ステップS231)、右ボタンが再び開放されるまでの間、システムはコントロール・モードとして動作する。
【0333】
マウス113のドラッグ操作が描画オブジェクト上で行なわれると(ステップS232)、そのマウス位置を逐次リストに保持していく(ステップS233)。
【0334】
そして、マウス113の右ボタンが解放されて、コントロール・モードから通常の描画モードに復帰すると、取得されたマウス113のドラッグ情報からパラメータ値を生成する(ステップS234)
【0335】
また、図55には、図54に示したフローチャート中のステップS234に相当する、マウス113のドラッグ情報からパラメータ値を生成するため処理手順をフローチャートの形式で示している。
【0336】
まず、マウス・インタラクションによって、リストにデータが生成されているかどうかをチェックする(ステップS241)。
【0337】
リストが生成されている場合には、リスト全体に対して、点の差からベクトルを計算して(ステップS242)、差をオブジェクトの各描画単位に対応させて、mesh_data(図14を参照のこと)のベクトル値に反映させる(ステップS243)。
【0338】
[追補]
以上、特定の実施形態を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【0339】
【発明の効果】
以上詳記したように、本発明によれば、マウスなどの装置によって入力された手書きストロークに従って計算機システム上で2次元的又は3次元的なイメージを好適に作成・編集することができる、優れた画像編集装置及び画像編集方法、記憶媒体、並びにコンピュータ・プログラムを提供することができる。
【0340】
また、本発明によれば、マウス操作などによりユーザ入力されたストロークを筆やブラシによる手書き操作として扱うことにより、デジタル空間のキャンバス上に水彩画又は油絵などのペインティングを模した擬似的な描画を行なうための直感的な描画インターフェースを提供することができる、優れた画像編集装置及び画像編集方法、記憶媒体、並びにコンピュータ・プログラムを提供することができる。
【0341】
また、本発明によれば、ユーザ入力されたストロークに従って、デジタル空間のキャンバス上で、テクスチャやアニメーションなどのさまざまな属性(attribute)やアクティビティ(activity)を持ったインクを利用したペインティングを行なうことができる、優れた画像編集装置及び画像編集方法、記憶媒体、並びにコンピュータ・プログラムを提供することができる。
【0342】
また、本発明によれば、変数の設定やスクリプトの記述など専門的な知識を必要とせず、簡単で且つ直感的なGUI操作によって描画オブジェクトに対してアニメーションやさまざまな属性を付けることができる、優れた画像編集装置及び画像編集方法、記憶媒体、並びにコンピュータ・プログラムを提供することができる。
【0343】
本発明によれば、ユーザは、デスクトップに用意された描画インターフェースを介して、属性を持つインクの中から任意のインクを選択し、塗るだけでインクが持つアニメーションや質感といった属性を描画オブジェクトに付け加えることができる。インクを選び、塗ることがユーザ操作のすべてであり、変数の設定やスクリプトの記述をしないで、2次元画像、3次元シーンや3次元オブジェクトに対してアニメーションや質感を付けることができる。描画インターフェース上でのユーザ操作は、実世界で絵の具を塗るのと同じ操作であり、誰でも簡単且つ直感的に操作することができる。本発明において対象とするインク属性は、自然現象(雲、火、雪、煙、霧、水など)、質感(服、鉄、ガラス、ゴムなど)とその他(毛、埃、地面など)などであり、塗ることで付けることが可能で、且つ、空間的な変化や時間や光源によって変化する現象を含む。
【0344】
アニメーションや属性を表現する手法として、セルラー・オートマトンによるメッシュをベースとした表現手法や、パーティクルを用いた表現手法などを採用して、塗った部分に対して自動的に計算が行なわれる。本発明に係る描画インターフェース上では、表現方法と塗るインタラクションが直接結び付いている。インク属性を表現するこれらの手法は、写実的な属性の表現が可能であり、リアルな属性も塗るという操作だけで簡単に実現することができる。
【0345】
また、本発明に係る描画インターフェース上ではパレットが用意されているので、異なる属性を持つインクをパレット上で混ぜ合わせることで、新しい(若しくはカスタマイズされた)インクを作ることができる。混ぜる操作に関しても、変数の設定やスクリプトの記述などの専門的な知識や特殊な作業は必要としない。また、実世界では不可能な、水のインクと火のインクを混ぜた仮想的なインクを作ることも可能である。
【0346】
さらに、本発明に係る描画インターフェース上では、属性を表すインクの他に、インタラクションを支援するインク(薄める又は淡くするインクや、濃くするインク)なども含まれている。アニメーションのスピードや質感の細かさなども、これらのインクと属性インクとをパレット上で組み合わせることで、塗る操作を基本として調整することができる。
【0347】
また、本発明に係る描画インターフェース上では、塗った部分をダイレクトに計算するので、プレビュー画面の操作やレンダリングを行なわなくても、属性インクの効果を画面上で確認にすることができる。この結果、ユーザの作業効率が格段に向上する。
【0348】
本発明が対象とするインク属性は、従来の画像編集ツールでは変数の設定やスクリプトの記述などの専門的な作業を必要としていたが、本発明によれば操作が簡略化されるので、初心者や子供でも簡単に描画オブジェクトに属性を付けることができる。
【0349】
このような簡単操作により、3次元コンピュータ・グラフィックスの初心者であっても、動きを伴った3次元シーン(建築シミュレーションなど)を構築することや、子供の教育現場での利用が可能になる。2次元画像の操作に関しても、雪のインクを使ってクリスマス・カードを書くことや、動きのある日記を書くことが可能となる。また、混ぜることで、さまざまなインクを生み出すことが可能であり、現在、世の中に存在しない属性やアニメーションのインクも生み出すことができ、そうしたインクが特殊な効果をもたらすことができる。
【0350】
また、本発明に係る画像編集装置及び画像編集方法では、2次元画像はビットマップをベースとして構成されるので、他の画像編集システムへの移植が容易である。
【0351】
また、本発明に係る描画インターフェースの用途は、単に塗ることにとどまらず、インク属性を文章に反映させることも可能である。例えば、水のインクを使って文字を書くことで、揺れる文章の表現も可能である。Webコンテンツにエフェクトとして適用することもできる。
【0352】
また、本発明に係る描画インターフェースによれば、3次元オブジェクトを対象としてオブジェクトの変形も、インクを塗るという操作を介して行うことができる。たとえば、変形させたい部分に水インクを塗り、中心をマウスでドラッグすることで、水の動きをベースとした緩やかな変形を行なうことが可能である。本発明によれば、ユーザは、3次元モデルのポリゴンと頂点を意識せずにこうした変形操作を行うことができる。
【0353】
また、粘土属性を変形に用いる既存の手法も多く存在するが、それらはすべて粘土として存在しているので、部分的に鋭角に形成することは困難である。これに対し、本発明によれば、変形において、部分的にインクを塗り、マウスで押したり引張ったりするだけで、簡単に変形作業を行なうことができる。
【図面の簡単な説明】
【図1】本発明の実施に供される画像編集装置100のハードウェア構成を模式的に示した図である。
【図2】ディスプレイ111の表示画面上での描画インターフェース10の構成例を示した図である。
【図3】ワーク・エリア16上で自然現象インクとしての雲インクでペイントする様子を示した図である。
【図4】描画インターフェース10の変形例を示した図である。
【図5】描画インターフェース10の変形例を示した図である。
【図6】パレット・エリア12上で雲インクに水インクを混ぜる様子を表した図である。
【図7】描画インターフェース10上でワーク・エリア13にオブジェクトやシーンを読み込んだ様子を示した図である。
【図8】ユーザが描いたストローク線に従って生成された3Dキャンバス上にさらに絵を描く様子、並びにキャンバス回転により所望の3Dシーンを生成する様子を示した図である。
【図9】描画インターフェース10上での属性インクを用いた手書きストロークによるペインティングを実現するための処理全体の流れをフローチャートの形式で示した図である。
【図10】図9に示したフローチャート中のステップS1における初期化処理の手順をより詳細に示した図である。
【図11】図9に示したフローチャート中のステップS3に該当する描画ルーチンに置ける処理手順を詳細に示した図である。
【図12】ワーク・エリア13内で塗られた部分に対してメッシュを動的に生成していく様子を示した図である。
【図13】メッシュ情報ブロックのデータ構造を模式的に示した図である。
【図14】メッシュを構成する描画単位に関する描画情報を管理するためのデータ・ブロックmesh_dataのデータ構造を模式的に示した図である。
【図15】mesh_dataに登録されている属性インクの情報を管理するためのデータ・ブロックのデータ構造を模式的に示した図である。
【図16】図11に示した描画ルーチンのうち、ステップS22の塗る処理の手順をより詳細に示したフローチャートである。
【図17】図16に示した塗る処理手順のうち、ステップS34に相当するワーク・エリア13を用いた絵を描くための処理手順をより詳細に示したフローチャートである。
【図18】図17に示したワーク・エリア13内での処理のうち、ステップS47のメッシュを生成する処理の手順をより詳細に示したフローチャートである。
【図19】図18に示したフローチャートのステップS55におけるメッシュ細分化処理ルーチンを示したフローチャートである。
【図20】図16に示した塗る処理手順のうち、ステップS36に相当するパレット・エリア12を用いて属性インクを混合するための処理手順をより詳細に示したフローチャートである。
【図21】mesh_dataにインクIDを加える処理を示したフローチャートである。
【図22】属性インクを薄める又は濃くするテクニカル・インクの処理手順をより詳細に示したフローチャートである。
【図23】属性インクの濃淡を示すテクニカル・インクのカウント値Technical_count[0]による作用の一例を示した図である。
【図24】属性インクを大まかにする又は細かくするテクニカル・インクの処理手順をより詳細にフローチャートである。
【図25】属性インクの大まかさ又は細かさを示すテクニカル・インクを描画オブジェクトに適用した様子を示した図である。
【図26】属性インクの大まかさ又は細かさを示すテクニカル・インクのカウント値Technical_count[1]による作用の一例を示した図である。
【図27】セルラー・オートマトンのルールを説明するための図である。
【図28】セルラー・オートマトンのルールを説明するための図である。
【図29】セルラー・オートマトンによるアニメーション作用の記述方法を説明するための図である。
【図30】セルラー・オートマトンを利用した塗る作用を説明するための図である。
【図31】パーティクル・システムの原理を示した図である。
【図32】パーティクル・システムを利用した塗る作用を説明するための図である。
【図33】シーンの計算処理の手順をより詳細に示したフローチャートである。
【図34】炎インクを処理するためのインク・アルゴリズムをより詳細に示したフローチャートである。
【図35】図34中のステップS124における大まかさ又は細かさを表すテクニカル・インクの値Technical Ink[1]に従った色の計算を行う処理手順をより詳細に示したフローチャートである。
【図36】水インクを処理するためのインク・アルゴリズムをより詳細に示したフローチャートである。
【図37】図36中のステップS144における大まかさ又は細かさを表すテクニカル・インクの値Technical Ink[1]に従った色の計算を行う処理手順をより詳細に示したフローチャートである。
【図38】パーティクル・システムを適用した場合のインク・アルゴリズムをより詳細に示したフローチャートである。
【図39】 シーンの描画処理の手順をより詳細に示したフローチャートである。
【図40】パーティクル・システムを適用して自然現象インクである雲インクを作画する様子を示した図である。
【図41】パーティクル・システムを適用して自然現象インクである煙インクを作画する様子を示した図である。
【図42】ストローク・データからアニメーションを生成するための処理手順を示したフローチャートである。
【図43】3Dキャンバスを設定するための処理手順を示したフローチャートである。
【図44】ワーク・エリア13上で手書きストロークにより作画された2次元的な描画オブジェクトに対して奥行き成分を付与して3次元的な描画オブジェクトに拡張する様子を示した図である。
【図45】ワーク・エリア13上で手書きストロークにより作画された2次元的な描画オブジェクトを3次元的な描画オブジェクトに拡張するための処理手順を示したフローチャートである。
【図46】描画オブジェクトを構成する各描画単位を3次元的な描画単位であるVoxelに変換するための処理手順を示したフローチャートである。
【図47】描画オブジェクトを構成する各描画単位を3次元的な描画単位であるVoxelに変換する様子を説明するための図である。
【図48】描画オブジェクトを構成する各描画単位を3次元的な描画単位であるVoxelに変換する様子を説明するための図である。
【図49】描画オブジェクトを構成する各描画単位を3次元的な描画単位であるVoxelに変換する様子を説明するための図である。
【図50】描画オブジェクトを構成する各描画単位を3次元的な描画単位であるVoxelに変換する様子を説明するための図である。
【図51】本実施形態に係る描画インターフェース10において、描画オブジェクトをコピー・アンド・ペースト操作する様子を示した図である。
【図52】本実施形態に係る描画インターフェース10において、描画オブジェクトをコピー・アンド・ペースト操作するための処理手順を示したフローチャートである。
【図53】マウス・インタラクションにより、アニメーションの方向を定める様子を示した図である。
【図54】コントロール・モード下で、マウス・インタラクションにより属性インクの属性パラメータ値を生成するための処理手順を示したフローチャートである。
【図55】マウス113のドラッグ情報からパラメータ値を生成するため処理手順を示したフローチャートである。
【符号の説明】
10…描画インターフェース
11…インク・エリア
12…パレット・エリア
13…ワーク・エリア
100…画像編集装置
101…CPU,
102…主メモリ,103…ROM
104…ディスプレイ・コントローラ
105…入力機器インターフェース
106…ネットワーク・インターフェース
107…外部機器インターフェース
108…バス
111…ディスプレイ
112…キーボード,113…マウス
114…ハード・ディスク装置
115…メディア・ドライブ
Claims (14)
- 表示画面上でユーザから入力された手書きストロークに従って描画を行なう画像編集装置であって、
使用可能な1以上のインクを配設するインク・エリアと、描画作業を行なうワーク・エリアとを前記表示画面上に表示する描画インターフェース部と、
前記表示画面上でユーザの指示座標を入力するユーザ入力部と、
ユーザ入力に従って前記ワーク・エリア上の描画オブジェクトを処理する描画処理部と、
を備え、
前記インク・エリアでは、RGB色空間上で定義される色インク以外に、設定された属性パラメータ値に応じて描画処理が時々刻々と変動するアニメーション作用を持つ属性インクが用意されており、
前記描画処理部は、
前記インク・エリアにおいて前記ユーザ入力部を介して指示されたインクとそれ以後前記ユーザ入力部を介して操作される手書きストロークとを関連付けるとともに、前記ワーク・エリアにおいてユーザ入力部を介して操作された手書きストロークと描画オブジェクトとを関連付けて、該関連付けられたインクを用いて描画オブジェクトを描画することにより手書きストロークが塗られたことを表現し、
属性インクと関連付けられた手書きストロークからなる描画オブジェクトを微小な描画単位に分割してなるメッシュにして、描画単位毎にインク情報を管理して、隣接する描画単位間で働く引力又は斥力の相互作用を計算して該計算結果を基に描画単位が持つ属性パラメータ値を変更することによって属性インクのアニメーション作用を生成する、
ことを特徴とする画像編集装置。 - 表示画面上でユーザから入力された手書きストロークに従って描画を行なう画像編集装置であって、
使用可能な1以上のインクを配設するインク・エリアと、描画作業を行なうワーク・エリアとを前記表示画面上に表示する描画インターフェース部と、
前記表示画面上でユーザの指示座標を入力するユーザ入力部と、
ユーザ入力に従って前記ワーク・エリア上の描画オブジェクトを処理する描画処理部と、
を備え、
前記インク・エリアでは、RGB色空間上で定義される色インク以外に、設定された属性パラメータ値に応じて描画処理が時々刻々と変動するアニメーション作用を持つ属性インクが用意されており、
前記描画処理部は、
前記インク・エリアにおいて前記ユーザ入力部を介して指示されたインクとそれ以後前記ユーザ入力部を介して操作される手書きストロークとを関連付けるとともに、前記ワーク・エリアにおいてユーザ入力部を介して操作された手書きストロークと描画オブジェクトとを関連付けて、該関連付けられたインクを用いて描画オブジェクトを描画することにより手書きストロークが塗られたことを表現し、
属性インクと関連付けられた手書きストロークからなる描画オブジェクトを微小な描画単位に分割してなるメッシュにして、描画単位毎にインク情報を管理するとともに、描画単位毎にパーティクルを放出するエミッタを配置し、属性インクが持つ属性パラメータ値を基に、エミッタの放出するパーティクル、放出の方向と広がり角度、放出速度、パーティクルに対して印加する重力、静電気力(引力と斥力)、渦巻きの効果、風の効果、乱流の効果、パーティクルの寿命やフォースに対する特性、サイズ、色と透明度、テクスチャを設定し、又はパーティクルが活動する場に障害物を設置して、放出するパーティクルによる属性インクのアニメーション作用を計算する、
ことを特徴とする画像編集装置。 - 表示画面上でユーザから入力された手書きストロークに従って描画を行なう画像編集方法であって、
使用可能な1以上のインクを配設するインク・エリアと、描画作業を行なうワーク・エリアとを前記表示画面上に表示する描画インターフェース提示ステップと、
前記表示画面上でユーザの指示座標を入力するユーザ入力ステップと、
ユーザ入力に従って前記ワーク・エリア上の描画オブジェクトを処理する描画処理ステップと、
を備え、
前記インク・エリアでは、RGB色空間上で定義される色インク以外に、設定された属性パラメータ値に応じて描画処理が時々刻々と変動するアニメーション作用を持つ属性インクが用意されており、
前記描画処理ステップでは、
前記インク・エリアにおいて前記ユーザ入力ステップを介して指示されたインクとそれ以後前記ユーザ入力ステップを介して操作される手書きストロークとを関連付けるとともに、前記ワーク・エリアにおいてユーザ入力ステップを介して操作された手書きストロークと描画オブジェクトとを関連付けて、該関連付けられたインクを用いて描画オブジェクトを描画することにより手書きストロークが塗られたことを表現し、
属性インクと関連付けられた手書きストロークからなる描画オブジェクトを微小な描画単位に分割してなるメッシュにして、描画単位毎にインク情報を管理して、隣接する描画単位間で働く引力又は斥力の相互作用を計算して該計算結果を基に描画単位が持つ属性パラメータ値を変更することによって属性インクのアニメーション作用を生成する、
ことを特徴とする画像編集方法。 - 表示画面上でユーザから入力された手書きストロークに従って描画を行なう画像編集方法であって、
使用可能な1以上のインクを配設するインク・エリアと、描画作業を行なうワーク・エリアとを前記表示画面上に表示する描画インターフェース提示ステップと、
前記表示画面上でユーザの指示座標を入力するユーザ入力ステップと、
ユーザ入力に従って前記ワーク・エリア上の描画オブジェクトを処理する描画処理ステップと、
を備え、
前記インク・エリアでは、RGB色空間上で定義される色インク以外に、設定された属性パラメータ値に応じて描画処理が時々刻々と変動するアニメーション作用を持つ属性インクが用意されており、
前記描画処理ステップでは、
前記インク・エリアにおいて前記ユーザ入力ステップを介して指示されたインクとそれ以後前記ユーザ入力ステップを介して操作される手書きストロークとを関連付けるとともに、前記ワーク・エリアにおいてユーザ入力ステップを介して操作された手書きストロークと描画オブジェクトとを関連付けて、該関連付けられたインクを用いて描画オブジェクトを描画することにより手書きストロークが塗られたことを表現し、
属性インクと関連付けられた手書きストロークからなる描画オブジェクトを微小な描画単位に分割してなるメッシュにして、描画単位毎にインク情報を管理するとともに、描画単位毎にパーティクルを放出するエミッタを配置し、属性インクが持つ属性パラメータ値を基に、エミッタの放出するパーティクル、放出の方向と広がり角度、放出速度、パーティクルに対して印加する重力、静電気力(引力と斥力)、渦巻きの効果、風の効果、乱流の効果、パーティクルの寿命やフォースに対する特性、サイズ、色と透明度、テクスチャを設定し、又はパーティクルが活動する場に障害物を設置して、放出するパーティクルによる属性インクのアニメーション作用を計算する、
ことを特徴とする画像編集方法。 - 前記属性インクは、属性パラメータ値により水や雲、雪、炎、煙などの時々刻々と様相が変化する動的な自然現象を表現する自然現象インクを含む、
ことを特徴とする請求項3又は4のいずれかに記載の画像編集方法。 - 前記描画インターフェース提示ステップは、さらに複数のインクを用いて混合処理するパレット・エリアを表示し、
前記描画処理ステップでは、前記インク・エリア又は前記パレット・エリアにおいて前記ユーザ入力ステップを介して指示されたインクとそれ以後前記ユーザ入力ステップを介して操作される手書きストロークとを関連付けるとともに、前記パレット・エリアにおいてユーザ入力ステップを介して操作された手書きストロークと描画オブジェクトとを逐次関連付けて、同じ描画オブジェクトに関連付けられた2以上のインク同士を混合処理する、
ことを特徴とする請求項3又は4のいずれかに記載の画像編集方法。 - 前記描画処理ステップでは、各属性インクが持つ属性パラメータ値を平均化することにより2以上の属性インク同士を混合処理する、
ことを特徴とする請求項6に記載の画像編集方法。 - 前記インク・エリアには属性インクの濃淡を調整するテクニカル・インクが用意されており、
前記描画処理ステップは、前記ワーク・エリア内の描画オブジェクトを微小な描画単位に分割してなるメッシュにして、
描画オブジェクトに対して濃くするテクニカル・インクが適用されたことに応答して、隣接する描画単位間で働く引力を強めて(又は斥力を弱めて)属性パラメータ値を計算し、
描画オブジェクトに対して薄く又は淡くするテクニカル・インクが適用されたことに応答して、隣接する描画単位間で働く引力を弱めて(又は斥力を強めて)属性パラメータ値を計算する、
ことを特徴とする請求項3に記載の画像編集方法。 - 表示画面上でユーザから入力された手書きストロークに従って描画を行なう画像編集方法であって、
使用可能な1以上のインクを配設するインク・エリアと、描画作業を行なうワーク・エリアとを前記表示画面上に表示する描画インターフェース提示ステップと、
前記表示画面上でユーザの指示座標を入力するユーザ入力ステップと、
ユーザ入力に従って前記ワーク・エリア上の描画オブジェクトを処理する描画処理ステップと、
を備え、
前記インク・エリアでは、RGB色空間上で定義される色インク以外に、設定された属性パラメータ値に応じて描画処理が時々刻々と変動するアニメーション作用を持つ属性インク、及び属性インクの大まかさ及び細かさを調整するテクニカル・インクが用意されており、
前記描画処理ステップでは、
前記インク・エリアにおいて前記ユーザ入力ステップを介して指示されたインクとそれ以後前記ユーザ入力ステップを介して操作される手書きストロークとを関連付けるとともに、前記ワーク・エリアにおいてユーザ入力ステップを介して操作された手書きストロークと描画オブジェクトとを関連付けて、該関連付けられたインクを用いて描画オブジェクトを描画することにより手書きストロークが塗られたことを表現し、
前記ワーク・エリア内の描画オブジェクトを微小な描画単位に分割してなるメッシュにして、
描画オブジェクトに対して大まかにするテクニカル・インクが適用されたことに応答して、隣接する複数の描画単位をまとめて1つの描画単位として扱い、
描画オブジェクトに対して細かくするテクニカル・インクが適用されたことに応答して、描画単位をさらに複数の描画単位に細分化する、
ことを特徴とする画像編集方法。 - 表示画面上でユーザから入力された手書きストロークに従って描画を行なう画像編集方法であって、
使用可能な1以上のインクを配設するインク・エリアと、描画作業を行なうワーク・エリアとを前記表示画面上に表示する描画インターフェース提示ステップと、
前記表示画面上でユーザの指示座標を入力するユーザ入力ステップと、
ユーザ入力に従って前記ワーク・エリア上の描画オブジェクトを処理する描画処理ステップと、
を備え、
前記インク・エリアでは、RGB色空間上で定義される色インク以外に、設定された属性パラメータ値に応じて描画処理が時々刻々と変動するアニメーション作用を持つ属性インクが用意されており、
前記描画処理ステップでは、
前記インク・エリアにおいて前記ユーザ入力ステップを介して指示されたインクとそれ以後前記ユーザ入力ステップを介して操作される手書きストロークとを関連付けるとともに、前記ワーク・エリアにおいてユーザ入力ステップを介して操作された手書きストロークと描画オブジェクトとを関連付けて、該関連付けられたインクを用いて描画オブジェクトを描画することにより手書きストロークが塗られたことを表現し、
前記ワーク・エリア上に作画された描画オブジェクトに対して奥行き成分を付与して、2次元的な前記ワーク・エリア内で作画された描画内容を3次元空間に拡張する、
ことを特徴とする画像編集方法。 - 表示画面上でユーザから入力された手書きストロークに従って描画を行なう画像編集方法であって、
使用可能な1以上のインクを配設するインク・エリアと、描画作業を行なうワーク・エリアとを前記表示画面上に表示する描画インターフェース提示ステップと、
前記表示画面上でユーザの指示座標を入力するユーザ入力ステップと、
ユーザ入力に従って前記ワーク・エリア上の描画オブジェクトを処理する描画処理ステップと、
を備え、
前記インク・エリアでは、RGB色空間上で定義される色インク以外に、設定された属性パラメータ値に応じて描画処理が時々刻々と変動するアニメーション作用を持つ属性インクが用意されており、
前記描画処理ステップでは、
前記インク・エリアにおいて前記ユーザ入力ステップを介して指示されたインクとそれ以後前記ユーザ入力ステップを介して操作される手書きストロークとを関連付けるとともに、前記ワーク・エリアにおいてユーザ入力ステップを介して操作された手書きストロークと描画オブジェクトとを関連付けて、該関連付けられたインクを用いて描画オブジェクトを描画することにより手書きストロークが塗られたことを表現し、
前記ワーク・エリア上に作画された描画オブジェクトを構成する各描画単位を3次元的なVoxelに変換するとともに、属性インクが塗られたVoxelに対してアニメーション作用を表現するための計算を適用して、アニメーション作用を3次元空間に拡張する、
ことを特徴とする画像編集方法。 - 前記描画処理ステップでは、前記ユーザ入力部から入力されたストロークに従って描画オブジェクトに関連付けられている属性インクの属性パラメータ値を変更する、
ことを特徴とする請求項3又は4のいずれかに記載の画像編集方法。 - 表示画面上でユーザから入力された手書きストロークに従って描画を行なう画像編集処理をコンピュータ上で実行するように記述されたコンピュータ・プログラムであって、前記コンピュータに対し、
使用可能な1以上のインクを配設するインク・エリアと、描画作業を行なうワーク・エリアとを前記表示画面上に表示する描画インターフェース提示手順と、
前記表示画面上でユーザの指示座標を入力するユーザ入力手順と、
ユーザ入力に従って前記ワーク・エリア上の描画オブジェクトを処理する描画処理手順と、
を実行させ、
前記インク・エリアでは、RGB色空間上で定義される色インク以外に、設定された属性パラメータ値に応じて描画処理が時々刻々と変動するアニメーション作用を持つ属性インクが用意されており、
前記描画処理手順では、前記インク・エリアにおいて前記ユーザ入力手順を実行した際に指示されたインクとそれ以後前記ユーザ入力手順を実行した際に操作される手書きストロークとを関連付けるとともに、前記ワーク・エリアにおいてユーザ入力ステップを介して操作された手書きストロークと描画オブジェクトとを関連付けて、該関連付けられたインクを用いて描画オブジェクトを描画することにより手書きストロークが塗られたことを表現し、
属性インクと関連付けられた手書きストロークからなる描画オブジェクトを微小な描画単位に分割してなるメッシュにして、描画単位毎にインク情報を管理して、隣接する描画単位間で働く引力又は斥力の相互作用を計算して該計算結果を基に描画単位が持つ属性パラメータ値を変更することによって属性インクのアニメーション作用を生成する、
ことを特徴とするコンピュータ・プログラム。 - 表示画面上でユーザから入力された手書きストロークに従って描画を行なう画像編集処理をコンピュータ上で実行するように記述されたコンピュータ・プログラムであって、前記コンピュータに対し、
使用可能な1以上のインクを配設するインク・エリアと、描画作業を行なうワーク・エリアとを前記表示画面上に表示する描画インターフェース提示手順と、
前記表示画面上でユーザの指示座標を入力するユーザ入力手順と、
ユーザ入力に従って前記ワーク・エリア上の描画オブジェクトを処理する描画処理手順と、
を実行させ、
前記インク・エリアでは、RGB色空間上で定義される色インク以外に、設定された属性パラメータ値に応じて描画処理が時々刻々と変動するアニメーション作用を持つ属性インクが用意されており、
前記描画処理手順では、前記インク・エリアにおいて前記ユーザ入力手順を実行した際に指示されたインクとそれ以後前記ユーザ入力手順を実行した際に操作される手書きストロークとを関連付けるとともに、前記ワーク・エリアにおいてユーザ入力ステップを介して操作された手書きストロークと描画オブジェクトとを関連付けて、該関連付けられたインクを用いて描画オブジェクトを描画することにより手書きストロークが塗られたことを表現し、
属性インクと関連付けられた手書きストロークからなる描画オブジェクトを微小な描画単位に分割してなるメッシュにして、描画単位毎にインク情報を管理するとともに、描画単位毎にパーティクルを放出するエミッタを配置し、属性インクが持つ属性パラメータ値を基に、エミッタの放出するパーティクル、放出の方向と広がり角度、放出速度、パーティクルに対して印加する重力、静電気力(引力と斥力)、渦巻きの効果、風の効果、乱流の効果、パーティクルの寿命やフォースに対する特性、サイズ、色と透明度、テクスチャを設定し、又はパーティクルが活動する場に障害物を設置して、放出するパーティクルによる属性インクのアニメーション作用を計算する、
ことを特徴とするコンピュータ・プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002000945A JP3861690B2 (ja) | 2002-01-07 | 2002-01-07 | 画像編集装置及び画像編集方法、記憶媒体、並びにコンピュータ・プログラム |
US10/336,916 US6919893B2 (en) | 2002-01-07 | 2003-01-06 | Image editing apparatus, image editing method, storage medium, and computer program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002000945A JP3861690B2 (ja) | 2002-01-07 | 2002-01-07 | 画像編集装置及び画像編集方法、記憶媒体、並びにコンピュータ・プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003256859A JP2003256859A (ja) | 2003-09-12 |
JP3861690B2 true JP3861690B2 (ja) | 2006-12-20 |
Family
ID=27742580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002000945A Expired - Lifetime JP3861690B2 (ja) | 2002-01-07 | 2002-01-07 | 画像編集装置及び画像編集方法、記憶媒体、並びにコンピュータ・プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US6919893B2 (ja) |
JP (1) | JP3861690B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100895978B1 (ko) * | 2007-12-12 | 2009-05-07 | 한국전자통신연구원 | 디지털 수채 영상 재현 시스템 및 방법 |
EP2214090A2 (en) | 2009-01-28 | 2010-08-04 | Sony Corporation | Information processing apparatus, animation method, and program |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005004543A (ja) | 2003-06-12 | 2005-01-06 | Sony Corp | ユーザインターフェース方法および装置、ならびにコンピュータ・プログラム |
US20060177122A1 (en) * | 2005-02-07 | 2006-08-10 | Sony Computer Entertainment Inc. | Method and apparatus for particle manipulation using graphics processing |
US20080246765A1 (en) * | 2005-05-06 | 2008-10-09 | Desmond Grenfell | Method and apparatus for constraint-based texture generation |
US7817150B2 (en) | 2005-09-30 | 2010-10-19 | Rockwell Automation Technologies, Inc. | Three-dimensional immersive system for representing an automation control environment |
US7602405B2 (en) * | 2006-03-17 | 2009-10-13 | Microsoft Corporation | Multiple brush components |
US8276164B2 (en) * | 2007-05-03 | 2012-09-25 | Apple Inc. | Data parallel computing on multiple processors |
GB2456337A (en) * | 2008-01-14 | 2009-07-15 | Antonio Roldao Lopes | Viewing and editing an infinite digital image |
WO2009143533A2 (en) * | 2008-05-23 | 2009-11-26 | Adapx, Inc. | Systems and methods for using a digital palette to produce a digital document |
US8296668B1 (en) * | 2008-08-15 | 2012-10-23 | Adobe Systems Incorporated | Paper texture for watercolor painting effects in a graphics editing program |
JP2009104629A (ja) * | 2008-12-17 | 2009-05-14 | Copcom Co Ltd | オブジェクト処理装置 |
US20130120394A1 (en) | 2009-09-30 | 2013-05-16 | Stephen J. DiVerdi | System and Method for Natural Media Painting Using Automatic Brush Cleaning and Filling Modes |
JP5924698B2 (ja) | 2010-05-04 | 2016-05-25 | ユニバーサル シティ スタジオズ リミテッド ライアビリティ カンパニー | 画像を変換する方法及び装置 |
US20110276891A1 (en) * | 2010-05-06 | 2011-11-10 | Marc Ecko | Virtual art environment |
CN101937571B (zh) * | 2010-05-13 | 2012-08-29 | 上海尚果信息科技有限公司 | 二维动漫制作方法 |
US8386964B2 (en) * | 2010-07-21 | 2013-02-26 | Microsoft Corporation | Interactive image matting |
US8762866B2 (en) * | 2011-04-08 | 2014-06-24 | Adobe Systems Incorporated | Remote paint mixing controller |
US9013485B2 (en) | 2011-06-30 | 2015-04-21 | Adobe Systems Incorporated | Systems and methods for synthesizing high fidelity stroke data for lower dimension input strokes |
EP2736019A4 (en) * | 2011-07-20 | 2015-07-22 | Zte Corp | METHOD AND DEVICE FOR GENERATING AN ANIMATED SCREEN BACKGROUND |
US8811687B2 (en) | 2011-08-22 | 2014-08-19 | International Business Machines Corporation | Natural media in digital representations |
JP2014044596A (ja) * | 2012-08-27 | 2014-03-13 | Toppan Printing Co Ltd | 画像生成装置、及び画像生成プログラム |
US9104298B1 (en) * | 2013-05-10 | 2015-08-11 | Trade Only Limited | Systems, methods, and devices for integrated product and electronic image fulfillment |
FR3008815B1 (fr) * | 2013-07-18 | 2017-02-24 | Allegorithmic | Systeme et procede de generation de textures procedurales sur un objet |
US20150058753A1 (en) * | 2013-08-22 | 2015-02-26 | Citrix Systems, Inc. | Sharing electronic drawings in collaborative environments |
US9779484B2 (en) * | 2014-08-04 | 2017-10-03 | Adobe Systems Incorporated | Dynamic motion path blur techniques |
FR3024916B1 (fr) * | 2014-08-14 | 2017-11-24 | Allegorithmic | Systeme et procede de parametrage colorimetrique et geometrique de textures procedurales sur un objet |
US9723204B2 (en) | 2014-08-27 | 2017-08-01 | Adobe Systems Incorporated | Dynamic motion path blur kernel |
US9955065B2 (en) | 2014-08-27 | 2018-04-24 | Adobe Systems Incorporated | Dynamic motion path blur user interface |
CN107077754B (zh) * | 2014-11-07 | 2020-10-16 | 三星电子株式会社 | 显示装置和控制显示装置的方法 |
US20170236318A1 (en) * | 2016-02-15 | 2017-08-17 | Microsoft Technology Licensing, Llc | Animated Digital Ink |
US20170364248A1 (en) * | 2016-06-16 | 2017-12-21 | Microsoft Technology Licensing, Llc | Segment eraser |
US10157408B2 (en) | 2016-07-29 | 2018-12-18 | Customer Focus Software Limited | Method, systems, and devices for integrated product and electronic image fulfillment from database |
US10643491B2 (en) | 2017-03-14 | 2020-05-05 | Matthew CHELEL | Process, system and method for step-by-step painting of an image on a transparent surface |
CN107340959A (zh) * | 2017-07-14 | 2017-11-10 | 合肥图哇科技有限公司 | 一种改善应用软件操作方式的交互系统及交互方法 |
US10248971B2 (en) | 2017-09-07 | 2019-04-02 | Customer Focus Software Limited | Methods, systems, and devices for dynamically generating a personalized advertisement on a website for manufacturing customizable products |
CN109960543B (zh) * | 2019-03-18 | 2022-07-19 | 广州视源电子科技股份有限公司 | 书写操作的处理方法和装置 |
US11531450B1 (en) * | 2020-06-19 | 2022-12-20 | Corel Corporation | Digital imaging of granular media in graphics applications |
US20240069702A1 (en) * | 2021-01-21 | 2024-02-29 | Sony Group Corporation | Information processing apparatus and information processing method |
CN113535056B (zh) * | 2021-06-17 | 2023-12-05 | 深圳软牛科技有限公司 | 基于InkCanvas的选框调整方法和相关设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USH1506H (en) * | 1991-12-11 | 1995-12-05 | Xerox Corporation | Graphical user interface for editing a palette of colors |
US5673401A (en) * | 1995-07-31 | 1997-09-30 | Microsoft Corporation | Systems and methods for a customizable sprite-based graphical user interface |
US6078331A (en) * | 1996-09-30 | 2000-06-20 | Silicon Graphics, Inc. | Method and system for efficiently drawing subdivision surfaces for 3D graphics |
US6362828B1 (en) * | 1999-06-24 | 2002-03-26 | Microsoft Corporation | Method and system for dynamic texture replication on a distributed memory graphics architecture |
-
2002
- 2002-01-07 JP JP2002000945A patent/JP3861690B2/ja not_active Expired - Lifetime
-
2003
- 2003-01-06 US US10/336,916 patent/US6919893B2/en not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100895978B1 (ko) * | 2007-12-12 | 2009-05-07 | 한국전자통신연구원 | 디지털 수채 영상 재현 시스템 및 방법 |
EP2214090A2 (en) | 2009-01-28 | 2010-08-04 | Sony Corporation | Information processing apparatus, animation method, and program |
US8860730B2 (en) | 2009-01-28 | 2014-10-14 | Sony Corporation | Information processing apparatus, animation method, and program |
Also Published As
Publication number | Publication date |
---|---|
US20030161014A1 (en) | 2003-08-28 |
US6919893B2 (en) | 2005-07-19 |
JP2003256859A (ja) | 2003-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3861690B2 (ja) | 画像編集装置及び画像編集方法、記憶媒体、並びにコンピュータ・プログラム | |
Mullen | Mastering blender | |
Ulicny et al. | Crowdbrush: interactive authoring of real-time crowd scenes | |
US10078325B2 (en) | Systems and methods for designing programmable parts for models and optimizing 3D printing | |
Goldstone | Unity game development essentials | |
US5261041A (en) | Computer controlled animation system based on definitional animated objects and methods of manipulating same | |
US8917282B2 (en) | Separating water from pigment in procedural painting algorithms | |
EP3282427B1 (en) | Composing an animation scene in a computer-generated animation | |
US10559096B2 (en) | Digital paint generation based on physical digital paint property interaction | |
US10685472B1 (en) | Animation brushes | |
CN109074225A (zh) | 墨水效果 | |
CN111724462B (zh) | 在Chrome浏览器中三维渲染的方法 | |
Tickoo | Autodesk 3Ds Max 2021: A comprehensive guide | |
US6734855B2 (en) | Image editing system and method, image processing system and method, and recording media therefor | |
JP4449183B2 (ja) | 画像編集システム及び画像編集方法、並びに記憶媒体 | |
Geng | The algorithms and principles of non-photorealistic graphics: artistic rendering and cartoon animation | |
Liu et al. | EasyToy: plush toy design using editable sketching curves | |
Tracy et al. | CryENGINE 3 Cookbook: over 90 recipes written by Crytek developers for creating third-generation real-time games | |
Igarashi | Freeform user interfaces for graphical computing | |
Guo et al. | Touch-based haptics for interactive editing on point set surfaces | |
Bill et al. | Computer sculpting of polygonal models using virtual tools | |
JP2001209816A5 (ja) | ||
Mullen | Bounce, tumble, and splash!: simulating the physical world with Blender 3D | |
Cox | Simulation studio | |
Thokala | Haptic enabled multidimensional canvas |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060228 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060428 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060620 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060626 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060905 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060918 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091006 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101006 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111006 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121006 Year of fee payment: 6 |