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
って感じで。今度からこれで行こう。