我在Blender中有关于python脚本的问题,如果有人能给我至少一些概念性的指导方针,我真的很感激:
基本上我有大约100个平面(简单的原始平面),每个平面都有自己的材质,每个材质都有自己的透明贴图。
我需要一种方法将每个平面的各个枢轴搭扣到不透明的部位。即如果有办法通过python语言告诉下面的混合器 - “嘿,遍历这些平面中的每一个,并为每个平面执行以下操作 - 将3D光标捕捉到平面的不透明部分(这没关系确切地说,只要它在平面的不透明部分内,然后将平面的枢轴点指向3D光标“。
当然我不希望有人为我写一个完整的算法,我只是想要一点帮助和推动正确的方向,因为我有使用python的经验,但没有使用blender:/
任何帮助都将不胜感激。
答案 0 :(得分:0)
您可以在blender's python api here找到文档。
在blender的image class中,您可以访问image.pixels
处的像素数据作为浮点数组,每个像素4个浮点数(我认为是RGBA)。 image.size[0]
是高度为image.size[1]
的宽度。
鉴于bpy.data.objects['Plane'].bound_box
是定义平面外极点的[8] [3]点阵列,您可以在平面上找到像素位置的点,以获得原点的目标点。您还会发现bpy.data.objects['Plane'].matrix_world
可用于将对象坐标转换为全局。
bpy.context.scene.cursor_location = Vector((x,y,z))
会将光标移动到您想要的位置。
bpy.ops.object.origin_set(type='ORIGIN_CURSOR')
会将活动对象的原点设置为光标。请注意,这适用于活动对象,因此您需要随时更改选择。