본문 바로가기

Technical Artists/Houdini
[Houdini] Digital Asset(HDA) 만들기

Houdini의 노드 기반 절차적 processing의 장점을 극대화하는 데 있어서 hda가 핵심이 된다고 생각한다.

parameter 조절 등으로 변화를 주며 다양한 것들을 만들어 낼 수 있기 때문에 도움이 많이 된다.

개인적으로 Environment 관련 모델링 작업할 때 많이 쓰게 되는 것 같다.


먼저 hda로 변환할 Geometry 노드를 선택한 후 Subnet을 만든다. ( 단축키는 Shift + C)

subnet을 우클릭한 후 Create Digital Asset을 클릭한다.

Label에 원하는 이름을 넣어주고 Create를 눌러서 생성한다.
나같은 경우에는 그 안에서 object merge로 다른 node를 참조하는 것들이 있어서 경고가 떴는데, 추후 해결할 거기 때문에 OK 눌러서 넘어갔다.

hda는 기본적으로

C:\Users\사용자명\Documents\후디니버전\otls\

폴더에 저장된다.

다른 node를 참조하고 있어서 경고가 계속 뜨는데, 계속 뜨는 것이 성가시기 때문에 체크를 해제해 주었다.

Parameters 탭에서 기본 생성된 Transform 과 Subnet 폴더는 Invisible 로 깔끔하게 숨겨줬다.

object merge로 다른 노드를 참조하는 부분을 parameter로 빼주기 위해 Object 입력한 부분을 Paremeter 탭의 root 로 드래그해서 넣어준다.

Parameter Description의 Parameter 탭에서 Name 과 Label을 설정해 준다.
그리고 Channels 탭에서 Default 값을 지워준다.

작업 후 Accept 를 눌러 주면 해당 변경사항이 저장된다.

이제 hda 노드를 누르면 parameter에 내가 설정한 입력을 받을 수 있다.


hda에 python scripting이 필요하다면 Scripts 탭에서 Python Module 을 선택하여 python 코드를 직접 입력할 수 있다.

scripts를 특정 parameter 와 연결하기 위해서는 먼저 Callback Script 의 우측 버튼을 눌러 Python을 선택해 준다.
그 다음에 아래 코드를 작성한다.

hou.pwd().hdaModule().함수명()

hou.pwd().hdaModule().test()

그러면 Tags 에 script가 추가된다.


나는 버튼을 누르면 console에 출력을 하게 만들어 뒀는데, 성공적으로 작동한다!


코드가 복잡해지면 IDE에서 작업하는 게 훨씬 편하다.
그렇게 작업한 py 파일을 불러와서 script로 등록할 수도 있다!

먼저 작업한 파일을 원하는 위치에, 원하는 이름으로 저장해 준다.

Scripts 탭에서 Event Handler를 Python Module 로 선택해 두고 Filename 우측 버튼을 눌러 저장한 파일을 선택해 준다.

그러면 Filename과 Section Name이 채워진다.
* 이때 꼭 Section Name을 PythonModule로 변경해 주어야 한다.

PythonModule


그 상태로 Add File을 눌러준다.

작성한 파일이 잘 읽힌 것을 확인할 수 있다.