Pythonを使ってグラフにノードを作成する方法について調べました。
Substance 3D Designerのスクリプティング情報って少ないからね
まず、基本的なお作法から。
Windowsメニューの Python Editorを開くとPython用のテキストエディタが開きますので、
そこでコードを打ち込んで実行ボタンを押すと、その場で書いたスクリプトを動かすことができます。
この方法は、少しコードを試したい、といった場合に便利な方法です。
Python基本的なところ
以下はごく基本的なところですが、現在開いているグラフを取得します。
import sd
context = sd.getContext()
app = context.getSDApplication()
ui_mgr = app.getQtForPythonUIMgr()
# 現在のグラフを取得
graph = ui_mgr.getCurrentGraph()
上部の3行部分については、Substance 3D DesignerでのPython操作では毎回書くようなほど頻度が高いもののようです。UI Managerの取得をしないと、様々な情報にアクセスが出来ないからです。
Substance 3D DesignerのPython APIは以下にファイルが入っているので、直接pyファイルを見ることが出来ます。
Substance 3D Designer Python API格納場所
均一カラーノードの作成
本題の均一カラーノードの作成は、以下のようなコードになります。
import sd
from sd.api import sdproperty, sdvaluefloat4
from sd.api.sdbasetypes import float4
context = sd.getContext()
app = context.getSDApplication()
ui_mgr = app.getQtForPythonUIMgr()
# 現在のグラフを取得
graph = ui_mgr.getCurrentGraph()
# 現在のグラフにUniformColorノードを作成
node = graph.newNode("sbs::compositing::uniform")
# 作成したノードに色のパラメータを設定
node.setInputPropertyValueFromId(
"outputcolor",
sdvaluefloat4.SDValueFloat4.sNew(float4(1, 0, 0, 1))
)
float4など数値の受け渡しが面倒な印象が強いね・・・
Pythonエディタにコードを貼り付けて実行ボタンを押すと、現在開いているグラフ内に均一カラーノードが作成されます。
インストールパス/resources/python/sd