타겟 설정하기
2D에서의 작업
구분을 위해 // 내용을 써주는 게 좋음
target의 x값 가져올때, P.x 이렇게 했던 것 처럼 target.x 라고 해주면 됨
3D에서의 작업
강의를 보기 전에 Dir, NormDir, LenDir에 대한 힌트를 얻고 코드를 입력해봤는데 제대로 작동하는 것 처럼 보였다.
Dir = NormDir*LenDir
노말라이즈된 NormDir는 방향벡터(크기 1인), 거리에 해당하는 LenDir는 크기
NormDir은 벡터의 크기가 아닌 방향만을 사용하고싶을 때 사용하면 된다고 이해하면 되는걸까?
*내가 했던 것과 다른 점
1. 나는 LenDir이 거리라고 적혀있어 Distance 함수를 활용했는데 선생님은 length 함수를 사용했다. 똑같음!
2. else에 해당하는 내용을 new 점이 곧 target 점이 되는거라고 이해해서 new = target이라고 적었는데 상관없는거겠지?
저번시간에 만들어둔 선과 합치기
새로 geo를 만들어서 각각 내용을 모두 복사, 붙여넣기
새로운 MAIN CONTROL null 만들어주기
다리길이가 될 A, B 파라미터 만들기
mid 컨트롤의 A,B 다리 길이의 합은 neck 컨트롤의 limit
mid에서 만들었던 base와 target 컨트롤 다 지우고 메인컨트롤에서 조정할 수 있도록 만들어주기
오늘 만들었던 노드들을 저번 시간에 만들어둔 노드의 위쪽에 연결시키는데, 두번째 input에 연결하기
(아래에서는 위에서 만든 점을 사용하지 않고 정보로만 쓰기 위해서)
generate_points 어트리븃 노드에서 이런 식으로 base와 neck의 값을 포인트함수로 불러오기 (원래는 파라미터로 되어있었음)
타겟이 멀리 있을 때, 램프가 너무 일직선이 되는 것을 해결해주기
*중요!
limit의 값에서 -1을 해주면 반경이 줄어들면서 램프가 꺾이게 됨
메인 컨트롤에 howmuch라는 플롯 파라미터 생성해서 빼주는 값 설정해주기
관심 영역 조절하기
2D에서의 작업
result라는 새로운 점은 intensity의 값에 따라서 new와 orig 점 사이를 이동함
intensity가 1이면 orig의 위치에, 0이면 new의 위치에
color로 영역 확인하기
새로운 geometry 만들고, gird 만들기
add - delete geometry but keep the points 로 점만 남기기
가운데 영점을 base로 두고
각 점들이 영점에서부터 떨어진 거리를 구함
rad 파라미터 만들어서 반경 설정하고 거리 len과 반경 rad의 비교를 통해 색을 다르게 설정해줌
len < rad 이면 검정색, 아니면 흰색 이런 식
intensity를 활용해서 그라디언트로 적용되게 만들기
intensity = len / rad
rad가 1일때 영점에 가까운 점일수록 intensity는 약해지고 1에가까워질수록 intensity는 강해짐 (len이 0이면 0, len이 1이면 1)
@Cd = set ( intensity, 0 , 1-intensity ) 로 만들어서 intensity가 강해질수록 빨간색, 약해질수록 파란색이 되도록 함
rad 바깥 점들은 (else)
rad바깥부터 파란색이 되는 지점까지의 거리를 sen이라고 설정
intensity = (rad+sen-len)/sen
rad에 가까울수록 intensity가 강해지고, 멀어질수록 약해짐
len이 rad+sen보다 길어진다면 intensity는 음수가 나오게 되기 때문에 clamp 함수로 보정
clamp(변수, 최소값, 최대값)
'Houdini Basic' 카테고리의 다른 글
후디니 단축키 (1) | 2024.01.10 |
---|---|
[14일차] 램프 만들기 (1) (0) | 2023.01.26 |
[13일차] 후디니에서의 수학 & if 조건문 (0) | 2023.01.25 |
[12일차] 시계 애니메이션 with Wrangle&VOP (0) | 2023.01.19 |
[11일차] VEX와 VOP (2) (0) | 2023.01.17 |