忘れちゃうTOP達 [TouchDesigner]


随時更新されます



TouchDesigner UI

画像56

TOP等にあるグレー/白のボタンのUIは
グレーがON、白がOFFを表している。


Select

TOPのSelectは任意のパスを入れることで入れ子構造になっていて遠いTOP OPも取り出すことができる。

画像37

Cache

Cache Sizeで保存する枚数
step Sizeで何枚置きに保存するか。キャッシュの取得割合を決めます。
output indexでどこスタートで保存するか
0なら最新、負なら過去のフレームスタートで遡っていく
単位は右側で変更できる。

画像1
画像3


Cache select

Cache TOPを選択して、
index でCacheを選べる
Cacheは0からスタートで負の方向へ進む。
一枚目のキャッシュが0、二枚目が-1

Cache枚数はChcheTopのCache Sizeに依存する

Cache Size3の時に、Cache Select TOPのCache indexを-50や-20とかにしても結果は最後のCacheが返ってくるだけ(今回で言えば3枚目)


画像2


Fit

inputのアス比を崩さずにFitのCommon pageのOutput Resolutionを指定してあげることでその解像度にFitすることができる。

Fitの項目でどういう風にFitするかを選べる。Fit Bestでは解像度比率によって、Fit Horizontal か Verticalかが選ばれる。
Native Resolutionを選ぶと、input側のresolutionがデカい場合は、実際にfit側のresolution分しか使わないように表示し、input側のresolutionが小さい場合は、小さく表示される。


Fit page


Displace

input0がsource video
input1がdisplace map


displace mapに指定した画像の
座標と重なる部分が影響を受ける
そして、その明るさが明るいほど、
影響を受けまくる

Source Midpoint
どこへ移動させるかを座標で指定する
0.0に指定すれば、左下めがけて移動していく

Displace weight
どのくらい変化させるかの重み
source midpointの方向へ移動していく

Offset
予めの座標の位置を変更するオフセット
Offse Weightでその重みも変更できる

画像4


画像5
画像6



Limit

TOPのRGBの値を制限を掛けたり、
TOPのcolor / positionをQuantizeできたりする。

LimitタブではMax / Minを超える値をその値でClampしたり、
Loopしたり、ZigZagにしたりできる

画像8
画像7
画像9
画像10


Quantize Value 
Ceiling / Floor / Roundを選べる

画像12
画像11

Quantize Position 縦横両方で
Ceiling / Floor / Roundを選べる
モザイク的にNearest的な感じになる。

画像13




Matte

マット画像を基に合成する
input 3がマット画像
input1 / 2が以下のルールで合成される

Matte TOPは、input3のアルファチャネルをマットとして使用して、input1とinput2を合成します。 input3のアルファチャネルの白(1)ピクセルはinput2の上にinput1を描画し、黒(または0)はinput1を透明にし、そのピクセルにinput2画像を残します。

[引用] http://ted-kanakubo.com/touchdesigner-jp/?p=211

画像15
画像16

input3の何を参照するのかは、 Matte channnelで設定できる。


switch inputsでinput1と2をの重ね合わせるイメージを変更できる。
inputを単純に繋ぎ変える効果を得られたり、途中の感じも得られる。

画像18
画像17


Composite

photoshop等でもおなじみのブレンドモード的な合成を行える。
Add TopやScreen TOP , over TOP, Multiply TOPなどはinputを[0][1]の二つしか持てないが、Composite TOPではinputを複数持てるのが特徴。

画像18


inputを複数持てるから便利なのだが、変なバグが存在する。
Educational ver 2020.27390 で確認した。
replicator COMP等でComp TOPをフレーム事に更新して、inputを変える作業をするとなぜかあるフレームでの絵でfixしてしまうバグ

なんか下記のRelease Noteで治ったと書いてあるが私の環境では治ってない気がする。

Composite TOP - Fixed crash that can occur when connecting too many inputs to this node (64 or so).
[引用] https://docs.derivative.ca/Release_Notes/099/2019.10000

下記に書いてあるように
Touchdesignerリスタート時の最初だけ治る。

099 Composite working differently every time I restart toe
Bugs

Synaesthete_Visuals
Jul '17
I’m not sure if this is happening for others but whenever I run a .toe file in version 099 the Composite TOPS all work differently (for example say I have a file that’s just 2 images and an overlay as my file. When I first create it it works properly as an overlay, but then the next time I open it it looks more like a screen or something else, and the only way I can get it to work properly is by restarting touchdesigner). All my projects rely on many composites to interact properly so for this reason the new version is simply useless to me until this gets fixed and I’ve had to go back to using 088. Let me know if anyone is having this same issue or if I’m somehow doing something wrong and there’s a way to fix this, thanks!

bwanajh
Jul '17
I have this problem too. I usually can get it back to where I want by switching the operation & the input order in different combinations, but its a pain when things don’t open right it’s a bit of a hassle getting things started.
Because of this I try to use an Add top instead of an add option in the composite top,(or any other true top instead of a composite option etc.) wherever possible, but It would be nice if it stopped happening.

[引用] https://forum.derivative.ca/t/099-composite-working-differently-every-time-i-restart-toe/9294


しょうがないから、pythonでScreenTOPとかで代替したスクリプトを書いてごまかした。結構めんどいバグ。

画像19


Movie File In

画像、動画ファイルを選択することができる。

info CHOPで選択して、
lengthを見るとフレーム数を見ることができる。
sample_rateでfpsを見ることができる。
indexで現在の再生フレーム

画像20

Play ModeでLockded to Timelineにすると現在のタイムライン設定に依存した形で再生される。


Math

input同士の対応するピクセルの演算を置こうなうことができる。


CGソフトでもよくある、Linear workflowとして、計算を素直にすることができるLinearに変換することができる。

画像21

Convert Incoming sRGB to Linear で sRGB を Linear に変換、Convert Outgoing Linear to sRGB で Linear を sRGB に変換します。
[引用] https://zenn.dev/satoruhiga/articles/34ae3d42aae0c3?fbclid=IwAR3F8h1wkpNSLeIqI-6khHlPXO5eo0TAQqk1QSbNn_85LAOfs7zqh-x97go

TouchDesignerではOpenGLを使ってレンダリングをしますが、OpenGLでは数字を Linear(光) として計算するので、レンダリング後はLinearのカラースペースになっています。なので、Render TOP の後に Math TOP で sRGB(色) に変換してあげないといけません。
逆に、テクスチャとして画像を使う時には sRGB(色) を Linear(光) に変換してマテリアルにアサインします。Movie File In TOP を使うのであれば、Image > Input is sRGB のトグルを入れると読み込み時に自動で Linear に変換してくれるのでそちらでもOKです。
[引用] https://zenn.dev/satoruhiga/articles/34ae3d42aae0c3?fbclid=IwAR3F8h1wkpNSLeIqI-6khHlPXO5eo0TAQqk1QSbNn_85LAOfs7zqh-x97go


Movie File Out


Compにローカルタイムラインを設けていて、
メインタイムラインとは別で動いているとき
メインタイムラインが再生されていなくても、ローカルタイムラインが更新されることによって絵は更新されていくような状況の場合、
Recordを押してメインタイムラインを再生していなかったらまだ記録されない。
メインタイムラインを再生して初めて記録され始める。

画像63

fileは拡張子までしっかり記述した形になっていないとexportがうまくいかない。

Nを使いたいときは自分でme.par.nなどnを混ぜるように書いてあげる
ExportMovieの$Nみたいな書き方はできない。
Nのオートインクリメントも自分で実装してあげないと動かない。

画像62

再生の調子がなぜか悪い
フレーム一枚ずつコマ送りでは表示されるが、再生ボタンを押したら描画されないという現象が起きた。
解決方法が分からず、でも書き出したいと思った
Video CodecをStop-Frame Movieを選択する
下の方にAdd Frameボタンんが出現するんのでタイムラインの+-を押しながら1フレずつ描画してAdd Frameを押すと、押したタイミングの画がフレームとして記録される。
手動で1フレずつやる方法。
Add Frameボタンをkeyboard in CHOPとかと連携させといて押しやすいボタンで操作するとまだ楽。



画像64
画像65

Screen Grab

画面のキャプチャを得ることができる。

画像22

一つだけの画面や、window事のキャプチャなど指定することができる

画像23

Left / Right / Bottom / Topでクロップを指定することもできる。


OP Viewer

Operator Viewerに指定したOPのViewをそのまま得ることができる
OPなので、SOPでもTOPでもDATでもCHOPでも基本的に何でも行ける。

画像24
画像25


Depth

3D空間のDepthをとることができる。
こんなRender TOPがあったとして、

画像26

Depth TOPの OPにRender TOPを入れて、
Pixel Format を 32bit RGBA
Depth Space を Reranged from Camera Space
にするとアルファで穴が空いたようになるので
Range fromでDepth距離を決めてあげる。
良い感じのDepth画像を作れる。

画像27
画像28
画像29


これをLuma Blurとかに入れると
Camera COMPで設定できない、DoF(被写界深度)が作れる。

画像30
画像31
画像32



Depth TOPは、指定されたRender TOPに記述されたシーンから深度情報を含む画像を読み込みます。結果として得られる画像は、表面が近距離の深度値(カメラのパラメータ “Near”)にあるピクセルでは黒(0)になります。また、表面が遠方の深度値(カメラのパラメータ “Far”)にあるピクセルでは、白(1)になります。
Depth TOPはシャドウマッピングを行うために使用されます。他にも、深さを基準にしたエッジ検出など、様々な用途があります。
深さの範囲は、定義上、近距離平面→遠距離平面となります。Depth TOPの値は、近平面では0、遠平面では1になります。一般的にDepth TOPの画像は、平面がオブジェクトの周りに本当に密着していない限り、白になります。しかし、視覚的に何も見えないからといって、情報がないわけではありません。
もう1つのオプションは、Linear Camera-Space Depthです。Render TOPのDepth Buffer Formatが32ビット浮動小数点に設定されていて、Linear Camera-Space Depthパラメータがオンの場合、Depth TOPはリニアなカメラ空間深度を出力します。
Level TOPを使用してDepth TOPの値をリレンジすることができます。ただし、Level TOPのPixel Formatを16または32ビットに設定しないと、Depth TOPのデータから多くの情報が失われます(Depth TOPは24ビットのデータを持っています)。
Depth TOP は、24 ビット固定小数点または 32 ビット浮動小数点のシングルチャンネル画像を作成します。Depth TOP を他の TOP への入力として使用する場合、そのデータは RGBA 値 (D, D, D, D, 1) のように扱われます。GLSL シェーダで Depth テクスチャをサンプリングする場合も同様です。
[引用] http://ted-kanakubo.com/touchdesigner-jp/?p=53




Render select

GLSLのRender Selectの使いかはこっち


画像33

Render TOPのカメラをたくさん指定していた場合、

Render Selectの
TOPにrender TOPを選択すると
Color Buffer Indexを0にして
Camera Indexを変えるとCameraが切り替わる

画像35
画像34


画像36


Point File in

点群データ plyファイルを使いたいときに使える。

Point File In TOPは、.obj、.ply、.fits(天文学フォーマット)、.exrを含む様々なメッシュや浮動小数ポイントデータファイルからポイントデータを読み込みます。また、1行に1点、カンマまたはスペースで区切られたフィールドを持つASCIIポイントファイル(.xyz, .pts, .csv, .txtなど)を読み込むこともできます。ASCII ポイントファイルの最初の行には、ポイント数、ポイントフィールドの名前、またはファイルの最初のポイントのいずれかを指定できます。
[引用] http://ted-kanakubo.com/touchdesigner-jp/?p=2630

最初にPoint File In TOPでplyファイルを読み込みます。plyファイルをTouchDesignerに直接ドラッグ&ドロップすることもできます。plyファイルは1つの頂点につき複数の情報を持たせることができるのですが、今回利用するのはx、y、z、red、green、blueの6つです。Point File in TOPでは3つまでしか扱えないので残りの3つを扱うためにはPoint File Select TOPを使います。
[引用] https://note.com/toyoshimorioka/n/na8b33b9bf8c3

画像38
画像40

今回作成したplyファイルはRGB値が8bit(0〜255の256段階)なのですが、読み込んだ際に32bit扱いで読み込まれています。なのでMath TOPのRangeを使って0から255を0から1になるようにマッピングします。
[引用] https://note.com/toyoshimorioka/n/na8b33b9bf8c3

画像41
画像42

Viwerに表示されているのはR G B Aのチャンネル 
最小値 : 最大値

画像47
画像47


Point File Select

最初にPoint File In TOPでplyファイルを読み込みます。plyファイルをTouchDesignerに直接ドラッグ&ドロップすることもできます。plyファイルは1つの頂点につき複数の情報を持たせることができるのですが、今回利用するのはx、y、z、red、green、blueの6つです。Point File in TOPでは3つまでしか扱えないので残りの3つを扱うためにはPoint File Select TOPを使います。
[引用] https://note.com/toyoshimorioka/n/na8b33b9bf8c3


画像39




Lookup

input0にTOP画像
input1にルックアップテーブルとなるTOPいれて
Lookupテーブルにヒットするものをoutputする

4つのチャネルすべてが独自のルックアップを行うため、たとえば、ルックアップによってRedチャネルが変更されが、GおよびBのチャネルはフラットな0-1ランプで値は変更されないような場合もあります。
[引用] http://ted-kanakubo.com/touchdesigner-jp/?p=67

Dark UV / darkuv
ルックアップテーブルのダークエンドに使用するUV位置を設定します。1番目の入力に接続された元のイメージで(0,0,0)の値を持つピクセルは、2番目の入力に接続された画像のこのUV位置にある値で置き換えられます。
Light UV / lightuv
ルックアップテーブルのライトエンドに使用するUV位置を設定します。1番目の入力に接続された元のイメージで(1,1,1)の値を持つピクセルは、2番目の入力に接続された画像のこのUV位置にある値で置き換えられます。
[引用] http://ted-kanakubo.com/touchdesigner-jp/?p=67

Light UV と Dark UVはLookup tableのTOPのUV座標を2点指定して、
R/G/B = [0]のところをDark UVの座標の色、R/G/B = [1]をLight UVの座標の色、中間の明るさの部分は二点のUV座標の線形補間された座標の色となる。
具体例は下の動画が分かりやすい。


画像43

Method
2nd TOP Input (2nd Input, UV Coordinate)はinput1のTOPを使う
CHOP ValuesはCHOPの欄にCHOPを指定して、
ルックアップテーブルはRGBA(Aは任意)を定義する

画像44
画像45




Clamp CHOP Values
CHOP 値を 0~1 の間でクランプします。
Output Lookup
Lookupテーブルとなっているinput1を出力する。



Reorder

inputが4つある。
output RGBAをどのinputの何のチャンネルを使うのかを設定できる。

画像48
画像50
画像49


Cross

Cross TOPは、Crossパラメータ(Cross_value)の値に基づいて、2つの入力画像間のブレンドを行います。
Output = Input1*(1-*Cross_value*) + Input2*(*Cross_value*)

Cross / cross
各入力が出力に追加される量を決定します。Cross = 0 の時、Input1 が出力され、Cross = 1 の時、Input2 が出力される。

[入力] http://ted-kanakubo.com/touchdesigner-jp/?p=225



Substract

The Subtract TOP composites the input images together by subtracting the pixel values.
Output = Input1 – Input2. The pixel values below 0 are clammped to 0.
Subtract TOPは、入力画像をピクセル値を減算して合成します。
出力 = 入力1 – 入力2. 0以下の画素値は0になります。
[引用] http://ted-kanakubo.com/touchdesigner-jp/?p=191

input1 - input2になる。
0以下は出力されないと書いてあるが、
Pixel Formatを32bitなどにすればちゃんとマイナスが出てくる。



Channel Mix

photoshopでいうチャンネルミキサーと同じような効果
Davinci ResolveでいうRGBミキサー

Channel Mix TOP は、入力RGBAチャンネルを出力の他のカラーチャンネルにミックスすることができます。例えば、入力の青チャンネルのピクセルを出力の赤チャンネルに追加したり、Redパラメータの青の列の値で加算または減算したりすることができます。
[引用] http://ted-kanakubo.com/touchdesigner-jp/?p=232


画像52
画像51


Luma Level

Levelと基本的には同じ機能だが、違う部分は
チャンネルに機能を適用させることができる。


画像53
画像54

Source を Greenにした場合
グリーチャンネルのTOPの

画像55


Layout

inputを順番に配置するTOP

画像58
画像57


Alignで配置規則を選択できる。

画像59

Transformタブで配置されているものに対してTransformを適用できる。

画像60
画像61



Swtich

Blend between InputsをONにしていると、中間の値のときにBlendするような結果を出してくれる。

画像66


Slope


Slope TOP は、その値と隣接するピクセルの値との差を表すピクセルを生成します。ピクセルの値が0から1の間であることを考えると、0.5の値は、隣接するピクセルの値がそのピクセルの値と同じであることを意味します。赤チャンネルに出力される値が0.5を超えている場合、値が左から右に増加していることを示します。青色のチャンネルで出力される値が0.5以上の場合は、値が下から上に向かって増加していることを示します。

Method / method
イメージの各ピクセルのスロープを計算する際に使用するピクセルを設定します。
Use Previous And Current / prevcur
スロープの計算に前と現在のピクセルを使用します。
Use Current And Next / curnext
スロープの計算に現在のピクセルと次のピクセルを使用します。
Use Previous And Next / prevnext
スロープの計算に前後のピクセルを使用します。

http://ted-kanakubo.com/touchdesigner-jp/?p=58

RED / Green / Blue / Alphaにそれぞれ何を出力するかを選べる。
近接のピクセル対してのHorizontal か Verticalの差に応じてLuminance / Red / Green / Blueとして、出力する。
0.5を基準にして、大きい場合のmaxは1、小さい場合のmaxは0と出力する。


Slope

Methodで
どのピクセルで実際計算して出力するかを選べる。
Previous and Currentは前のピクセルと現在のピクセル
Current and Nextは現在と次のピクセル
PreviousとNextは前と次のピクセル
から差分を計算する。
端っこがどうゆう処理をされているのかはちょっとわかっていない。

Zero pointが初期値は0.5になっている。
slope計算後に0になるつまり、同じピクセルだったら、0.5を出力するようにする。
これをいじると中間点の位置が変わる。0にすれば大きいときしか出ない。

Sets the value to output when the slope is zero, similar to a midpoint. Default is .5 since 8-bit pxels are 0 to 1. But with Pixel Format et to 32-bit Float you should set this to 0, and look at the view in Normalized Split mode.

傾きが 0 のときに出力する値を設定します(中間点のようなもの)。8bit pxelは0〜1なのでデフォルトは0.5ですが、Pixel Format et to 32-bit Floatでは0に設定し、Normalized Split Modeで表示するとよいでしょう。

https://docs.derivative.ca/Slope_TOP

StregthはSlopeで出力する値に対してStrengthで設定した乗数が掛け算される。初期値1でそのままの値が出力される。

Sample stepはどのくらい距離があるピクセルで計算するかを設定できる。初期値は1/1pixelになっているから直近の隣のピクセルが選ばれる。





この記事が気に入ったらサポートをしてみませんか?