SOP은 surface operator의 약자로, 물체의 표면을 만들거나 움직이는 공간
1. 수정 및 캐쉬저장(Blast, Delete, Edit, Rob Geometry&File, FileCache)
Blast vs Delete
- Blast : 단순 삭제 기능만 있음
- Delete : Range, Boundary 등 더 많은 기능이 있음
Edit
- 특정 Geometry의 Point, prmitive를 직접 수정, 움직일 수 있는 노드
- Scene View에서 point, primitve 등을 선택하고, T/R/E를 누르면 자동으로 Edit 노드가 생성
- 다른 점들을 잡고 움직여도 노드가 추가되지 않으며, 하나의 Edit 노드에 모든 움직임이 누적되어 적용
- Key를 줄 수 없음
Rop Geometry & File / FileCache
- Rop Geometry 노드는 후디니의 캐쉬를 저장하는 노드
- File 노드는 후디니의 캐쉬를 읽어오는 노드
Rop Geometry & File
- Output File의 경로를 설정 후 Save to Disk
- 경로에 대해서는 뒤에 자세히 설명
- File 노드로 구운 Save to Disk 불러오기
- Copy Parameter로 Color_transfer의 패스를 복사
- File의 Output path에 Paste Relative Reference
- 속도가 더 빨라짐
File Cache
- Base Name에서 이름 변경하기
- Version으로 버전업 기능을 사용하거나, 노드들의 이름 뒤에 v2... 와 같이 기입하도록 함
- Load from Disk를 누르면 디스크 아이콘이 뜨며 cache를 읽어와 빨라지게 됨. 해제하면 아이콘이 사라지며 느려짐
2. Houdini Cache/Alembic
1) Cook(노드 정보 읽어 오기)
- 후디니의 hip 파일에는 일반적으로 Geometry Data가 저장되지 않음
- 후디니를 새로 켜거나 파라미터 등이 수정되면 노드들을 다시 계산하는데 이를 Cook이라고 함
- 노드 계산이 무거워 매번 cook이 일어나는 것을 막고 싶을 때, 후디니 우측 아래에 있는 Auto Update를 Manual로 바꿔 저장하게 되면, hip파일을 열 때 cook 과정을 하지 않아 빠르게 열림
2) Cache
- Cook 과정이 너무 무거운 경우에 Cache를 뽑아서 관리할 수 있음
- 후디니에서는 bgeo.sc 라는 캐쉬포맷을 사용. 프레임 단위로 정보가 저장되며, 후디니 SOP에서 사용되는 모든 데이터를 담을 수 있음
Rop Geometry / File
- Prodecure이 끊어졌다는 정보가 잘 읽힘
- 만들어야 할 노드가 2개
FileCache
- Prodecure이 끊어졌다는 정보가 잘 안 읽힘
- 만들어야 할 노드가 1개
3) Alembic(.abc)
- rop alembic, alembic, unpack 노드 사용
- 현재 가장 많이 쓰이는 세계 공유 포맷
- Geometry 데이터를 담으며, 하나의 파일에 프레임 전체 Geometry 정보를 저장
- fbx 보다 무겁지만 프레임 하나하나에 저장하기 때문에 안정적임
- 가져올 때는 rop_alembic 경로를 Copy Parameter로 alembic 노드에 Paste Relative Reference
- unpack 노드로 파일 열기
3. Attribute
- Geometry 구성요소(점, 선, 면) 들이 갖고 있는 속성값
- point, vertex, primitive는 각각 Attribute라고 하는 데이터를 담을 수 있음
- Attribute에는 type이 있으며, 정수(int) / 실수(float) / 문자열(string) / 벡터(vector) 등이 있음
- Attribute는 약속된 것이 있고, 임의로 제작도 가능
- 약속된 Attribute는 후디니에서 특정한 역할을 수행
- Ex) 모든 포인트는 P라는 Attribute를 가지고 있고, 포인트의 위치를 나타냄
- P : 포인트 위치
- N : 노말
- Cd : 컬러
- UV Surface의 좌표(표면 정보)
- Geometry Spreadsheet에서 Attribute들을 확인할 수 있음
1) Attribute 관련 노드(Promote, Transfer, Combine, Copy)
Promote
- Attribute를 하나의 Geometry에서 다른 Geometry Type(point, vertex, primitive 등)으로 옮기는 것
- 각각의 Geometry Type의 숫자는 일정하지 않기 때문에(point에서 primitive 로 갈 때 숫자 차이가 남) 옮기는 방식을 지정해 줄 수 있음 → 평균값 / 최대값 / 최소값 등
Transfer
- Att를 한 오브젝트에서 다른 오브젝트로 위치 기반으로 옮기는 것(크로스된 부분으로 위치 전달)
- 위치 기반이므로 거리에 따른 Blending 옵션을 줄 수 있음
- 왼쪽 인풋 : 영향을 받는 쪽 / 오른쪽 인풋 : 영향을 주는 쪽
GroupCombine
- 두 그룹 사이의 교집합이나 합집합 그룹 등을 만들 때 사용
AttributeCopy
- Attribute를 한 오브젝트에서 다른 오브젝트로 같은 포인트 넘버를 기반으로 Copy 시키는 것
- point 넘버가 아닌 각자에 이름을 지정해 그 부분을 copy 시키고 싶을 때는 Match Attribute에 체크
- Id, Name 등과 같이 포인트 넘버를 대신할 Attribute를 지정할 수 있음
4. 환경 변수
- 특정한 값이나 문자를 나타내는 변수로, $Name 같은 방식으로 사용
- $HIP : 현재 작업 파일의 경로
- $HIPNAME : 현재 작업 파일의 이름
- $F : 현재 프레임, 정수 (ex : 45프레임 → 45)
- $FF : 현재 프레임, 실수
- $F4 : 현재 프레임ㅇ르 4자리 수로 표현 (ex : 45프레임 → 0045)
- $OS : 노드의 이름
- $FSTART / $FEND : 글로벌 애니메이션 범위
- $FPS : Framd Per Second
5. 애니메이션
1) Channel : Houdini Keyframe
- Alt + Click : Create Key
- Ctrl + Click : Delete Key
- Ctrl + Shift + Click : Delete All Key
- Shift + Click : Open Animation Editor
2) Animation Editor
- Scene View(뷰포트)에서와 같이 MMB를 눌러 이동
- 휠 드래그 → 확대 축소 1
- 마우스 우클릭(MRB) → 확대 축소 2
- G : 포커스
- Alt + Click : 키 삽입
6. 스크립트
1) Houdini의 Script 종류
- HScript : 특정 기능을 수행하거나 결과를 보여줌(일회성)
- HExpression : 파라미터에 식이 들어가면 매 프레임이 계산됨
- Python : HScript, HExpression을 대체할 수 있음. HScript는 상당 부분 대체되고 있으나, 링크 기능의 제한으로 사용 빈도가 낮음
- VEX : Geometry 구성, Shader 제작 등을 목적으로 하는 후디니 언어
2) HExpression
- + - * / %(나머지) ^(거듭제곱) 등의 기본 연산자 제공
- min(), max(), abs(), sin(), cos(), sqrt() 등 기본 수학 함수들을 제공
- sin은 반복 작업을 할 때 유용. 괄호 사이에 가운데 기준 값을 넣음
- sin($F)면 -1 ~ 1사이 값에서 위아래 반복
3) Copy & Paste Type
상대 경로에서
.은 현재 자신의 경로<(”.”)>
..은 자신의 상위 경로를 의미<(”..”)>
- 후디니의 Copy & Paste 종류
- Paste Values : 값을 그대로 복사
- Paste Expressions / Channels : 수식이나 채널(키)을 그대로 복사(텍스트)
- Paste Relative References : Ch()를 이용해 파라미터를 상대경로로 복사
- Paste Absolute References : Ch()를 이용해 파라미터를 절대경로로 복사
- Copy & Paste 시 링크들의 유지
- 노드를 복사할 경우, 연결된 링크들도 함께 복사
- 링크가 연결되어 있는 두 노드를 함께 복사할 경우, 링크도 유지됨
- 노드 이름을 바꿔도 링크는 깨지지 않음
4) Parameter
- 숫자 타입
- 계산식을 넣으면 바로 결과가 출력되며, 파라미터의 이름을 클릭하면 식과 결과를 교대로 보여줌
- 문자를 입력할 경우, 자동으로 Expression으로 인식함(point, prim)
- 문자 타입
- Group에서 사용
- 계산식을 넣어도 계산식을 문자로 인식함
- 계산식을 쓰고 싶으면 ``(Tab 키 위)으로 식을 묶어줘야 함
- 파라미터 이름에 MMB 클릭을 하면 환경변수나 ``로 붂인 식을 풀어서 볼 수 있음
- 여러 개의 노드를 선택하고 파라미터를 수정하면 모든 노드가 함께 수정됨. 다른 노드의 경우도 파라미터의 이름이 같으면 함께 수정됨
5) 많이 쓰이는 함수
rand() / seed
- rand() 함수는 0~1 상의 값을 만들어 냄
- rand(seed)의 형식으로 사용되며, seed의 값이 달라질 때, 다른 랜덤 값을 만들어 냄
- seed가 같으면 랜덤 값도 항상 같음
fit() / fit01()
- 특정 구간의 수들을 다른 구간으로 이동시키는 함수
- fit(조정할 값, 조정할 값의 원래 최소 범위, 조정할 값의 원래 최대 범위, 조정할 값의 최소 범위, 조정할 값의 최대 범위)
- fit(value, 0, 1, -4, 10)
- 후디니의 많은 함수나 파라미터들이 0~1 값의 구간을 갖는 경우가 많아 fit01() 이라는 간략한 버전의 함수를 지원함
- 0~1 사이의 범위를 따로 쓰지 않고 간편하게 수정할 수 있음
- fit01(rand($F), 0, 10)
- fit01(value, -4, 10)
7. Flipbook
- Houdini Scene Vieew(Viewport)에서 보여지는 내용을 그대로 영상으로 묶어줌
- Realtime 상태로 플레이를 하더라도 시뮬레이션 속도 등이 느릴 수 있어 작업 시 애니메이션으로 확인할 때는 항상 Flipbook으로 확인
- 카메라 View와 Flipbook의 Size를 동일하게 맞춰줘야 함
- Save sequence as로 저장
- 경로는 후디니 파일 내 flip > rail > v001 파일을 만들어 그곳으로 위치 지정
- 파일 포맷은 .png
- 이름은 rail_v001_$F4.png
- PDplayer 다운로드 후, 내 컴퓨터의 program 64 파일 내에 있는 PDplayer 파일을 다운로드 받은 폴더 내에 있는 CRK에 있는 파일로 덮어쓰기
- Sequence 한 개를 우클릭 후 PDplayer를 연결 프로그램으로 지정해 실행
- PDplayer에서 레이어 잘라 수정하고 저장
- Sequence Layer는 Save Sequence as로 저장한 이미지 하나를 플레이어로 드래그해서 레이어를 더해 장면을 겹칠 수 있음
- 저장할 때는 Export composition as로 저장
'3. 후디니(Houdini) 공부 > Houdini [이론]' 카테고리의 다른 글
5. [Houdini] VOP(언리얼 : 블루프린트), VEX(언리얼 : C++), Noise (0) | 2024.11.17 |
---|---|
4. [Houdini] Function, Copy, Foreach, Detail Attribute (2) | 2024.11.11 |
[Houdini] 후디니 TIP (0) | 2024.10.28 |
2. [Houdini] 후디니 Parameter Controller 만들기(기능 모으기), (0) | 2024.10.28 |
1. [Houdini] 후디니 기본 개념 및 설정 (0) | 2024.10.24 |