You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Maya Python两节点多属性自动连接代码循环报错问题求助

参考图示

问题原因
  • 数据类型使用错误:你将left_LIST定义为字典类型,但是后续循环时用数字索引left_LIST[i]取值,字典不支持数字下标访问,直接触发报错。你实际只需要存储null1上的自定义属性名列表,不需要保存属性值,不需要用字典。
  • 节点名大小写不匹配:你查询别名时用的节点名是blendShape1(S为大写),执行连接时写的节点名是blendshape1(s为小写),Maya节点名大小写敏感,会触发找不到节点的报错。
  • aliasAttr返回值结构不匹配:cmds.aliasAttr的查询结果是「自定义别名、原属性名」交替排列的列表,直接按索引取会错位,需要提取偶数位的元素才是你需要的blendShape目标属性名。
修正后代码
import maya.cmds as cmds

# 提取null1上的可关键帧自定义属性名列表
left_attr_list = cmds.listAttr('null1', k=True, ud=True) or []
# 提取blendShape1的别名列表,按步长2取偶数位元素即为自定义目标别名
right_alias_raw = cmds.aliasAttr('blendShape1', q=True) or []
right_attr_list = right_alias_raw[::2]

# 校验属性数量一致后批量连接
if len(left_attr_list) == len(right_attr_list):
    for left_attr, right_attr in zip(left_attr_list, right_attr_list):
        cmds.connectAttr(f'null1.{left_attr}', f'blendShape1.{right_attr}')
else:
    print(f"属性数量不匹配:左侧{len(left_attr_list)}个,右侧{len(right_attr_list)}个")

内容的提问来源于stack exchange,提问作者Stathis Nikou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 00:54:06