AdnFat is a Maya deformer for fat tissue simulation. Thanks to a combination of volume and shape preservation constraints, the deformer can produce dynamics that allow the fat geometry to produce realistic jiggle-like dynamics.
The inputs to the deformer are two geometries coherent in terms of number of vertices and triangulation. One geometry is a deformed geometry which works as base mesh to drive the simulation (e.g. the simulated fascia), while the second geometry is the one to be simulated (i.e. the fat geometry to simulate). Given these two compatible surfaces, the solver procedurally constructs a volumetric internal structure between them. This structure is then simulated by computing: 1) volume constraints to make it resistant to compression and expansion; 2) volume shape preservation constraints to make the internal volume resistant to deformation; and 3) shape preservation constraints to preserve the original shape between connected vertices.
The AdnFat deformer is easy to create and configure in Maya. The deformer requires two input geometries that represent the inner and outer layers of the fat tissue. Typically, the inner layer corresponds to the simulated fascia, while the outer layer corresponds to the actual fat mesh to simulate. The inner layer works as a base mesh that the outer fat layer has to follow.
To create an AdnFat deformer within a Maya scene, the following inputs must be provided:
Base Mesh (B): Mesh to drive the simulation mesh (e.g. the simulated fascia geometry).
Fat Mesh (F): Mesh to apply the deformer onto (e.g. the fat geometry).
NOTE
B and F must have the same vertex count and triangulation.
B must be provided, otherwise the Fat solver will abort the simulation.
The process to create an AdnFat deformer is:
Select the Base Mesh, then the Fat Mesh.
Press in the AdonisFX shelf or Fat in the AdonisFX menu, under the Create Solvers section. If the shelf button is double-clicked or the option box in the menu is selected a window will be displayed where a custom name and initial attribute values can be set.
A message in the console will notify you that AdnFat has been created properly, meaning that it is ready to simulate. If an error occurs, a dialog will be prompted. Check the next section to customise their configuration.
Flag to enable or disable the deformer computation.
Iterations
Integer
5
✓
Number of iterations that the solver will execute per simulation step. Greater values mean greater computational cost. Has a range of [1, 10]. Upper limit is soft, higher values can be used.
Substeps
Integer
2
✓
Number of steps that the solver will execute per simulation frame. Greater values mean greater computational cost. Has a range of [1, 10]. Upper limit is soft, higher values can be used.
Material
Enumerator
Fat
✓
Solver stiffness presets per material. The materials are listed from lowest to highest stiffness. There are 7 different presets: Fat: 103, Muscle: 5e3, Rubber: 106, Tendon: 5e7, Leather: 106, Wood: 6e9, Concrete: 2.5e10.
Stiffness Multiplier
Float
1.0
✓
Multiplier factor to scale up or down the material stiffness. Has a range of [0.0, 2.0]. Upper limit is soft, higher values can be used.
Sets the scaling factor applied to the simulation time step. Has a range of [0.0, 2.0]. Upper limit is soft, higher values can be used.
Space Scale
Float
1.0
✓
Sets the scaling factor applied to the masses and/or the forces (e.g. gravity). AdonisFX interprets the scene units in centimeters. If modeling your creature you apply a scaling factor for whatever reason (e.g. to avoid precision issues in Maya), you will have to adjust for this scaling factor using this attribute. If your character is supposed to be 170 units tall, but you preferred to model it to be 17 units tall, then you will need to set the space scale to a value of 10. This will ensure that your 17 units creature will simulate as if it was 170 units tall. Has a range of [0.0, 2.0]. Upper limit is soft, higher values can be used.
Space Scale Mode
Enumerator
Masses + Forces
✓
Determines if the spatial scaling affects the masses, the forces, or both. The available options are:
Masses: The Space Scale only affects masses.
Forces: The Space Scale only affects forces.
Masses + Forces: The Space Scale affects masses and forces.
Sets the magnitude of the gravity acceleration in m/s2. The value is internally converted to cm/s2. Has a range of [0.0, 100.0]. Upper limit is soft, higher values can be used.
Gravity Direction
Float3
{0.0, -1.0, 0.0}
✓
Sets the direction of the gravity acceleration. Vectors introduced do not need to be normalised, but they will get normalised internally.
Toggles the use of a custom stiffness value. If custom stiffness is used, Material and Stiffness Multiplier will be disabled and Stiffness will be used instead.
Stiffness
Float
105
✓
Sets the custom stiffness value. Its value must be greater than 0.0.
Override Constraint Stiffness
Name
Type
Default
Animatable
Description
Solver Stiffness
Float
0.0
✗
Shows the global stiffness value currently used by the solver.
Volume Shape Preservation
Float
-1.0
✓
Sets the stiffness override value for the volume shape preservation constraints. If the value is less than 0.0, the global stiffness will be used. Otherwise, this custom stiffness will override the global stiffness. Has a range of [0.0, 1012]. Upper limit is soft, higher values can be used.
Shape Preservation
Float
-1.0
✓
Sets the stiffness override value for the shape preservation constraints. If the value is less than 0.0, the global stiffness will be used. Otherwise, this custom stiffness will override the global stiffness. Has a range of [0.0, 1012]. Upper limit is soft, higher values can be used.
NOTE
Providing a stiffness override value of 0.0 will disable the computation of that constraint.
Mass Properties
Name
Type
Default
Animatable
Description
Point Mass Mode
Enumerator
By Density
✓
Defines how masses should be used in the solver.
By Density allows to estimate the mass value by multiplying Density * Area.
By Uniform Value allows to set a uniform mass value.
Density
Float
900.0
✓
Sets the density value in kg/m3 to be able to estime mass values with By Density mode. The value is internally converted to g/cm3. Has a range of [0.001, 106]. Lower and upper limits are soft, lower and higher values can be used.
Global Mass Multiplier
Float
1.0
✓
Sets the scaling factor applied to the mass of every point. Has a range of [0.001, 10.0]. Lower and upper limits are soft, lower and higher values can be used.
Dynamic Properties
Name
Type
Default
Animatable
Description
Global Damping Multiplier
Float
0.1
✓
Sets the scaling factor applied to the global damping of every point. Has a range of [0.0, 1.0]. Upper limit is soft, higher values can be used.
Inertia Damper
Float
0.0
✓
Sets the linear damping applied to the dynamics of every point. Has a range of [0.0, 1.0]. Upper limit is soft, higher values can be used.
Attenuation Velocity Factor
Float
1.0
✓
Sets the weight of the attenuation applied to the velocities of the simulated vertices driven by the Attenuation Matrix. Has a range of [0.0, 1.0]. Upper limit is soft, higher values can be used.
Volume Structure
Name
Type
Default
Animatable
Description
Divisions
Integer
1
✗
Sets the number of divisions to create in the internal volume. The lower this value is, the faster the solver computes. Has a range of [1, 10]. Upper limit is soft, higher values can be used.
In order to provide more artistic control, some key parameters of the AdnFat solver are exposed as paintable attributes in the deformer. The Maya paint tool must be used to paint those parameters to ensure that the values satisfy the solver requirements.
Name
Default
Description
Global Damping
1.0
Set global damping per vertex in the simulated mesh. The greater the value per vertex is the more damping of velocities.
Masses
1.0
Multiplier to the individual mass values per vertex in the simulated volume.
Shape Preservation
1.0
Amount of correction to apply to a vertex to maintain the initial state of the shape formed with the surrounding vertices.
Volume Shape Preservation
1.0
Amount of correction to apply to the volume structure to preserve the initial volumetric shape and prevent it from distorsion.
In order to better visualise deformer constraints and attributes in the Maya viewport there is the option to enable the debugger, found in the dropdown menu labeled Debug in the Attribute Editor.
To enable the debugger the Debug checkbox must be marked. To select the specific feature you would like to visualise, choose it from the list provided in Features. The features that can be visualised with the debugger in the AdnFat deformer are:
Shape Preservation: For each vertex with a shape preservation weight greater than 0.0, a line will be drawn from each adjacent vertex to the opposite adjacent vertex.
Volume Structure: A line will be drawn for every connection between two points in the volume. A point can be either a vertex on the base mesh, a vertex on the simulated fat mesh or a virtual point that belongs to an internal layer generated by the procedural construction based on the Divisions attribute.