[10일차] VEX와 VOP (1)
VEX 언어 기본 지식
1. VEX 정보의 형태
2. 내장 기능 & 사용자 정의 기능
3. DATA-TYPE
정보의 종류
int (integer) 정수
float 실수 vector(float, float, float)
vector 크기와 방향을 가지고 있는 개념을 수학적으로 표현한 것
array 배열 같은 Datatype의 변수를 일렬로 늘어놓은 집게 데이터 유형
matrix 행렬
array에 vector가 쓰이면 matrix와 정보가 동일해짐
string 글의 형태로 data를 저장
4. Dot Operators
A(2,4,1) 여기서 4는 A.y
K.zy = 1 K.wz = 6
5. 연산작용
int는 int끼리, float은 float끼리, vector는 vector끼리 계산이 되도록 유도해 주는 게 가장 좋지만
서로 다른 정보끼리 계산을 해야하는 경우 먼저 쓰인 데이터 규칙에 따름
int x float = int float x int = float
뒤에 소수점은 버리고 계산 되는 식
반 줄였다가 다시 두배 늘렸을 때, 원래의 값이 되는 게 아니라 아예 다른 값이 되므로 주의하기
6. 연산자 Operators
7. TYPE CASTING
101이라는 문자(숫자) 앞에 int, float, string 이라는 type을 적어줘서 type을 정해줘야함
문법에 해당하는 내용은 type casting 과정 없어도 후디니가 이해함
8. Variables & Attributes
변수 선언이 type casting 과정
@ : attribute
@P.y : 속성 P의 y 내용물
*변수는 지금 이용하고 있는 attribute vop, attribute wrangle에서만 유효함
attribute은 변수처럼 이용, 연산이 가능함
i@, f@, v@, 2@, s@ 이런 식으로 type casting을 해줘야함
변수(Variables)는 결과를 내는 과정에서 한 노드에서 임시로 쓰이는 정보이고,
속성(Attributes)은 과정과 결과에 남아 다음 노드에도 제공하는 정보
9. Global Variables 그리고 몇몇 이미 할당이 되어있는 Attributes
$F - @Frame 파라미터에서는 현재프레임을 $F로 표기했지만 VEX에서는 @Frame으로 써야함
$T - @Time
이미 할당되어있는 attributes @P: position, @Cd: color, @N: normal, @V: velocity
Run Over : Points
input에서 받은 모든 점에 대해 사용자가 말한 정보처리 과정을 거쳐주세요.
Detail (only once) 은 한 번만 정보처리 과정을 거쳐주세요 라는 뜻
f@AA;
@AA=2.7;
float Attribute AA가 존재한다.
float Attribute AA의 값은 2. 7이다.
각각 존재 선언, 값 선언
*모든 문장의 마무리에는 세미콜론
f@BB;
@BB=3.9
float Attribute BB가 존재한다. float Attribute BB의 값은 2. 7이다.
@P.y=@BB;
@P라는 건 vector로 되어있다는 걸 알고 있기 때문에 바로 값선언을 해준 것
이 명령어를 적으면 add로 포인트 하나만 만들어주었을 때 포인트의 y 값이 3.9로 변경이 되어 위치가 이동한다.
box에 이 명령어를 적용시키면 모든 점의 y 위치값이 3.9가 되어 flat한 형태가 된다.
변수로 입력해도 결과는 동일하지만 geometry spreadsheet에는 적혀있지 않음
존재선언과 값선언을 동시에
벡터값 선언할 때는 중괄호{ }를 사용하는데 그렇게 하기보다는 set을 이용해서 벡터 만들어주기!
@P.x = @P.x+1;
transform 노드의 translate을 이용하는 것과 같음
@P.x = @P.x+@Frame;
프레임마다 x축 방향으로 계속 1씩 이동함
v@Dir = set(@Frame,(@Frame/2),0);
@P = @P+@Dir;
x축 방향으로는 1만큼, y축 방향으로는 0,5만큼 이동 - 대각선으로 이동
chf("howmuch") 이런 식으로 채널을 만들어줄 수 있음
여기서 f는 float