在Maya中将圆柱体添加到关节

2024-04-29 05:35:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我认为这只是一个申报问题。我想在两个关节之间约束一个圆柱体。此块代码有效,它向所有关节的每个圆柱体添加了一个权重为0.5的约束。我想在这件事上增加一些限制: 从接头1和2上拆下气缸1 将气缸2从接头2和3上拆下 将油缸3从接头3和4上拆下

import maya.cmds as cmds
import math as mt

# CREATE THE CYLINDER ON JOINTS
cmds.joint (p = (-5, 0, 0))
cmds.joint (p = (-2, 0, -2))
cmds.joint (p = (10, 0, -6))
cmds.joint (p = (10, 0, 3))
# GET THE RELATIVES FOR THE JOINT CHAIN
sel = cmds.ls (selection = True)
jnt_Hi = cmds.listRelatives (sel, allDescendents = True)
jnt_Hi.extend (sel)

for jnt in jnt_Hi:
    pc = cmds.polyCylinder (name = (jnt + '_cyl'), radius = 1, height = 2, subdivisionsX 
    = 20, subdivisionsY = 1,subdivisionsZ = 1, axis = (0, 1, 0), rcp = 0, createUVs = 3, 
    constructionHistory = 1)
     # CONSTRAINT THE CYLINDER TO THE JOINT
    cmds.pointConstraint (jnt_Hi, pc,
                          weight = 0.5,
                          name = (jnt[0] + 'point_1'))
    cmds.pointConstraint (jnt_Hi, pc,
                          weight = 0.5,
                          name = (jnt[0] + 'point_2'))

Tags: thenameimportashipccmds关节
1条回答
网友
1楼 · 发布于 2024-04-29 05:35:12

在循环中:

for jnt in jnt_Hi:

您可以对关节名称进行迭代。但是,稍后将关节名称引用为jnt[0],稍后将关节名称引用为j1[0]和j2[0]。因为jnt、j1和j2是字符串而不是字符串数组,所以您总是会得到不存在的第一个字母“j”

相关问题 更多 >