Export All Pieces 선택한 프랙쳐 메쉬의 조각들을 한번에 익스포트 해줄 수 있도록 만든 스크립트 def exportAllParts(parent): #get all child nodes frac_node = parent.node('fracture') unique_node = frac_node.node('find_unique_values') export_node = parent.node('export') rop_node = parent.node('ropnet1').node('filmboxfbx1') #clear out the subnet children = export_node.children() for child in children: child.destroy() #get detail attrib geo = unique_no.. Houdini/Houdini Python 2023.03.22
Export Bat File Bat 파일을 익스포트 해줄 수 있도록 만든 스크립트 def export_bat(kwargs): parent = kwargs['node'] child = parent.node("./render") hip_path = str(hou.hipFile.path()) file_path = hou.getenv("HIP") start= str(int(parent.parm('f1').eval())) end= str(int(parent.parm('f2').eval())) node_path = str(parent.path()) child_path = str(child.path()) node_name = str(parent.name()) file_name = parent.name() ##Write to text file l.. Houdini/Houdini Python 2023.03.22
Remove points by ID For i=0 은 초기값; i id_arr에 id값을 붙여준다 For each Int j라는 변수를 만들어주고, id_arr 의 array의 값을 하나씩 가져와서 계산해준다 Input1 의 id값이 j와 같으면, @group_select 에 포함된다 Houdini/Houdini 2023.03.22
원하는 범위의 name 어트리뷰트 Integer 값으로 구하기 Slice(@name,-2,len(@name)); Slice의 -2는 뒤에서 두번째를 의미 Ex) piece31 이라하면 3을 의미한다 Len(@name) 은 @name의 문자열 길이, piece31 이라하면 7을 가지게된다 Slice는 뒤에서 두번째 문자열부터 7번째까지의 값을 가진다 String name_piece 는 31 Atoi 를 통해 31 이라는 string(문자열)을 integer(정수)로 바꿔준다 Houdini/Houdini 2023.03.22
Dot Product 이용해서 필요없는 포인트들 지워주기 초록색 부분을 제외한 뒤쪽을 쥐워줄 것이다 우선 앞뒤로 포인트 두개만 남겨준다 각각 포인트 번호를 이용해서, 두 값의 차벡터를 nor_dir 이라는 변수로 지정해주고, 원본 지오메트리의 노멀과 dot product 값을 구한다 0.5 의 값을 가지는 부분은 직각이 되는곳, 뒤쪽은 (-)값이므로, Dot product 값이 0.5 이하인 포인트들은 삭제했다 Houdini/Houdini 2023.03.22
Mesh 겹쳐지는 부분 잘라내기 - Input1 은 polygon - Input2 는 VDB ( VDB로 변환할 때는 voxel size를 크게하는게 중요) Houdini/Houdini 2023.03.22