MASH 3

Documentation

01 | Intro

Introduction to MASH.

02 | Installation

How to install MASH.

03 | Audio

Power animation with sound.

04 | Blend

Blend two MASH networks together.

05 | Curve

Animating objects along a curve.

06 | Delay

Inherit the animation of another object.

07 | Distribute

Distributing objects.

08 | Falloff

Affect your network using spherical volumes.

09 | Flight

Flocking, Swarming and Schooling.

10 | ID

Assigning objects to MASH points.

11 | Influence

Influence scale and rotation with guide objects.

12 | Inherit

Inherit the animation of multiple transforms.

13 | Initial State

Referencing the current positions of your objects.

14 | Maths

Use Python expressions to manipulate your objects.

15 | Multi-Curve

Create animated curves based on MASH points.

16 | Mute

Controlling the strength of other nodes.

17 | Noise

Affect your objects with noise.

18 | Offset

Offset or multiply values.

19 | Orient

Point your objects in their direction of travel.

20 | Points

Display your point locations.

21 | Random

A random number generator.

22 | Replicator

Duplicate your entire MASH network with ease.

23 | Spring

Add spring to your animation.

24 | Symmetry

Mirror your networks.

25 | Transform

Transform your entire network.

26 | Trig

Use Sin/Cos/Tan to animate your objects.

27 | Visibility

Affect the visibility of your objects.

28 | Waiter

MASH’s backbone.

29 | Caching

Caching your network.

30 | Presets

Save your favourite setups

31 | Utilities

Bonus tools to help you along.

Intro

MASH is a suite of Maya nodes developed in-house at Mainframe aimed at enabling our artists to create versatile ‘motion design’ style animations. It offers a selection of effector nodes which can be daisy chained together to generate a wide variety of customisable effects. It’s fully controllable from both Maya’s Attribute and Node Editors.

MASH is tested for Maya 2012, 2013 (.5), 2014 and 2015 for OSX 10.7+, Windows (64 bit) and Linux (CentOS 6.5 - Maya 2015 only).

Check out our Vimeo channel for example videos and tutorials.

Installation

Note: If you have MASH 1.x installed, please remove it. Simply move/ delete all of the .py files from your plug-ins folder and delete the shelf as this no longer works with MASH 3.0. If you’re upgrading from MASH 2.0 then just overwrite any existing .bundle or .mll and restart Maya.

We’ve slightly changed where the MASH plug-in installs to improve cross platform use. If you’ve got a previous version of MASH (2.x) installed on your machine then either remove this version manually or ensure it’s deactivated in Window > Settings/ Preferences > Plug-in Manager.

The 2.x plug-in will be located in /Users/Shared/Autodesk/maya/plug-ins unless you have moved it to a different location yourself.



Installation: Please use the installers to select your version of Maya and install MASH (Linux is manual)

Install directories:

OSX

Plug-in - /Users/Shared/Autodesk/Maya/20xx/plug-ins

Icons - /Users/Shared/Autodesk/Maya/icons

Presets - /Users/Shared/Autodesk/Maya/presets

PC

Plug-in - \My Documents\maya\20xx-x64\plug-ins

Icons - \My Documents\maya\20xx-x64\prefs\icons

Presets - \My Documents\maya\presets

libfftw3f-3.dll (required for audio node) - By default this is installed to Program Files\Autodesk\Maya\20xx\bin but can be moved to C:\Windows\System32\ (path may vary depending on your version of Windows)

Linux

Plug-in - /home/<username>/maya/Maya 2015-x64/plug-ins

Icons - /home/<username>/maya/Maya 2015-x64/prefs/icons

Presets - /home/<username>/maya/presets (if this doesn’t exist, you can create it)

The Linux version of MASH uses two external libraries:

fftw - Used in the audio node, this library is statically linked, and you shouldn’t have to do anything on your end.

cURL - Used for registration, this library is statically linked, and you shouldn’t have to do anything on your end.

 

Loading:

Once installed, open Maya and navigate to Window > Settings/ Preferences > Plug-in Manager.

Find MASH in the list, and check both auto-load and load.

There will now be a new MASH menu under the Create menu.

 

Registering:

Once you have installed MASH, you need to register it to disable the demo mode. Go to the Create Menu > MASH > Register/Unregister dialogue and enter your details.

Once done, we recommend you restart Maya, and you’re good to go!

Audio

Power animation with an audio file.

Audio supports uncompressed WAV and AIFF files.

The sample rate is automatically detected.

Mode:

Spectrum: EQ frequencies will be used to drive the animation.

Average: The average volume will be used rather then individual frequencies.

Output Mode:

Normal: Results will be added to the incoming channel.

Multiply: Results will multiply the incoming values.

Filename: The audio file.

Sample Rate: The sample rate of your audio file (KHz).

Amplifier: Amplifier for the effect.

Frequency Graph: Control which frequencies are used to get results. The graph spans the size of your network so by identifying the bass, for example, you could draw a graph around it to isolate that frequency.

Enable XYZ: Control which axis are driven by the audio file.

Thresholds: Set minimum and maximum amplifier values. i.e. set a Lower Threshold of 1 and anything below that value will be ignored.

Time Offset: Offset the sound from the beginning of the timeline.

Time Step Average: Average volumes will be passed down the line, on by default.

Max Bands: The maximum number of frequencies that will be processed.

Blend

This multi-threaded node can blend two MASH networks together (note - used to be Merge Node, terminology needs updating).

Merge Types:

Crossfade: Fades from one network to the other.

Add: Adds the attributes of the parent network to the child network.

Subtract: Subtracts the attributes of the child node from the parent network.

Strength: Standard strength controls allowing you to control the blend.

Connect Waiter/ Blend Node: First select the child Waiter, then your parent Waiter. Navigate to the Blend node and click this button to connect the child node. You will then be able to blend your networks.

Curve

Animate objects along a curve:

Step: This controls how far apart the objects are.

Animation (slide): Use this to control the speed at which the objects travel along the curve. This is a fraction of the curve length.

Time Step Variation: Adds/ removes a random amount to the time step on a per object basis.

Velocity Random: Randomises the velocity of each point.

Velocity Noise: Adjust the velocity of each point over time.

Noise Scale: Scale the noise pattern used to affect the velocity.

Clip Start/ End: Use these sliders to only use part of a curve.

Strength: Fades the node’s effect all the objects at the same time.

Random Strength: Smoothly fades the node’s effect on all the objects in a random order.

Step Strength: Turns the node’s effect off one object at a time.

Clip Start/End: Control where points start/end.

Simple Mode:

U Position: The position of the objects on the curve.

U Strength: The strength of the simple mode (1 is on).

Up Vector: Amend the orientation of your points.

Roll Amount: Add roll to the animation of your points.

Proportional Counts: The number of points is influenced by the length of your curve(s). i.e. Longer curves have more points.

Equal spacing: Spaces points equally irrespective of curve length.

Calculate Rotation: Objects will face down the curve when this is on. Pay attention to the up vector, and the direction of your original instances (they should be pointing down the X axis of the scene).

Stop At Curve End: With this on, objects will not be sent back to the beginning of the curve once they reach the end, and will instead stop.

Inputs:

Add Curves: The curves the objects will travel along. You can add several at once.

Add Aim Curve: Use another curve to influence the rotation of your points. Useful to prevent objects flipping along the curve normals.

outAgePP: An attribute available through the Node Editor that you can use in combination with the Mute node’s inStrengthPP attribute. Age will be 0...1 depending on where the object is on the curve: 0 at the beginning, 1 at the end.

Delay

Inherit the animation of an object, and offset it in time.

Time Step: This controls the total time of the delay (in frames).

Time Variance: An object by object randomiser for the time step.

Time Offset: A backward offset for the time step.

Envelopes: Select which channels will be affected.

Strength: Fades the node’s effect for all the objects at the same time.

Random Strength: Smoothly fades the node’s effect on all the objects in a random order.

Step Strength: Turns the node’s effect off one object at a time.

Self Delay: Uses the objects own position as a base for the delay, and as such, ignores the leader object. This mode can be slow with complex networks. Remember that time variance is set to 20 by default, and you might want it on 0 when using this mode.

Leader Object: The object to follow.

Connect leader: Connects the currently selected transform.

Create Leader: Creates a null, and uses it as the leader.

Distribute

Distribute objects, also useful for ‘step’ effects:

Arrangement: A menu to determine the type of distribution, drop-down options are:

Linear: Distribution along a line.

Radial: Distributes objects around the circumference of a circle, or in a spiral/ helix.

Spherical: Places the objects randomly on the surface of an imaginary sphere. Auto-animates.

Mesh: See next page.

inPositionPP: A bridge to bring in scatter points or particle positions from SOuP or nParticles. Useful for goaling MASH controlled objects from one object to another.

Grid: A 2D or 3D matrix of objects

Settings: Several roll-downs with options for each distribution type, they are generally the same controls, just given names that are relevant to the current distribution type.

Mesh settings:

There are several methods of mesh distribution:

Scatter: Places the points randomly on the surface of the connected mesh.

Mesh Vertex: Places the points on vertices (in order).

Random Vertex: Places the points on random vertices.

Face Centre: Places the points at the centre of faces (in order).

Random Face Centre: Places the points on random face centres.

Voxel: Fills the connected mesh with your objects (see voxel settings).

Vertex Selection Set: Places points on components belonging to a connected selection set.

Push along normal: Move the points along the normal of the surface.

UpVector: Used for calculating rotation. It defaults to Y-up.

Connect Mesh: Select your mesh, then select your Waiter and click this button to use a mesh to distribute on.

Connect Selection Set: Create a selection set for your mesh (e.g. Create > Sets > Quick Selection set) then use this with 'Vertex selection set' as your Mesh Method

Face Settings:

Use Face Scale: Objects will be scaled according to the area of the face on which they are placed.

Face Scale Multiplier: A multiplier for the face scale setting.

Flood Mesh with points: Place a point on each face or vertex on your mesh dependent on your mesh method (overrides the number of points in the Waiter).

Voxel Settings:

Voxel Size: The size of the voxels, a smaller voxel size will create more objects and result in a slower calculation.

Pattern offset sliders: Use these sliders to offset the rows and columns.

Create container: Creates a voxel bounding box so that you can animate your mesh moving through a space filled with voxels.

Tip: To create a ‘hollow’ voxel shape, simply extrude your mesh inward.

Strength: Fades the node’s effect all the objects at the same time.

Random Strength: Smoothly fades the node’s effect on all the objects in a random order.

Step Strength: Turns the node’s effect off one object at a time.

Distribute Gap: Groups the objects into fewer distribution steps.

Bias Ramp: An animatable graph to control the distribution of points. There are ramps for each axis.

Create Falloff Object: Creates a volume falloff object.

Falloff

A node to control falloff volumes.

Invert Falloff: Inverts the falloff area.

Shape: Spherical or cubic falloff shapes are supported. Cubic is slightly slower then spherical.

Mode:

Normal: The effect of the falloff object will be temporary.

Add: The effect of the falloff node will be permanent.

Remove: Removes the permanent effect.

Radius: Radius of the falloff volume in world units.

Inner Zone: Areas in this zone will be at full strength, it’s measured as a ratio of the radius.

Falloff Ramp: Customise the falloff curve.

Flight

A multi-threaded simulation node that will give a very natural approximation of flocking/ schooling and swarming.

The Flight node needs playback speed setting to ‘play every frame’ as it is a simulation node. Your playback start and end frames should be set to whole numbers eg., 0 to 250, and not 0.04 to 249.96 for example.

Objects will face down the Z-axis once you’ve added an orient node.

Main Controls:

Separation Strength: How determined they are not to collide.

Alignment Strength: How much the points want to travel in the same direction.

Cohesion Strength: How much the points want to stay together.

Search Distance: How far to search for other points.

Number of Companions: How many points to compare with when making the calculations.

Field of Vision: The angle (in degrees) within which the object can see it’s companions.

Alignment Zone: The size of the alignment area inside the search distance.

Separation Zone: The size of the separation area inside the search distance.

Speed and Mass:

Minimum/ Maximum Speed: Control the speed of the points.

Steering Force: Allows for overshoot in each points movement. Lower values give agile darting movements while higher values give swooping movements and result in overshoot.

Mass: Used to exaggerate some of the calculations.

Mass Variance: A random variance on the mass.

Gravitate and Inertia:

Gravitate Strength: How influenced one point is to a nieghbouring one.

Gravitate Distance: The distance within one point will start to affect another.

Type of Gravitation: Given Location uses the float boxes and GroupCentre uses the centre of the points.

Given Location: The centre of gravity.

Inertia: A constant force applied to all the points.

Gravitation Object: You can connect a locator here to move the centre of gravity interactivly.

Attractor Controls:

Attraction Strength: A multiplier for the attraction vector.

Attractor Search Distance: The radius inside which attractors will be 'seen'.

Arrival Mode:

Arrival Threshold: How far away the objects are when they come to a standstill.

Arrival Variance: An additional setting to enable some freedom from the threshold.

Arrival Dampening: An additional dampening factor that will slow the objects down as they arrive at the attractor.

Obstacle Controls:

Avoidance Type: Various options to create a more natural flow to obstacle avoidance.

Obstacle Strength: A multiplier for the avoidance vector.

Obstacle Search Distance: The radius inside which obsticles will be 'seen'.

Connect Obstacle: Connect an object to be used as an obstacle.

Create Obstacle Locator:

Connect Obstacle Mesh: Connect a mesh to be used as an obstacle.

Predator/Prey Controls:

Predator Strength: A multiplier for the predator vector - if it helps, imagine this is the enthusiasm of the predators.

Predator Search Distance: The radius inside which prey will be seen.

Prey Strength: A multiplier for the avoision vector. Think of this as being how determined the prey are to avoid the predators.

Prey Search Distance: The radius inside which the predators will be seen.

Mesh Following:

Input Mesh: The points can be constrained to a mesh, helpful for insects and people.

targetPP: A connection you can make in the node editor to make a PP array (such as one created by a Distribute node, or SOuP scatter node) an attractor point.

ID

Easily assign different objects to your MASH points.

Note: This should be added to the ‘Instancer ID’ channel.

ID Node:

ID Type: The type of ID distribution, the options are:

Linear: Increments the ID of each object by 1. It loops if there aren’t enough objects.

Random: Each object gets a random ID.

Echo ID: Each Echo gets a different object.

Cycle: IDs are incremented by 1 per frame.

Fixed: Each ID is the same.

Num. of Instancer objects: How many objects IDs should be used.

Random Seed: Change the seed (when using Random ID Type).

Num. of Echos: This attribute is depricated and will be removed soon (replcaed by Step ID on the Replicator Node).

Fixed ID: Select the ID (when using Fixed ID Type).

Cycle Options:

Normal: The ID will loop.

Stop At End: Each ID stops animating when it runs out of objects.

Oscillate: The ID will reverse once it gets to the end of the sequence.

Randomise Cycle Start: When in Cycle mode each starting ID is random.

Cycle Gap: Stagger cycling starting points (doesn’t work when randomise is on).

Random Start Limit: The maximum number of frames between the first and last objects starting their cycle.

 

Influence

Influence scale and rotation with guide objects.

Influence Node:

Add Influence Locator: Add an extra influence locator to the scene. Two influence locators are created by default.

Influence Power: This setting controls how quickly the influence locator’s effect falls off. Higher values make the falloff more pronounced.\

Use Radius: When on, the maximum extent of influence locators is controlled by the radius setting below, when this is off the influence node will automatically fade between multiple influence locators.

Influence Radius: The maximum extent of a locator’s influence.

Enable Vortex: A special mode which will create a rotational vortex effect.

Enable Scale/ Rotation/ Position: Enable or disable the effect of the locators on this channel.

Overwrite Scale/ Rotation: When enabled, the node will ignore any incoming values and overwrite them. Turn this off to preserve any incoming rotation or scale information.

Enable Translate X/Y/Z: Influence the position transforms.

Inherit

Inherit the animation of multiple transforms.

Distribution Style:

Linear: Point 1 is assigned to input 1, point 2 to input 2 etc.

Random: All points are assigned randomly to the inputs.

Random Seed: Alter the random seed.

Strength: Fades the node’s effect all the objects at the same time.

Random Strength: Smoothly fades the node’s effect on all the objects in a random order.

Step Strength: Turns the node’s effect off one object at a time.

Force: ‘Pushes’ the points away from the transform.

Force Variation: A randomiser for the above control.

Connect Parent(s): Connect an object(s) your network will inherit transforms from.

Create Parent: Create a null your network will inherit transforms from.

Initial State

The initial state node will pass through the location of the objects you have added to your MASH network. This node is live, and any animation will also be passed through.

Note: It’s always best to add this node first so that any initial transforms aren’t overwritten by other nodes.

Note: If your objects have rotation or scale information, zero this out after adding the node, otherwise you’ll end up with double transforms.

Initial State Node:

Enable Position/Rotation/Scale: Turns on this channel of the initial state node.

Strength: Fades the node’s effect all the objects at the same time.

Random Strength: Smoothly fades the node’s effect on all the objects in a random order.

Step Strength: Turns the node’s effect off one object at a time.

Maths

Use Python expressions to manipulate your objects.

Maths Node:

Use ‘XYZ’ Expression: Check-boxes to enable or disable expressions.

Overwrite Incoming Values: Your expressions will overwrite incoming values.

Note: The random and maths modules are imported automatically, Maya commands are assigned the namespace ‘mc’.

MASH supplies you with several local variables:

id = object number (the same as the Point ID)

totalid = the total number of objects

time = the frame number

inx iny inz = the values of the objects before the Maths node.

pi2 = 2 x pi

step = normalised id (the id but between 0 and 1).

angle = a helper variable for creating circles, see examples below.

u & v = internal UV values, you might find them useful.

Example formulae (not all are animated):

sin((time+id)*0.1)*5

pow(max(2-step,0),5)

tan(step*(time*0.02))

cos(inx*pi2+(time*0.1))

To create a rotating circle:

sin(angle+(time*0.01))*10 (place in x)

cos(angle+(time*0.01))*10 (place in y)

Multi-Curve

Create animated curves based on MASH points.

Curve Type:

Join the Dots: Joins all the MASH points with a curve/curves.

Tracer: Trace the paths of your points.

Point to Point: The current position of your point is connected to the location of a helper object (or 0,0,0 if you don’t connect one).

Number of Curves: Creates and removes curves from the scene.

Tracer Length (frames): The length of your tracer curve in Frames.

Tracer Variance (frames): A random variance on the tracer length.

Experimental/ Advanced settings:

Extra Points: Adds extra points between each normal point, this is so that you can better rebuild the curve, or add dynamics to the curve and it will create a better shape.

Closed Curve: The curve will close itself.

Curve Smoothing (degrees): The curve smoothing (the higher the number, the smoother the curve). This feature is experimental and it is not guarenteed to work in conjunction with extra points.

Point to Point Location:

Connect Point Object: Connects a selected translate for use as the point location.

Create Point Object: Creates and connects a locator for use as your point location.

startPositions: by connecting this attribute in the node editor you can plug another MASH node (or particle group) into a Multi-Curve node and connect the two networks with curves by using Point to Point mode.

Note: When using Paint Effects on your Tracer curves, be aware that they will not appear until the curve has reached it’s maximum length (by default, frame 100). Paint Effects do not appear to support curves of dynamic length.

Note: Point to Point curves have additional CVs created automatically (you can disable this in Extra Attributes). These extra CVs allow you to make the curves dynamic (nHair > Make Selected Curves Dynamic). nHair is only available in Maya 2013 or newer. See example file.

Mute

Control the strength of other nodes.

Mute node:

Strength: Fades the node’s effect all the objects at the same time.

Random Strength: Smoothly fades the node’s effect on all the objects in a random order.

Step Strength: Turns the node’s effect off one object at a time.

Noise Strength: Think of this as animated random strength.

Noise Scale: Affect the scale of the noise pattern.

Mute Ramp:

Reverse Mute Order: Useful for Step Strength, it will reverse the order in which the objects are effected. Be careful with this mode, it can produce unwanted results.

Map Based Mute (like strength on other nodes):

Strength Map: Use any 2D texture/ file/ animated file texture to mute your objects.

Create Map Helper: Create a helper object to allow you to visually place your texture.

Connect Map Helper: Connect an existing object object to allow you to visually place your texture.

Individual Axis Controls: Individual envelopes for each axis.

Time Based Mute:

Loop Frames: The number of frames before MASH loops the 'Beat Ramp'.

Beat Ramp: Draw a ramp to control the mute strength. 'Loop Frames' sets the range of this ramp.

XYZ Strength: Sliders to control the strength of the mute effect.

Stagger (frames): Each object will be offset along the ramp, see example project.

Loop the ramp: The ramp will not loop when this is disabled.

inStrengthPP powered ramp: Use the values coming in from this attribute to determine what part of the ramp is read. Useful in combination with the Curve node for age based effects. In addition, the ‘lifespan’ attribute can be used to help this calculation along. See example files.

Particle Lifespan: See above.

Mute by String: Type in object numbers, separated by commas, or number ranges, separated by a hyphen to mute them. e.g. 3,4,5, 8-13

Filter On: These objects will remain on, no matter the other mute values.

Filter Off: These objects will be fully muted, no matter the other mute values.

Noise

Affect your objects with Perlin noise, looping Perlin noise,
FbM, seek noise or mosaic noise.

Noise Type:

Perlin Noise: The noise you’re probably looking for.

Seek Noise: This is a fully procedural random walk; the points will wander off from the centre of the screen in random directions. You can control how erratic the movement is with the new ‘Seek Angle (FoV)’ setting. It’s particularly useful for simulating insect movement in conjunction with the Flight node.

Mosaic Noise: Points can only turn at right angles in the noise mode. There are random variance sliders to create a varied look, found under the Cubic Noise (misnamed) roll out.

fBM Noise: Fractal Brownian Motion, sometimes called Turbulent Noise. As a basic explanation: whereas objects under the influence of Perlin noise will generally move at the same speed, those being moved by fBM noise will speed up and slow down.

Perlin Noise (looping): A loopable noise. Control the speed / length of the loop using the Loop Time (frames) attribute.

Amplitude: Strength of the noise.

Perlin Noise settings:

Frequency: The speed of the noise.

Mosaic Noise settings:

Switch Time: How often the noise will change direction.

Switch Time Variance: A random variance for the switch time.

Speed Variance: A randomiser for the point velocity.

Seek settings:

Seek Angle (FoV): When wandering, this is the field of view in which they will wander, higher numbers (in degrees) mean a more erratic behaviour.

Perlin loop Settings:

Loop Time (frames): Over how many frames the noise will loop.

Strength:

Strength: Fades the node’s effect all the objects at the same time.

Random Strength: Smoothly fades the node’s effect on all the objects in a random order.

Step Strength: Turns the node’s effect off one object at a time.

Per Point Adjustments:

Map adjusts...: Having nothing selected defaults to 'map adjusts strength'. By selecting these options you can isolate your choice (can be multiple).

Step: The time difference between the noise given to each object. Lower this value to make the objects look like they’re following each other over the noise.

Octaves: The number of noise octaves, higher numbers will produce a more detailed noise.

Random Seed: Seed value for the noise.

Persistence: The strength of each noise octave.

Whole numbers: Only whole numbers will be returned.

Absolute Noise: Noise values will always be positive.

Uniform Noise: Noise values are scaled uniformly (x/y/z).

Offset

Offset or multiply values.

Offset Node:

Mode:

Offset: Takes the incoming array (if there is one) and adds to it.

Multiply: Multiplies the results of the incoming array.

Rotate All Points: This will rotate all the objects around a given point. It only makes sense to use this is the position channel.

Overwrite: Values will be set to these regardless of the incoming array. This can be useful for diagnostics, and occasionally when using the Initial State node.

Closest Point On Mesh: Sticks the points to a surface.

Accumulate: Multiplies the offset values by the frame number.

Hold Values: Use this in combination with the Hold Values Strength slider to fix the values of your objects. Useful if objects using the orient node come to a stop.

Offsets (XYZ): The values used by the modes described above.

Clamps (Normal mode only):

Enable Clamps: Enables the clamps.

Clamp Values: XYZ values for the low and high clamps.

Strength: (as per normal)

Closest point on Mesh:

Connect Mesh: Points will offset to their nearest point on the mesh you select.

Centre of Rotation (Rotate mode only):

Centre of Rotation: The point around which all the objects will rotate.

Accumulate:

Use time: Value is multiplied by the frame number (it's recommended to keep this selected is using Offset in Accumulate mode).

Start frame: Offset 'Use time' value.

 

Orient

Point your objects in their direction of travel.

Note: This object should be added to the Rotation channel.

Note: Point your original objects down the X axis to make the up vector relevant.

Orient Mode:

Velocity: Orient objects along their direction of travel.

Aim at Target: With this box enabled the MASH objects will point at whatever target you add to this node.

Orient to Mesh Normal: Use a mesh to orient your objects.

Solo: Limit which axis are rotated.

Up Vector: Which direction is up for your objects.

Smooth Rotations: Smooths the rotation animation over 10 frames. Very useful with the Flight node.

Mute Incoming: The Orient node now mutes any incoming rotation array by default.

Aim at Target Options:

Set Target: With an object translate selected, click this button to set it as the target.

Create Target: MASH will create a locator and connect it to the node, as well as turn on Target Mode. It just saves you a few clicks.

Orient to Mesh Options:

Connect Mesh: Select the mesh you like to drive your objects orientation.

Tip: If you find the changes of direction too abrupt, add a Spring node to the rotation channel to dampen the rotation.

Points

Display your point locations and numbers with OpenGL.

Points Node:

Enable Points: Disable the node with this.

Colour: The colour of the points in the viewport.

Random

A random number generator:

Random Node:

Minimum Number: The lowest random number that can be generated.

Maximum Number: The highest random number that can be generated.

Random Seed: A seed value for the random numbers.

Strength:

Strength: Fades the node’s effect all the objects at the same time.

Random Strength: Smoothly fades the node’s effect on all the objects in a random order.

Step Strength: Turns the node’s effect off one object at a time.

Whole Numbers: Only whole numbers will be returned.

Uniform Random: The random X value will be used for Y and Z.

Individual Axis Controls: Min and Max sliders for each axis. They are used when their value is not 0.

Replicator

This powerful node duplicates your entire MASH network.

Replicator:

Replicants: The number of times your MASH network will be duplicated.

Offset Positions: The spacing of the replicants.

Position Ramp: Use a ramp to control positions.

Scale Together: Scales all the points together from the axis.

Scale Replicants: Scale the spacing of the replicants.

Scale Ramp: Use a ramp to control scale.

Rotate Together: Rotates all the points together from the axis (or driven rotations). For use with Pattern or Driven Rotation.

Rotate Replicants: Rotate the replicants.

Rotation Ramp: Use a ramp to control rotation.

Rotate Around: The point around which the replicants will rotate.

Offset: Offset the number of replicants.

Step ID: Step up the ID with each replicant, as oppose to each object.

Pattern:

Pattern: Offset every Nth row.

Pattern Offsets:The amount by which to offset the rows.

Time Machine:

Time Offset: Use this to offset the animation on the replicants.

Curve:

Connect Curve: Use a curve to distribute your replicants. Replicants are distributed evenly along the curve.

Time Slide (Animation): Animate your replicants along the curve.

Curve Scale: Use this to adjust the scale of the time slide attribute to account for tiny/huge curves.

Up Vector: Affect the orientation of your replicants.

Rotational Offsets: Offset the curve rotation if you need to (to get your objects facing the right way!).

Use Curve: Enable/disable the effect of the curve.

Driven Channels: Use another Waiter to drive the replicants position/ scale and rotation. This allows for some hugely complex set-ups.

Spring

Add spring to your animation:

Note: The spring node requires animation to do anything, so add it after some animated MASH nodes.

Note: Spring currently doesn’t work correctly when scrubbing, this will be fixed. In the mean time, simply play through your animation to see it work.

MASH Spring:

Spring Strength: An envelope for the overall spring effect.

Damping: Dampens the spring, higher values will cause faster settling.

Stiffness: The rigidity of the spring effect, lower values will cause a larger overlap.

Damping Variation: Creates a random variation of the damping value on a per-object basis.

Stiffness Variation: Creates a random variation of the stiffness value on a per-object basis.

Symmetry

Reflect your entire network:

Symmetry:

Placement:

Mirror Plane: Use a plane (created when you add the node) to mirror your network. (currently requires you to manually rotate the helper plane if you change the Axis)

Bounding Box +: Use the positive bounds of your MASH network as the reflection plane.

Bounding Box -: Use the negative bounds of your MASH network as the reflection plane.

Axis: Select the axis to reflect/mirror along.

Enable Rotation: Pass rotation values though the Symmetry Node.

Allow Negative Scales: When enabled, MASH can turn geometry inside out (i.e. a value of 1 reflected becomes -1).

Transform

Transform your entire network:

Transform:

Pos/Rot/Scl: Offset values.

Create Controller Null: Create a null object for your MASH network to inherit transforms from.

Connect Controller Null: Connect an existing object for your MASH network to inherit transforms from.

Trig

Use Sin/Cos/Tan to animate your objects:

Trigonometry Node:

Amplitudes: The amount of units at the peak and trough of the animation curves.

Frequencies: The speed of the animation.

Strength:

Strength: Fades the node’s effect all the objects at the same time.

Random Strength: Smoothly fades the node’s effect on all the objects in a random order.

Step Strength: Turns the node’s effect off one object at a time.

Per Point Adjustments:

X/Y/Z Function: The type of curve.

Step: The offset along the curve given to each object, lower values mean all the objects have a very similar animation, larger values mean they will have a completely different value.

Absolute Values: Generated values will all be positive.

Whole Numbers: Only whole numbers will be returned.

Visibility

Affect the visibility of your objects.

Visibility Node:

Strength: The ratio of the objects turned off. By default, objects are turned off in order.

String filters: Type in object numbers, separated by commas, or number ranges, separated by a hyphen to hide them. e.g. 3,4,5, 8-13

Filter On: These objects will remain on, no matter the other values.

Filter Off: These objects will be invisible, no matter the other values.

Invert: Reverses the order in which objects are made invisible.

Randomise: Randomises the order in which the objects are turned off.

Random Seed: A random seed value for the above control.

Waiter

The ‘Waiter’ is the crux of MASH.

Here you create nodes for the network and set the number of objects you want.

Waiter Mode:

Number of points: How many objects there are in your MASH network.

Add Mode: Click on any node and you will be presented with a contextual menu which will allow you to add the node to your network.

Advanced:

Show Percentage: Lighted the load on your GPU when working with large scenes by setting the percentage of objects displayed in the viewport (doesn't affect rendering).

Batch Render Multiplier: Mulitply the 'Number of points' value when sending to batch render. Useful for large scenes which are becoming computationally heavy. (i.e. half your 'Number of points' and set mutiplier to '2')

Allow all nodes in all channels: Deprecated and will be removed in future versions.

Thaw when adding Initial State: Unfreeze your objects - required by default for MASH to position your objects.

Use Selection Set: Use this to directly move transforms in your scene. See note below.

Particle Mode: Deprecated and will be removed in future versions.

Presets:

See below.

Caching:

See below.

 

Note: Under ‘Advanced there is a check-box ‘Use Set Objects’, you can use this to directly move transforms in your scene.

1. Set this option.

2. Drag some objects onto the Waiter in the Outliner (it’s a selection set).

3. Set the number of points to the correct number.

4. Use MASH as normal.

5. BAKE your animation (edit > keys > bake simulation) before rendering.

Caching

The Waiter now includes a Caching roll-down.

This houses a button which activates the new Cache Creator as well as check-boxes for quickly enabling and disabling caches.

The Cache Creator:

Within this window you can create caches for each MASH channel.
Caches are a single file per channel.
Cache names are based on the name of the Waiter.
Caches are saved in Maya’s mcx format (the same as nCaches).
Caches can be disconnected in the Cache Creator.
The resulting Cache nodes can be re-timed and reversed etc., etc.
Once a cache has been created, you can disable the MASH nodes in that channel as the Waiter
will not be using their calculations.

Presets

You can access ready made presets or create your own presets to help you in the future.

Presets Location: The folder where the presets will be saved.

Empty Instancer: Removes objects from the instancer before creating the preset.

Layout Tools Compatible: Creates a .png to go along with the preset, this will allow Layout Tools to show a preview of the preset.

Create Preset: Creates the preset after you’ve entered a name for it.

Show Visor: Opens the MASH Presets tab in the Visor.

Create

These options are found under Create > MASH

Create MASH Network:If an object is selected when performing this command that object will be added to the MASH Instancer

Register/Unregister:Open the Register/Unregister dialogue.

MASH Outliner:Launch an Outliner which displays only your MASH nodes.

MASH Helper:This is superseded by the MASH Outliner.

In-view Messages:Enable/Disable in-view messages.

MASH Documentation:You already know what this does!

MASH Support:External link to our support site.

Utilities

These tools are found under Create > MASH > Utilities

Create MASH Deformer:

First select a mesh shape and then a Waiter node, then select this option.

This adds a deformer to the selected MESH object that is driven by the MASH network. The deformer has some enveloping options and supports Falloff objects.

Create Blend Deformer:

This surprisingly powerful deformer allows you to blend from one shape to another (with an identical vertex count). That sounds limiting, however, with Maya’s new Shrinkwrap deformer, it’s actually not an issue. With this node you can use Maps, Falloff objects and even a Curve to control blending from one shape to another. Other mighty fine features include the ability to inflate your models (expand them along their normals) and smooth them. All these attributes work with the falloff objects, so you can use them to control which parts of your model get smoothed, morphed or inflated. It can lead to some very novel transitions! What’s more, is that you don’t actually need to blend to a different mesh, you can use this deformer to simply selectively inflate and smooth the mesh you add it to, with no destination mesh needed.

Create Jiggle Deformer:

Adds a simple jiggle deformer to a mesh. It benefits from being plugged into the MASH framework allowing Maps and Falloff objects to affect it. It’s faster and simpler to use then the Jiggle Deformer that’s built into Maya.

Convert Instancer to objects:

Select an Instancer and then run this script. It can bake either a still frame or the whole animation. The script will also perform tests to make sure the baked objects end up where you want them (offsets to rotation and position can cause things to end up where you wouldn’t expect).

Create Instancer Pivot:

The Maya particle instancer ignores object pivot points, you can force it to respect them by selecting an object and running this command. This is a built in Maya command that we give access to though a menu, we did not design this behaviour!

Connect nParticles to Waiter:

Select some nParticles, then a Waiter, then run this script to connect the two. After doing this you can then add nodes as normal to MASH. Please note that this script only connects the particle position to the MASH network. You will have to connect per particle attributes manually (scale, rotation, id etc.).

Create nParticles > MASH > Instancer:

Creates a new MASH network with an nParticle network plugged into it, this means you can use all the MASH goodies to control the particle system while inheriting, for example, the dynamics of the particle system.

Set up nParticles with an initial state from MASH:

Select a Waiter, then choose this option. This will create a new nParticle system with a particle at the position of each MASH point.

Create Visor preset tabs:

If you delete your MASH preset tabs, you can recreate them with this menu option.

Thaw Objects:

Select a group of frozen objects and select this option.

If you want to work with objects such as Illustrator shapes or text created by Maya, these shapes will have their transforms frozen, this means MASH won’t know where they really are, when that’s the case, run this script to give the objects their correct transform information.

Stamp object on Curve CVs:

Select a curve and an object to stamp that object on each curve CV.

Stamp material on selection:

Select a series of objects and the material of the first will be duplicated onto the rest.

Branch Mute Node:

This feature is depricated (replaced by the Blend node) and will be removed soon.

Breakout Utility:

The Breakout Utility is an incredibly powerful tool which allows you to hook up any animatable attributes and drive them using a MASH network. Check out this tutorial for more info.

Back to top