TEX ノード¶
映像(テクスチャ)を作る・加工するノードです。中身は全画面のフラグメントシェーダーで、出力は常に不透明です。 位置はフレーム単位(左右・上下とも −1〜1、0 が中央)、角度は度で指定します。ジェネレータの色は、Plasma と Rings 以外はパレットから取ります。
ジェネレータ¶
Plasma¶
サイン波を重ねた、ゆっくりうねる虹色のプラズマ模様です。
色はパレットを使わず固定の虹色です。音やビートには反応しません。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
speed |
数値 | 0 〜 4 | 1 | うねりの速さ(0 で停止)。 |
scale |
数値 | 0.1 〜 8 | 1 | 模様の細かさ。大きいほど波が細かくなります。 |
mono |
オン / オフ | オフ | 色の代わりに白黒で描きます。 |
シェーダー: generators/plasma.frag
Rings¶
中心から外へ広がり続ける同心円のリングです。
色はパレットを使わず、紫からオレンジの固定グラデーションです。音やビートには反応しません。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
speed |
数値 | 0 〜 4 | 1 | リングが広がる速さ(0 で停止)。 |
scale |
数値 | 0.1 〜 8 | 1 | リングの細かさ。大きいほど間隔が狭くなります。 |
mono |
オン / オフ | オフ | 色の代わりに白黒で描きます。 |
シェーダー: generators/rings.frag
Grid¶
地平線へ向かってスクロールする床のグリッドです。ビートで線が光ります。
ビートごとに線が明るく太くなり、画面全体もほんのり光ります(強さは pulse)。色はパレットから取ります。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
speed |
数値 | 0 〜 4 | 1 | 床が流れる速さ(0 で停止)。 |
scale |
数値 | 0.1 〜 8 | 1 | マス目の細かさ。 |
width |
数値 | 0.005 〜 0.3 | 0.04 | 線の太さ(マス 1 つに対する割合)。 |
pulse |
数値 | 0 〜 1 | 0.5 | ビートで線が明るく太くなる量。0 でビートに反応しません。 |
mono |
オン / オフ | オフ | パレットの代わりに白黒で描きます。 |
シェーダー: generators/grid.frag
Stripes¶
パレットの色で塗られた縞模様が流れていきます。ビートごとに少し前へ進みます。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
speed |
数値 | 0 〜 4 | 1 | 縞が流れる速さ(0 で停止。ビートでの前進は残ります)。 |
scale |
数値 | 0.1 〜 8 | 1 | 縞の細かさ。 |
angle |
数値 | -180 〜 180 | 30 | 縞の向き(度)。 |
sharpness |
数値 | 0 〜 1 | 0.8 | 縞の輪郭のくっきり具合。0 でなめらかな波、1 で硬い帯になります。 |
mono |
オン / オフ | オフ | パレットの代わりに白黒で描きます。 |
シェーダー: generators/stripes.frag
Polygon¶
入れ子になった多角形の輪郭が交互に回転しながら外へ広がっていきます。
ビートで図形が跳ねるように拡大します(強さは kick)。色はパレットから取り、拍の進みに合わせて少しずつ移り変わります。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
speed |
数値 | 0 〜 4 | 1 | 広がる速さと回転の速さ(0 で停止)。 |
scale |
数値 | 0.1 〜 8 | 1 | 図形の大きさ。 |
sides |
整数 | 3 〜 12 | 6 | 多角形の辺の数。 |
kick |
数値 | 0 〜 1 | 0.4 | ビートで図形が跳ねる量。0 でビートに反応しません。 |
mono |
オン / オフ | オフ | パレットの代わりに白黒で描きます。 |
シェーダー: generators/polygon.frag
Clouds¶
漂うフラクタルノイズの雲模様を、パレットの色で描きます。
中域(mid)の音量でコントラストが強まります。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
speed |
数値 | 0 〜 4 | 1 | 雲が流れる速さ(0 で停止)。 |
scale |
数値 | 0.1 〜 8 | 1 | 模様の細かさ。 |
octaves |
整数 | 1 〜 8 | 5 | 重ねるノイズの層の数。多いほど細部が増えます。 |
contrast |
数値 | 0.5 〜 3 | 1.2 | 明暗の強さ。音の中域でさらに強まります。 |
mono |
オン / オフ | オフ | パレットの代わりに白黒で描きます。 |
シェーダー: generators/clouds.frag
Voronoi¶
動き回るセル(ボロノイ)模様です。各セルがパレットの色で塗られ、境界線がビートで光ります。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
speed |
数値 | 0 〜 4 | 1 | セルが動く速さ(0 で停止)。 |
scale |
数値 | 0.1 〜 8 | 1 | セルの細かさ。大きいほどセルが小さく多くなります。 |
jitter |
数値 | 0 〜 1 | 1 | セルの点が動く幅。0 で正方形のマス目、1 で完全にランダムな配置になります。 |
edge |
数値 | 0 〜 0.3 | 0.05 | セル同士の境界線の太さ。0 で線なし。 |
mono |
オン / オフ | オフ | パレットの代わりに白黒で描きます。 |
シェーダー: generators/voronoi.frag
Flow¶
ノイズでノイズを歪ませた、煙や液体のような模様です。
低域(low)の音量で歪みが強まり、乱れが増します。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
speed |
数値 | 0 〜 4 | 1 | 流れる速さ(0 で停止)。 |
scale |
数値 | 0.1 〜 8 | 1 | 模様の細かさ。 |
warp |
数値 | 0 〜 4 | 1.5 | ノイズが自身を歪ませる強さ。0 で歪みなし。音の低域でさらに強まります。 |
mono |
オン / オフ | オフ | パレットの代わりに白黒で描きます。 |
シェーダー: generators/flow.frag
Tunnel¶
チューブの中を進んでいくトンネルです。1 拍に 1 本、リングが流れてきます。
進み方はビートクロックに同期しています(speed 1 で 1 拍に 1 リング分)。リングはビートの瞬間に明るくなります。壁はパレットの色のタイル模様です。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
speed |
数値 | 0 〜 4 | 1 | 1 拍あたりに進む量(0 で停止)。 |
scale |
数値 | 0.1 〜 8 | 1 | 模様の細かさ。 |
twist |
数値 | -4 〜 4 | 1 | 奥へ行くほどねじれる量。負の値で逆回りになります。 |
glow |
数値 | 0 〜 2 | 1 | リングの輝きの強さ。0 でリングを消します。 |
mono |
オン / オフ | オフ | パレットの代わりに白黒で描きます。 |
シェーダー: generators/tunnel.frag
Sphere¶
表面が音に合わせて波打つ、レイマーチングで描いた立体の球です。
表面の凹凸は低域(low)の音量とビートで大きくなります。パレットの色でライティングされ、縁が明るく光ります。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
speed |
数値 | 0 〜 4 | 1 | 表面の揺らぎと色の移り変わりの速さ(0 で停止)。 |
scale |
数値 | 0.1 〜 8 | 1 | 球の大きさ。 |
displace |
数値 | 0 〜 1 | 0.4 | 表面の凹凸の量。0 でなめらかな球になり、音にも反応しません。 |
mono |
オン / オフ | オフ | パレットの代わりに白黒で描きます。 |
シェーダー: generators/sphere.frag
Spectrum¶
音声の 64 本の FFT ビンを、下からのバーまたは中心まわりのリングで表示します。
低い周波数が左(radial では上)で、色はパレットから取ります。各バーの上に薄いキャップが付きます。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
speed |
数値 | 0 〜 4 | 1 | 色がパレット上を流れる速さ(0 で色が止まります)。 |
scale |
数値 | 0.1 〜 8 | 1 | バーの長さの倍率。radial ではリング全体の大きさも変わります。 |
gain |
数値 | 0 〜 4 | 1.5 | 音量に掛ける倍率。大きいほどバーが伸びます。 |
mode |
選択 | bars / radial |
bars |
表示の形。bars は画面下からのバー、radial は中心を囲むリングです。 |
mono |
オン / オフ | オフ | パレットの代わりに白黒で描きます。 |
シェーダー: generators/spectrum.frag
Raymarch¶
レイマーチングで描く小さな 3D シーン。球・箱・トーラス・メンガーのスポンジのどれかに小さな球が寄り添い、カメラが周りを回ります。
形は shape で選び、低音とビートで膨らみます(量は bass)。smooth を上げると形と球が溶けるようにつながります。repeat を上げるとシーンが空間に繰り返され、遠くは霧に消えます。色はパレットから、面の向きで変わります。
2D のジェネレータの中でひとつだけ派手な 3D 担当です。重いので、負荷が気になるときは解像度(レンダースケール)を下げてください。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
speed |
数値 | 0 〜 4 | 1 | カメラが回る速さと形が回る速さ(0 で停止)。 |
scale |
数値 | 0.1 〜 8 | 1 | 形の大きさ。 |
shape |
選択 | sphere / box / torus / menger |
sphere |
形。sphere は球、box は角の丸い箱、torus はドーナツ、menger はメンガーのスポンジです。 |
smooth |
数値 | 0 〜 1 | 0.5 | 形と寄り添う球のつなぎ目の滑らかさ。0 でただ重ねるだけ。 |
repeat |
数値 | 0 〜 1 | 0 | 0 でシーンは 1 つ。上げるほど空間に繰り返され、間隔が詰まります。 |
bass |
数値 | 0 〜 1 | 0.5 | 低音とビートで形が膨らむ量。0 で反応しません。 |
mono |
オン / オフ | オフ | パレットの代わりに白黒で描きます。 |
シェーダー: generators/raymarch.frag
Shape¶
円・長方形・星・正多角形を 1 つ(または格子状に)描きます。塗りつぶしと輪郭、回転、繰り返し。
Polygon より素直なマスク向けのジェネレータです。白で塗ればそのまま Mask Mix の mask や Chroma Key のテストに使えます。outline を上げると輪郭線だけになります。repeat でフレームの高さに収まる数だけ格子状に並べます。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
speed |
数値 | 0 〜 4 | 1 | 回る速さ(10 秒あたりの回転数)。0 で止まります。 |
scale |
数値 | 0.1 〜 8 | 1 | 大きさ。1 でフレームの高さの半分くらいです。 |
shape |
選択 | circle / rect / star / polygon |
circle |
形。circle は円、rect は長方形、star は星、polygon は正多角形です。 |
sides |
整数 | 3 〜 12 | 5 | 星の頂点の数、正多角形の辺の数。 |
outline |
数値 | 0 〜 0.5 | 0 | 0 で塗りつぶし。上げると輪郭線だけになり、値が線の太さです。 |
rotate |
数値 | -180 〜 180 | 0 | 回転(度)。 |
repeat |
整数 | 1 〜 8 | 1 | フレームの高さに並ぶ数。1 で 1 つ。 |
fill |
選択 | white / palette |
white |
塗りの色。white は白、palette はパレットの色(形の縁に沿って回ります)。 |
mono |
オン / オフ | オフ | パレットの代わりに白黒で描きます。 |
シェーダー: generators/shape.frag
メディア・テキスト¶
Image¶
画像ファイルを表示します。
画像ファイルをウィンドウにドロップしても追加できます。ファイルは絶対パスで参照され、プロジェクトにはコピーされません。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
file |
画像ファイル | (空) | 表示する画像ファイル。NODE タブの OPEN… で選びます。STR ワイヤーやテンプレートで切り替えることもできます。 |
|
fit |
選択 | fit / fill / stretch |
fit |
画面への収め方。fit は全体が入るように、fill は画面を埋めるように、stretch は引き伸ばします。 |
シェーダー: sources/image.frag
Video¶
動画ファイルを再生します。シーク、ホットキュー、BPM 同期に対応しています。
NODE タブに ▶ / ⏸、時間、逆再生と速度の微調整、シークバー、ホットキュー A〜H が出ます。動画は、そのセルが再生中か編集中のときだけ進みます。
file を切り替えるとデコーダが再起動するので、切り替えは 1 拍に 1 回程度までにします。
メディアライブラリに HAP のコピーがある動画は、そのコピーを GPU で再生します(デコード不要)。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
file |
動画ファイル | (空) | 再生する動画ファイル。NODE タブの OPEN… で選ぶか、ウィンドウにドロップします。メディアブラウザから PERFORMANCE のセルにドラッグすると、このノードが Out につながった状態で追加されます。 |
|
play |
オン / オフ | オン | 再生中かどうか。オフで一時停止します。 | |
loop |
オン / オフ | オン | 最後まで再生したら先頭に戻ります。 | |
speed |
数値 | 0 〜 4 | 1 | 再生速度(1 が等速)。auto sync がオンの間は固定されます。 |
reverse |
オン / オフ | オフ | オンにすると逆再生します(speed / auto sync の速さで)。ループ中は先頭まで戻ると末尾から続きます。 |
|
auto sync |
オン / オフ | オフ | オンにすると、speed の代わりにショーの BPM に合わせて再生します。 |
|
bpm |
数値 | 40 〜 240 | 120 | クリップ自体のテンポ。auto sync のとき、ショーの BPM との比で再生速度が決まります。 |
fit |
選択 | fit / fill / stretch |
fit |
画面への収め方(fit / fill / stretch)。Image と同じです。 |
hardware |
オン / オフ | オン | ハードウェアデコード(macOS は VideoToolbox、Windows は D3D11VA)を使います。対応しない動画ではソフトウェアに戻ります。 |
シェーダー: sources/video.frag
Camera¶
カメラの映像を出します。
Windows は DirectShow、macOS は AVFoundation、Linux は Video4Linux2 のカメラを使います(OBS の仮想カメラなども使えます)。カメラ自身の解像度のまま受け取り、fit で画面に合わせます。カメラは active のあいだ開いたままで、同じカメラを複数のノードで使えます。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
device |
カメラ | (空) | 使うカメラ。空なら最初に見つかったカメラ。Test pattern はカメラがなくても動くテスト用の映像です。 |
|
active |
オン / オフ | オン | オフにするとカメラを閉じ、黒を出します。 | |
fit |
選択 | fit / fill / stretch |
fit |
画面への合わせ方。fit は全体が入るように、fill は画面を埋めるように、stretch は引き伸ばします。 |
mirror |
オン / オフ | オフ | 左右を反転します。 |
シェーダー: sources/camera.frag
Syphon Spout In¶
他のアプリが Spout(Windows)/ Syphon(macOS)で送っている映像を受け取ります。
TouchDesigner、Resolume、OBS などの映像をノードの入力にできます(TouchDesigner の Syphon Spout In TOP 相当)。送信元の解像度のまま受け取り、fit で画面に合わせます。Windows(Spout)では GPU のまま受け取ります。送信元がないあいだは待ち、送信が始まると自動でつながります。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
source |
Spout / Syphon の送信元 | (空) | 受け取る送信元。空なら最初に見つかった送信元(Spout ではアクティブな送信者)。 | |
active |
オン / オフ | オン | オフにすると受信をやめ、黒を出します。 | |
fit |
選択 | fit / fill / stretch |
fit |
画面への合わせ方。fit は全体が入るように、fill は画面を埋めるように、stretch は引き伸ばします。 |
mirror |
オン / オフ | オフ | 左右を反転します。 |
シェーダー: sources/camera.frag
Text¶
表示用のテキストを描きます(TouchDesigner の Text TOP 相当)。
レイアウトのパラメータ(text〜align v)を変えると CPU で描き直し、x、y、rotate、color、background と anim 以降は GPU で適用するので、信号で動かしても負荷はかかりません(scramble だけは文字が変わるたびに描き直します)。出力は不透明なので、映像に重ねるときは Blend(Add / Screen)を使います。日本語は Hiragino にフォールバックします。
文字ごとのアニメーションは progress で進めます。STR の Clock / Format と組み合わせると歌詞やカウントダウンの見せ方になります。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
text |
文字列 | lemona.de |
表示する文字列(複数行可)。STR ワイヤーやテンプレートで動かせます。 | |
font file |
フォントファイル | (空) | 使うフォントファイル(.ttf / .otf / .ttc)。OPEN… で選び、空なら font を使います。 |
|
font |
選択 | sans / serif / mono |
sans |
内蔵フォントの種類(sans / serif / mono)。 |
weight |
整数 | 100 〜 900 | 600 | 文字の太さ。可変フォントは 100 単位で反映されます。 |
size |
数値 | 8 〜 800 | 160 | 文字の大きさ(フル解像度でのピクセル)。 |
line spacing |
数値 | 0.5 〜 3 | 1 | 行の高さの倍率。 |
tracking |
数値 | -0.2 〜 1 | 0 | 字間に足す量(文字サイズに対する比)。マイナスで詰まります。 |
wrap |
オン / オフ | オフ | オンにすると、画面の幅で折り返します。 | |
align h |
選択 | left / center / right |
center |
横の揃え(left / center / right)。 |
align v |
選択 | bottom / center / top |
center |
縦の揃え(bottom / center / top)。 |
x |
数値 | -1 〜 1 | 0 | 横の位置(フレーム単位、0 が中央)。 |
y |
数値 | -1 〜 1 | 0 | 縦の位置(フレーム単位、上がプラス)。 |
rotate |
数値 | -180 〜 180 | 0 | 回転(度、反時計回り)。 |
color |
色 | #ffffff |
文字の色。アルファで文字の濃さが変わります。 | |
background |
色 | #000000 |
背景の色。 | |
anim |
選択 | none / typewriter / fade / rise / jitter / scramble |
none |
文字ごとのアニメーション。typewriter は progress までの文字を順に出し、fade は順にフェードイン、rise は下から順に上がって現れ、jitter はまだ落ち着いていない文字が震え、scramble はランダムな文字が入れ替わってから確定します。none でアニメーションなし。 |
progress |
数値 | 0 〜 1 | 1 | アニメーションの進み(0〜1)。beats や trig(0) を FX で結ぶと拍やトリガーに合わせて動きます。jitter では 1 − progress の分だけ震えます。 |
spread |
数値 | 0 〜 1 | 0.3 | 文字ごとのずれの幅(fade / rise:全体のどれだけを 1 文字に使うか)と、jitter の震える大きさ。 |
scroll |
選択 | off / left / right / up / down |
off |
流れる方向(left / right / up / down)。フレームの端で反対側から戻ってくる電光掲示板です。off で止まります。 |
scroll speed |
数値 | 0 〜 2 | 0.2 | 1 秒に流れる量(フレーム幅・高さの倍)。 |
シェーダー: sources/text.frag
Code¶
ソースコードを、シンタックスハイライト付きの映像にします。ライブコーディングを見せるのに使います。
既定では SHADER パネルで編集中のシェーダーを表示し、保存前の入力にも追従します。映像に重ねるときは Blend(Add / Screen)を使います。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
source |
シェーダーファイル | (空) | 表示するシェーダーファイル。(shader panel) を選ぶと SHADER パネルで編集中のコードを表示します。 |
|
size |
数値 | 8 〜 72 | 22 | 文字の大きさ(フル解像度でのピクセル)。 |
scroll |
数値 | 0 〜 1 | 0 | 画面に入りきらないときの表示位置。0 で先頭、1 で末尾です。 |
highlight |
オン / オフ | オン | シンタックスハイライトを付けます。 | |
line numbers |
オン / オフ | オン | 行番号を表示します。 |
シェーダー: sources/image.frag
オーディオ¶
Audio FFT¶
オーディオ入力のスペクトラムを、512 ビンのピクセルとして出力します。
横軸が周波数(log なら 20 Hz → 16 kHz)、明るさがその帯域の強さです。テクスチャとしてほかのノードやシェーダーでサンプルし、変位やマスクに使えます。dB の明るさは AUDIO タブのフロアから 0 dB までです。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
mode |
選択 | spectrum / spectrogram |
spectrogram |
spectrum は最新の 1 行を縦に伸ばして表示し、spectrogram は履歴を上から下へ流します。 |
gain |
数値 | 0 〜 4 | 1 | 明るさに掛ける倍率。 |
history |
数値 | 0.5 〜 30 | 4 | spectrogram で表示する秒数。 |
data |
選択 | spectrum / flux / chroma |
spectrum |
何を表示するか。spectrum は強さ、flux は各ビンの立ち上がり(オンセット)、chroma は 12 音(C〜B)の 12 列です。 |
axis |
選択 | log / linear |
log |
周波数軸(log / linear)。linear は 0 → 16 kHz です。 |
scale |
選択 | dB / linear |
dB |
明るさの尺度(dB / linear 振幅)。 |
シェーダー: sources/audio_fft.frag
Audio Scope¶
オーディオ入力の波形を、オシロスコープ、L/R 分割、ベクトルスコープで表示します。
AUDIO タブのゲインをかける前の入力そのものを表示します(モノラル入力は L = R)。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
mode |
選択 | waveform / split / vectorscope |
waveform |
表示方法。waveform は (L + R) / 2、split は上に L・下に R、vectorscope はゴニオメーター(モノラル成分が縦、逆相成分が横)です。 |
gain |
数値 | 0 〜 8 | 1 | 振幅に掛ける倍率。 |
window |
数値 | 2 〜 170 | 20 | waveform / split で表示する長さ(ミリ秒)。 |
trigger |
オン / オフ | オン | オンにすると、波形をゼロを上向きに横切る位置から描き、表示を止まって見せます。 | |
thickness |
数値 | 0.5 〜 16 | 2 | 線の太さ(フル解像度でのピクセル)。 |
persistence |
数値 | 0 〜 0.99 | 0.8 | vectorscope の残像の長さ。1 に近いほどゆっくり消えます。 |
grid |
オン / オフ | オフ | 目盛り線を表示します。 |
シェーダー: sources/audio_scope.frag
Plot¶
SIG の値(最大 4 本)を、時間のグラフとして描きます。
入力 a〜d に SIG の出力(Audio の level、帯域、Loudness、BPM など)をつなぐと、それぞれパレットの色の線になり、最新の値が右端に来ます。つながっていない入力は描かれません。
入力: a(SIG)、b(SIG)、c(SIG)、d(SIG)
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
history |
数値 | 0.5 〜 60 | 4 | 横幅に表示する秒数。 |
auto range |
オン / オフ | オン | オンにすると、値の範囲に合わせて縦軸を自動で決めます。 | |
min |
数値 | -100 〜 100 | 0 | auto range がオフのとき、下端の値。 |
max |
数値 | -100 〜 100 | 1 | auto range がオフのとき、上端の値。 |
style |
選択 | line / fill |
line |
線だけ(line)か、線の下を塗る(fill)か。 |
thickness |
数値 | 0.5 〜 16 | 2 | 線の太さ(フル解像度でのピクセル)。 |
grid |
オン / オフ | オフ | 横の目盛り線を表示します。 |
シェーダー: sources/plot.frag
エフェクト¶
Blur¶
入力をガウスぼかしでぼかします。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
radius |
数値 | 0 〜 64 | 8 | ぼかしの半径(ピクセル、フル解像度基準)。0 でぼかしなし。 |
シェーダー: effects/blur.frag
Transform¶
入力を中心で拡大・縮小し、回転させてから移動します。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
scale |
数値 | 0.1 〜 8 | 1 | 拡大率。1 で等倍、1 より大きいと拡大します。 |
x |
数値 | -1 〜 1 | 0 | 横方向の移動量(フレーム単位、正で右)。 |
y |
数値 | -1 〜 1 | 0 | 縦方向の移動量(フレーム単位、正で上)。 |
rotate |
数値 | -180 〜 180 | 0 | 回転角(度、反時計回り)。 |
edge |
選択 | black / repeat / mirror |
black |
画面外になった部分の扱い。black は黒、repeat は繰り返し、mirror は折り返して並べます。 |
シェーダー: effects/transform.frag
Fit¶
TouchDesigner の Fit TOP のように、width×height の素材を本来の縦横比でフレームに収めます。
入力には素材をフレーム全体に引き伸ばした映像をつなぎます(Image / Video の fit = stretch など)。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
width |
整数 | 1 〜 8192 | 1920 | 素材の元の幅(ピクセル)。 |
height |
整数 | 1 〜 8192 | 1080 | 素材の元の高さ(ピクセル)。 |
fit |
選択 | best / outside / horizontal / vertical / native / fill |
best |
収め方。best は全体が見えるように、outside はフレームを覆うように、horizontal / vertical は幅 / 高さに合わせ、native は元のピクセルサイズ、fill はフレーム全体に引き伸ばします。 |
justify h |
選択 | left / center / right |
center |
横方向の寄せ(左・中央・右)。 |
justify v |
選択 | bottom / center / top |
center |
縦方向の寄せ(下・中央・上)。 |
scale x |
数値 | 0.05 〜 4 | 1 | 収めたあとの横方向の拡大率。 |
scale y |
数値 | 0.05 〜 4 | 1 | 収めたあとの縦方向の拡大率。 |
x |
数値 | -1 〜 1 | 0 | 横方向の移動量(フレーム単位、正で右)。 |
y |
数値 | -1 〜 1 | 0 | 縦方向の移動量(フレーム単位、正で上)。 |
edge |
選択 | black / repeat / mirror |
black |
素材の外側の扱い。black は黒、repeat は繰り返し、mirror は折り返して並べます。 |
シェーダー: effects/fit.frag
Lens Distortion¶
TouchDesigner の Lens Distort TOP と同じ Brown–Conrady モデルで、レンズの歪みを加えます。
半径はフレームの角で 1 になるように測ります。chroma で赤と青を逆向きにずらすと色収差になります。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
k1 |
数値 | -1 〜 1 | 0.2 | 放射方向の歪み(r² の項)。正でたる型、負で糸巻き型になります。 |
k2 |
数値 | -1 〜 1 | 0 | 放射方向の歪み(r⁴ の項)。画面の外側ほど強く効きます。 |
k3 |
数値 | -1 〜 1 | 0 | 放射方向の歪み(r⁶ の項)。さらに外側だけに効きます。 |
p1 |
数値 | -0.2 〜 0.2 | 0 | 接線方向の歪み(レンズの中心ずれ)、縦方向の成分。 |
p2 |
数値 | -0.2 〜 0.2 | 0 | 接線方向の歪み(レンズの中心ずれ)、横方向の成分。 |
chroma |
数値 | -0.2 〜 0.2 | 0 | 色収差の量。赤と青を逆向きに歪ませます。0 で無効。 |
zoom |
数値 | 0.25 〜 4 | 1 | 拡大率。1 より大きいと拡大します。 |
x |
数値 | -1 〜 1 | 0 | レンズ中心の横位置(フレーム単位)。 |
y |
数値 | -1 〜 1 | 0 | レンズ中心の縦位置(フレーム単位、正で上)。 |
edge |
選択 | black / repeat / mirror |
black |
画面外になった部分の扱い。black は黒、repeat は繰り返し、mirror は折り返して並べます。 |
シェーダー: effects/lens.frag
Mirror¶
(x, y) を通る線を境に、片側をもう片側の鏡像で置き換えます。
鏡像がフレームの外にはみ出す部分は折り返して埋めるので、黒い隙間はできません。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
angle |
数値 | 0 〜 360 | 90 | 鏡の線の角度(度)。0 で水平線(上下対称)、90 で垂直線(左右対称)。 |
x |
数値 | -1 〜 1 | 0 | 鏡の線が通る点の横位置(フレーム単位)。 |
y |
数値 | -1 〜 1 | 0 | 鏡の線が通る点の縦位置(フレーム単位、正で上)。 |
flip |
オン / オフ | オフ | 残す側を反対側に切り替えます。 |
シェーダー: effects/mirror.frag
Kaleidoscope¶
(x, y) を中心に画面を鏡映しのくさび形に折りたたむ万華鏡です。
spin はビートクロックに同期して回ります(1 小節 = 4 拍あたりの回転数)。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
segments |
整数 | 2 〜 24 | 6 | くさびの数。 |
rotate |
数値 | -180 〜 180 | 0 | 模様の回転角(度)。 |
spin |
数値 | -2 〜 2 | 0 | 1 小節(4 拍)あたりの回転数。負の値で逆回り、0 で回転しません。 |
zoom |
数値 | 0.25 〜 4 | 1 | 拡大率。1 より大きいと拡大します。 |
x |
数値 | -1 〜 1 | 0 | 中心の横位置(フレーム単位)。 |
y |
数値 | -1 〜 1 | 0 | 中心の縦位置(フレーム単位、正で上)。 |
シェーダー: effects/kaleidoscope.frag
Bloom¶
threshold より明るい部分のまわりに光のにじみ(グロー)を加えます。TouchDesigner の Bloom TOP がモデルです。
狭い芯と広いハローの 2 つのにじみを spread で混ぜ、color で色付けして入力に加算します。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
threshold |
数値 | 0 〜 1 | 0.6 | グローが出始める明るさ(輝度)。 |
knee |
数値 | 0 〜 0.5 | 0.1 | しきい値の手前からなだらかに光り始める幅。0 でしきい値ではっきり切り替わります。 |
radius |
数値 | 1 〜 256 | 24 | ハローの大きさ(ピクセル、フル解像度基準)。 |
intensity |
数値 | 0 〜 4 | 1 | グローの強さ。0 でグローなし。 |
spread |
数値 | 0 〜 1 | 0.5 | 芯とハローの配分。0 で狭い芯だけ、1 で広いハローだけになります。 |
color |
色 | #ffffff |
グローに掛ける色。 | |
input |
数値 | 0 〜 2 | 1 | グローの下に敷く入力の明るさ。0 でグローだけが残ります。 |
mode |
選択 | composite / bloom only / threshold |
composite |
出力内容。composite は入力とグローの合成、bloom only はグローだけ、threshold はしきい値を超えた部分だけを表示します(調整用)。 |
シェーダー: effects/bloom.frag
Color¶
明るさ・コントラスト・彩度・色相・反転を調整する色補正です。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
brightness |
数値 | -1 〜 1 | 0 | 明るさ(加算)。0 で変化なし。 |
contrast |
数値 | 0 〜 3 | 1 | 中間グレーを中心にしたコントラスト。1 で変化なし。 |
saturation |
数値 | 0 〜 3 | 1 | 彩度。0 で白黒、1 で変化なし。 |
hue |
数値 | -180 〜 180 | 0 | 色相の回転(度)。0 で変化なし。 |
invert |
数値 | 0 〜 1 | 0 | 色の反転。0 でそのまま、1 で完全に反転します。 |
シェーダー: effects/color.frag
Level¶
TouchDesigner の Level TOP のように、反転・黒レベル・明るさ・ガンマ・コントラスト・不透明度をこの順に適用します。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
invert |
数値 | 0 〜 1 | 0 | 色の反転。0 でそのまま、1 で完全に反転します。 |
black level |
数値 | 0 〜 1 | 0 | 黒に割り当てる入力レベル。これ以下は黒になります。 |
brightness |
数値 | 0 〜 4 | 1 | 明るさの倍率。1 で変化なし。 |
gamma |
数値 | 0.1 〜 4 | 1 | ガンマ。1 より大きいと中間調が明るくなります。 |
contrast |
数値 | 0 〜 4 | 1 | 中間グレーを中心にしたコントラスト。1 で変化なし。 |
opacity |
数値 | 0 〜 1 | 1 | 不透明度。出力は不透明なので、下げると黒へフェードします。 |
シェーダー: effects/level.frag
Feedback¶
入力を自分自身の前のフレームに重ね、毎フレーム変形・減衰させて残像(トレイル)を作ります。
zoom・rotate・x・y はすべて 1 フレームあたりの量なので、小さな値でも積み重なって大きく動きます。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
amount |
数値 | 0 〜 0.99 | 0.9 | 前のフレームが残る割合。大きいほど残像が長く残ります。0 で残像なし。 |
zoom |
数値 | 0.9 〜 1.1 | 1.01 | 1 フレームあたりの拡大率。1 より大きいと外へ広がり、1 未満で中心へ縮みます。 |
rotate |
数値 | -10 〜 10 | 0 | 1 フレームあたりの回転角(度)。 |
x |
数値 | -0.02 〜 0.02 | 0 | 1 フレームあたりの横方向の移動量(フレーム単位)。 |
y |
数値 | -0.02 〜 0.02 | 0 | 1 フレームあたりの縦方向の移動量(フレーム単位、正で上)。 |
mode |
選択 | max / add / over |
max |
重ね方。max は明るいほうを残し、add は加算、over は入力が黒でない部分だけ入力で上書きします。 |
シェーダー: effects/feedback.frag
Delay¶
in の映像を frames フレーム遅らせて出します。
直近のフレームを GPU に溜めておき、frames フレーム前のものを出します。元の映像と Blend で重ねると、少し遅れて動く残像(エコー)になります。
数えるのはこのノードが描画されたフレームです(出力に使われていないプレビューだけのノードは、プレビューの更新レートで進みます)。溜まっていないうちは、いちばん古いフレームを出します。
溜めるフレームは frames の最大値まで増え、減らしても解放しません(LFO などで frames を動かしても途切れないように)。1 フレームあたり出力と同じ大きさの画像を 1 枚使います(1080p で約 8 MB、60 フレームで約 500 MB)。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
frames |
整数 | 0 〜 60 | 4 | 何フレーム前の映像を出すか(0〜60)。0 で入力そのまま。60 fps で 60 フレームが 1 秒です。 |
シェーダー: effects/delay.frag
Displace¶
map の明るさや色で in の画素をずらします(TouchDesigner の Displace TOP)。
map の各画素が「そこに映す in の画素をどれだけ動かすか」を決めます。source が red green なら赤と緑を x / y の向きとして読み(0.5 が動かない中心)、brightness なら明るさを rotate の向きへの押し出しとして読みます(灰色 0.5 で動かない、白で amount だけ進む、黒で戻る)。
map にはジェネレータ(Clouds や Flow で揺らぎ、Stripes で波ガラス)、Camera、Text(文字の形でずらす)など何でもつなげます。map がつながっていないところは動きません。ずれた先がフレームの外になったところは edge で決めます。
入力: in(TEX)、map(TEX)
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
amount |
数値 | -1 〜 1 | 0.1 | ずらす量。map が端の値(白、または赤 / 緑が 1)のとき、フレームの高さの何倍動かすか(−1〜1)。負で逆向き。 |
rotate |
数値 | -180 〜 180 | 0 | ずらす向きに足す角度(度)。brightness では 0 で右向き。 |
source |
選択 | red green / brightness |
red green |
map の読み方。red green は赤 / 緑をベクトル、brightness は明るさを rotate の向きの量として読みます。 |
edge |
選択 | black / repeat / mirror |
mirror |
ずれた先がフレームの外のとき。black は黒、repeat は反対側から、mirror は折り返して映します。 |
シェーダー: effects/displace.frag
Optical Flow¶
in の映像が前のフレームからどこへどれだけ動いたか(オプティカルフロー)を画像にします。
画素ごとの動きを GPU で推定します(出力の 1/4 の解像度で、前のフレームの推定を手がかりにブロック探索し、Lucas–Kanade で細かく合わせます)。output が vectors なら赤 / 緑が x / y の動き(0.5 が静止、赤 1 で右、緑 1 で上)、青が速さで、そのまま Displace の map や Particle の力につなげます。speed は速さだけの白黒、direction は向きごとの色(速いほど明るい)です。
Camera をつなぐと、人の動きで映像を歪ませる(Camera → Optical Flow → Displace の map)、動いたところだけにエフェクトをかける(speed を Mask Mix の mask に)といった使い方ができます。
細かい模様や一様な面では動きが読めず、暗い映像ではノイズが出ます。速さは 60 fps のときの値で、フレームレートが低いと大きく出ます。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
output |
選択 | vectors / speed / direction |
vectors |
何を出すか。vectors はベクトル(Displace 用)、speed は速さ、direction は向きの色。 |
range |
数値 | 0.1 〜 5 | 1 | 出力が飽和する速さ(1 秒あたりフレームの高さの何倍動くか、60 fps のとき)。小さくすると遅い動きでも強く出ます。 |
search |
整数 | 1 〜 3 | 2 | 1 フレームでどこまで探すか(1/4 解像度の画素で 1〜3)。大きいほど速い動きを追えますが重くなります。 |
smooth |
数値 | 0 〜 0.98 | 0.5 | 前のフレームの推定をどれだけ残すか(0〜0.98)。大きいとなめらかで、遅れます。 |
threshold |
数値 | 0 〜 0.2 | 0.02 | 動きを拾うのに必要なコントラスト。上げると平坦なところのノイズが消えます。 |
シェーダー: effects/optical_flow.frag
Glitch¶
RGB のずれと、横方向にずれる帯でグリッチ効果を加えます。
drive でビート・トリガーパッド・音量に合わせて効きを変えられます。帯のずれは 1 秒に約 12 回切り替わります。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
split |
数値 | 0 〜 64 | 6 | 赤と青をずらす距離(ピクセル、フル解像度基準)。0 でずれなし。 |
angle |
数値 | 0 〜 360 | 0 | RGB をずらす方向(度)。 |
blocks |
数値 | 0 〜 1 | 0 | 各帯が横にずれる確率。0 で帯のずれなし。 |
block size |
数値 | 4 〜 256 | 32 | 帯の高さ(ピクセル、フル解像度基準)。 |
drive |
選択 | always / beat / trigger 1 / trigger 2 / trigger 3 / trigger 4 / level |
always |
効きの強さを決めるもの。always は常に最大、beat はビートごと、trigger 1〜trigger 4 はトリガーパッド、level は音量に合わせます。 |
シェーダー: effects/glitch.frag
Pixelate¶
入力を四角いブロックに分けたモザイクにします。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
size |
数値 | 1 〜 128 | 8 | ブロックの大きさ(ピクセル、フル解像度基準)。1 でそのまま。 |
シェーダー: effects/pixelate.frag
Posterize¶
色の階調を減らして、ポスターのようなベタ塗りにします。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
levels |
整数 | 2 〜 32 | 6 | 各色チャンネルの段階数。 |
gamma |
数値 | 0.3 〜 3 | 1 | 段階の配分。1 未満で暗部に、1 より大きいと明部に多くの段階を割り当てます。 |
シェーダー: effects/posterize.frag
Edge Detect¶
入力の輪郭(明るさの変わり目)を Sobel フィルタで取り出します。ポスト FX の edge にパラメータを付けてチェーンに置けるようにしたものです。
show が edges なら輪郭だけ、over なら元の映像の上に輪郭を重ねます。色は白・元の色・パレット(明るさで色を選ぶ)から選べます。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
threshold |
数値 | 0 〜 1 | 0.1 | これより弱い明るさの変化は輪郭にしません。上げると細かい模様が消えます。 |
width |
数値 | 0.5 〜 4 | 1.5 | 比較する画素の間隔(ピクセル、フル解像度基準)。上げると線が太く、ぼけた境界も拾います。 |
color |
選択 | white / source / palette |
white |
輪郭の色。white は白、source は元の色、palette は明るさでパレットから選びます。 |
show |
選択 | edges / over |
edges |
edges は輪郭だけ、over は元の映像に輪郭を重ねます。 |
シェーダー: effects/edge_detect.frag
Chroma Key¶
キーの色に近い画素を透明にします(グリーンバック)。透明にした部分はコンポジターで下のレイヤーが透けます。
キーは source で選びます。color で色を指定するか、palette でパレットの palette 番目の色を使います。tolerance までの色は完全に透明、そこから softness の幅で元に戻ります。色の違いは色相・彩度を主に、明るさを半分の重みで見るので、照明で明暗の付いた緑もまとめて抜け、白や黒をキーにもできます。spill は残った部分からキーの色かぶりを取ります。
透明度(アルファ)はこのノードから直接 Out につないだときにコンポジターへ届きます。間に別のノードを挟むとそこで不透明に戻るので、チェーンの途中で使うときは output を matte にして Mask Mix の mask につないでください(白が残す部分)。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
source |
選択 | color / palette |
color |
キーの色の取り方。color は下の色、palette はパレットの palette 番目です。 |
color |
色 | #00ff00 |
キーの色(source が color のとき)。 |
|
palette |
整数 | 0 〜 7 | 0 | パレットの何番目の色をキーにするか(0〜7、source が palette のとき)。 |
tolerance |
数値 | 0 〜 1 | 0.25 | キーからこの距離までの色を透明にします。 |
softness |
数値 | 0 〜 1 | 0.1 | 透明から不透明へ戻る帯の幅。0 でくっきり。 |
spill |
数値 | 0 〜 1 | 0.5 | 残った部分からキーの色かぶりを取る量。 |
output |
選択 | keyed / matte |
keyed |
keyed はキーを透明にした映像(アルファ出力)、matte は残す部分を白で描いたマットです。 |
シェーダー: effects/chroma_key.frag
Face Detect¶
in の映像から顔を見つけ、顔の部分のマスクと、顔の位置・大きさの SIG 値を出します。
顔の検出には OpenCV の FaceDetectorYN と同じ YuNet モデルを使い、CPU で 1 秒に数回〜数十回動きます。描画は待たないので、フレームレートは落ちません。検出の合間は smooth で位置をなめらかにつなぎ、数回見失っても少しのあいだ同じ場所に残します。
顔だけをぼかすには、in と同じ映像を Blur に通して、Mask Mix の a に元の映像、b に Blur、mask にこのノードの out をつなぎます。顔に追従させるには、x / y / w / h を他のノードのパラメータ(Transform や Text の x / y など)へつなぎます。
出力
out(TEX):outputで選んだ映像(マスク、枠付きの入力、顔だけ残した入力)。x(SIG):face番目の顔の中心の横位置。−1(左端)〜 1(右端)で、Transform や Text のxと同じ単位です。y(SIG):face番目の顔の中心の縦位置。−1(下端)〜 1(上端)。w(SIG): 顔の幅(画面の幅を 1 として)。その顔がないときは 0。h(SIG): 顔の高さ(画面の高さを 1 として)。その顔がないときは 0。count(SIG): 見つかっている顔の数(最大 8)。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
output |
選択 | mask / overlay / cutout |
mask |
何を出すか。mask は顔の部分が白いマスク、overlay は入力に顔の枠を描いたもの(確認用)、cutout は顔の部分だけを残した入力です。 |
face |
整数 | 0 〜 7 | 0 | SIG 出力が追う顔の番号。0 がいちばん長く映っている顔です。 |
threshold |
数値 | 0.3 〜 0.95 | 0.6 | 顔とみなす確かさの下限。上げると誤検出が減り、下げると横顔や小さな顔も拾います。 |
smooth |
数値 | 0 〜 0.98 | 0.7 | 位置のなめらかさ。0 で検出結果にすぐ合わせ、1 に近いほどゆっくり追います。 |
shape |
選択 | ellipse / rect |
ellipse |
マスクの形(楕円か四角)。 |
size |
数値 | 0.5 〜 3 | 1.2 | マスクの大きさ。顔の枠に対する倍率です。 |
feather |
数値 | 0 〜 1 | 0.3 | マスクの縁のぼかし幅(マスクの大きさに対する割合)。 |
シェーダー: effects/face_detect.frag
Person Detect¶
in の映像から人の頭・体・手・顔を見つけ、その部分のマスクと、位置・大きさの SIG 値を出します。
YOLOX のモデル(PINTO_model_zoo の YOLOX-Body-Head-Hand-Face-Dist)で、CPU で 1 秒に数回〜数十回動きます。描画は待たないので、フレームレートは落ちません。target が head のときは顔ではなく頭全体を見つけるので、後ろ姿や横向き、帽子やヘルメットでも追えます。正面の顔だけを細かく追うなら Face Detect のほうが軽くて正確です。
使い方は Face Detect と同じです。マスクを Mask Mix につなぐとその部分だけにエフェクトをかけられ、x / y / w / h を他のノードのパラメータへつなぐと追従させられます。
出力
out(TEX):outputで選んだ映像(マスク、枠付きの入力、見つけた部分だけ残した入力)。x(SIG):index番目の枠の中心の横位置。−1(左端)〜 1(右端)で、Transform や Text のxと同じ単位です。y(SIG):index番目の枠の中心の縦位置。−1(下端)〜 1(上端)。w(SIG): 枠の幅(画面の幅を 1 として)。その枠がないときは 0。h(SIG): 枠の高さ(画面の高さを 1 として)。その枠がないときは 0。count(SIG): 見つかっている数(最大 8)。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
output |
選択 | mask / overlay / cutout |
mask |
何を出すか。mask は見つけた部分が白いマスク、overlay は入力に枠を描いたもの(確認用)、cutout は見つけた部分だけを残した入力です。 |
target |
選択 | head / body / hand / face |
head |
何を探すか。head は頭全体(どの向きでも)、body は体全体、hand は手、face は顔です。 |
index |
整数 | 0 〜 7 | 0 | SIG 出力が追う枠の番号。0 がいちばん長く映っているものです。 |
threshold |
数値 | 0.1 〜 0.95 | 0.4 | 見つけたとみなす確かさの下限。上げると誤検出が減り、下げると遠くの人や隠れかけた部分も拾います。 |
smooth |
数値 | 0 〜 0.98 | 0.7 | 位置のなめらかさ。0 で検出結果にすぐ合わせ、1 に近いほどゆっくり追います。 |
shape |
選択 | ellipse / rect |
ellipse |
マスクの形(楕円か四角)。体には rect が向いています。 |
size |
数値 | 0.5 〜 3 | 1.1 | マスクの大きさ。枠に対する倍率です。 |
feather |
数値 | 0 〜 1 | 0.3 | マスクの縁のぼかし幅(マスクの大きさに対する割合)。 |
シェーダー: effects/person_detect.frag
Blob Detect¶
in の映像の中で動いているもの(背景と違う部分)を見つけ、その部分のマスクと、位置・大きさの SIG 値を出します。
mode が background のときは背景差分で動きを見つけます。ノードは in の背景を覚えていて(learn で少しずつ今の映像に置き換わります)、背景と threshold より違う部分を「動き」とし、つながった領域ごとに 1 つの blob として最大 32 個まで追います。motion のときは直近 frames フレームの平均と比べるので、いま動いている部分だけを拾います(フレーム差分)。差分と背景の更新は GPU、領域分けと追跡は CPU で毎フレーム行います。
つないだ直後は最初の 30 フレームほどの平均を背景にしてから検出を始めます。入力が真っ黒のあいだ(映像の読み込み中や Syphon / Spout の接続待ち)は覚え始めません。
人のいない状態で capture を一瞬オンにすると、そのときの映像が背景になります(Trigger や MIDI のパッドにつなぐと便利です)。止まったものは learn の速さで背景に溶けていくので、置きっぱなしの物を拾い続けたくないときは上げ、止まった人も拾い続けたいときは下げます(0 で背景は変わりません)。
細かい点や細い線(ベルトの継ぎ目など)は無視し、ラベルや影で途切れた部分は 1 つにつなげます。速く動くものは、検出にかかる数フレームのあいだに動いた分だけ枠を先へ進めて、遅れずに重ねます。
使い方は Face Detect と同じです。マスクを Mask Mix につなぐと動いている部分だけにエフェクトをかけられ、x / y / w / h を他のノードのパラメータへつなぐと追従させられます。
出力
out(TEX):outputで選んだ映像(マスク、枠付きの入力、blob だけ残した入力、動きのマスク)。x(SIG):blob番目の blob の中心の横位置。−1(左端)〜 1(右端)で、Transform や Text のxと同じ単位です。y(SIG):blob番目の blob の中心の縦位置。−1(下端)〜 1(上端)。w(SIG): blob の幅(画面の幅を 1 として)。その blob がないときは 0。h(SIG): blob の高さ(画面の高さを 1 として)。その blob がないときは 0。count(SIG): 見つかっている blob の数(最大 32)。
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
output |
選択 | mask / overlay / cutout / motion |
overlay |
何を出すか。mask は blob の部分が白いマスク、overlay は入力に blob の枠を描いたもの(確認用)、cutout は blob の部分だけを残した入力、motion は背景と違うとみなした画素そのもの(threshold の調整用)です。 |
blob |
整数 | 0 〜 31 | 0 | SIG 出力が追う blob の番号(0〜31)。0 がいちばん長く映っているものです。 |
mode |
選択 | background / motion |
background |
何と比べるか。background は覚えた背景(止まっているものも、背景になるまでは拾います)、motion は直近 frames フレームの平均(いま動いている部分だけ。カメラが動く映像や、背景を覚えにくい映像向け)です。 |
threshold |
数値 | 0.01 〜 1 | 0.12 | 背景との違い(色の差、0〜1)がこれより大きい部分を動きとみなします。ノイズを拾うときは上げ、動きを拾いきれないときは下げます。 |
blur |
整数 | 0 〜 3 | 2 | 背景と比べる前に、映像と背景をこの半径(1/4 サイズの画素)でぼかします。ベルトの織り目や映像のノイズのような細かい模様の動きを動きとみなさなくなります。細いものを拾いきれないときは下げます。 |
learn |
数値 | 0 〜 1 | 0.01 | mode が background のとき、1 フレームごとに背景を今の映像へ近づける割合。0 で背景は固定、上げるほど止まったものが早く背景になります。 |
frames |
整数 | 1 〜 30 | 4 | mode が motion のとき、比べる相手を何フレームの平均にするか。遅いものを拾うには上げ、速いものの残像を減らすには下げます。 |
capture |
オン / オフ | オフ | mode が background のとき、オンのあいだ今の映像をそのまま背景にします。 |
|
min size |
数値 | 0 〜 0.2 | 0.002 | これより小さい blob(画面の面積に対する割合)は無視します。ノイズの粒を消すのに使います。遠くの車のような小さいものを拾うときは 0.0001 くらいまで下げます。 |
max size |
数値 | 0 〜 1 | 1 | これより大きい blob(画面の面積に対する割合)は無視します。照明の変化や映り込みなど、画面の大きな部分がまとめて変わるのを拾わないようにします。 |
clean |
整数 | 0 〜 2 | 1 | 細かい点や細い線を消す強さ(1/4 サイズの画素での半径)。0 で消さないので、数画素しかない小さいものも拾えます。 |
join |
整数 | 0 〜 4 | 2 | 近くの部分を 1 つの blob につなげる強さ(1/4 サイズの画素での半径)。0 でつなげません。上げると途切れたものが 1 つになり、下げると近くを走る車が別々になります。 |
left |
数値 | 0 〜 1 | 0 | 検出する範囲の左端(画面の幅を 1 として)。範囲の外は動いても拾いません。時計やテロップなど、動くが拾いたくない部分を外すのに使います。 |
right |
数値 | 0 〜 1 | 1 | 検出する範囲の右端。 |
top |
数値 | 0 〜 1 | 0 | 検出する範囲の上端(画面の高さを 1 として)。 |
bottom |
数値 | 0 〜 1 | 1 | 検出する範囲の下端。 |
smooth |
数値 | 0 〜 0.98 | 0.5 | 位置のなめらかさ。0 で検出結果にすぐ合わせ、1 に近いほどゆっくり追います。 |
shape |
選択 | ellipse / rect |
rect |
マスクの形(楕円か四角)。 |
size |
数値 | 0.5 〜 3 | 1 | マスクの大きさ。blob の枠に対する倍率です。 |
feather |
数値 | 0 〜 1 | 0.1 | マスクの縁のぼかし幅(マスクの大きさに対する割合)。 |
シェーダー: effects/blob_detect.frag
ミキサー¶
Blend¶
2 つの入力を、14 種類のブレンドモードで合成します。
a が下地、b が上に重ねる映像です。b がつながっていないときは a がそのまま出ます。Text や Code を映像に重ねるときは Add か Screen がよく合います。
入力: a(TEX)、b(TEX)
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
mix |
数値 | 0 〜 1 | 0.5 | 上に重ねる b の濃さ。0 で a だけ、1 で mode の結果がそのまま出ます。 |
mode |
選択 | Normal / Add / Subtract / Multiply / Screen / Overlay / Soft Light / Hard Light / Color Dodge / Color Burn / Darken / Lighten / Difference / Exclusion |
Normal |
合成の方法(Normal、Add、Screen、Multiply、Difference など)。 |
シェーダー: mixers/blend.frag
Mask Mix¶
mask が明るいところだけ、a の上に b を出します。
mask の明るさ(輝度)が重みです。白で b、黒で a、灰色はその間になります。mask がつながっていないときは a がそのまま出ます。Face Detect の mask と組み合わせると顔だけにエフェクトをかけられ、Text を b と mask の両方につなぐと文字の形で映像に重ねられます。
入力: a(TEX)、b(TEX)、mask(TEX)
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
amount |
数値 | 0 〜 1 | 1 | b の濃さ。0 で a だけ、1 で mask のとおりに b が出ます。 |
invert |
オン / オフ | オフ | オンにすると mask を反転し、暗いところに b を出します。 |
シェーダー: mixers/mask_mix.frag
Compositor¶
4 つのレイヤーを、不透明度・ブレンドモード・バイパス・ソロ付きで黒の上に合成します。
PERFORMANCE の 4 レイヤーを合成しているマスターのコンポジターと同じもので、セルの中にノードとして追加することもできます。layer 1 がいちばん下、layer 4 がいちばん上です。つながっていないレイヤーは何も変えません。
side N、gate、gain a、gain b はクロスフェーダー用で、マスターでは毎フレーム自動で設定されます。自分で置いたノードでは、既定値(すべて THRU、gain a 1、gain b 0)のままなら普通の 4 レイヤー合成になります。
入力: layer 1(TEX)、layer 2(TEX)、layer 3(TEX)、layer 4(TEX)
| パラメータ | 型 | 範囲 | 既定値 | 説明 |
|---|---|---|---|---|
opacity 1 |
数値 | 0 〜 1 | 1 | レイヤー 1 の不透明度。 |
mode 1 |
選択 | Normal / Add / Subtract / Multiply / Screen / Overlay / Soft Light / Hard Light / Color Dodge / Color Burn / Darken / Lighten / Difference / Exclusion |
Normal |
レイヤー 1 のブレンドモード。 |
bypass 1 |
オン / オフ | オフ | オンにするとレイヤー 1 を隠します。 | |
solo 1 |
オン / オフ | オフ | オンにすると、ソロのレイヤーだけを表示します(複数可)。 | |
side 1 |
選択 | A / THRU / B |
THRU |
クロスフェーダーのどちら側に置くか。A / B は片側だけ、THRU は両側に出ます。 |
opacity 2 |
数値 | 0 〜 1 | 1 | レイヤー 2 の不透明度。 |
mode 2 |
選択 | Normal / Add / Subtract / Multiply / Screen / Overlay / Soft Light / Hard Light / Color Dodge / Color Burn / Darken / Lighten / Difference / Exclusion |
Normal |
レイヤー 2 のブレンドモード。 |
bypass 2 |
オン / オフ | オフ | オンにするとレイヤー 2 を隠します。 | |
solo 2 |
オン / オフ | オフ | オンにすると、ソロのレイヤーだけを表示します(複数可)。 | |
side 2 |
選択 | A / THRU / B |
THRU |
レイヤー 2 のクロスフェーダーの側(A / THRU / B)。 |
opacity 3 |
数値 | 0 〜 1 | 1 | レイヤー 3 の不透明度。 |
mode 3 |
選択 | Normal / Add / Subtract / Multiply / Screen / Overlay / Soft Light / Hard Light / Color Dodge / Color Burn / Darken / Lighten / Difference / Exclusion |
Normal |
レイヤー 3 のブレンドモード。 |
bypass 3 |
オン / オフ | オフ | オンにするとレイヤー 3 を隠します。 | |
solo 3 |
オン / オフ | オフ | オンにすると、ソロのレイヤーだけを表示します(複数可)。 | |
side 3 |
選択 | A / THRU / B |
THRU |
レイヤー 3 のクロスフェーダーの側(A / THRU / B)。 |
opacity 4 |
数値 | 0 〜 1 | 1 | レイヤー 4 の不透明度。 |
mode 4 |
選択 | Normal / Add / Subtract / Multiply / Screen / Overlay / Soft Light / Hard Light / Color Dodge / Color Burn / Darken / Lighten / Difference / Exclusion |
Normal |
レイヤー 4 のブレンドモード。 |
bypass 4 |
オン / オフ | オフ | オンにするとレイヤー 4 を隠します。 | |
solo 4 |
オン / オフ | オフ | オンにすると、ソロのレイヤーだけを表示します(複数可)。 | |
side 4 |
選択 | A / THRU / B |
THRU |
レイヤー 4 のクロスフェーダーの側(A / THRU / B)。 |
gate |
オン / オフ | オフ | オンにすると、A 側と B 側を分けずに全レイヤーを 1 回で合成し、A / B のレイヤーの不透明度に各側のゲインを掛けます(Cut カーブ用)。 | |
gain a |
数値 | 0 〜 1 | 1 | A 側(A と THRU のレイヤー)の合成結果に掛ける量。 |
gain b |
数値 | 0 〜 1 | 0 | B 側(B と THRU のレイヤー)の合成結果に掛ける量。0 のままだと B のレイヤーは見えません。 |
シェーダー: mixers/compositor.frag