개요
후디니에서 object merge 노드 생성 후, 불러올 노드 경로를 입력하는 일이 많다.
이를 파이썬 코드로 자동화하여, 단축키로 지정하면 번거로운 작업을 안해도 된다.
해당 코드의 기능은 아래와 같다.
1. object merge를 생성
2. 노드 네이밍 지정 (om_선택된 노드 이름의 형식)
3. 경로 자동으로 입력 (선택된 노드 상대경로)
방법
1. 쉘프탭 - 우클릭 - New Tool
2. script 탭에 게시글 하단의 '코드' 내용을 복붙하여 입력
3. 단축키 지정
Hotkeys 탭에서 edit하여, 원하는 단축키 입력
4. 실행
sopnet에서 노드 선택 후, 단축키 누르면 작동함
코드
Chat GPT가 너무 잘짜준다...
import hou
# 선택된 노드를 가져오기
selected_nodes = hou.selectedNodes()
# 노드가 선택되었는지 확인
if selected_nodes:
# 첫 번째 선택된 노드를 기준으로 부모 노드를 가져옴
parent = selected_nodes[0].parent()
# object merge 노드의 이름 설정 (첫 번째 선택된 노드 이름 기준)
object_merge_name = "om_" + selected_nodes[0].name()
# object merge 노드를 생성
object_merge_node = parent.createNode("object_merge", object_merge_name)
# 각 선택된 노드를 object merge 파라미터에 추가
for i, node in enumerate(selected_nodes):
# 상대 경로를 계산
relative_path = object_merge_node.relativePathTo(node)
# object merge 파라미터 설정 (object1, object2, object3 등)
parm_name = f"objpath{i + 1}"
if object_merge_node.parm(parm_name):
object_merge_node.parm(parm_name).set(relative_path)
else:
# 파라미터가 없으면 추가
object_merge_node.parmTuple("numobj").set((i + 1,))
object_merge_node.parm(parm_name).set(relative_path)
# object_merge 노드 위치 지정 (선택된 노드의 우측)
object_merge_node.setPosition(selected_nodes[0].position() + hou.Vector2(2, 0))
#object_merge_node.moveToGoodPosition()
else:
print("노드를 선택하세요.")
'이펙트 (FX) > 이펙트 팁 : Houdini' 카테고리의 다른 글
[Houdini/RBD] RBD Material Fracture 내부 UV 쉽게 펴기 (파일 포함) (0) | 2024.10.17 |
---|---|
[Houdini/RBD] 후디니에서 Ground Destruction 가장 쉽게 만드는 법 요약 (파일 포함) (0) | 2024.10.17 |
[Houdini] 후디니에서 타일링되는 노이즈 만들기 (1) | 2024.10.03 |
[Houdini] 후디니에서 서브스턴스 디자이너 노드 쓰는 법 (파일 포함) (0) | 2024.10.02 |
[Houdini/Tip] 후디니 뷰포트에서 본 끄기 (0) | 2024.09.30 |
댓글