File07. マスクと行列でカーニバル?

- 242.mask,matrix+collage -

● 寒いギャグのようなタイトルですみません(笑)。それはともかく、イメージの合成はグラフィックス処理のキモともいうべき部分だと思いますが、ここで御紹介するオブジェクトはそのためにいろいろと重宝します。242.maskや242.matrixはそれぞれ独自のデータ型を持っているようで、このデータを解釈できるオブジェクトとそうでないオブジェクトがあります。242.maskや242.matrixは色々使い道もあると思いますが、242.collageと組み合わせて使用すると効果的なイメージの合成ができます。
 具体的な組み合わせ方ですが、242.collage,242.collage2,242collage3はmaskデータ、matrixデータの両方を受け取ることができます。242.collage4はmaskデータのみのようです。また、242.collage3と242.collage4はインレットごとにmaskデータを受け取ることができます。表にするとこんな感じでしょうか。ついでに、file06で説明したopcolor等のコントロールとグラフポートのサイズ変更についてもまとめておきました。(○は受信可、×は受信不可、◎はよりきめ細かい指定が可能です。)
mask matrix
opcolor等
グラフポートの
サイズ変更
242.collage
    
    
共通(グローバル)
    ×
242.collage2          
共通(グローバル)
    
242.collage3
    
インレットごとに入力可
    
インレットごとに入力可
インレットごとに指定可
    
242.collage4
    
インレットごとに入力可
    ×
インレットごとに入力可
    ×
 その他、242.maskや242.matrixに関連のありそうなオブジェクト、及びmaskやmatrixのデータを受け取ることができるオブジェクトについてまとめたものが下の表です。ekran
やmaskの系列オブジェクトについては、受け取ることができないものも比較のために入れてあります。(○は受信可、×は受信不可。maskオブジェクト同士やmatrixオブジェクト同士でのmaskデータやmatrixデータのやりとりはできません。)
mask matrix mask matrix mask matrix
242.mask
×
242.ekran02
242.matrix
×
 ×
242.mask2 × × 242.ekran04
×
×
242.vdig
×
 ○
242.mask3
×
242.ekran07 × × 242.film
 ○
242.mask4 × 242.ekran08 × 242.dispace2
×
242.ekran
242.ekran09 ×  
 
 
01. 242 .mask
 242.maskのシリーズは、微妙に違った機能を持っています。242.maskは、oval(楕円)
rectangle(長方形)、poligon(ポリゴン)等の形でイメージにマスクをかけることができます。これは[mask]というコマンドによって行われますが、それに続く5つ以上の引数(整数、最大255個まで)が必要になります。値は、最初のものから順に、x1,y1,x2,y2....という形式でx座標、y座標を指定します。最後の引数はマスクの形を指定するために使用し、その値によって次のようなマスクを生成します。

1:line
2:oval
3:poligon
4:lineとovalの組み合わせ
5:ovalとrectangleの組合せ(1)
6:ovalとrectangleの組合せ(2)
7:ovalとrectangleの組合せ(3)

 例えば、[mask]に続く引数が[0 0 100 100 1]の場合、(0,0)の点と(100,100)の点を対角線とする長方形のマスクが生成されます。((0,0)はイメージの左上の角になります。)

図07_01

 上の図ではovalとrectangleの組合せのマスクが作成されています。x1〜y4までの8つのパラメータを指定しているため、2つの範囲にマスクが作成される形になっています。このようなマスクは、242.collage等を使って2つのイメージを合成するために役立ちます。

図07_02

02. 242 .mask2
 242.mask2は、242.maskと同じように[mask]に引数を続けて指定する方法の他に、インレットからのイメージデータによって、マスクを作成することができます。イメージは白黒2値でなければなりません。様々なイメージデータから白黒2値のイメージを作成するためには、242.O1O1が役立ちます。このオブジェクトは、インレットで受け取ったイメージを白黒2値イメージに変換して出力します。

図07_03

03. 242 .mask3
 242.mask3も、242.maskと同じ方法でマスクを作成することができるハズなのですが、242.maskのような[mask]コマンドは受け付けてくれません(エラーメッセージが出てしまいます。リファレンスではできるようなのですが‥‥。)。白黒2値イメージによるマスク範囲の指定は全く問題なくできます。
 242.mask2との最も大きな違いは、242.matrixからのマトリックス処理データを受け取ることができる点です。マトリックス処理によって、マスクされる範囲を変形することができます。詳しくは、242.matrixのところ(後述)で‥‥‥。

図07_04

04. 242 .mask4
 242.maskもイメージデータからマスクを作成することができるのですが、ちょっと方法が違います。242.mask4は一般的なnatoのイメージデータを読み込むことができ、その中で、指定された色にマッチする値を持pixelの部分をマスクします。色の指定は、、ちょっと方法が違います。242.mask4は一般的なnatoのイメージデータを読み込むことができ、その中で、指定された色にマッチする値を持pixelの部分をマスクします。色の指]方法は、[lum]モードと[rgb]モードの2通りが使用でき、[colormode]の引数で切り変えることができます。
 [lum]モードでは0〜255の値で輝度を指定します。また、[lum.fuzzi]の値(0〜255)によって許容幅(あいまいさ?)を指定できます。値が大きいほど、多くのピクセルがマスクされます。
 [rgb]モードでは、RGBのそれぞれを0〜255の値で個々に指定し、指定されたRGBのピクセルがマスクされます。[rgb.fuzzi]の値(0〜255)で許容幅を指定できます。
 242.ekran等のオブジェクトはRGB値を0〜65535で指定しますが、242.mask4では、値の範囲は0〜255になるので注意が必要です。
 [invert]はマスク範囲を反転させますが、次のマスクデータが出力されると、もとに戻ってしまいます。継続的にマスク範囲を反転させるためには、[varianta]というコマンドを引数
1で実行します。[varianta 0]はノーマル、[varianta 1]は反転です。
 [interval]はマスクデータを作成する間隔(インターバル)をフレーム数で指定します。

 ところで、この242.mask4も”[mask]+引数”という形式での指定は受け付けません。リファレンスにはあるのですが‥‥。まあ、この形の指定をしたい場合は、242.maskを使えばいいんだろうけど‥‥。イメージからマスクを作るオブジェクトの中では、242.mask2が両方対応してるようなので、切り替えて使いたい場合はコレですね。

]図07_05

05. 242 .matrix
 242.matrixは、イメージの変形(回転、傾斜、拡大・縮小、平行移動)のためのマトリックス処理(線形変換)を行います。242.matrixは、イメージそのものではなく、変型するためのデータ(matrixデータタイプ)を出力し、これを受け取ることのできるオブジェクトに入力されたイメージを変形させます。
 [rotate]はイメージを回転させるコマンドで、3つの引数をとり、第1引数で回転の度数を、続く2つの引数で、回転が行われる中心点の座標(x,y値)を指定します。
 [skew]はイメージを傾斜させるもので、4つの引数をとり、最初の2つは傾きのx軸、y軸の値を指定し、次の2つはアンカーポイント(イメージの左上の点)の座標のx,y値を指定します。
 [scale]はイメージの拡大・縮小を行うもので4つの引数をとり、最初の2つはスケールするためのx,y値を、次の2つはアンカーポイントを指定します。
 [offset]は平行移動を行うもので、x方向、y方向の移動量を2つの引数で指定します。

図07_06

 この章の最初に書いたように、242.matrixのデータは242.ekran等の他に、242.collageや242.maskといったオブジェクトでも受け取ることができます。(対応していないオブジェクトもありますので、この章の最初の表を参照して下さい。)242.maskに242.matrixを適用すると、マスク範囲を変型することができます。

図07_07

 また、242.collageと組み合わせることで、合成するイメージを変形できます。

図07_08

 次の例では、mask,matrix,collageを組み合わせいます。

図07_09

 この他、いろいろな例が考えられると思います。
06. まとめ
 242.maskのシリーズは、イメージをマスクすることができます。範囲を数値で指定したり、他のイメージを使ってマスク範囲を作成することができます。ここでは触れることができませんでしたが、242.filmに使用する場合、読み込まれた複数のムービートラック間でのマスク処理も可能のようです。
 242.matrixはイメージの変形をすることができ、242.maskシリーズの多くはmatrixデータを受け取ることができます。
 これらのオブジェクトは、242.collageのシリーズと組み合わせることで、より複雑なイメージの合成を行うことができます。
back download