Python

【SubstanceDesigner】Pythonでノードを一括配置・値を変更

shamimatsu

バージョン2020 1.12を使用
サブスタンスデザイナーはpythonが使えるという事で検索しましたが現状だとほとんど情報が出てこなかったため、些細な事でも良いので使い方を残していこうと思いました。

均一カラーを色変更して4つ配置

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

ABOUT ME
shamimatsu
shamimatsu
3DCGデザイナー
ながらくゲーム業界で2D、3DCGデザイナーとして働いてきましたが、新しい業界に挑戦中です。 ブログのデザインをリニューアル中のため、見づらい箇所もあるかもしれませんが少しづつ修正していきます。
記事URLをコピーしました