Q100494: 들어오는 노드 유형에 따라 병합 입력의 이름을 변경하여 노드 그래프의 가독성을 향상시킵니다.

팔로우

요약

여러 입력(예: 병합, 스위치 또는 VariableSwitch 노드) 이 있는 노드를 설정할 때 각 입력 포트의 이름을 바꾸어 어떤 종류의 노드가 업스트림에 연결되어 있는지 표시하는 것이 유용할 수 있습니다. 그러나 포트 이름을 수동으로 바꾸는 것은 지루할 수 있습니다.

이 기사는Q100372: Python을 사용하여 입력 및 출력 포트 이름 바꾸기 에 제공된 예제를 기반으로 구축 하고 사용자 정의 범주를 통해 입력 포트 이름을 병합 노드로 바꾸는 기능을 제공하는 것을 목표로 합니다.

추가 정보

Katana 템플릿을 구축할 때 입력 포트에 업스트림에 연결된 노드의 범주가 표시되면 템플릿의 흐름을 더 쉽게 이해할 수 있습니다.

병합 노드의 기본 동작을 사용할 때 생성된 입력의 이름은 i0, i1, i2 등으로 지정됩니다. 이 명명 규칙은 연결된 노드 업스트림에 대한 정보를 제공하지 않습니다.

병합 노드의 기본 포트 이름을 사용하는 대신 연결된 노드의 범주에 따라 병합 노드 입력 포트의 이름을 바꾸는 사용자 정의 Python 설정을 만들 수 있습니다(예: CameraCreate 노드에 연결될 때 병합 노드 입력 포트는 " Camera”, NetworkMaterial 노드의 경우 “Material”이 됩니다).

예를 들어, 병합 노드에 기능을 추가하면 다음 입력 포트 이름을 사용할 수 있으므로 업스트림 설정을 더 쉽게 이해할 수 있습니다.

advRename1.PNG

위 그림과 같이 Merge 노드의 입력 포트는 각 입력에 연결된 노드의 카테고리에 따라 이름이 변경됩니다.

예제 스크립트

이 기사에는 스튜디오 요구 사항에 맞게 다운로드하고 수정할 수 있는 Python 예제 스크립트가 첨부되어 있습니다.

스크립트가 작동하도록 하려면 첨부 파일을 .katana/Shelves 폴더 위치 에 추가해야 합니다( 예:

Windows: C:\Users\USERNAME\.katana\Shelves\RenameShelf\Type_Merge.py
리눅스: /mnt/nethome/users/USERNAME/.katana/Shelves/RenameShelf/Type_Merge.py

Shelf 스크립트에 대한 자세한 내용은 다음 문서를 검토하세요.
Q100401: Katana 에서 선반 항목을 만드는 방법
Q100402: Katana 에서 선반 항목을 편집하고 제거하는 방법

스크립트 사용

Katana 내에서 이 사용자 정의 스크립트를 테스트하려면 노드 선택 항목(예: CameraCreate, PonyCreate 및 Material 노드)을 생성해야 합니다.

노드가 생성되면 모든 노드를 선택하고 키보드 단축키 Ctrl+M을 사용하여 사용자 정의 선반 항목 스크립트를 사용하여 노드를 병합합니다. 또는 도움말 옆에 있는 톱니바퀴 아이콘으로 이동하고 선반 아래에서 RenameShelf 선반 작업과 Type_Merge 선반 항목을 선택하여 스크립트에 액세스할 수도 있습니다.

위의 예시 이미지에 표시된 것처럼 병합 노드 입력 포트는 선반 항목 스크립트에 정의된 대로 연결된 노드 범주에 따라 이름이 지정됩니다.

또한 이 도구는 여러 범주를 추가할 수도 있습니다. 예를 들어 'prmanCameraSettings' 노드의 병합 포트 이름은 'Prman_Camera_Settings'입니다.

연결 설정, 선반 항목 생성 및 SuperTools에 대한 자세한 내용은 아래 링크를 사용하여 Katana 사용자 가이드 및 Katana 개발자 가이드를 확인하세요.

Python 연결 노드: Katana 개발자 가이드 - 노드 작업 - 노드 연결
선반 스크립트: Katana 사용자 가이드 - Katana 의 스크립팅 및 프로그래밍 - 선반 항목 스크립트
SuperTools: Katana 사용자 가이드 - 그룹, 매크로 및 SuperTools - SuperTools

스크립트 설명

스크립트는 정의 및 라이브러리 변수가 설정된 후 선택한 노드(80행)를 대조하는 것으로 시작됩니다. 이 데이터가 수집되면 새로운 병합 노드가 생성됩니다.

Q100372: Python 스크립트 예제를 사용하여 입력 및 출력 포트 이름 바꾸기 87행에서 선택한 노드는 for 루프에서 선택한 각 노드를 반복하여 새로 생성된 병합 노드에 연결됩니다 . 선택된 노드.

스크립트는 입력 포트를 추가하기 전에 특정 노드에 대한 사용자 정의 사전을 검토하기 위해 새로운 함수 checkDictionary() 를 호출한다는 점에서Q100372 기사 의 예와 다릅니다 .

사용자 정의 사전(18행 ~ 44행)은 사전 값을 사용하여 기존 노드 이름(예: PrimitiveCreate) 또는 노드 이름의 잠재적 부분(예: 카메라)을 입력 포트 이름 변경에 사용되는 노드 범주 키와 일치시킵니다.

24행의 MergeType 사용자 정의 사전은 다음과 같습니다.

병합사전.PNG

예를 들어 위의 사전 키에 따라 PrimitiveCreate 노드의 출력 이름은 해당 노드 범주 매핑에 따라 'Geometry'로 지정됩니다.

병합사전1.PNG

checkDictionary checkDictionary() 함수는 이러한 사전을 반복하여 키 중 하나가 선택한 노드 유형과 일치하는지 찾으려고 시도합니다. 노드 유형이 키 중 하나와 일치하면 입력 포트의 이름으로 사용되는 'mergeLabel'이라는 변수에 키가 추가됩니다.

예를 들어 ArnoldCameraSettings 노드는 다음과 같이 3개의 키를 포착하여 차례로 추가합니다.

advRename2.PNG

이름 구성요소가 최종 입력 포트 이름에 추가되는 순서는 checkDictionary() 사용하여 카테고리 사전을 확인하는 순서에 따라 결정됩니다 .

adv이름 바꾸기3.PNG

위에 표시된 checkDictionary() 호출이 전환된 경우 입력 포트 이름은 "Arnold_Camera_Settings"가 아닌 "Camera_Settings_Arnold"로 지정됩니다.

사전 형식화에 따라 사용자 정의 사전을 추가하고 checkDictionary() 호출하여 입력 포트 이름에 추가 구성요소를 추가할 수 있습니다.

모든 입력 포트가 추가되면 새로운 병합 노드가 선택된 노드로 설정되고 Q100402: Katana 에서 선반 항목을 편집 및 제거하는 방법에 설명된 기능을 통해 노드 그래프 탭에 부동됩니다.

병합 노드 부동은 새 노드를 생성하는 것과 동일한 동작을 제공합니다.

참고: 스크립트에 대한 자세한 내용은 스크립트의 도움말 설명을 검토하세요.

첨부 파일

우리는 문제로 불편을 끼쳐 드려 죄송합니다

이유를 알려주세요