关于groom毛发attributes
bpy.context.active_object.type
反馈 --> 'CURVE'
在 Blender 里,bpy.context.active_object.type
返回 'CURVE'
通常代表该对象是传统的曲线对象,而 attributes
属性是 Blender 3.0 及更高版本中新增的 bpy.types.Curves
(毛发曲线对象)才有的。所以 bpy.context.active_object.type
返回 'CURVE'
并不意味着这个对象就是 bpy.types.Curves
类型,它可能是传统的曲线对象,这类对象没有 attributes
属性。
import bpyobj = bpy.context.active_objectif isinstance(obj.data, bpy.types.Curves):print("当前激活对象是毛发曲线对象(bpy.types.Curves)")attributes = obj.data.attributesprint(attributes)
else:print("当前激活对象不是毛发曲线对象,请选择一个毛发曲线对象。")
float2
类型的数据(即 groom_root_uv
属性对应的数据)存储在 obj.data.attributes
里。通过 att_groom_root_uv
属性名能够找到对应的属性,然后再获取其值。
在 Blender 里,普通曲线(bpy.types.Curve
)和毛发曲线对象(bpy.types.Curves
)是不同的类型,并没有直接的方法能把普通曲线转换为毛发曲线对象。不过,你可以通过重新创建毛发曲线对象并且把普通曲线的相关数据复制过去来达到类似的效果。