15

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

我已经找到了多种方法:

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

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

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

4

4 回答 4

26

如果您只想更改多个对象的一个​​参数 RMB 单击控件(例如文本字段)并选择Copy to selected

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

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

于 2013-09-20T02:49:44.487 回答
13

虽然我没有找到更受欢迎的简单按钮或 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

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

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

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

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

于 2013-05-21T12:09:28.580 回答
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/

于 2013-11-03T14:22:17.863 回答
1

我很好奇为什么你不能只调整材质。Blender 使重用对象的元素变得非常容易。您可以有 100 个对象共享一个网格。您可以拥有 100 个共享一组 4 种材质的网格。

我想象一组多米诺骨牌将有 21 个网格(对于所有 1-6 x 1-6 组合)。这些网格将有 2 或 3 种材料(一种用于点子,一种或两种以上用于主体)。如果正确链接,您可以通过更改所有网格使用的一种材料来更改所有点的颜色。

使用 python 批量修改对象非常强大,适用于很多问题,但有时解决方案更容易。

于 2013-06-13T15:48:24.950 回答