Open1
RampColor,Wave Texture, Mappingのいじり方
blenderのscriptingモードでノードをいじる方法についてまとめておきたいと思いました。
たとえば、ColorRampをいじるとします。この場合、いじった結果はログ出力されます:
WaveTextureやMappingについても同様で、ここを見ればどういじればいいかはだいたいわかるようになっているみたいです。そうじゃないものの方が少ないかもしれない・・・。
import bpy
mat = bpy.data.materials['Material']
nodes = mat.node_tree.nodes
wav = nodes['Wave Texture']
ramp = nodes['ColorRamp']
mapp = nodes['Mapping']
# Wave Textureをいじる場合
# scale:
wav.inputs[1].default_value = 0.5
# ColorRampをいじる場合
# leftColor:
ramp.color_ramp.elements[0].color = (0.9, 0.2, 0.5, 1.0)
# leftColorPosition
ramp.color_ramp.elements[0].position = 0.1
#rightColor:
ramp.color_ramp.elements[1].color = (0.1, 0.1, 0.8, 1.0)
#Mappingをいじる場合
#Location:
for i in range(3):
mapp.inputs[1].default_value[i] = (i+1)*(i+1)
たとえばMaterialのひな型をいくつか作っておいて、それを適用する際にコピーして中身をいじって、みたいなことができるわけですね。
追記
なんか死ぬほど苦労したけど、データパスをコピーすれば一瞬でアクセスできるんですね・・
node_tree.nodes["Mapping"].inputs[1].default_value
って感じで。今度からこれで行こう。