動きに合わせる¶
Optical Flow ノードは映像の中で何がどこへ動いたか(オプティカルフロー)を画素ごとに推定し、動きの向きと速さを画像として出します。
その画像を Displace の map につなぐと動いたところだけ映像が歪み、Particle の Flow Field につなぐと観客やダンサーの動きがパーティクルを押します。
推定は GPU で、出力の 1/4 の解像度で動きます(前のフレームの推定を手がかりに探すので、速い動きも追えます)。入力にはどの TEX でも使えます(Camera、Syphon Spout In、Video、ジェネレータなど)。 細かい模様のない平坦なところや暗いところでは動きが読めず、そこは「動かない」になります。
動きを見る¶
- Camera(または Video)を Optical Flow の
inにつなぎ、Optical Flow をセルの Out へつなぎます。 outputをdirectionにすると、向きごとの色(右が赤、上が黄緑、左が水色、下が紫)が速いほど明るく出ます。speedは速さだけの白黒です。rangeが出力の飽和する速さです。小さくすると遅い動きでも強く出ます。
speed の出力を Mask Mix の mask につなぐと、動いたところだけにエフェクトをかけられます(止まっているものはそのまま)。
動きで映像を歪ませる¶
- Camera を Displace の
inと、Optical Flow のinの両方につなぎます。 - Optical Flow の
outputをvectorsにして、Displace のmapにつなぎます。 - Displace をセルの Out へつなぎます。
Displace の amount が歪む量(フレームの高さに対する割合)、edge がフレームの外にはみ出したところの扱いです。
Optical Flow の smooth を上げると歪みがなめらかに残り、range を下げると小さな動きでも大きく歪みます。
Displace の map には Optical Flow 以外にも、Clouds や Flow などのジェネレータ(ゆらぎ、波ガラス)、Text(文字の形でずらす)、Camera そのもの(source を brightness に)など、どの画像でもつなげます。
動きでパーティクルを押す¶
- Camera を Particle の
inにつなぎ、Particle のoutをセルの Out へつなぎます。 - Camera を Optical Flow の
inにもつなぎ、outputをvectorsにします。 - Particle に入り、TEX In を追加して
nameをfieldにします。Particle の外にfieldの入力が現れるので、そこへ Optical Flow をつなぎます。 - Flow Field を追加し、Emit Pixels と Return の間に挟みます。
fieldポートに TEX In をつなぎます。
カメラの前で手を振ると、その動きがパーティクルを押します。Return が元の位置へ戻すので、映像が崩れて戻る動きになります。
Flow Field の strength が押す強さ、follow を上げると押されるのではなく場の速さそのもので流れます。Return を外して Drag と Bounds を入れると、押されたパーティクルが漂います。
明るいところから火花を出す¶
Emit From Bright は Emit Pixels の代わりに使う Emit ノードで、入力の明るい画素からランダムに寿命つきのパーティクルを湧かせます。
- Particle の中で Emit Pixels を消し、Emit From Bright を追加して TEX In → Emit From Bright → Render Points とつなぎます。
rateが 1 秒に出す数、lifeが消えるまでの秒数、thresholdが出す画素の明るさの下限です。- Gravity の
yをマイナスにすると落ちる火の粉、Curl Noise と Drag を足すと煙になります。Render Points のfade by ageをオンにすると消え際が薄くなります。
Text や Audio FFT を入力にすると、文字やスペクトルから火花が立ちのぼります。