Maya-Plugins
mnsAnnotate
=== Author: Assaf Ben Zur ===
This node is a utility node used to present value annotations in maya's viewport easily.
When needing to present any keyframed values in a playblast within maya, there isn't any maya native node to allow values display within the VP.
This node was created for this need.
All connected attributes will be displayed as a new line presenting attributes and their current values, updating in real time.
The display settings are controled within this node, where the position of the display is controlled via the custom locator created with it.
The amount of attribute display is unlimited, and multiple unlimited instances of this node can be created freely.
This is mainly used to display technicall setups.
Inputs
Long-Name Short-Name Type Description attributes attrs multi Input attributes array to display, unlimited amount. Each attribute component will be displayed as a single line. fontSize fontSize float Display Font Size. fontColor fontColor float[3] Display Font Color, RGB (0 to 1). fontTransparency fontTransparency float Font transperancy. 1 = Fully opaque, 0 = Fully tansparennt. precision precision int Numberic attribute display precision- value represents the amount of integers right to the decimal point. lineSpacing lineSpacing float Line spacing between attributes line. drawFlat drawFlat int Draw in 2D mode, regardless of the matrix position. The position is dictated by positionX and positionY attributes, relative to the viewports screen space resolution. positionX positionX double Display top-left corener X position, if drawFlat attribute is True. positionY positionY double Display top-left corener y position, if drawFlat attribute is True. nameOnlyMode nameOnlyMode int MObject mnsAnnotate::aNameMode
mnsAutoWheelDrive
=== Author: Assaf Ben Zur ===
Inputs
Long-Name Short-Name Type Description startFrame startFrame int Evaluation start frame. startFrameFromRange startFrameFromRange bool If true, take the start frame from current maya range instead of the input value given. time time time Time input.
mnsBuildTransformsCurve
=== Author: Assaf Ben Zur ===
This node builds a nurbsCurve shape, based on input transforms array.
The curve parameters are dictated by this node's attributes, and can be dynamiclly changed and even keyframed if needed.
This node also creates and offset curve shape result, to be used later as an Up-Vector for every single arbitrary point along the result main curve.
Inputs
OutputsLong-Name Short-Name Type Description globalScale globalScale float Global scale multiplier. tweakCurve tweakCurve nurbsCurve Input tweak curve shape. tweakCurveBase tweakCurveBase nurbsCurve Input tweak curve base shape. buildMode buildMode enum Build mode- EPs, CVs, Hermite, TangentedCVs, bezier. transforms transforms compound Transforms array to build the curve from. matrix matrix matrix Input matrix transform, child of transforms. If this plug is connected, offsetX value will be taken as an the offset amount. offsetBaseMatrix offsetBaseMatrix matrix Matrix to build offset vectors from degree degree int Output curve degree, 1-5. offsetX offsetX float Output offset curve X parameter. offsetY offsetY float Output offset curve Y parameter. offsetZ offsetZ float Output offset curve Z parameter. tangentDirection tangentDirection enum If build mode is on Hermite, this paremeter dictates the tangent direction. reverse reverse int Reverse output curve and offset curve. form form enum Result curve form- open or closed HermiteSteps HermiteSteps int Hermite mode steps amount. tangentLength tangentLength float Control tangent length (if present) OffsetType OffsetType enum Offset build type - world or local. buildOffsetCurve buildOffsetCurve int Initiate offset curve build. resample resample bool Resample curve before output, based on substeps paremeter. substeps substeps int resample substeps. localize localize bool In case this attribute is on, the result will be localized based on the input worldToLocal matrix. worldToLocalMatrix worldToLocalMatrix matrix In case localize attribute is on, the result will be localized based on this matrix.
Long-Name Short-Name Type Description outCurve outCurve kNurbsCurve Result curve shape. outOffsetCurve outOffsetCurve nurbsCurve Result offset curve shape. length length double Result curve length. offsetLength offsetLength double Result offset curve length.
mnsCameraGateRatio
=== Author: Assaf Ben Zur ===
A simple utility callback node to dynamiclly control and update the input camer'as display "Camera-Gate" parameters.
Inputs
Long-Name Short-Name Type Description cameraIn cameraIn message Affected camera node. gateWidth gateWidth float Cemera gate width. gateHeight gateHeight float Cemera gate height.
mnsClosestPointsOnMesh
Inputs
OutputsLong-Name Short-Name Type Description inMesh inMesh mesh Input mesh to find closest point to. inPosition inPosition compound(Array) Input position to calculate a result for. Array Attr. matrix matrix matrix Input matrix to calculate a result for. Array Attr. targetParentMatrix targetParentMatrix matrix Target parent matrix to multiply by before setting the result.
Long-Name Short-Name Type Description outPosition op vector Output position result.
mnsCompressionTensionBlend
=== Author: Assaf Ben Zur ===
Deformer.
A simple compression and tension based deformer.
This deformer will detect, display and deform a mesh
based on the difference between the current
deformed state and an input base-state (base-mesh).
The deformer contains 3 display modes:
- Compression & Tension (50% gray as base-state)
- Compression Only (black as base-state)
- Tension (black as base-state)
The deformer also conatins separate multipliers for both tension and compression.
This deformer can be used to drive corrective shapes, wrinkles, volume gain/loss and much more.
Inputs
Long-Name Short-Name Type Description baseMesh baseMesh mesh Static base mesh input. tensionTarget tensionTarget mesh Tension blend target. compressionTarget compressionTarget mesh Compression blend target. liveMode liveMode bool Live mode. Re-calculate edge lengthes on evaluation. displayMode displayMode enum Map display mode- None, compressionTension, compression, tension. compressionMultiplier compressionMultiplier float Global compression multiplier. tensionMultiplier tensionMultiplier float Global tension multiplier.
mnsCurveTweak
=== Author: Assaf Ben Zur ===
This node was created in order to achive curve modifications/tweaks, without changing its form, not it's shape at bind position.
The input and output curves will match while the base curve and tweak curve match in shape.
Once any difference between the base shape and tweak shape was detected, the difference between these curves will be projected onto the input curve.
The objective of this node is to maintain all curve attributes/data (nSpans, nCvs, form, degree) unchanged while still having the ability to tweak the curve with different parameters.
Inputs
OutputsLong-Name Short-Name Type Description inputCurve inputCurve kNurbsCurve Input curve to tweak. Output curve will be the same as this curve while the tweak curve matches the base curve. inputBaseCurve inputBaseCurve kNurbsCurve Input base curve. This curve will be used to calculate the delta for the tweak. inputTweakCurve inputTweakCurve kNurbsCurve Input twek curve. This curve is intended to match the base curve as bind. This curve should be modified - after the curve is modified, the delta difference between it and the base curve will be projected on the input curve. buildOffsetCurve buildOffsetCurve int Initiate offset curve build. tweakOffset tweakOffset int This will determine whether the offset curve created will be tweaked or not. offsetBaseMatrix offsetBaseMatrix matrix Matrix to build offset vectors from offset offset float Output offset curve parameter.
Long-Name Short-Name Type Description outCurve outCurve kNurbsCurve Result curve shape. outOffsetCurve outOffsetCurve kNurbsCurve Result offset curve shape.
mnsCurveVariable
=== Author: Assaf Ben Zur ===
Curve based solve for a Variable-FK Setup.
This fast and efficient node allows the user to create a variable FK setup using input curves and local transformations, outputting a solved curve and up-curve- instead of the more common transforms output method.
The node will accept any amount of input transforms, outputting the complex offset parent solve for each input as well as the solved curves shapes.
This is to avoid the use of any extra nodes or multiple parent transforms- pinning the controls to the output curve at all times.
The initial solve, as well as all features are calculated within a single loop.
As opposed to the common Variable FK setup, the curve based approach eliminates the Rest-Pose constant- making the node's algorithm Rest-Pose dynamic. In fact, it doesn't exist.
This approach uses only the input array amount constant to calculate a uniform positioning along the output curve- allowing the input curve to be changeable (live / dynamic).
Notice that the amount of input variable controls is completely independent of the main controls input.
Inputs
OutputsLong-Name Short-Name Type Description curve crv nurbsCurve Input curve. upCurve upCrv nurbsCurve Input offset curve. inTransform inTransform compound Input variable control values array. uPosition uPos float Input U position. Child of inTransform. strength strength float Input strength. Child of inTransform. aimTranslate aimT float Input aim translation. Child of inTransform. upTranslate upT float Input up translation. Child of inTransform. terTranslate terT float Input tertiary translation. Child of inTransform. falloff falloff float Input falloff value. Child of inTransform. aimRotation aimRot angle Input aim-rotation value. Child of inTransform. upRotation upRot angle Input up-rotation value. Child of inTransform. tertiaryRotation terRot angle Input tertiary-rotation value. Child of inTransform. localMatrix localMatrix angle Input local transformation matrix. Child of inTransform. upMode upMode enum Up mode- normal, curve, worldX, worldY, worldZ. substeps substeps int Resample substeps value. translateMode tMode enum Control translation mode- IK, FK. degree degree int Result curves degree. buildMode buildMode enum Result curve build mode- EPs, CVs. rotateOrder ro enum Calculation rotation-order. aimAxis aimAxis enum Aim axis choice. upAxis upAxis enum Up axis choice. offsetType offsetType enum Offset curve adjustment mode- local, world. offsetX offsetX float Offset curve adjustment offset X parameter. offsetY offsetY float Offset curve adjustment offset Y parameter. offsetZ offsetZ float Offset curve adjustment offset Z parameter. uScale uScale float Global U-Scale adjusment. Addative to array indevidual u inputs. uOffset uOffset float Global U-Offfset adjusment. Addative to array indevidual u inputs. startAmp startAmp float Sine start amplitude value. endAmp endAmp float Sine end amplitude value. amplitudeAim amplitudeAim float Sine calculation X direction amplitude value. amplitudeUp amplitudeUp float Sine calculation Y direction amplitude value. amplitudeTertiary amplitudeTertiary float Sine calculation Z direction amplitude value. frequencyAim frequencyAim float Sine calculation X direction frequency value. frequencyUp frequencyUp float Sine calculation Y direction frequency value. frequencyTertiary frequencyTertiary float Sine calculation Z direction frequency value. phaseAim phaseAim float Sine calculation X direction phase value. phaseUp phaseUp float Sine calculation Y direction phase value phaseTertiary phaseTertiary float Sine calculation Z direction phase value frequency frequency float Sine calculation global addative frequency value. phase phase float Sine calculation global addative phase value. startPos startPos float Sine start position value. outCtrlsUpMode outCtrlsUpMode enum Out position transforms up type - normal, curve, worldX, worldY, worldZ.
Long-Name Short-Name Type Description outCurve outCurve nurbsCurve Output curve shape. outOffsetCurve outOffsetCurve nurbsCurve Output offset curve shape. outTransform outTransform compound Output control offset position and rotation array. translate t float[3] Output control offset position, child of outTransform. rotate r angle[3] Output control offset rotation, child of outTransform. rotateX rotX angle Output control offset rotation, X component, child of rotate. rotateY rotY angle Output control offset rotation, Y component, child of rotate. rotateZ rotZ angle Output control offset rotation, Z component, child of rotate.
mnsCurveZip
=== Author: Assaf Ben Zur ===
Curve based node.
This is primarily used for eyelids and lips.
This fast solution was developed to replace complex and heavy graphs- containing many math nodes, curve deformers and constraints.
This setup provides a very clean deployment, processing the math algorithm internally.
Combining this node with mnsBuildTransformsCurve and mnsPointsOnCurve, will result in a very efficient, dynamic and flexible setup.
All calculations are processed within a single loop.
All curve operations are aware of one another, and are NOT addative- meaning that all operations are available at any position, and will NOT break one another, nor overlap.
All attributes are not minimum limited to 0 and can be adjusted to the negative direction- pulling the bind pose against each other instead of towards each other.
The node contains a centerMatrix input plug, which is a live world position that is used to scale the calculated vectors based on the bind position offset (per curve parameter).
The problem arising from this method is a mismatch at any meet position between curve A and B due to an offset variation between all points (except for a perfect circle scenario, which is never the case).
This problem is solved using a conform attribute within which will pull one of the curves (based on user choice) to the other below a selected distance threshold- Resulting in a watertight-seal.
Using mnsPointsOnCurve to sample the result curves allows for a simple skinCluster to deform the mesh.
mnsCurveZip will output a pair of offset curves as well as the result curves, calculated by world axis vectors or the centerMatrix as a base, which are used as an Up-Curve input for the mnsPointsOnCurve node to manage rotations correctly as well.
The node contatins some more important inputs: The tweakCurves inputs.
Aspiring to an inclusive and comprehensive setup, tweak curves (A, B and Mid) can be plugged in to expose another manual layer of animation using scene controls.
The input curves are 100% independent of the base curve inputs and DO-NOT need to share topology with each other, nor the source inputs - as they are being re-sampled internally based on the build mode.
This means that the tweak controls amount is limitless and is NOT a constant, nor predefined.
Inputs
OutputsLong-Name Short-Name Type Description bindCurveA bindCurveA nurbsCurve Input curve A base-curve shape. tweakCurveA tweakCurveA nurbsCurve Input curve A curve shape. bindCurveB bindCurveB nurbsCurve Input curve B base-curve shape. tweakCurveB tweakCurveB nurbsCurve Input curve B curve shape. tweakCurveABase tweakCurveABase nurbsCurve Input curve A tweak base-curve shape. tweakCurveBBase tweakCurveBBase nurbsCurve Input curve B tweak base-curve shape. midCurve midCrv nurbsCurve Input target mid curve. midCurveBase midCrvBase nurbsCurve Input mid tweak curve base. midCurveTweak midCrvTweak nurbsCurve Input mid tweak curve. centerMatrix centerMatrix matrix Input center transformation matrix. midPointMatrix midPointMatrix matrix Input mid point traget matrix. sampleMode m enum Curve sample mode- parametric, uniform. matchInputCurve matchInputCurve enum Result curve matched parameters to- none, curveA, curveB. substeps substeps int Result curve resampling sub-step value. degree degree int Result curve degree value. buildMode buildMode enum Curve build mode- EPs, CVs. midGenerateFrom midGenerateFrom enum Generate automatic mid curve from- bindBases, tweakCurves, input. midBias midBias float Generated curve bias. aroundCenter aroundCenter bool Calculate results considering the input center matrix. conformToMeetPoint conformToMeetPoint bool Conform the selected curve result to meet the oter curve based on set parameters. curveToConform curveToConform enum Which curve to conform - curveA, curveB. conformDistancethreshold conformDistancethreshold enum Which curve to conform - curveA, curveB. AToMid AToMid float Blend curve A to mid-curve. BToMid BToMid float Blend curve B to mid-curve. AToB AToB float Blend curve A to curve B. BToA BToA float Blend curve B to curve A. allToMidPoint allToMidPoint float Blend both curves to mid-curve. pushOut pushOut float Curves push-out added value. zipStart zipStart float Zip start value. zipStartFalloff zipStartFalloff float Zip start falloff value. zipEnd zipEnd float Zip end value. zipEndFalloff zipEndFalloff float Zip end falloff value. glue glue bool Do glue. glueTherhold glueTherhold float Glue threshold value. offsetBase offsetBase enum Offset curve build mode. centerMatrix, worldX, worldY, worldZ. offset offset float Offset curve build parameter. globalMultiplier globalMultiplier float Global value multiplier.
Long-Name Short-Name Type Description outCurveA outCurveA nurbsCurve Result curve A shape. outCurveB outCurveB nurbsCurve Result curve B shape. outCurveAOffset outCurveAOffset nurbsCurve Result curve A offset shape. outCurveBOffset outCurveBOffset nurbsCurve Result curve B offset shape.
mnsCurveZipB
=== Author: Assaf Ben Zur ===
Curve based node.
This is primarily used for eyelids and lips.
This fast solution was developed to replace complex and heavy graphs- containing many math nodes, curve deformers and constraints.
This setup provides a very clean deployment, processing the math algorithm internally.
Combining this node with mnsBuildTransformsCurve and mnsPointsOnCurve, will result in a very efficient, dynamic and flexible setup.
All calculations are processed within a single loop.
All curve operations are aware of one another, and are NOT addative- meaning that all operations are available at any position, and will NOT break one another, nor overlap.
All attributes are not minimum limited to 0 and can be adjusted to the negative direction- pulling the bind pose against each other instead of towards each other.
The node contains a centerMatrix input plug, which is a live world position that is used to scale the calculated vectors based on the bind position offset (per curve parameter).
The problem arising from this method is a mismatch at any meet position between curve A and B due to an offset variation between all points (except for a perfect circle scenario, which is never the case).
This problem is solved using a conform attribute within which will pull one of the curves (based on user choice) to the other below a selected distance threshold- Resulting in a watertight-seal.
Using mnsPointsOnCurve to sample the result curves allows for a simple skinCluster to deform the mesh.
mnsCurveZip will output a pair of offset curves as well as the result curves, calculated by world axis vectors or the centerMatrix as a base, which are used as an Up-Curve input for the mnsPointsOnCurve node to manage rotations correctly as well.
The node contatins some more important inputs: The tweakCurves inputs.
Aspiring to an inclusive and comprehensive setup, tweak curves (A, B and Mid) can be plugged in to expose another manual layer of animation using scene controls.
The input curves are 100% independent of the base curve inputs and DO-NOT need to share topology with each other, nor the source inputs - as they are being re-sampled internally based on the build mode.
This means that the tweak controls amount is limitless and is NOT a constant, nor predefined.
Inputs
OutputsLong-Name Short-Name Type Description globalScale globalScale double Global scale value. inTweakAPosition inTweakAPosition matrix (array) Input tweaker local matrix. inTweakBPosition inTweakBPosition matrix (array) Input tweaker local matrix. tweakMode tweakMode enum Tweak curve build mode. tweakMirrorMatrix tweakMirrorMatrix matrix Mirror matrix to add to the local tweaker transfomation build. bindCurveA bindCurveA nurbsCurve Input curve A base-curve shape. bindCurveB bindCurveB nurbsCurve Input curve B base-curve shape. centerMatrix centerMatrix matrix Input center transformation matrix. sampleMode m enum Curve sample mode- parametric, uniform. midCurveMode midCurveMode enum Mid curve generation mode. One To one - calculate mid point for every upper and lower pair. Regenerate- create a new mid curve, resample based on midCurveSubsteps attribute value. midCurveSubsteps midCurveSubsteps int Mid curve generation sampling amount matchInputCurve matchInputCurve enum Result curve matched parameters to- none, curveA, curveB. substeps substeps int Result curve resampling sub-step value. degree degree int Result curve degree value. buildMode buildMode enum Curve build mode- EPs, CVs. midBias midBias float Generated curve bias. aroundCenter aroundCenter bool Calculate results considering the input center matrix. conformToMeetPoint conformToMeetPoint bool Conform the selected curve result to meet the oter curve based on set parameters. curveToConform curveToConform enum Which curve to conform - curveA, curveB. conformDistancethreshold conformDistancethreshold enum Which curve to conform - curveA, curveB. AToMid AToMid float Blend curve A to mid-curve. BToMid BToMid float Blend curve B to mid-curve. AToBindB AToBindB float Blend curve A to curve B. BToBindA BToBindA float Blend curve B to curve A. AToB AToB float Blend curve A to curve B. BToA BToA float Blend curve B to curve A. sCurveA sCurveA float Blend curve A into a procedural S shape. sCurveB sCurveB float Blend curve B into a procedural S shape. allToMidPoint allToMidPoint float Blend both curves to mid-curve. pushOut pushOut float Curves push-out added value. zipStart zipStart float Zip start value. zipStartFalloff zipStartFalloff float Zip start falloff value. zipEnd zipEnd float Zip end value. zipEndFalloff zipEndFalloff float Zip end falloff value. offsetBase offsetBase enum Offset curve build mode. centerMatrix, worldX, worldY, worldZ. offset offset float Offset curve build parameter.
Long-Name Short-Name Type Description outCurveA outCurveA nurbsCurve Result curve A shape. outCurveB outCurveB nurbsCurve Result curve B shape. outCurveAOffset outCurveAOffset nurbsCurve Result curve A offset shape. outCurveBOffset outCurveBOffset nurbsCurve Result curve B offset shape. outTweakA outTweakA compound (array) Parent attribute that holds output values for tweaker offset position. outTweakATranslate outTweakATranslate vector Output offset position for a given tweaker. outTweakARotate outTweakARotate vector Output offset rotation for a given tweaker. outTweakB outTweakB compound (array) Parent attribute that holds output values for tweaker offset position. outTweakBTranslate outTweakBTranslate vector Output offset position for a given tweaker. outTweakBRotate outTweakBRotate vector Output offset rotation for a given tweaker.
mnsDynamicPivot
=== Author: Assaf Ben Zur ===
This is a simple node to calculate a foot's dynamic pivot internally, acoiding the use of many transforms and node connections.
Given an input curve, world origin position (as matrix) and mapping info, this node will map the input rotation values into a new custom point adding the rotation into the translation.
This essentailly will push the new point rapidly away from it's origin into the mapping direction.
Now using the given input curve, the closest point on curve from the new point will be calcultaed and outputted into the rotatePivot plug.
This output plug can then be plugged into a custom pivot attribute of any transform- creating a dynamiclly calculated pivot along the given curve.
Inputs
OutputsLong-Name Short-Name Type Description inputCurve inputCurve nurbsCurve Input curve. rotateX rx angle Input local X rotation. rotateY ry angle Input local Y rotation. rotateZ rz angle Input local Z rotation. rotate r angle[3] Input rotations. originWorldMatrix owm matrix Input origin position to strat the calculation from. targetParentInverseMatrix tpim matrix Target transform parent inverse matrix to localize the rotate pivot position result. mapRotXTo mapRotXTo enum Mapping info from input X rotation. mapRotYTo mapRotYTo enum Mapping info from input Y rotation. mapRotZTo mapRotZTo enum Mapping info from input Z rotation. distRateMultiplier distRateMultiplier double The rotation rate of addition in the translation values. inputMultipliers inputMultipliers bool Pre-calc input multipliers.
Long-Name Short-Name Type Description rotatePivot rotatePivot float[3] Result rotate pivot position.
mnsExponential
mnsIKSolver
=== Author: Assaf Ben Zur ===
This IK-Solver node provides an alternative, faster and more reliable solution for a 2-joint IK set-up.
This enhanced IK-solution offers a much cleaner approach as well, computing the blend internally- making any basic IK-FK set-up efficient, stable, fast and clean.
To add on the internal FK-IK switch, this node contains a few more features that are already an industry
standard:
Softness - prevents a pop on ik limit approach.
Slide - Knee position sliding (for character animation).
Stretch - Providing a limb-stretch when the ik-solve is beyond its limit.
Axis Switching - Offering an easy switch to any joint orientation.
Inputs
OutputsLong-Name Short-Name Type Description boneLengthA bla float Base length A. boneLengthB blb float Base length B. restHandleLength restHandleLength float Base length between the root position and the handle. blend blend float IK-FK blend value. rootFK rootFK matrix Input FK root matrix. midFK midFK matrix Input FK mid matrix. endFK endFK matrix Input FK end matrix. ikTarget ikTarget matrix Input IK target matrix. poleVector poleVector matrix Input pole-vector target matrix. rootWorldMatrix rootWorldMatrix matrix Module root input matrix. roll roll float IK addative roll value. slide slide float IK mid slide value. softness softness float IK softness parameter. stretchLimit stretchLimit float IK stretch limit value. 1 is no stretch, 2 is double the length. aimAxis aimAxis enum Aim axis choice. upAxis upAxis enum Up axis choice. segmentScaleCompensate segmentScaleCompensate bool calculate with segment scale compensate on or off.
Long-Name Short-Name Type Description rootTranslate rootTranslate float[3] Root out translate output. Child of outRoot. rootRotateX rootRotateX float Root out translate X output. Child of outRoot. rootRotateY rootRotateY float Root out translate Y output. Child of outRoot. rootRotateZ rootRotateZ float Root out translate Z output. Child of outRoot. rootRotate rootRotate angle[3] Root out rotate output. Child of outRoot. rootScale rootScale float[3] Root out scale output. Child of outRoot. outRoot outRoot compound Root output transformation values. midTranslate midTranslate float[3] Mid out translate output. Child of outMid. midRotateX midRotateX float Mid out translate X output. Child of outMid. midRotateY midRotateY float Mid out translate Y output. Child of outMid. midRotateZ midRotateZ float Mid out translate Z output. Child of outMid. midRotate midRotate angle[3] Mid out rotate output. Child of outMid. midScale midScale float[3] Mid out scale output. Child of outMid. outMid outMid compound Mid output transformation values. endTranslate endTranslate float[3] End out translate output. Child of outEnd. endRotateX endRotateX float End out translate X output. Child of outEnd. endRotateY endRotateY float End out translate Y output. Child of outEnd. endRotateZ endRotateZ float End out translate Z output. Child of outEnd. endRotate endRotate angle[3] End out rotate output. Child of outEnd. endScale endScale float[3] End out scale output. Child of outEnd. outEnd outEnd compound End output transformation values. ikVis ikVis bool IK mode visibility. fkVis fkVis bool FK mode visibility.
mnsLipZip
=== Author: Assaf Ben Zur ===
Curve based node.
Inputs
OutputsLong-Name Short-Name Type Description globalScale globalScale double Global scale value. inTweakAPosition inTweakAPosition matrix (array) Input tweaker local matrix. inTweakBPosition inTweakBPosition matrix (array) Input tweaker local matrix. tweakMode tweakMode enum Tweak curve build mode. tweakMirrorMatrix tweakMirrorMatrix matrix Mirror matrix to add to the local tweaker transfomation build. centerMatrix centerMatrix matrix Input center transformation matrix. sampleMode m enum Curve sample mode- parametric, uniform. substeps substeps int Result curve resampling sub-step value. degree degree int Result curve degree value. buildMode buildMode enum Curve build mode- EPs, CVs. midBias midBias float Generated curve bias. aroundCenter aroundCenter bool Calculate results considering the input center matrix. alongSurface alongSurface bool Calculate results considering the input surface. conformToMeetPoint conformToMeetPoint bool Conform the selected curve result to meet the oter curve based on set parameters. curveToConform curveToConform enum Which curve to conform - curveA, curveB. conformDistancethreshold conformDistancethreshold enum Which curve to conform - curveA, curveB. AToMid AToMid float Blend curve A to mid-curve. BToMid BToMid float Blend curve B to mid-curve. AToB AToB float Blend curve A to curve B. BToA BToA float Blend curve B to curve A. sCurveA sCurveA float Blend curve A into a procedural S shape. sCurveB sCurveB float Blend curve B into a procedural S shape. allToMidPoint allToMidPoint float Blend both curves to mid-curve. upperCurlBaseMatrix upperCurlBaseMatrix matrix Base upper matrix to calculate offsets before calculating the curl. upperCurlMatrix upperCurlMatrix matrix Upper matrix for calculating the curl. upperCurlFalloff upperCurlFalloff float Upper curl falloff lowerCurlBaseMatrix lowerCurlBaseMatrix matrix Base lower matrix to calculate offsets before calculating the curl. lowerCurlMatrix lowerCurlMatrix matrix Lower matrix for calculating the curl. lowerCurlFalloff lowerCurlFalloff float Lower curl falloff pushOutA pushOutA float Curves push-out added value. pushOutB pushOutB float Curves push-out added value. zipStart zipStart float Zip start value. zipStartFalloff zipStartFalloff float Zip start falloff value. zipEnd zipEnd float Zip end value. zipEndFalloff zipEndFalloff float Zip end falloff value. offsetBase offsetBase enum Offset curve build mode. centerMatrix, worldX, worldY, worldZ. offset offset float Offset curve build parameter.
Long-Name Short-Name Type Description outCurveA outCurveA nurbsCurve Result curve A shape. outCurveB outCurveB nurbsCurve Result curve B shape. outCurveAOffset outCurveAOffset nurbsCurve Result curve A offset shape. outCurveBOffset outCurveBOffset nurbsCurve Result curve B offset shape. outTweakA outTweakA compound (array) Parent attribute that holds output values for tweaker offset position. outTweakATranslate outTweakATranslate vector Output offset position for a given tweaker. outTweakARotate outTweakARotate vector Output offset rotation for a given tweaker. outTweakB outTweakB compound (array) Parent attribute that holds output values for tweaker offset position. outTweakBTranslate outTweakBTranslate vector Output offset position for a given tweaker. outTweakBRotate outTweakBRotate vector Output offset rotation for a given tweaker.
mnsMatrixConstraint
=== Author: Assaf Ben Zur ===
Light weight alternative to Maya's native constraints - All within one node.
Live switchable/keyable maintainOffset channel.
Easily add spaces/masters to existing constraint using recalcOffset channel.
Inputs
OutputsLong-Name Short-Name Type Description sourceWorldMatrix sourceWorldMatrix matrix Source world matrix. spaceSet spaceSet int Constraint Space index. maintainOffset maintainOffset bool Maintain offset attribute. recalcOffsets recalcOffsets int Recalculate offset in current state. targetParentInverseMatrix targetParentInverseMatrix matrix Traget inverse matrix. targetRotateOrder targetRotateOrder enum Calculation rotate-order. targetWorldMatrix targetWorldMatrix matrix Traget world matrix.
Long-Name Short-Name Type Description matrix m matrix Result as matrix form. translate t float[3] Translation values result. rotate r angle[3] Rotation values result. scale s float[3] Scale values result. shear shear float[3] Shear values result.
mnsMeshRivets
=== Author: Assaf Ben Zur ===
A multi "Point-On-Poly" constraint style compute node.
The node will accept any amount of input positions, as well as an input base-mesh and a target mesh.
The base mesh is used to calculate the source position and offset, the target mesh is used to calculate the result position based on the selected attributes within the node:
- Calculation Method: Closest UV, Vertex, Face
- Do Rotation: On, Off
- Do Scale: On, Off
- Rotation: Aim-Axis and up Axis choice (All 6)
- Up-Mode: World (X,Y,Z), Closest Tangent, Closest Binormal
The node will accept any amount on input tweaker matrices that can be used to adjust the riveted transforms globally and easily.
The tweakers adjustments are calculated in world spcae and the algorithm is fully independent, additive, and keyable.
The proximity calculation is matrix based to achieve non-spherical tweaks.
As tweaking the position of the rivets is not sensible as the transforms' position is based on the target mesh, the proximity tweakers are used to adjust rotation and scale only.
The node contains two adjustemt spaces:
- World- Will transform the outputs in world space, providing a more intuative behaviour, although less practical.
- Object - Will transform the outputs in their relative local spaces (preferable), which will provide a less intuative behaviour (dependent of the tweaker and output orientation), although very practical.
A falloff attribute is also implemented to allow control over the decay within the "collision" zone.
Inputs
OutputsLong-Name Short-Name Type Description mesh mesh mesh Input mesh to rivet to. targetWorldMatrix targetWorldMatrix matrix Input mesh world matrix. rivet rivet compound Input rivet transforms array. worldMatrix worldMatrix matrix Input rivet transforms matrix. Child of rivet. parentInverseMatrix parentInverseMatrix matrix Input rivet transforms inverse parent matrix. Child of rivet. liveMode liveMode bool Live mode. Calculate everything in every evaluation. calculationMethod calculationMethod enum Calculation basis- UV, closestVertex, closestFace. uvTolerance uvTolerance float UV search tolerance threshold value. doRotation doRotation bool Calculate rotations. doRivetRotation doRivetRotation bool Calculate rivet local rotations. rotateOrder ro enum Calculation rotate-order. upMode upMode enum Rotation calculation up mode- worldX, worldY, worldZ, closestVertexBinormal, closestVertexTangent. aimAxis aimAxis enum Aim Axis choice. upAxis upAxis enum Up Axis choice. doRivetScale doRivetScale bool Calculate scale. doScale doScale bool Scale the rivets with the target mesh scale. When off the mesh's scale doesn't affect the rivets. maintainOffset maintainOffset bool Maintain offset between rivet position and target mesh. proximityRotationSpace proximityRotationSpace enum Proximity tweak rotation space- object, world. proximityTweaker proximityTweaker compound Proximity tweakers input array. proximityWorldMatrix proximityWorldMatrix matrix Proximity tweaker matrix. Child of proximityTweaker. proximityLocalMatrix proximityLocalMatrix matrix Proximity tweaker local matrix. Child of proximityTweaker. rivetScale rivetScale float[3] Scale tweak input. falloff falloff float Proximity tweak falloff. Child of proximityTweaker. texture texture color Input color map adjustment. rotationTextureAmplitude rotationTextureAmplitude float Color map adjustment amplitude. textureBothDirections textureBothDirections bool Avarage color map adjustment to both direction. -0.5 0.5 instead of 0 to 1. scaleTextureAmplitude scaleTextureAmplitude float Color map scale affect amplitude.
Long-Name Short-Name Type Description translate t float[3] Translation output. Child of transform. rotate r angle[3] Rotation output. Child of transform. transform transform compound Output transforms array. scale s angle[3] Scale output. Child of transform. baseMesh baseMesh mesh Input base-mesh.
mnsMeshSeparate
=== Author: Assaf Ben Zur ===
A simple node to drive seprated shell objects using one combined mesh.
Inputs
OutputsLong-Name Short-Name Type Description mesh mesh mesh Input mesh to separate. inShell inShell mesh Input shell object array.
Long-Name Short-Name Type Description outMesh outMesh mesh Result shell meshes array.
mnsNodeRelationship
=== Author: Assaf Ben Zur ===
BLOCK main relationship node.
Inputs
Long-Name Short-Name Type Description messageIn messageIn message Input master node. messageOut messageOut message Input slaves nodes array. deleteSlaves deleteSlaves message Input delete only slaves nodes array.
mnsPointsOnCurve
=== Author: Assaf Ben Zur ===
A fast and efficient parameter based compute node to sample and control points along a given curve.
In combination with mnsBuildTransformsCurve will result in a very advanced and robust "spline IK" control.
- Creation modes
+ Parametric - curve parameterized position calculation
+ Uniform - Addaptive uniform sampling
+ Fixed length - Uniform sampling based on an input max length. Initialized to curve length on creation, Keyable.
- Position control
- Rotation control
+ Aim modes - curveTangent, object
+ Up modes - curveNormal, up-curve, worldX, worldY, worldZ, object
- Scale control
- Spring ability
Inputs
OutputsLong-Name Short-Name Type Description curve crv nurbsCurve Input curve to sample. upCurve upCrv nurbsCurve Input up curve to sample. bindCurve bindCrv nurbsCurve Input bind curve to sample. Used only in parametrically-uniform build mode. aimCurve aimCurve nurbsCurve Input aim curve to sample. Used only in curveAim rotation mode. upObject upObj matrix Input up object matrix to use if requsted. objectOrientUpAxis objectOrientUpAxis enum In case object orient up mode is selected, which axis to use. objectOrientAimAxis objectOrientAimAxis enum In case object orient aim mode is selected, which axis to use. aimObject aimObj matrix Input aim object matrix to use if requsted. globalScale globalScale float Global scale multiplier. numOutputs numO int Number of outputs/samples. mode m enum direction=i Smaple mode- parametric, uniform, uniformFixedLength. cycle cycle bool Enable cycle mode. closedShape closedShape bool Enable closed shape mode. uScale uScl float Global positions U-Scale adjustment. uScaleInverse uSclInv float Global positions U-Scale-Inverse adjustment. uScaleMid uSclMid float Global positions U-Scale-mid adjustment. uScaleMidPos uSclMidPos float U-Scale-mid-position value. uScaleMidInverse uSclMidInv float Global positions U-Scale-mid-inverse adjustment. uOffset uOffset float Global positions U-offset adjustment. inverse inv bool Inverse result order. fixedLength fixedLength float The maximum fixed length for the result sample if requested. creationLength creationLen float Value store for the creation curve length. curveLength crvLrn float Current curve length display. uTugScale uTugScl float Global positions U-Tug-Scale adjustment. uTugScaleTension uTugSclTension float Global positions U-Tug-Scale-tension parameter. uTugOffset uTugOffset float Global positions U-Tug-Offset adjustment. rotateMode rotMode enum Samples rotation mode- curveTangent, objectAim. upMode upMode enum Samples rotation up mode- normal, curve, worldX, worldY, worldZ, objectUp. scaleMode sclMode enum Samples scale mode- absuloteCurveLength, addaptiveCurveLength, segmentLengthDependent. squashMode squashMode enum Samples squash mode- squashStretch, squash, stretch, uniform, none. doRotation doRot bool Do samples rotation. doScale doScl bool Do samples scale. rotateOrder ro enum direction=i Calculation rotation order. aimAxis aimAxis enum Aim axis choice. upAxis upAxis enum Up axis choice. customPointsUpMode cusPointsUpMode enum Custom tweakers rotation up mode. enableParamAdjust enableParamAdjust bool Enable Manual parameter adjustments. paramAdjustment paramAdjustment double Manual parameter adjustments array input. Use this parameter to adjust calculated curve parameters manually. This parameter is addative. aimParamAdjustment aimParamAdjustment double Manual parameter adjustments array input for the aim curve param. Use this parameter to adjust calculated aim curve parameters manually. This parameter is addative. excludePolesTranslation excludePolesTranslation bool exclude translation set for base and tip. excludePolesRotation excludePolesRotation bool exclude rotation set for base and tip. excludeBaseRotation excludeBaseRotation bool exclude rotation set for base. Only if excludePolesRotation is set to True. excludeTipRotation excludeTipRotation bool exclude rotation set for tip. Only if excludePolesRotation is set to True. excludePolesScale excludePolesScale bool exclude scale set for base and tip. twistAimStart twistAimStart float Self explanatory. twistAimMid twistAimMid float Self explanatory. squeezeAim squeezeAim float Self explanatory. waveAimAngle waveAimAng float Self explanatory. twistAimWavePhase twistAimWavePhase float Self explanatory. twistAimMidPos twistAimMidPos float Self explanatory. twistAimEnd twistAimEnd float Self explanatory. twistAimAll twistAimAll float Self explanatory. aimToObj aimToObj float Self explanatory. upToObj upToObj float Self explanatory. twistUpStart twistUpStart float Self explanatory. twistUpMid twistUpMid float Self explanatory. twistUpSqueeze twistUpqueeze float Self explanatory. waveUpAngle waveUpAng float Self explanatory. waveUpPhase waveUPPhase float Self explanatory. twistUpMidPos twistUpMidPos float Self explanatory. twistUpEnd twistUpEnd float Self explanatory. twistUpAll twistUpAll float Self explanatory. twistTertiaryStart twistTerStart float Self explanatory. twistTertiaryMid twistTerMid float Self explanatory. tertiarySqueeze terSqueeze float Self explanatory. tertiaryWaveAngle tertiaryWaveAng float Self explanatory. tertiaryWavePhase terWavePhase float Self explanatory. twistTertiaryMidPos twistTerMidPos float Self explanatory. tertiaryTwistEnd terTwistEnd float Self explanatory. tertiaryTwistAll terTwistAll float Self explanatory. resetScale resetScl int Reset scale values to current state. scaleMaxAddaptive sclMaxAddaptive bool Adapt max scale to squash/scale relative values. squashFactor squashFactor float Squash multiplier. squashPos squashPos float Squash position. scaleStart sclStart float Self explanatory. scaleMid sclMid float Self explanatory. scaleMidPos sclMidPos float Self explanatory. scaleWaveAmp sclWaveAmp float Self explanatory. scaleWavePhase sclWavePhase float Self explanatory. scaleEnd sclEnd float Self explanatory. scaleAll sclAll float Self explanatory. scaleAllAim scaleAllAim float Self explanatory. scaleAllUp scaleAllUp float Self explanatory. scaleAllTertiary scaleAllTertiary float Self explanatory. scaleMin sclMin float Self explanatory. scaleMax sclMax float Self explanatory. springMode sprMode enum Samples spring mode- UScale, UScaleInverse, UMidScaleInverse, UTugOffset, UTugScale. springStrength sprStrength float spring strength. springDamp sprDamp float Spring damping factor. springStiffness sprStiffness float Spring stiffness factor. goalMatrix goalMatrix matrix Spring goal matrix. doSpring doSpr bool Do spring calculation. time time time Input time value. customPosition customPosition compound Custom tweakers input transforms array. uPosition uPos float Custom tweaker U-Position. Child of customPositionOut. twist twist float Custom tweaker twist value. Child of customPositionOut. aimRotation aimRot float Custom tweaker aim-rotation value. Child of customPositionOut. tertiaryRotation tertiaryRot float Custom tweaker tertiary-rotation value. Child of customPositionOut. scaleAim sclAim float Custom tweaker aim-scale value. Child of customPositionOut. scaleUp sclUp float Custom tweaker up-scale value. Child of customPositionOut. tertiaryScale terScl float Custom tweaker tertiary-scale value. Child of customPositionOut. falloff falloff float Custom tweaker falloff value. Child of customPositionOut.
Long-Name Short-Name Type Description transforms transforms compound Result transforms array. translate t float[3] Result transform translation values. Child of transforms. rotate r angle[3] Result rotation translation values. Child of transforms. matrix Result matrix. Child of transforms. scale s float[3] Result scale translation values. Child of transforms. customPositionOut cusPosOut compound Custom tweakers offset transformation values array. cusTranslate cusT float[3] Custom tweakers offset translation values. Child of customPositionOut. cusRotate cusR angle[3] Custom tweakers offset rotation values. Child of customPositionOut.
mnsQuaternionBlend
=== Author: Assaf Ben Zur ===
Inputs
OutputsLong-Name Short-Name Type Description inMatrix1 inMatrix1 matrix Input matrix1. Blend source A. inMatrix2 inMatrix2 matrix Input matrix1. Blend source B.
Long-Name Short-Name Type Description rotate r angle[3] Rotation output.
mnsRemapFloatArray
=== Author: Assaf Ben Zur ===
This simple node will take the input value (as float or angle) and split and remap the values across the requested output count, based on the given values map graph attribute.
The value can also be re-ranged between two values, using the remapToRnage attributes given.
The input value plug will accept floats, doubles and angles (genericAttr).
The output plug will be set according to the input type given.
Inputs
OutputsLong-Name Short-Name Type Description valuesMap valuesMap float(array) Output values remap graph. value value float Input value to remap. Can be float, double and angle. angleOutputAsDegrees angleOutputAsDegrees bool In case the input is set to angle, if this is set to true, the output values will be in degrees instead of the original radians input. remapToRange remapToRange bool A choice to remap the outputs to a new range, using the relevant attributes. outputCount outputCount int The amount of outputs to remap the input value to. min min float RemapToRnage new minimum value. max max float RemapToRnage new maximum value. oldMin oldMin float RemapToRnage old minimum value. oldMax oldMax float RemapToRnage old maximum value.
Long-Name Short-Name Type Description outValue outValue float Output values array.
mnsResampleCurve
=== Author: Assaf Ben Zur ===
A simple light weight curve re-sampler.
Primaraly used to embed mnsThreePointArc into an IK setup.
Inputs
OutputsLong-Name Short-Name Type Description resampleMode resampleMode enum Reample mode- parametric, uniform. degree degree int Reample degree. sections sections int Reample amount of sections. inputCurve inputCurve nurbsCurve Input curve to re-sample.
Long-Name Short-Name Type Description outCurve outCurve nurbsCurve Result curve.
mnsSimpleRivets
=== Author: Assaf Ben Zur ===
This is a simple mesh rivet node.
This node will take any amount of input start position as matrix and will compile a transformation matrix for the closest face center position on the given input mesh.
This node will output the result in world space, unless an inpur targetParentInverseMatrix is plugged into the relevant element.
The deafult output will be the closest face center transformation matrix unless maintainOffset is set to ON- then the offset will be calculated and stored resulting in the same transformation matrix as the startPosition at bind.
Live mode should only be used for debugging purposes as this will initiate the nodes initialization process on every evaluation- impacting the nodes performance significantly.
The initialization process will be performed from from the given input mesh, unless a base mesh is plugged in to baseMesh plug.
It is recommended to avoid keeping baseMesh and startPosition plugs live.
Inputs
OutputsLong-Name Short-Name Type Description mesh mesh mesh Input mesh to rivet to. positionMode positionMode int position mode. 0 is closest face center, 1 is closest vertex upMode upMode int up mode. 0 is closest vertex, 1 is input up matrix. upMatrix upMatrix int Up matrix to use in case upMode is set to 1. targetWorldMatrix targetWorldMatrix matrix Input mesh world matrix. rivet rivet compound (Array) Input rivets compound array. rivetStartPosition rivetStartPosition matrix Input start position. Rivet position will be calculated from this origin matrix. targetParentInverseMatrix targetParentInverseMatrix matrix Target transform parent inverse matrix. Use when output result is needed in local space (connect the target transform parentInverseMatrix plug) liveMode liveMode bool Live mode. Calculate everything in every evaluation. maintainOffset maintainOffset bool Maintain offset between rivet position and target mesh.
Long-Name Short-Name Type Description translate t float[3] Translation output. Child of transform. rotate r angle[3] Rotation output. Child of transform. transform transform compound Output transforms array. scale s angle[3] Scale output. Child of transform. baseMesh baseMesh mesh Input base-mesh.
mnsSimpleSquash
=== Author: Assaf Ben Zur ===
This simple node is designed to output a scale value to squash and stretch a given single transform value.
Based on the creation distance between the target and source matricies, the scale values will be calculated using a squash/stretch algorithm using the dynamic distance (or current distance).
All input values will be taken into account calculating the result.
The static arc length is the creation length. This value can be set manually if needed, although the node will set this value in it's initialization stage- in case the source and handle matricies where connected.
This value will be set automatically only once, in case this value needs to be changed it will need to be set manually.
Aim axis attribute- stretch value will be set to the aim axis selection, squash value will be set to the remaining axes.
Global scale attribute - this attribute is set to scale the static arc length to avoid unwanted scaling issues when aiming for a uniform scale of the target transform.
Inputs
OutputsLong-Name Short-Name Type Description handleWorldMatrix handleWorldMatrix matrix Input handle world matrix. squashRootWorldMatrix squashRootWorldMatrix matrix Input squash root position world matrix. squashFactor squashFactor float Input squash factor. stretchFactor stretchFactor float Input stretch factor. stretchMin stretchMin float Input minimum stretch value. stretchMax stretchMax float Input maximum stretch value. squashMin squashMin float Input maximum squash value. squashMax squashMax float Input minimum squash value. staticArcLength staticArcLength float Static arc length / creation length value. aimAxis aimAxis enum Aim axis- stretch value will be set to the aim axis selection, squash value will be set to the remaining axes. globalScale globalScale float Global scale multiplier value.
Long-Name Short-Name Type Description scale s float[3] Output scale result. arcLength arcLength float Current arc length.
mnsSphereRoll
=== Author: Assaf Ben Zur ===
This node was created to deal with a ball/sphere rolling.
As oposed to common solutions, this node will evaluate the rotation of the target based on it's previous state, resulting in a non-gimble solution.
This node will solve the rotation for the current time.
Since ball rolling is a non-deterministic solution, this node will consider the previous state of the target transform to solve for the best posssible rotation given the input values.
Best used for a simple ball rolling on the ground, or a BB-8 style character, where the charcter's movements are rotation (roll) based.
Inputs
OutputsLong-Name Short-Name Type Description globalScale globalScale double MObject MnsSphereRoll::aGlobalScale speedMultiplier speedMultiplier double a global keyable multiplier to offset the solve. 1 is even, less then 1 will result in a backspin, greater then one will result in a topspin. sphereRadius sphereRadius double The radius of the traget sphere to rotate. driverWorldMatrix driverWorldMatrix matrix This matrix will be sampled in order to evaluate the transition to the next calculation. This should be the target transform for the output rotation. upVectorWorldMatrix upVectorWorldMatrix matrix This up vector direction will be calculated in relation to the input driver world matrix. startFrame startFrame int Evaluation start frame. startFrameFromRange startFrameFromRange bool If true, take the start frame from current maya range instead of the input value given. time time time Time input.
Long-Name Short-Name Type Description outRotation outRotation vector MObject MnsSphereRoll::aOutRotation
mnsSphereVectorPush
=== Author: Assaf Ben Zur ===
Presenting mnsSphereVectorPush deformer.
This deformer was purpose built for the Eye-Meniscus deformation, but can be used for many more applications.
As opposed to the commonly used "matrixCollision", mnsSphereVectorPush will also collide back faces and push them at a higher radius based on a thickness threshold (keyable).
The node will accept unlimited collider matrix inputs and will combine the deformations with ease.
The input radiuses and thicknesses can be varied and keyed to choice.
Implementing the mnsSphereVectorPush deformer within the eyelid setup will result in a natural looking deformation of the cornea and the eyelids.
This is the case for a closed eye pose as well- which will naturally suggest the eye aim even when it isn't seen, corresponding to real life behavior.
The deformer can also be used to represent the eye volume- pushing the eyelid verticies towards the eye surface, for extreme poses of which are not handled correctly by the "aroundCenterMatrix" of mnsCurveZip due to a range which exceeds the normalization.
Inputs
Long-Name Short-Name Type Description collideMatrix collideMatrix matrix Input collision matrix. radius radius matrix Input collision radius. thicknessCollide thicknessCollide bool If true, collide against back-faces using the input threshold. thicknessThreshold thicknessThreshold float Backface avarage distance to collide against. collider collider compound Collision object input array. collideMethod collideMethod enum Collision method- matrix, position.
mnsSpringCurve
=== Author: Assaf Ben Zur ===
This node is used to achive simple secondary motion proceduraly.
Tihs node will accept an input curve and offset curves to act upon, and using the stiffness and damping graph attributes it will calculate a new curve with secondary motion embedded.
This is an evaluation node rather then a simulation. Time needs to be connected to the node in order to see it's effect.
Inputs
OutputsLong-Name Short-Name Type Description inputCurve inputCurve nurbsCurve Input curve. inputOffsetCurve inputOffsetCurve nurbsCurve Input offset curve. strength strength float Global strength. 0 is do nothing. preventStretching preventStretching bool Calculate stretch prevention. startFrame startFrame int Evaluation start frame. startFrameFromRange startFrameFromRange bool If true, take the start frame from current maya range instead of the input value given. time time time Time input. stiffness stiffness graph Stiffness graph control. damping damping graph Damping graph control.
Long-Name Short-Name Type Description outCurve outCurve nurbsCurve Result curve. outOffsetCurve outOffsetCurve nurbsCurve Result offset curve.
mnsThreePointArc
=== Author: Assaf Ben Zur ===
This node was written to create a perfectly curved limb blend, instead of using common approaches like skinned curves, simulated tangents, scaled points, etc.
This method provides a very elegant way of enabling curvable limbs to animators, avoiding the use of Maya's 'makeThreePointCircularArc' which doesn't support a case where the 3 input points are collinear, nor any input curve or blending support.
Another major advantage of this node is the 'conformToMidPoint' attribute-
This attribute signals the algorithm to take the mid-point into consideration when drawing the edit points of the calculated arc, 'pinning' the elbow/knee in place when blending to the curved shape, even when the ratio between the 2 bones is not even (most cases).
The blend is triggered once with the attribute set to 'Off' - causing the knee to shift position completely- making it unusable in animation. Then, the blend is triggered when the attribute is 'On' and the knee is pinned in place, while the result curve edit points are being shifted based on the mid-point's position.
Inputs
OutputsLong-Name Short-Name Type Description point1 point1 matrix Input position A. point2 point2 matrix Input position B. point3 point3 matrix Input position C. blend blend float Blend value. blendSectionA blendSectionA float Section A only blend value. blendSectionB blendSectionB float Section B only blend value. swipeStart swipeStart float Swipe blend from start value. swipeStartFalloff swipeStartFalloff float Swipe blend from start falloff value. swipeMidToRoot swipeMidToRoot float Swipe blend from mid to start value. swipeMidToRootFalloff swipeMidToRootFalloff float Swipe blend from mid to start falloff value. swipeMidToEnd swipeMidToEnd float Swipe blend from mid to end value. swipeMidToEndFalloff swipeMidToEndFalloff float Swipe blend from mid to end falloff value. swipeEnd swipeEnd float Swipe blend from end to start value. swipeEndFalloff swipeEndFalloff float Swipe blend from end to start falloff value. collinearAction collinearAction enum Collinear action choice- inputCurve, resample. resampleMode resampleMode enum If resmapling is chosen, use this mode to resample- parametric, uniform. degree degree int If resmapling is chosen, use this degree. sections sections int If resmapling is chosen, use this amount of sections. conformMidPoint conformMidPoint bool Use the mid point to enhance clending algorithm. inputCurve inputCurve nurbsCurve Input curve. inputOffsetCurve inputOffsetCurve nurbsCurve Input offset curve.
Long-Name Short-Name Type Description outCurve outCurve nurbsCurve Result Curve. outOffsetCurve outOffsetCurve nurbsCurve Result offset Curve. center center float[3] Result circle center point. radius radius float Result circle radius.
mnsTransformSpring
=== Author: Assaf Ben Zur ===
Inputs
OutputsLong-Name Short-Name Type Description inputWorldMatrix inputWorldMatrix float MObject MnsTransformSpring::aInputWorldMatrix targetParentInverseMatrix targetParentInverseMatrix float MObject MnsTransformSpring::aTargetParentInverseMatrix strength strength float Global strength. 0 is do nothing. startFrame startFrame int Evaluation start frame. startFrameFromRange startFrameFromRange bool If true, take the start frame from current maya range instead of the input value given. time time time Time input. stiffness stiffness graph Stiffness graph control. damping damping graph Damping graph control.
Long-Name Short-Name Type Description translate t float MObject MnsTransformSpring::aOutTranslate
mnsVolumeJoint
=== Author: Assaf Ben Zur ===
Inputs
OutputsLong-Name Short-Name Type Description globalScale globalScale double Global scale multiplier. parentJointWorldMatrix parentJointWorldMatrix matrix Input parent joint world Matrix. Angle source-A. childJointWorldMatrix childJointWorldMatrix matrix Input child joint world Matrix. Angle source-B. childJointRestWorldMatrix childJointRestWorldMatrix matrix Input child joint rest matrix. This will dictate the zero position for the calculation. volumeJoint volumeJoint compound array Input array compound for a volume joint calculation. Unlimited. restTranslate restTranslate vector[3] Rest translation values. posXTranslate posXTranslate vector[3] Positive X angle translation values. negXTranslate negXTranslate vector[3] Negative X angle translation values. posYTranslate posYTranslate vector[3] Positive Y angle translation values. negYTranslate negYTranslate vector[3] Negative Y angle translation values. posZTranslate posZTranslate vector[3] Positive Z angle translation values. negZTranslate negZTranslate vector[3] Negative Z angle translation values. posXScale posXScale vector[3] Positive X angle scale values. negXScale negXScale vector[3] Negative X angle scale values. posYScale posYScale vector[3] Positive Y angle scale values. negYScale negYScale vector[3] Negative Y angle scale values. posZScale posZScale vector[3] Positive Z angle scale values. negZScale negZScale vector[3] Negative Z angle scale values. rotationBlend rotationBlend double Rotation blend between the 2 sources (parent and child joints) for this volume joint. 0 is parent rotation, 1 is child rotation. parentInverseMatrix parentInverseMatrix matrix Target joint's parent inverse matrix to be used to localize the output values.
Long-Name Short-Name Type Description result result compound Output transforms array. translate t float[3] Translation output. Child of transform. rotate r angle[3] Rotation output. Child of transform. scale s angle[3] Scale output. Child of transform. posXState posXState double Current Positive-X direction state, between 0 and 1. negXState negXState double Current Negative-X direction state, between 0 and 1. posYState posYState double Current Positive-Y direction state, between 0 and 1. negYState negYState double Current Negative-Y direction state, between 0 and 1. posZState posZState double Current Positive-Z direction state, between 0 and 1. negZState negZState double Current Negative-Z direction state, between 0 and 1.