Maya 2020原生节点类枚举实现及整数切换输出需求咨询
Maya 2020 原生节点实现枚举式数值切换功能
直接使用Maya原生的Choice节点就能实现需求,它专门用于根据选择器值切换对应输入的输出,完全匹配你要的枚举式逻辑:
操作步骤
- 创建Choice节点:在节点编辑器中创建
Choice节点,或执行命令createNode choice。 - 配置输入数值:
- 给Choice节点的
input数组属性添加对应数量的元素(示例中需3个:input[0]、input[1]、input[2])。 - 分别为每个
input元素赋值:input[0]=1、input[1]=5、input[2]=3。
- 给Choice节点的
- 设置切换控制:
- 将整数类型的switch属性(可手动创建属性或用现有节点属性)连接到Choice节点的
selector属性。selector的取值直接对应输入数组的索引:0对应第一个输入,1对应第二个,以此类推。
- 将整数类型的switch属性(可手动创建属性或用现有节点属性)连接到Choice节点的
- 获取结果:
- Choice节点的
output属性会自动输出selector值对应的输入数值,比如selector=0时输出1,selector=1时输出5。
- Choice节点的
脚本批量配置示例
如果需要快速批量设置,可使用以下代码:
MEL命令
// 创建Choice节点并设置参数 string $choice = `createNode choice`; setAttr ($choice + ".input[0]") 1; setAttr ($choice + ".input[1]") 5; setAttr ($choice + ".input[2]") 3; // 设置切换值为1,输出5 setAttr ($choice + ".selector") 1; // 查看输出值 getAttr ($choice + ".output");
Python脚本
import maya.cmds as cmds # 创建Choice节点 choice_node = cmds.createNode("choice") # 批量设置输入数值 input_vals = [1, 5, 3] for idx, val in enumerate(input_vals): cmds.setAttr(f"{choice_node}.input[{idx}]", val) # 设置切换值为2,输出3 cmds.setAttr(f"{choice_node}.selector", 2) # 获取并打印输出 print(cmds.getAttr(f"{choice_node}.output"))
内容的提问来源于stack exchange,提问作者MyHornCanPierceTheSky
相关产品推荐
相关产品推荐

