animation 시간에 따른 기록의 연속 (시간에 따라 data가 변한 것에 대한 연속적인 기록)
frame 최소시간의 단위
fps frame per second
key-frame 시간을 기준으로 사용자가 원하는 data 값을 입력하고 기록하기 위한 수단
interpolation (보간) 두 키프레임 사이의 데이터를 이어줄 때 어떤 방식으로 이을지 규칙을 정해준 것
키프레임 만들기 alt 누르고 숫자 클릭
키프레임 지우기 해당 프레임 위에서 delete, 다 지우고 싶으면 숫자 위에서 Delete Channels
어디에 현재 프레임이 있는지에 따라서 그 정보가 남게 됨
키프레임 옮기기 마우스 가운데 버튼 클릭해서 드래그
두개 이상의 키프레임 동시에 옮기려면 shift 클릭으로 영역 지정해준 다음에 옮기기
(같은 24프레임에 위치값과 회전값에 대한 키프레임이 동시에 찍혀있을 때, 각각 따로 옮기려면?)
Animation Editor
오른쪽 클릭으로 뷰 확대,축소 할 수 있음 위,아래 / 왼쪽 오른쪽
기본적으로는 selection tool
Box handle(키프레임 박스 크기를 조절), Box handle with Pivot (피봇의 위치를 기준으로 박스 크기 조절)
*키프레임 전체 잡고 왼쪽 오른쪽 이동은 안됨 - Box handle로 조절해줘야 함
키프레임을 선택 후 아래 쪽에서 frame 위치와 value 값도 변경할 수 있음
animation은 keyframe 없이도 만들 수 있음!
Hscript Global Variables
$F 지금 현재 몇 프레임인지
add의 point에 ($F,0,0)를 입력하면 x 값이 프레임수에 따라 바뀌게 됨
현재 10프레임이면 (10,0,0)
$T=($F-1)/$FPS (스타트 프레임이 1이라고 했을 때)
FPS를 기준으로 $F를 환산해서 시간으로 나타낸 것
1프레임 : 1/24-1/24 = 0
25프레임 : 25/24-1/24 = 1
(sin($F),0,0) 0에서 시작해 1, -1 으로 위치 이동
(cos($F),0.0) 1에서 시작해 -1,1 으로 위치 이동
sin90 이 1이기 때문에 90프레임에서 위치가 (1,0,0) 이 된다.
cos90은 0인데 왜 90프레임에서 위치가 정확히 (0,0,0)이 아닐까? cos180은 -1 이 맞다.
이렇게 하면 너무 천천히 이동하니까 (sin($F*4),0,0) 이런식으로 숫자를 곱해서 사용
($F*0.05,0,sin($F*5))
이렇게 하면 점이 S자로 움직임
X축방향으로는 프레임수에 따라 점 이동, Z축 방향으로는 위 아래로 움직임
(cos($F),0,sin($F)) 원 운동을 하는 점을 만들 수 있다. (반지름이 1인 원)
(cos($F*5),0,sin($F*5)) 하면 속도를 5배 더 빠르게,
(cos($F*5)*2,0,sin($F*5)*2) 하면 반경을 2배로 크게 만들 수 있음 (반지름이 2)
add에 바로 파라미터를 생성하고, 그 생성을 가져오려면 ch(채널이름) 이라고 쓰면 된다.
타원, 원이 아니라 배율을 다르게 곱해서 다른 기하하적 형태로 움직이게 만들기 위해서 스피드 옆에 각각 XA,ZB를 만들어서 곱해주기
컨트롤러 하나 더 만들어서 거기서 조절 할 수 있도록 만들어주기
시계 로테이션
24프레임 1초
초침은 60초에 360도, 1초에 6도
$F하면 24프레임에 24도 1초에 24도
6도만 움직여야하므로 초침은 0,-$F/4,0로 1/4해줘야함
분침은 60분에 360도, 1분에 6도, 1초에 6/60도
0,-$F/4/60,0
시침은 1시간에 30도, 1분에 30/60도, 1초에 30/60/60 = 1/120 = 6/60/12
0,-$F/4/60/12,0
'Houdini Basic' 카테고리의 다른 글
[8일차] 시계 애니메이션 (2) (0) | 2023.01.11 |
---|---|
[7일차] 시계 애니메이션 (1) (0) | 2023.01.10 |
[5일차] 의자 만들기 (3) (0) | 2023.01.05 |
[4일차] 의자 만들기 (2) (0) | 2023.01.05 |
[3일차] 의자 만들기 (1) (0) | 2023.01.04 |