Operation(판정과 제어)
값을 판정하여 흐름을 나누거나, 세거나, 고르는 노드입니다. 전 13종. Math가 ‘값을 바꾸는’ 것에 비해, Operation은 ‘어느 쪽으로 흘려보낼지’를 결정합니다.
논리 연산(4종)
모두 float를 받아 1 또는 0을 반환합니다.
| 노드 | 결과가 1이 되는 조건 |
|---|---|
| And | A와 B가 둘 다 1.0 이상 |
| Or | A와 B 중 어느 한쪽이 1.0 이상 |
| Xor | A와 B 중 한쪽만 1.0 이상 |
| Not | A가 1.0 미만 |
참/거짓의 경계는 0이 아니라 1.0입니다.
A >= 1.0f로 판정하고 있기 때문에, 0.5는 ‘거짓’이 됩니다. 0~1의 연속값(Slider나 LFO의 출력)을 그대로 꽂으면, 1.0에 도달한 순간에만 참이 됩니다. 앞에 Math의 Ceil이나 Round를 끼우거나, IFFilter로 임계값을 명시해 주세요.
Not의 B 포트도 사용되지 않습니다. 이항 연산 기저 클래스를 상속하고 있어서 생겨 있을 뿐이며, 구현은 A만 보고 있습니다(Math의 Abs와 같은 사정입니다).
판정과 분기
IFFilter
A와 B를 비교하여, 결과에 따라 출력 대상을 전환합니다.
비교 종류는 노드 위의 드롭다운에서 선택합니다: > < == != >= <=.
| 포트 | 내용 |
|---|---|
True Output / False Output | 판정 결과에 따라, 양쪽 모두 A의 값이 나옵니다 |
True Trigger / False Trigger | 같은 타이밍에 트리거가 나옵니다 |
나오는 것은 항상 A입니다. B는 비교에만 사용됩니다. ‘조건을 만족하면 B를 흘려보낸다’라는 동작은 되지 않으므로, 값 자체를 전환하고 싶을 때는 Switch를 사용해 주세요.
==/!=는 부동소수점 비교이므로Mathf.Approximately(근사 일치)로 판정하고 있습니다.
판정은 A·B의 변화, Trigger, 조건의 변경 중 어느 것으로도 실행됩니다.
Switch
Index로 A / B / C … 의 슬롯 중 하나를 선택하여 Selected로 흘려보냅니다.
타입은 무엇이든 통과합니다(float·문자열·RenderTexture·트리거 등). 영상도 문자도, 같은 노드로 전환할 수 있습니다.
- 슬롯은 기본값으로 A
D의 4개입니다. 전부 채워지면 빈 슬롯이 하나 자동으로 늘어나며, 최대 16개(AP)까지 늘어납니다. 끝의 빈 슬롯이 2개 이상이 되면 자동으로 줄어듭니다(4개보다 적어지는 일은 없습니다) - 타입은 처음 연결한 슬롯의 상대 타입이 모든 슬롯과
Selected에 붙습니다. 이후에는 다른 타입을 연결할 수 없습니다. 전부 빼면 원래의 ‘무엇이든 가능’으로 돌아갑니다 - Index는 소수를 버리고,
0 ~ 슬롯 수−1로 클램프합니다(-5면 A, 99면 맨 끝). Counter의 출력을 그대로 꽂아도 사고가 나지 않습니다 - 선택한 곳이 미접속일 때는, 직전의 출력을 유지합니다(영상을 연결한 하류가 검게 되는 것보다, 이전 그림이 남는 편이 사고가 작기 때문입니다)
- 트리거는, 선택 중인 슬롯에 온 것만 통과합니다
출력에는 Index(클램프 후의 현재 번호)와 Count(연결이 있는 마지막 슬롯까지의 개수. 미접속이면 0)도 있습니다. Count를 Counter의 순환 상한값에 꽂으면, 연결한 개수만큼 순회하는 셀렉터가 됩니다. 노드의 라벨에는 A (1/4) float처럼 선택 중인 슬롯·슬롯 수·타입이 나옵니다.
이전의 float 전용 Switch로 만든 프로젝트는, 그대로 열어서 동작합니다.
카운트와 타이밍
Counter
Count Trigger가 올 때마다 세어서, Count Output으로 정수를 출력합니다.
Reset Trigger로 Min Value로 돌아갑니다(0이 아닙니다).
Max가 Min보다 작으면 줄어듭니다. 카운트의 방향은 Max와 Min의 대소 관계로 결정됩니다.
Loop가 OFF일 때, 값은 멈추지 않습니다. 범위를 벗어났을 때의 처리는 루프 시에만 구현되어 있기 때문에, Loop OFF에서는 Max를 넘어 계속 증가합니다. 상한에서 멈추고 싶은 경우에는 뒤에 Math의 Min / Max를 두어 값을 제한해 주세요.
Init Trigger
프로젝트의 로드/노드 생성으로부터 Delay 초 후에 한 번만 발화합니다. 초깃값을 흘려보내거나 상태를 리셋하는 입구로 사용합니다. Delay는 로드 직후 몇 프레임의 혼잡을 피하기 위한 것으로, 음수 값은 0으로 반올림됩니다.
Random
Trigger가 왔을 때, A ~ B 범위에서 난수를 하나 출력합니다.
A나 B를 움직여도 다시 뽑힙니다. 이항 연산 기저 클래스를 상속하고 있기 때문에, 입력이 변화한 시점에도 출력이 갱신됩니다. Trigger 타이밍에만 뽑고 싶은 경우에는, A / B는 움직이지 않는 값으로 해 두세요.
문자열과 미디어
Combine
2개의 문자열을 Separator로 연결하고, 끝에 Suffix를 붙여서 출력합니다.
B가 비어 있을 때는 Separator도 붙지 않습니다(A와 Suffix만 남습니다).
파일 경로를 조립할 때 사용할 수 있습니다.
Text Format
노드 본체에 적은 템플릿의 {0} {1} {2} {3}에, A / B / C / D의 문자열을 끼워 넣어 Out으로 출력합니다.
치환은 이 4가지 표기의 완전 일치만이고, 서식 지정({0:F2} 등)은 사용할 수 없습니다.
URL encode를 ON으로 하면, 각 입력값만을 URL 인코딩한 다음에 끼워 넣습니다(템플릿 쪽은 건드리지 않습니다).
자세한 내용은 Text Format을 참조해 주세요.
JSON Path
JSON으로 온 JSON 문자열에서, 경로(key / [0].key / a.b[2].c처럼 .과 [n]으로 파고듭니다)로 하나의 값을 뽑아,
Out(문자열)·Number(수치)·Found(얻었는지 여부)로 출력합니다. 경로가 비어 있으면 JSON 전체가 Out으로 나옵니다.
얻지 못했을 때는 Out이 빈 문자·Number가 0·Found가 false가 됩니다.
자세한 내용은 JSON Path를 참조해 주세요.
MediaBrowserIndex
드롭다운에서 선택한 MediaBrowser의 폴더에 대해, Index 번째의
파일 경로와 그 폴더의 아이템 수를 출력합니다.
Counter와 조합하면, 박자마다 소재를 전환하는 흐름을 만들 수 있습니다.
관련
- 사칙연산·반올림·보간은 Math에 있습니다
- StepSequencer는 Tempo, Easing / Curve / ADSR / LFO는 Signal 카테고리로 이동했습니다










