Hi Guys, I'm trying to create a custom MPX node, which is doing some calculation based on a bone's scale in a hierarchy. So far my compute code is working properly. I want to run the compute block always if the any bone in the hierarchy got new world matrix (either by pos, rot or scale change). But what I'm getting here, worldmatrix attribute of a node not getting changed always untill you querry from outside (eg. through MEL). Below is my test code....I have a input matrix plug which connected to worlMatrix of a tranformNode. I expect when I'm scaling or moving position of the transform node...compute block of my node should get called...but not getting desired result...am I missing somthing?
Thanks Susanta class ChainLengthCalc(omx.MPxNode): kPluginNodeTypeName = "ChainLengthCalc" kPluginNodeTypeId = om.MTypeId(0xd1a9257) def __init__(self): omx.MPxNode.__init__(self) def compute(self,plug,dataBlock): if plug == self.currentChainLength: print "hello" return om.MStatus.kSuccess; return m.MStatus.kUnknownParameter; @classmethod def creator(cls): return omx.asMPxPtr( cls() ) @classmethod def initialize(cls): unitAttr = om.MFnUnitAttribute() cls.currentChainLength = \ unitAttr.create("currentChainLength", "ccl", om.MFnUnitAttribute.kDistance, 0) unitAttr.setKeyable(False) unitAttr.setWritable(False) cls.addAttribute(cls.currentChainLength) mAttr = om.MFnMatrixAttribute() cls.drivingBoneMatrixAttr = mAttr.create( "drivingBoneMatrix", "dbm") mAttr.setStorable(True) mAttr.setWritable(True) cls.addAttribute(cls.drivingBoneMatrixAttr) cls.attributeAffects(cls.drivingBoneMatrixAttr, cls.currentChainLength) -- http://groups.google.com/group/python_inside_maya