腳本 API 參考
本頁說明 API 的主要概念。
欲了解更多詳細資訊,請參閱應用程式附帶的文件,該文件可在 Python API 文件說明中取得>。在此文件中,請快速 搜尋 模組名稱(括號內),即可輕鬆找到定義。
背景
context (Context)物件是 API 的主要入口。 使用者第一次取得時,透過 ‘sd’ 模組中的 ‘getContext()’ 方法建立。
此物件允許基本上 擷取應用程式 (SDApplication)物件。
申請(SDApplication)
應用程式(SDApplication)是允許 存取主要 API 管理器 的物件,例如:
- 管理應用程式所有 套件 的套件管理器(SDPackageMgr);
- 模組管理器(SDModuleMgr),管理應用程式所有模組;
- UI 管理器(SDUIMgr)可在應用程式視窗中建立選單與底座。
你可以在應用程式中註冊 回撥 ,當特定事件發生時會被呼叫。
Package Manager (SDPackageMgr)
這個物件管理應用程式的所有 套件。 套件會顯示在「Explorer」元件中。
它允許您:
- 建立 一個新的套件;
- 裝卸 包裹;
- 儲存 包裹;
- 找 個包裹。
套件(SDPackage)
套件(SDPackage)是 資源 的集合(SDResource)。
套件內容可以透過 'SDPackageMgr ’ 物件儲存為副檔名為 .sbs 的檔案。這個物件讓你能 取得 特定的資源。
要建立特定資源,請參閱相關的物件靜態方法(例如:「SDSBSCompGraph.sNew()」)。
套件中也包含一個元資料字典(SDMetadataDict)。 你可以在這裡找到更多關於元資料🔗的資訊。
資源(SDResource)
資源(SDResource)是一種可以 被其他資源參考的 物件。
資源有多種 類型:
- 資料夾(SDResourceFolder);
- 圖形(SDGraph);
- 點陣圖(SDResourceBitmap);
- SVG 影像(SDResourceSVG);
- 字型(SDResourceFont);
- 場景(SDResourceScene);
- BSDF測量(SDResourceBSDFMeaserment);
- 光源設定檔(SDResourceLightProfile)。
資源可由靜態方法「sNew()」在以下條件下建立:
- 一個包裹;
- 一個資料夾。
一個資源可以擁有多個 屬性 (SDProperty)。
UI Manager (SDUIMgr)
UI 管理器允許 在 Substance Designer 主視窗中建立使用者介面元素 ,如 選單、 停靠 區,並允許 在使用者介面相關事件發生時註冊回調 。
此外,UI 管理器還能存取目前的活躍圖,並選擇該活躍圖。
圖形(SDGraph)
圖(SDGraph)是一個包含以下內容的物件:
- **節點(**SDNode);
- 圖形物件 (SDGraphObjects);
- 物業 (SDProperty)。
圖有四種不同類型:
- 物質圖(SDSBSCompGraph)
- 實體函數圖(SDSBSFunctionGraph)
- Substance FXMap 圖(SDSBSFxMapGraph)
圖可以有一個或多個 輸出 節點。 輸出節點代表 圖的結果 。
所有可用的圖節點都可以用 ‘getNodeDefinitions()’ 的方法檢索。
可以使用 ‘newNode()’ 的方法建立一個新節點。
可透過 ‘newInstanceNode()’ 的方法從資源(SDResource)建立一個新的 實例 節點。
Node(SDNode)
節點(SDNode)代表對物件執行的 操作 。
它可以由以下方式創造:
- 定義(SDDefinition)(參見「SDGraph.newNode()」);
- 一個 資源 (SDResource)(參見「SDGraph.newInstanceNode()」)。
一個節點可以有多種 屬性。
節點有多種 類型 :
- SDSBSCompNode:物質圖(SDSBSCompGraph)中的一個節點;
- SDSBSFunctionNode:物質函數圖(SDSBSFunctionGraph)中的一個節點;
- SDSBSFxMapNode:Substance FXMap 圖(SDSBSFxMapGraph)中的一個節點;
圖物件(SDGraphObjects)
圖物件(SDGraphObject)是一種為 圖增加額外資訊 的物件,但在 圖評估過程中未 被考慮 。
圖物件有 三種類型 :
- 釘圖 (SDGraphObjectPin)
- 留言 (SDGraphObjectComment)
- 框架 (SDGraphObjectFrame)
關於如何 建立 這些物件,請參閱靜態方法「sNew()」。
物業(SDProperty)
屬性(SDProperty)是一種描述另一個物件屬性的物件(圖、節點、資源等)。
它屬於特定 類別 (SDPropertyCategory):
- **- 輸入:分類物件的輸入屬性,通常 影響當前物件所執行的操作 ;
- 例如:在物質圖中,統一色彩節點的屬性「顏色」是輸入屬性;- 輸出:分類物件的輸出屬性。 它用來識別 物件的結果 ;** 註解:分類不影響物件操作的屬性**;* 例如:圖的「標籤」是一種註解性質,因為它不影響圖的計算。**
*該委員會包含以下 成員: Id:在其類別語境中對財產的識別;
-
類型:目前屬性所支援的類型。 有些屬性可支援 多種 類型:『int』、『float』等;
- 例如:‘sbs::add’ 節點的輸入屬性可以支援不同類型:'int’、'int2’、'int3’、'int4’、'float’、float2 、'float3’、'float4’ 等等;
-
類別:屬性所屬的類別(輸入、輸出、註解);
-
標籤:物業的標籤,僅用於展示;
-
描述:物業描述;
-
DefaultValue:預設值;
-
IsConnectable:表示是否能在此屬性上進行連線(SDConnection );
-
isReadyOnly:表示該屬性是否為唯讀。 若為真,則該數值不可**更改;
-
isVariadic:若為真,此性質將以 物件上的多個 性質表示;
-
isPrimary:表示指定的屬性是否是**控制其他屬性的主要屬性。注意: 這是針對物質 合成 節點(SDSBSCompNode)特有的)。舉例:* ‘sbs::input’ 節點的性質:SBS::input輸入註解輸出$outputsize標籤unique_filter_output(可連接)$format描述$pixelsize識別碼$pixelratio使用者資料$tiling團體$randomseed可見若位圖資源路徑用途* ‘sbs::blend’ 節點的特性:SBS::blend輸入註解輸出$outputsizeunique_filter_output(可連接)$format$pixelsize$pixelratio$tiling$randomseedsource.connector(可連接)destination.connector(可連接)opacity.connector(可連接)Opacitymult混合模式色彩混合遮罩矩形## 類型(SDType)一個型別(SDType)包含某個值 型態的資訊,例如:* Id:該類型的識別碼;
-
修飾符:可以是「*SDTypeModifier」*列舉值之一的型別修飾符:
- 汽車;
- 均勻:每次運算評估 一次 值;
- 變換:每次操作(例如:每個像素)會多次評估**該值。定義了多種類型,例如:* enums (SDTypeEnum):描述 一種列舉 類型及其所有屬性;
-
structures (SDTypeStruct):描述 具有所有屬性的結構 類型;
-
array (SDTypeArray):描述一個 陣列。
-
等等。詳見 Substance Designer 的 Python API 文件 。## Values (SDValue)**
值(SDValue )是一種封裝基底型別值的物件。
*例如: 一個「SDValueInt」物件封裝了一個「int」值;
- 一個 ‘SDValueFloat4’ 物件封裝了一個 ‘float4’ 值;
- 等等。基礎型別值通常可以用 ‘get()’ 方法取得,但這會依回傳的 'SDValue’ 類型而異。## 連線(SDConnection)連線(SDConnection)代表兩個不同 節點 兩個不同 屬性 之間的連結。內容包括:* 目標節點;
- 目標節點的目標屬性;所有 連線操作 皆在節點上執行:* 建立 新連線,請參見 ‘SDNode.newPropertyConnection()’
- 刪除 現有連線,請參見「SDNode.deletePropertyConnection()」
- 要取得 屬性的連接,請參見 ‘SDNode.getPropertyConnections()’## 模組(SDModule)模組是 一組定義與型別。它允許輕鬆檢索所有可建立節點的資訊,以及列舉和結構。內容包括:**
- - 一個在模組管理器中唯一存在的識別碼***(* Id )(SDModuleMgr);- 定義列表(SDDefinition);** 一份類型列表(SDType)。
## 定義(SDDefinition)
定義(SDDefinition)物件包含基於屬性**(如「SDNode」等)定義特定物件的資訊。**
*內容包括: Id:定義的識別碼;
- 標籤:定義的標籤;
- 說明:定義的描述;
- 屬性:所有可用屬性 類別 (SDPropertyCategory)的屬性。**