스크립팅 API 참조
이 페이지에서는 API의 주요 개념에 대해 설명합니다.
자세한 내용은 도움말 > Python API 설명서…에서 액세스할 수 있는 응용 프로그램과 함께 제공되는 설명서를 참조하십시오. 이 설명서에서 모듈 이름(아래 괄호 안)에 대해 빠른 검색을 수행하여 해당 정의를 쉽게 찾을 수 있습니다.
컨텍스트
컨텍스트(Context) 개체가 API의 주 진입점입니다. 사용자가 ‘sd’ 모듈에서 ‘getContext()’ 메서드를 사용하여 처음 가져올 때 만들어집니다.
이 개체는 기본적으로 응용 프로그램을 검색(SDApplication) 개체를 검색할 수 있습니다.
응용 프로그램(SDApplication)
응용 프로그램(SDApplication)은 다음과 같이 기본 API 관리자에 대한 액세스를 허용하는 개체입니다.
- 응용 프로그램의 모든 패키지를 관리하는 패키지 관리자(SDPackageMgr);
- 응용 프로그램의 모든 모듈을(를) 관리하는 모듈 관리자(SDModuleMgr);
- 응용 프로그램 창에서 메뉴 및 도킹을(를) 만들 수 있는 UI 관리자(SDUIMgr).
특정 이벤트가 발생할 때 호출되는 응용 프로그램에 콜백을 등록할 수 있습니다.
패키지 관리자(SDPackageMgr)
이 개체는 모든 응용 프로그램의 패키지를 관리합니다. 패키지가 ‘탐색기’ 구성 요소에 표시됩니다.
이를 통해 다음을 수행할 수 있습니다.
- 새 패키지 만들기;
- 패키지를 로드/언로드;
- 패키지를 저장;
- 패키지를 찾기.
패키지(SDPackage)
패키지(SDPackage)는 리소스 컬렉션(SDResource)입니다.
패키지의 콘텐츠는 ‘SDPackageMgr’ 개체를 통해 .sbs 확장명을 가진 파일에 저장할 수 있습니다. 이 개체를 사용하면 특정 리소스를 검색할 수 있습니다.
특정 리소스를 만들기하려면 관련 개체 정적 메서드(예: ‘SDSBSCompGraph.sNew()’)를 참조하십시오.
패키지에는 메타데이터 사전(SDMetadataDict)도 포함되어 있습니다. 메타데이터 여기에서 추가 정보를 찾을 수 있습니다.
리소스(SDResource)
리소스(SDResource)는 다른 리소스에서 참조할 수 있는 개체입니다.
형식 리소스가 여러 개 있습니다.
- 폴더(SDResourceFolder);
- 그래프(SDGraph);
- 비트맵(SDResourceBitmap);
- SVG 이미지(SDResourceSVG);
- 글꼴(SDResourceFont);
- 장면(SDResourceScene);
- BSDF 측정(SDResourceBSDFMevaluation);
- 조명 프로필(SDResourceLightProfile).
다음 아래에 있는 정적 메서드 'sNew()'에서 리소스를 만들기할 수 있습니다.
- 패키지;
- 폴더.
리소스에는 여러 속성(SDPproperty)이 있을 수 있습니다.
UI 관리자 (SDUIMgr)
UI 관리자를 사용하면 메뉴, 도킹과 같은 Substance Designer의 기본 창에서 사용자 인터페이스 요소를 만들 수 있으며, 사용자 인터페이스 관련 이벤트가 발생할 때 콜백을 등록할 수 있습니다.
또한 UI 관리자는 현재 활성 그래프 및 활성 그래프의 선택에 액세스할 수 있습니다.
그래프 (SDGraph)
그래프(SDGraph)는 다음을 포함하는 개체입니다.
- 노드 (SDNode);
- 그래프 개체(SDGraphObjects);
- 속성 (SDPproperty).
다음과 같은 4가지 그래프 유형이 있습니다.
- Substance 그래프(SDSBSCompGraph)
- Substance 함수 그래프(SDSBSFunctionGraph)
- Substance FXMap 그래프(SDSBSFxMapGraph)
그래프에는 하나 이상의 출력 노드가 있을 수 있습니다. 출력 노드는 그래프의 결과를 나타냅니다.
‘getNodeDefinitions()’ 메서드를 사용하여 그래프에 사용할 수 있는 모든 노드를 검색할 수 있습니다.
‘newNode()’ 메서드를 사용하여 새 노드를 만들기할 수 있습니다.
‘newInstanceNode()’ 메서드를 사용하여 리소스(SDResource)에서 새 인스턴스 노드를 만들 수 있습니다.
노드(SDNode)
노드(SDNode)는 개체에 대해 수행되는 작업을 나타냅니다.
다음에서 만들 수 있습니다.
- 정의(SDDefinition)('SDGraph.newNode()’ 참조);
- 리소스(SDResource)('SDGraph.newInstanceNode()’ 참조).
노드에는 여러 속성이 있을 수 있습니다.
노드의 형식이 여러 개 있습니다.
- SDSBSCompNode: Substance 그래프의 노드(SDSBSCompGraph);
- SDSBSFunctionNode: Substance 함수 그래프의 노드(SDSBSFunctionGraph);
- SDSBSFxMapNode: Substance FXMap 그래프의 노드(SDSBSFxMapGraph);
그래프 개체(SDGraphObjects)
그래프 개체(SDGraphObject)는 그래프에 추가 정보를 추가하는 개체이지만 그래프 평가 과정에서 고려되지 않은 개체입니다.
그래프 개체의 3개 유형이 있습니다.
- 핀(SDGraphObjectPin)
- 댓글(SDGraphObjectComment)
- 프레임(SDGraphObjectFrame)
생성 방법에 대한 자세한 내용은 이러한 개체의 정적 메서드 'sNew()'을(를) 참조하십시오.
등록 정보(SDPproperty)
속성(SDPproperty)은 다른 개체(그래프, 노드, 리소스 등)의 속성을 설명하는 개체입니다.
특정 범주에 속합니다(SDPropertyCategory).
- 입력: 개체의 입력 속성을 분류합니다. 일반적으로 은(는) 현재 개체에서 수행하는 작업에 영향을 줍니다.
- 예: Substance 그래프에서 균일 색상 노드의 ‘color’ 속성은 입력 속성입니다.
- 출력: 개체의 출력 속성을 분류합니다. 개체의 결과를 식별하는 데 사용됩니다.
- 주석: 개체에서 수행하는 작업에 영향을 주지 않는 속성을 분류합니다.
- 예: 그래프의 'label’은(는) 그래프 계산에 영향을 주지 않으므로 주석 속성입니다.
다음 구성원이 포함되어 있습니다.
- ID: 이 범주의 컨텍스트에 있는 속성의 식별자;
- 형식: 현재 속성에서 지원하는 형식입니다. 일부 속성은 여러 형식(‘int’, ‘float’ 등)을 지원할 수 있습니다.
- 예: ‘sbs::add’ 노드의 입력 속성은 다른 형식을 지원할 수 있습니다. 'int’, 'int2’, 'int3’, 'int4’, 'float’, 'float2’, 'float3’, 'float4’ 등;
- 범주: 속성이 속한 범주(입력, 출력, 주석);
- 레이블: 속성의 레이블로, 표시 전용;
- 설명: 속성에 대한 설명입니다.
- DefaultValue: 기본값;
- IsConnectable: 이 속성에서 연결(SDConnection) 할 수가 있는지 여부를 나타냅니다.
- isReadyOnly: 속성이 읽기 전용인지 여부를 나타냅니다. true이면 연결된 값을 수정할 수 없습니다.
- isVariadic: true인 경우 이 속성은 개체에서 multiple 속성으로 표시됩니다.
- isPrimary: 지정한 속성이 다른 속성을 제어하는 principal 속성인지 여부를 나타냅니다. 참고: 이것은 Substance 합성 노드(SDSBSCompNode)에만 해당합니다.
예:
- ‘sbs::input’ 노드의 속성:
- ‘sbs::blend’ 노드의 속성:
유형(SDType)
형식(SDType)에는 다음과 같은 값 type의 정보가 포함됩니다.
-
ID: 형식의 식별자;
-
한정자: 'SDTypeModifier’ 열거형 값 중 하나일 수 있는 형식 한정자:
- 자동;
- 균일: 값이 작업당 한 번 평가됩니다.
- 가변: 값은 작업당 여러 번 평가됩니다(예: 각 텍셀에 대해).
다음과 같이 여러 유형이 정의됩니다.
- 열거형(SDTypeEnum): 모든 속성과 함께 열거형 형식을 설명합니다.
- 구조체(SDTypeStruct): 모든 속성이 포함된 구조체 형식을 설명합니다.
- 배열(SDTypeArray): 배열을(를) 설명합니다.
- 등
전체 목록은 Substance Designer의 Python API 설명서를 참조하십시오.
값(SDValue)
값(SDValue)은 기본 형식 값으로 캡슐화하는 개체입니다.
예를 들면 다음과 같습니다.
- ‘SDValueInt’ 개체는 ‘int’ 값을 캡슐화합니다.
- ‘SDValueFloat4’ 개체는 ‘float4’ 값을 캡슐화합니다.
- 등
기본 형식 값은 일반적으로 ‘get()’ 메서드를 사용하여 검색할 수 있지만, 이는 반환된 'SDValue’의 형식에 따라 달라질 수 있습니다.
연결(SDConnection)
연결(SDConnection)은 서로 다른 두 노드의 서로 다른 두 속성 간의 링크를 나타냅니다.
여기에는 다음이 포함됩니다.
- 대상 노드;
- 대상 노드의 대상 속성;
모든 연결 작업이 노드에서 수행됩니다.
- 새 연결을 만드는 중, ‘SDNode.newPropertyConnection()’ 참조
- 기존 연결을 삭제하려면 'SDNode.deletePropertyConnection()'을(를) 참조하십시오.
- 속성의 연결을 검색하려면 'SDNode.getPropertyConnections()'을(를) 참조하십시오.
모듈(SDModule)
모듈은 정의 및 형식의 컬렉션입니다.
열거형과 구조뿐 아니라 만들 수 있는 노드의 모든 정보를 쉽게 검색할 수 있습니다.
여기에는 다음이 포함됩니다.
- 모듈 관리자(SDModuleMgr)의 컨텍스트에서 고유한 식별자(Id);
- 정의 목록(정의);
- 형식(SDType)의 목록입니다.
정의(정의)
정의(SDDefinition) 개체에는 속성('SDNode’ 등)에 기반한 특정 개체의 정의에 대한 정보가 포함되어 있습니다.
여기에는 다음이 포함됩니다.
- ID: 정의의 식별자;
- 레이블: 정의의 레이블;
- 설명: 정의에 대한 설명입니다.
- 속성: 사용 가능한 모든 속성 범주(SDPropertyCategory)의 속성입니다.