概要
詳細
- PythonでBlenderのオブジェクトに色を付ける方法が最初分からなかった。面倒くさいが、結局は違う色は違うMaterialクラスのインスタンスという事みたい。色別のMaterialのインスタンスを作ってオブジェクトに付けるしかない。Materialを作るには bpy.data.materials.new("Material_name")、色を定義するにはMaterialのクラスメソッドdiffuse_color=(R,G,B, inf)、オブジェクトに付けるには bpy.context.object.data.materials.appendでいいみたい。
- Materialクラスの色関係クラスメソッドは他にもあるが、イマイチ違いがわからないのでとりあえずdiffuse_colorを使っている。
- 次のコードで、円柱状に立方体を配置しランダムに色をつけられる
import bpy
import math
import random
matNr = 0
for z in range(0,20,5):
for d in range(0,360, 20):
x = 10*math.cos(math.radians(d))
y = 10*math.sin(math.radians(d))
lo = (x,y,z)
ro = (0,0,math.radians(d))
bpy.ops.mesh.primitive_cube_add(location=lo, rotation=ro)
matName = "Material.{:03}".format(matNr)
matNr += 1
m = bpy.data.materials.new(matName)
m.diffuse_color = (random.random(),random.random(),random.random(),1)
bpy.context.object.data.materials.append(m)
docs.blender.org