본문 바로가기
공부 일기/후디니 입문

[공부일기] 10일차 챕터3 - 03. 시계 시스템 with VEX, Point() 사진

by 머지볼 2024. 2. 6.
반응형

시계 시스템

시계 - 이미 존재하는 규칙을 구현만 하면 된다?!??

포인트 펑션 - 중요, X중급 못 넘어감

. 포인트, 바늘

circle - add(delete geometry but keep the points V)

. 평션 : 입력을 하면 우리가 활용할 변수나 어트리뷰트(@)에 적용이 됐으면 하는 것

f@a = ch("a");

: 채널 a라는 걸 만들꺼고, 이 파라미터는 float attribute a에 적용이 되게 하겠다.

- 클릭 파라미터 생성 후 채널 이름 바꾸면 만들어진 파라미터는

연결이 끊어진 것이지 지워지지는 않음

다시 클릭해야 새로운 네이밍 파라미터 생성된다.

- 삭제 : 1. edit parameter interface에서 수정 전 파라미터를 선택 후 삭제

2. delete all spare parameters 후 클릭 채널 재생성

- chi(""), chf(""), chv("") : ch도 int, float, vector 지정

float totalrotation = 360;

int onesecframe = 24;

int secdiv = 60;

int mindiv = 60;

int hourdiv = 12;

int setsec = chi("setsec");

int setmin = chi("setmin");

int sethour = chi("sethour");

180도 : 1초에 몇도 x 30초

1초에 몇도 : ttr(totalrotation 360도) / secdiv(한바퀴가 60개의 조각)

'1초에 몇도 x 30초' = ttr(totalrotation) / secdiv(한바퀴가 60개의 조각) * setsec(setsec의 변수(어트리뷰트)를 30으로 지정해줘서)

f@secrot = (totalrotation/secdiv)*setsec;

포인트 펑션 명령

초침

: info노드가 가지고있는 0번 포인트의 secrot에 가지고 있는 숫자가

초침 트랜스폼의 z rot에 필요하다.

point("info주소",PN포인트넘버,"att네임",몇 번째 칸 값의 정보를 부를거냐)

point("/obj/clock/info", 0, "secrot", 0) <-초침 transform의 rot z에 기입(반대 회전이라 '-'추가)

f@minrot = 분침 + 초침에 의해 분침이 얼마나 갈지

분침

: (ttr/mindiv)*setmin + (@secrot/secdiv(분과 초의 간격 만큼));

-point("/obj/clock/info", 0, "minrot", 0)

 

시침

: f@hourot = (totalrotation/hourdiv)*sethour + (@minrot / mindiv) + ((@secrot/secdiv)/mindiv);

@Frame(Vop안에 청록색 float로 있었음)

한 프레임당 몇 초나 얼마나 움직일거냐(second per frame -> @spf)

1초에 몇 도 : (totalrotation/secdiv)

초당 24프레임, 1프레임당 몇 도 : /onesecframe

(totalrotation/secdiv)/onesecframe;

초침f@secrot+(@spf+@frame)

처음 f@secrot 식에서 고비 한 번 ㅋ;;

헉! (@spf * @Frame)에서 frame이 소문자면 안 된다. ㄷㄷ

변수의 작동과 공식에서 버벅... ㅠㅠ

반응형