如何在Blender中有效地更改多个对象上的相同参数?

cfi*_*cfi 8 attributes object blender python-3.x blender-2.67

从单个立方体开始,我更改了一些属性(材质,颜色,反射属性),然后将对象复制到十二个立方体中,将它们放置在场景中.渲染后,我想改变它们的颜色.我该如何有效地做到这一点?

我已经找到了多种方法:

  1. 在对象模式下,选择所有对象(B然后选择矩形),连接网格ctrl-j,更改颜色,tab进入编辑模式,P再次分离对象.这是非常可能的,因为我的所有物体的网格都没有触及.基础文档
  2. 有人在这里编写了一个Python脚本来做类似的事情

数字1容易出错,而且对于常规使用来说太单调乏味.2号更专业,更糟糕.只选择多个对象并更改值不起作用,因为属性选择仅适用于仅作为选定对象之一的活动对象.

由于这是一个常见的用例,我可能错过了简单的方法.它是什么?

小智 11

如果您只想更改多个对象的一个​​参数,请单击控件(例如文本字段)并选择复制到选中.

激活3D视图:复制用户首选项中的属性菜单, 如果要复制修饰符等,请使用ctrl + c调用它

http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/3D_interaction/Copy_Attributes_Menu


cfi*_*cfi 10

虽然我没有找到更受欢迎的简单按钮或gui解决方案,但结果发现在Blender中破解自己的Python代码比人们想象的要容易.

我正在使用的立方体更像是多米诺骨牌.随后所有看起来像多米诺骨牌的对象都有一个以"Domino"开头的名字.根据名称更改场景中的所有对象非常容易:

for o in bpy.data.objects:
    if not "Domino" in o.name:
        continue
    o.rigid_body.mass = 500
    o.rigid_body.friction = 0.4
    o.rigid_body.restitution = 0.95
    o.rigid_body.angular_damping = 0.2
    o.rigid_body.linear_damping = 0.05
Run Code Online (Sandbox Code Playgroud)

要使用此代码,我只需打开一个新窗口(在任何现有的Blender窗口上拖动右上角的小三角形图标),将窗口类型更改为"Python Console"(左下窗口类型选择图标),然后将上面的代码粘贴到它.

可以在外部文本编辑器中编辑代码.或者,也可以在Blender中打开文本编辑器窗口.保存场景后,Python控制台和内部文本编辑器都存储在3D模型中,这使得工作流程非常好.

找到正确的对象名称 - 例如bpy.data.objects["Domino.033"].rigid_body.mass非常简单,因为Blender在使用鼠标指针悬停在任何表单输入字段上时会显示这些名称.如果已经识别出一个对象,则使用Python的dir()函数来获取对象的所有已知方法和属性的列表.可能有多个gui允许修改或使用.

这比我想象的容易得多.它可能解释了为什么人们可以想到一些没有gui元素的复杂操作 - 它在代码中处理起来要容易得多.我可能会使用它来复制和沿线,圆,螺旋定位对象,而不是使用Blender自己的数组属性.它将允许以后更容易调整位置.


use*_*272 5

这里有一个 Blender 3D 提示:要一次处理一堆对象,请启用 Blender 附带但默认情况下未启用的“复制属性”插件:打开“用户首选项”,单击“附加组件”,然后搜索“复制属性”找到“3D视图:复制属性菜单”插件。启用插件然后关闭首选项。

使用方法:在3D视图中,选择一个或多个TARGET对象,最后选择SOURCE对象。按键盘上的“Ctrl-C”即可查看您可以复制的每个属性类型的菜单。单击其中一个(例如比例),您将看到源对象的比例将应用于之前选择的对象。

这是手动条目http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/3D_interaction/Copy_Attributes_Menu

这是为了回应:

http://obasandbox.wordpress.com/2011/10/23/cg-blender-setting-properties-on-multiple-objects/