Python maya.OpenMaya.MFnNumericAttribute() Examples

The following are 9 code examples of maya.OpenMaya.MFnNumericAttribute(). You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may also want to check out all available functions/classes of the module maya.OpenMaya , or try the search function .
Example #1
Source File: randomizeUVDeformer.py    From anima with MIT License 6 votes vote down vote up
def nodeInitializer():
    """initializes the node
    """
    nAttr = OpenMaya.MFnNumericAttribute()

    # input position
    RandomizeDeformer.aMaxOffset = nAttr.create(
        "maxOffset", "mo", OpenMaya.MFnNumericData.kInt, 4
    )
    nAttr.setMin(1)
    nAttr.setKeyable(True)
    nAttr.setWritable(True)
    nAttr.setReadable(True)
    nAttr.setStorable(True)

    RandomizeDeformer.addAttribute(RandomizeDeformer.aMaxOffset)
    RandomizeDeformer.attributeAffects(
        RandomizeDeformer.aMaxOffset,
        OpenMayaMPx.cvar.MPxDeformerNode_outputGeom
    )

    return True 
Example #2
Source File: oyTrajectoryDrawer.py    From anima with MIT License 6 votes vote down vote up
def nodeInitializer():
    '''initializer
    '''
    # create the size attr
    uAttrFn = OpenMaya.MFnUnitAttribute()
    oyTrajectoryDrawer.aSize = uAttrFn.create( "size", "in", OpenMaya.MFnUnitAttribute.kDistance )
    uAttrFn.setDefault(1.0)
    oyTrajectoryDrawer.addAttribute( oyTrajectoryDrawer.aSize )
    
    # create the trajectory positions attr
    nAttrFn = OpenMaya.MFnNumericAttribute()
    tAttrFn = OpenMaya.MFnTypedAttribute()
    mAttrFn = OpenMaya.MFnMessageAttribute()
    
    defaultVectorArray = OpenMaya.MVectorArray()
    vectorArrayDataFn = OpenMaya.MFnVectorArrayData()
    vectorArrayDataFn.create( defaultVectorArray )
    
    oyTrajectoryDrawer.aTPos = tAttrFn.create( "trajectoryPosition", "tp", OpenMaya.MFnData.kVectorArray, vectorArrayDataFn.object() )
    
    tAttrFn.setWritable(True)
    tAttrFn.setStorable(True)
    
    oyTrajectoryDrawer.addAttribute( oyTrajectoryDrawer.aTPos ) 
Example #3
Source File: characterRoot.py    From AdvancedPythonForMaya with GNU General Public License v3.0 6 votes vote down vote up
def initialize():
        # First lets add the version number attribute so we can easily query the rig version number
        nAttr = om.MFnNumericAttribute()
        CharacterRoot.version = nAttr.create('version', 'ver', om.MFnNumericData.kInt, 0)
        nAttr.setStorable(True)

        # Then lets store the author of the rig as meta data as well.
        # Strings are a generic typed attribute
        tAttr = om.MFnTypedAttribute()
        # To create the default value we must create it from MFnStringData
        sData = om.MFnStringData()
        defaultValue = sData.create('Dhruv Govil')
        # Finally we make our attirbute
        CharacterRoot.author = tAttr.create('author', 'a', om.MFnData.kString, defaultValue)

        # Then lets add them to our node
        CharacterRoot.addAttribute(CharacterRoot.version)
        CharacterRoot.addAttribute(CharacterRoot.author) 
Example #4
Source File: pushDeformer.py    From AdvancedPythonForMaya with GNU General Public License v3.0 6 votes vote down vote up
def initialize():
        nAttr = om.MFnNumericAttribute()

        PushDeformer.push = nAttr.create('push', 'p', om.MFnNumericData.kFloat, 0.0)
        nAttr.setKeyable(True)
        nAttr.setStorable(True)
        nAttr.setChannelBox(True)

        PushDeformer.addAttribute(PushDeformer.push)
        PushDeformer.attributeAffects(PushDeformer.push, outputGeomAttr)

        # We also want to make our node paintable
        cmds.makePaintable(
            PushDeformer.name,
            'weights',
            attrType='multiFloat',
            shapeMode='deformer'
        ) 
Example #5
Source File: greenCageDeformer.py    From maya_greenCageDeformer with MIT License 6 votes vote down vote up
def initialize(cls):
        fnTyped = api1.MFnTypedAttribute()
        fnNumeric = api1.MFnNumericAttribute()

        cls.aInCage = fnTyped.create('inCage', 'ic', api1.MFnData.kMesh)
        fnTyped.setStorable(False)
        fnTyped.setCached(False)
        cls.addAttribute(cls.aInCage)

        cls.aBaseCage = fnTyped.create('baseCage', 'bc', api1.MFnData.kMesh)
        cls.addAttribute(cls.aBaseCage)

        cls.aEnvelope = _deformerAttr('envelope')
        cls.aInput = _deformerAttr('input')
        cls.aOutputGeom = _deformerAttr('outputGeom')
        cls.attributeAffects(cls.aInCage, cls.aOutputGeom)
        cls.attributeAffects(cls.aBaseCage, cls.aOutputGeom) 
Example #6
Source File: instanceAlongCurve.py    From instanceAlongCurve with MIT License 5 votes vote down vote up
def addCompoundVector3Attribute(cls, compoundAttribute, attributeName, unitType, arrayAttr, inputAttr, defaultValue):

        # Schematic view of compound attribute:
        # compoundAttribute[?]
        #   compoundAttributeX
        #   compoundAttributeY
        #   compoundAttributeZ

        unitAttr = OpenMaya.MFnUnitAttribute()
        nAttr = OpenMaya.MFnNumericAttribute()

        compoundAttribute.x = unitAttr.create(attributeName + "X", attributeName + "X", unitType, defaultValue.x)
        unitAttr.setWritable( inputAttr )
        cls.addAttribute(compoundAttribute.x)

        compoundAttribute.y = unitAttr.create(attributeName + "Y", attributeName + "Y", unitType, defaultValue.y)
        unitAttr.setWritable( inputAttr )
        cls.addAttribute(compoundAttribute.y)

        compoundAttribute.z = unitAttr.create(attributeName + "Z", attributeName + "Z", unitType, defaultValue.z)
        unitAttr.setWritable( inputAttr )
        cls.addAttribute(compoundAttribute.z)

        # Output compound
        compoundAttribute.compound = nAttr.create(attributeName, attributeName,
                                     compoundAttribute.x, compoundAttribute.y, compoundAttribute.z)
        nAttr.setWritable( inputAttr )
        nAttr.setArray( arrayAttr )
        nAttr.setUsesArrayDataBuilder( arrayAttr )
        nAttr.setDisconnectBehavior(OpenMaya.MFnAttribute.kDelete)
        cls.addAttribute(compoundAttribute.compound) 
Example #7
Source File: instanceAlongCurve.py    From instanceAlongCurve with MIT License 5 votes vote down vote up
def addRampAttributes(cls, rampAttributes, attributeName, unitType, defaultAxisValue):

        # Not a compound attribute, just adds them all to the node
        
        nAttr = OpenMaya.MFnNumericAttribute()

        rampAttributes.ramp = OpenMaya.MRampAttribute.createCurveRamp(attributeName + "Ramp", attributeName + "Ramp")
        cls.addAttribute(rampAttributes.ramp)

        rampAttributes.rampOffset = nAttr.create(attributeName + "RampOffset", attributeName + "RampOffset", OpenMaya.MFnNumericData.kFloat, 0.0)
        nAttr.setKeyable( True )
        cls.addAttribute( rampAttributes.rampOffset )

        rampAttributes.rampAmplitude = nAttr.create(attributeName + "RampAmplitude", attributeName + "RampAmplitude", OpenMaya.MFnNumericData.kFloat, 0.0)
        nAttr.setKeyable( True )
        cls.addAttribute( rampAttributes.rampAmplitude )

        rampAttributes.rampRepeat = nAttr.create(attributeName + "RampRepeat", attributeName + "RampRepeat", OpenMaya.MFnNumericData.kFloat, 1.0)
        nAttr.setKeyable( True )
        cls.addAttribute( rampAttributes.rampRepeat )

        rampAttributes.rampRandomAmplitude = nAttr.create(attributeName + "RampRandomAmplitude", attributeName + "RampRandomAmplitude", OpenMaya.MFnNumericData.kFloat, 0.0)
        nAttr.setMin(0.0)
        nAttr.setSoftMax(1.0)
        nAttr.setKeyable( True )
        cls.addAttribute( rampAttributes.rampRandomAmplitude )

        cls.addCompoundVector3Attribute(rampAttributes.rampAxis, attributeName + "RampAxis", unitType, False, True, defaultAxisValue) 
Example #8
Source File: instanceAlongCurve.py    From instanceAlongCurve with MIT License 5 votes vote down vote up
def addCurveAxisHandleAttribute(cls, curveAxisHandleAttr, attributeName, defaultAxisValue):

        # Schematic view of compound attribute:
        # curveAxisHandle[]
        #   curveAxisHandleParameter
        #   curveAxisHandleAngle

        nAttr = OpenMaya.MFnNumericAttribute()
        cmpAttr = OpenMaya.MFnCompoundAttribute()

        curveAxisHandleAttr.parameter = nAttr.create(attributeName + "Parameter", attributeName + "Parameter", OpenMaya.MFnNumericData.kDouble, 0.0)
        nAttr.setWritable( True )
        cls.addAttribute(curveAxisHandleAttr.parameter)

        curveAxisHandleAttr.angle = nAttr.create(attributeName + "Angle", attributeName + "Angle", OpenMaya.MFnNumericData.kDouble, 0.0)
        nAttr.setWritable( True )
        cls.addAttribute(curveAxisHandleAttr.angle)

        # cls.addCompoundVector3Attribute(curveAxisHandleAttr.axis, attributeName + "Axis", OpenMaya.MFnUnitAttribute.kAngle, False, True, defaultAxisValue)

        # Build compound array attribute
        curveAxisHandleAttr.compound = cmpAttr.create(attributeName, attributeName)
        cmpAttr.addChild(curveAxisHandleAttr.parameter)
        cmpAttr.addChild(curveAxisHandleAttr.angle)
        cmpAttr.setWritable( True )
        cmpAttr.setArray( True )
        cmpAttr.setUsesArrayDataBuilder( True )

        cls.addAttribute(curveAxisHandleAttr.compound) 
Example #9
Source File: shakeNode.py    From tutorials with MIT License 4 votes vote down vote up
def nodeInitializer():

	nAttr = OpenMaya.MFnNumericAttribute()
	uAttr = OpenMaya.MFnUnitAttribute()

	# input

	ShakeNode.amp = nAttr.create( "amplitude", "amp", OpenMaya.MFnNumericData.k3Float, 1.0 )
	nAttr.setStorable(True)
	nAttr.setKeyable(True)

	ShakeNode.freq = nAttr.create( "frequency", "freq", OpenMaya.MFnNumericData.k3Float, 1.0 )
	nAttr.setStorable(True)
	nAttr.setKeyable(True)

	ShakeNode.seed = nAttr.create( "randomSeed", "seed", OpenMaya.MFnNumericData.kLong, 1000 )
	nAttr.setStorable(True)
	nAttr.setKeyable(False)
	nAttr.setMin(0)

	ShakeNode.octaves = nAttr.create( "octaves", "oct", OpenMaya.MFnNumericData.kInt, 3 )
	nAttr.setStorable(True)
	nAttr.setKeyable(True)
	nAttr.setMin(2)
	
	# the time attribute should be connected to the default "time1" node
	# or any time node to provide a changing time value
	ShakeNode.time = uAttr.create( "currentTime", "time" , OpenMaya.MFnUnitAttribute.kTime,  0.0 )
	uAttr.setHidden(True)
	nAttr.setStorable(False)
		
	# output
	ShakeNode.output = nAttr.create( "output", "out", OpenMaya.MFnNumericData.k3Float, 0.0 )
	nAttr.setStorable(False)
	nAttr.setWritable(False)
	nAttr.setHidden(False)


	# add attributes to the node
	ShakeNode.addAttribute( ShakeNode.amp )
	ShakeNode.addAttribute( ShakeNode.freq )
	ShakeNode.addAttribute( ShakeNode.seed )
	ShakeNode.addAttribute( ShakeNode.time )
	ShakeNode.addAttribute( ShakeNode.octaves )
	ShakeNode.addAttribute( ShakeNode.output )

	# when one attribute is changed, it will cause
	# the other to become "dirty", meaning that its value
	# should be computed again
	ShakeNode.attributeAffects( ShakeNode.amp, ShakeNode.output )
	ShakeNode.attributeAffects( ShakeNode.freq, ShakeNode.output )
	ShakeNode.attributeAffects( ShakeNode.seed, ShakeNode.output )
	ShakeNode.attributeAffects( ShakeNode.octaves, ShakeNode.output )
	ShakeNode.attributeAffects( ShakeNode.time, ShakeNode.output )
	


# initialize the script plug-in