python - 如何通过bpy.types获取具体的修饰符属性信息?

标签 python blender modifier

例如我得到:

bpy.types.Modifier.bl_rna.properties['type'].enum_items[12]

( bool 修饰符)

bool 修改器有一个名为“object”的属性,用于实际的 bool 网格。 如何快速检查它是否确实获得了可用的“object”属性(通过 bpy.types)?

我想按修饰符的属性过滤修饰符,例如:

[modifier.identifier for modifier in bpy.types.Modifier.bl_rna.properties['type'].enum_items if modifier.object != NULL]

显然这行不通,添加它只是为了让您更好地了解我正在尝试做什么。

最佳答案

bpy.types包含类定义。 bpy.data包含用于定义 blender 场景中的对象的实例。 bpy.context可以轻松访问多个兴趣点,而不是直接使用 bpy.data,例如事件场景和对象以及选定和可见对象的列表。

作为类定义,bpy.types 只能告诉您每种类型可以包含哪些属性,这些属性可能是修改后的。例如,插件可以使用 bpy.props要向现有数据类型添加属性,这是在 bpy.types 中的类定义上完成的。

bpy.types.Modifier 的每个子类有其自己的属性,BooleanModifier有一个对象属性,这是将与修改器父网格的网格交互的第二个对象。

要访问项目特定实例的数据,您需要在 bpy.databpy.context 中查找相关数据。

例如,如果一个立方体有一个 bool 修改器将其网格与球体网格结合起来,您可以在 python console 中得到以下内容: .

>>> bpy.data.objects['Cube'].modifiers['Boolean'].object
bpy.data.objects['Sphere']
>>> bpy.data.objects['Cube'].modifiers['Boolean'].operation
'UNION'

关于python - 如何通过bpy.types获取具体的修饰符属性信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57364245/

相关文章:

python - 无法弄清楚如何安装Python包decode.py

python - 这个矩阵在什么空间?

java - 我需要在 3 维空间中绘制一个简单的动画箭头 vector

java - 我需要一个可以从我的 API 中的任何地方访问但不能从使用 API 的应用程序访问的 java 方法

python - Mechanize ,python : Read a specific line from a site to reduce read.() 长页时间

python - 使用Python登录谷歌账号进入网站

c++ - 从 C++ 中的 Blender 获取信息(DeviceContext、RenderContext、Scene-Informations,...)

ruby - 你可以在rescue修饰符中放置多个赋值吗?

iphone - 静态的 Objective-C 修饰符?

c# - Python 序列化 c# 反序列化