如何在Maya的graph editor中使用Python获取选中关键帧对应属性
实现方案
以下是可直接运行的实现代码,可精准获取Graph Editor中选中关键帧对应的属性:
import pymel.core as pm # 查询所有选中关键帧对应的属性全名(格式为 节点名.属性名) selected_key_attrs = pm.keyframe(query=True, selected=True, name=True) # 去重处理,避免同一属性下多个选中关键帧重复输出 unique_attrs = list(set(selected_key_attrs)) for full_attr in unique_attrs: # 拆分获取短属性名,不需要可直接打印full_attr获取完整属性路径 attr_name = full_attr.split(".")[-1] print(f"选中关键帧对应属性:{attr_name},完整路径:{full_attr}")
原代码问题说明
- 你之前使用的
pm.selectionConnection('graphEditor1FromOutliner', ...)获取的是Graph Editor左侧大纲面板中选中的属性,不是曲线视图内选中关键帧对应的属性,因此会返回所有大纲选中的属性结果。 - 直接使用
keyframe命令的selected参数即可直接匹配选中关键帧的所属属性,是实现该需求最简便的方法。
扩展说明
如果需要同时获取选中关键帧的时间、数值信息,可以调整参数获取:
# 同时获取选中关键帧的时间、数值、所属属性 selected_keys = pm.keyframe(q=True, selected=True, timeChange=True, valueChange=True, name=True) # 按 [属性名, 时间, 值] 分组返回 for i in range(0, len(selected_keys), 3): attr = selected_keys[i] time = selected_keys[i+1] value = selected_keys[i+2] print(f"属性:{attr},时间:{time},数值:{value}")
内容的提问来源于stack exchange,提问作者Josh
相关产品推荐
相关产品推荐

