Houdini · VEX

VEX 사전

VEX 는 후디니 안에서 도는 작은 프로그래밍 언어입니다. 노드로는 서너 개를 이어야 할 일을 코드 한 줄로 끝내고, 노드가 아예 못 하는 일도 해냅니다. 겁먹을 것 없습니다 — 실제로 쓰는 것은 스무 가지 남짓이고, 그것만 알면 대부분이 됩니다.

딱 하나만 이해하면 됩니다

VEX 를 처음 볼 때 가장 헷갈리는 것은 "이 코드가 언제 실행되나"입니다. 답은 간단합니다 — 점 하나마다 한 번씩, 처음부터 끝까지 다시 실행됩니다.

01
0번 점 차례
코드가 처음부터 끝까지 돕니다. @P 는 0번 점의 위치입니다.
02
1번 점 차례
같은 코드가 다시 돕니다. 이번엔 @P 가 1번 점의 위치입니다.
03
…끝까지
점이 10만 개면 10만 번 돕니다. 그래서 빠릅니다 — 전부 동시에 처리되거든요.

이것 하나로 많은 것이 풀립니다. @P.y += 1; 라고 쓰면 모든 점이 1만큼 올라갑니다. 각 점이 자기 차례에 자기 것을 올렸을 뿐인데 결과적으로 전체가 올라간 것이죠. 반대로 "옆 점의 값을 보고 싶다"면 별도의 함수(point(), neighbours())가 필요합니다. 자기 차례에는 자기 것만 보이기 때문입니다.

첫 코드 — 이대로 따라 해 보십시오

Geometry 안에서 Tab → Attribute Wrangle 을 놓고, 아래를 그대로 붙여 넣으면 됩니다.

attribwrangle1
Group
비워두면 전부 처리합니다
Run Over
Points
점마다 한 번씩. 가장 흔한 설정입니다
VEXpression
@P.y += noise(@P * 3) * ch("h");
노이즈만큼 위로 올립니다. ch("h") 는 슬라이더가 됩니다

코드를 넣은 뒤 파라미터 창의 Create Parameters(톱니 아이콘) 를 누르면 h 라는 슬라이더가 생깁니다. 드래그하면 결과가 바로 바뀝니다. 이 흐름 — 코드 쓰고 · 슬라이더 만들고 · 드래그하며 찾기 — 가 VEX 작업의 전부라고 해도 지나치지 않습니다.

실습 예시 — 이걸로 뭘 만들 수 있나

함수를 하나씩 아는 것과 그걸로 무언가를 만드는 것은 다릅니다. 아래는 전부 후디니에서 실제로 돌려 렌더한 결과이고, 코드도 그때 쓴 것 그대로입니다. 그대로 붙여 넣으면 같은 그림이 나옵니다.

전체 함수 레퍼런스

후디니 20.5 에 들어 있는 공식 VEX 문서에서 그대로 추출한 개 전부입니다. 함수를 누르면 시그니처와 설명이 뜹니다. 위쪽 핵심편에서 다룬 함수에는 자세히 배지가 붙습니다.