【SubstanceDesigner】Pythonでテクスチャを出力
shamimatsu
三味松ブログ
バージョン2020 1.12を使用
サブスタンスデザイナーはpythonが使えるという事で検索しましたが現状だとほとんど情報が出てこなかったため、些細な事でも良いので使い方を残していこうと思いました。
import sd
from sd.api.sdbasetypes import float2, float4
from sd.api.sdvaluefloat4 import SDValueFloat4
cxt = sd.getContext()
app = cxt.getSDApplication()
UImgr = app.getQtForPythonUIMgr()
#現在のグラフを取得
graph = UImgr.getCurrentGraph()
#均一カラーを色を変更して4つ配置
col_1 = graph.newNode('sbs::compositing::uniform')
col_1.setInputPropertyValueFromId('outputcolor',SDValueFloat4.sNew(float4(1,0,0,1)))
col_1.setPosition(float2(0, 0))
col_2 = graph.newNode('sbs::compositing::uniform')
col_2.setInputPropertyValueFromId('outputcolor',SDValueFloat4.sNew(float4(1,1,0,1)))
col_2.setPosition(float2(150, 0))
col_3 = graph.newNode('sbs::compositing::uniform')
col_3.setInputPropertyValueFromId('outputcolor',SDValueFloat4.sNew(float4(0,1,0,1)))
col_3.setPosition(float2(0, 150))
col_4 = graph.newNode('sbs::compositing::uniform')
col_4.setInputPropertyValueFromId('outputcolor',SDValueFloat4.sNew(float4(0,0,0,1)))
col_4.setPosition(float2(150, 150))
ノードを複数同時に読み込むと同じ位置に重なって作成されしまうため、ノードを移動させるためには setPosition を使いました。
float4(0,0,0,1)の数値を変更すれば出したい色・透明度を指定できます。
参考サイト 説明は中国語
https://zhuanlan.zhihu.com/p/78296429