File 03. もうちょっとやってみよう
-
一発芸オブジェクトを試そう(part2) -
● 前章では主にフィルタのような働きをするオブジェクトを中心に御紹介しました。実は、
 御紹介するつもりの「一発芸」オブジェクトはまだまだあって‥‥。フィルタ系のものもま
 だまだあるのですが、それはまたの機会として、ここでは、ジェネレータ及びジェネレータ
 的なプロセッサオブジェクト、ユーティリティ的なオブジェクトの中から「一発芸」モノを
 取り上げてみようと思います。
01. 242.ascii
 このオブジェクトは、入力された映像データを一定の方法でテキストに変換して出力します。下の図を見ていただけるとよくわかると思います。

図03_01

 文字のフォント、サイズ、色、バックの色を指定することができます。図では、242.asciiオブジェクトを2つ使って、文字のサイズを変えています。
 デフォルトではサイズが非常に小さくなっているので何だかよくわからないのですが、フォントサイズを指定するとはっきり判ります。このオブジェクトは「プロセッサ」の範疇に入るのでしょうが、実際には「ジェネレータ」的な働きをします。元の画像(左の小さなウィンドウ)とは似ても似つかない画面になってます。それにしても、どんなアルゴリズムで変換してるのかは良く判りません。(数値を変換しているのだろうけど‥‥)

02. 242.automata
 このオブジェクトも、「ジェネレータ的に働くプロセッサ」です。これは、白と黒のピクセルに、セルオートマトンの作用をします。ここでは詳しくは触れませんが、”セルオートマトン”は単位となるセルの状態が、近くのセルの状態によって変っていくアルゴリズムと考えてよいと思います。例えば、「白のセルは周囲の8つ(縦、横、斜め)のうちの3つが黒の時黒に変化し、黒のセルは周囲に2つまたは3つの黒のセルがある場合には黒のまま、その他の場合は白に変化する」といったような操作を行うものです。
 242.automataは1つ1つのピクセルを単位としてこの操作を行います。[mode 0]では
直前に入力された画像にこの操作を行います。[mode 1][mode 2]はそれぞれ異なったアルゴリズムを使っているようですが、両方とも出力した結果に対してさらに上記の操作を繰り返し行います。

図03_02

 上の図では、80x60という小型のムービー(白地に幾つかの黒いピクセルを置いたもの)を使って、ピクセルを大きく表示させています。右側は入力した画像、左側はmode 2でしばらく描画させた後のものです。
 ピクセルを通常のサイズで表示する設定にすると、じわじわ腐食していくような感じになります。

● 次の2つは、ジェネレータオブジェクトです。特定の関数による画像を描きます。
03. 242.fraktal

 今や見たことのない人はいないのでは?というほど有名な「マンデルブロ集合」と「ジュリア集合」を描画します。M.C.エッシャーとか大好きな私は、ずいぶん前に始めてみた時、とても感動しました。パソコンで(Macじゃなかったですが)グラフィック本のプログラムリストを打ち込んだものをコンパイルして、一晩がかりで書かせた時には感激したものです。
 話が年寄りじみて来たので(笑)これくらいにしましょうね。

図03-03a

図03_03b

 上の図(03_03a)がマンデルブロ、下の図(03_03b)がジュリアです。[mode $1]で1にするか0にするかで切り替えられます。[zoom]の後に4つの引数を与えることで、画像のサイズを変更することができます。ジュリアではx,yのパラメータも指定できます。

04. 242.lissajou
 リサージュ図形を書きます。図形の色、背景の色、ペンの太さ、図形の大きさ等をコントロールすることができます。

図03_04

● 最後に、ユーティリティ的に使えるオブジェクトを2つ紹介します。パッチャーウィンド
 ウの背景色やデスクトップの色を操作することができます。
05. 242.pkolor
 パッチャーウィンドウの背景色をRGBの値で操作できます。オブジェクトのあるウィンドウのみ変更するか、オープンしているパッチャーウィンドウすべてを変更するかは、[patcher]の引数で指定できます。

図03_05

06. 242.dkolor
 これは、デスクトップの色を変更します。(デスクトップピクチャがあると、ピクチャに隠れて変更が表示されません。コント−ルパネルの「アピアランス」で、デスクトップピクチャを使用しない設定にしておいて下さい。)pkolorでもそうですが、RGB各色は0〜65535の値で指定します。[random 引数]で、ランダムな変化をさせることもできます。

図03_06

● ここで紹介したオブジェクトも、特徴ある働きをします。このようなオブジェクトを自由
 に組み合わせることで、映像プログラミングができます。
back