스크립팅 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::입력
입력
주석
출력
$outputsize
레이블
unique_filter_output(연결 가능)
$format
설명
$pixelsize
식별자
$pixelratio
userdata
$tiling
그룹
$randomseed
visibleif
bitmapresourcepath
용도
  • ‘sbs::blend’ 노드의 속성:
sbs::블렌드
입력
주석
출력
$outputsize
unique_filter_output(연결 가능)
$format
$pixelsize
$pixelratio
$tiling
$randomseed
source.connector(연결 가능)
destination.connector(연결 가능)
opacity.connector (연결 가능)
opacitymult
혼합 모드
색상 혼합
직사각형 마스크

유형(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)의 속성입니다.
recommendation-more-help
substance-3d-designer-help-guide