많은 cg툴들이 파이썬을 사용하고 있고, 후디니도 예외가 아니다.
파이썬을 이용하면 후디니에서 기본적으로 제공하지 않는 인터페이스나 툴들을 만들수 있다. 또한 익스프레션 대신해서 파라미터값을 계산할 수도 있다.
OnCreated 함수와 hou.pwd()
후디니의 OnCreated 함수를 쓰면 노드를 생성할때 어떤 일이 일어나도록 할수 있다. 가끔씩 seed값은 항상 랜덤하게 들어갔으면 좋겠다는 생각을 해왔기 때문에 이것을 노드 생성때 마다 랜덤한 값으로 바꾸게끔 만들었다.
import random
this_node = hou.pwd()
seed = random.randrange(100000000)
this_node.parm("seed").set(seed)
그런데 에러가 나서 살펴보았더니, hou.pwd()는 현재 생성된 노드가 아니라 부모 노드라는 점이 문제였다. 찾아보고 후디니포럼에서 답을 얻었다. graham이 이 상황에서는 hou.pwd()대신 kwargs["node"]를 사용하라고 했다. 아 역시 graham 형님 쩐다. 코드를 다음처럼 바꾸었더니 잘 작동하였다.
import random
this_node = kwargs["node"]
seed = random.randrange(100000000)
this_node.parm("seed").set(seed)