보호되어 있는 글입니다.
node = hou.pwd()geo = node.geometry()groups = {}def get_group(name): if name in groups: return groups[name] # print(f"creating a new group -> {name}") groups[name] = geo.createPrimGroup(name) return groups[name]for prim in geo.iterPrims(): polygroup = prim.attribValue("polygroup") group_name = f"polygroup{polygroup}" # print(group_name) group = get_group(group_name..
3Ds MAX에는 shell uvs interpolation이라는 기능으로 PolyExtrude 한 면을 알아서 uv 상에서 늘려주는 기능이 있는 것 같다. 근데 Houdini에는 찾아봐도 안 나오고 자체적으로 들어있는 UV 자동화도 이런 걸 딱히 지원 안 하는 거 같다.누군가 질문한 흔적은 있는데 답변도 안 나오고, 이 기능이 너무 원했는데 생각보다 다들 필요하지 않은듯 싶다. 왜지...4일 정도 혼자서 씨름 했는데 결국 방법을 찾았다. 분명 더 간편하고 똑똑하게 해결하는 방법이 있을 텐데, 내가 바보인 건지 도저히 못 찾겠다. Houdini 도움말도 뒤져보고 UV 전용 프로그램인 Rizom UV도 뒤져봤는데 관련 기능이 도저히 없다.그래서 Houdini로 만들었다. 노드 하나로 해결해줄 수 있는 건 ..

며칠을 고생했던 건데 일단 특정 조건 하에 나타나는 현상이 있다.바로 메쉬에 Blendshape를 추가해도 깨지거나 반영되지 않는 것.Houdini가 이런 쪽으로는 잘 안 쓰이다 보니 관련 현상에 대해 말하는 사람도 없는 것 같다. 일단 내 검색 능력 안에서는 그렇게 보인다.그럼 왜 이런 현상이 나타났던 걸까?내가 겪은 바로는 바로 스킨 지오메트리에 name이 분리되어 있어서 그랬다. 보통 그랬다. 이 문제가 골치 아픈 이유는 언제나 나타나는 현상으로 보이진 않는다는 거다.그런데 골때리는 건 Houdini에 내장되어 있는 Capybara에서는 이 워크 플로우가 작동을 안 한다.여러가지 테스트를 해 본 결과 Skin 이름, 즉 프리미티브의 name을 하나로 만들면 이러한 경우는 모두 해결 된다.단점은 ve..

Houdini의 KineFX는 좀 특이한 FBX 처리 방식을 가지고 있다. 본 이름 처리 관련해서는 관련된 다른 노드들이 서로 통일되지 않은... 희한한 내부 로직을 사용한다.어쨌든 작업을 할 때 언제나 엄격하게 통일된 네이밍 컨벤션을 가진 데이터를 가공할 수 있다면 좋겠지만, 가끔가다 외부에서 기존에 만들어진 캐릭터가 있고, 이를 Houdini에서 사용해야 할 때 Houdini에게 친숙한 방식으로 이름을 바꿔줘야 할 필요가 있다.대표적으로 Capture Override 노드가 있는데, 이 노드를 사용할 때는 본 이름이 띄어쓰기가 되어있으면 안 된다😥진짜 왜?이런 경우는 일괄적으로 띄어쓰기를 처리 가능한 문자로 고쳐주고 편집한 다음 다시 되돌려주면 된다.사용해야 할 노드는 Capture Attribut..