def _settingDrawStyle(self, bones, jointNames): for i in range(len(bones)): visible = 0 if bones[i].getVisibleFlag() else 2 visible = 2 if bones[i].getIkFlag() else visible maya.cmds.setAttr("%s.drawStyle" % jointNames[i], visible) util.setBoolean(jointNames[i], "enableDraw", bones[i].getVisibleFlag()) util.setBoolean(jointNames[i], "enableIK", bones[i].getIkFlag())
def _rectifyJointOrientation(self, bones, jointNames): for i in range(len(bones)): flag = bones[i].getLocalCoordinateFlag() if flag: xAxis = bones[i].local_x_vector zAxis = bones[i].local_z_vector yAxis = self._crossProduct(zAxis, xAxis) self._setJointOrient(self.constPI, jointNames[i], xAxis, yAxis, zAxis) util.setBoolean(jointNames[i], "enableLocalAxis", flag)
def _rectifyAxisLimt(self, bones, jointNames): for i in range(len(bones)): flag = bones[i].getFixedAxisFlag() if flag: xAxis = bones[i].fixed_axis zAxis = self._crossProduct([0.0, 1.0, 0.0], xAxis) yAxis = self._crossProduct(zAxis, xAxis) self._setJointOrient(self.constPI, jointNames[i], xAxis, yAxis, zAxis) util.setBoolean(jointNames[i], "enableFixedAxis", flag)
def generate(self, jointNames): bones = self.mmdData.bones for i in range(len(bones)): establishFlag = False if bones[i].getExternalRotationFlag(): self._makeExpression(bones, jointNames, i, "rotate") establishFlag = True if bones[i].getExternalTranslationFlag(): self._makeExpression(bones, jointNames, i, "translate") establishFlag = True util.setFloat(jointNames[i], "establishFactor", bones[i].effect_factor) eIndex = bones[i].effect_index util.setString(jointNames[i], "establishParent", jointNames[eIndex]) util.setBoolean(jointNames[i], "enableEstablish", establishFlag)
def _inspectOperationFlag(self, bones, jointNames, humanIkFlag): for i in range(len(bones)): lockFlag = not humanIkFlag jointName = jointNames[i] if not bones[i].getRotatable() or not bones[i].getManipulatable(): self._lockHideAttributes(jointName, "r", lockFlag) if not bones[i].getTranslatable() or not bones[i].getManipulatable(): self._lockHideAttributes(jointName, "t", lockFlag) util.setBoolean(jointNames[i], "rotatable", bones[i].getRotatable()) util.setBoolean(jointNames[i], "translatable", bones[i].getTranslatable()) util.setBoolean(jointNames[i], "manipulatable", bones[i].getManipulatable()) if bones[i].getFixedAxisFlag(): maya.cmds.setAttr("%s.rz" % jointName, lock=lockFlag, channelBox=False, keyable=False) maya.cmds.setAttr("%s.ry" % jointName, lock=lockFlag, channelBox=False, keyable=False)
def __init__(self): self.group = maya.cmds.group(n="mmdModelGroup", w=True, em=True) util.setBoolean(self.group, "mmdModel", True)