The new version 2.x contains significant code changes since the last official release (1.5.1).
It is possible that the results of a scene made with an older version of the plug-in are different from the deformations
produced by version 2.x. It is recommended to finish older scenes with the previous version of the plug-in and use the updated version only with new projects.
iDeform is a collection of three deformers for Maya:
A displacement deformer with the ability to use locators or curves to define the area of influence as a dropoff control. The dropoff function is furthermore defined through a curve ramp in the attribute editor.
With the 2015 release Maya comes with it’s own texture deformer and iDisplace almost becomes obsolete. However, iDisplace still features dropoff points and curves, which makes it the more versatile choice if better control is needed. On the other hand, the default Maya texture deformer supports vector displacement and better deformation speed.
A collision deformer which provides simple collision effects without the need for simulations. It has been inspired by the StretchMesh Deformer made by Kickstand. With their deformer being OpenSource since 2012 it has been a great learning resource for writing plug-ins for Maya.
iCollide offers simple ground collisions as well as with other mesh objects. The deformation can be shaped with a number of attributes and regular curve controls via the attribute editor. The deformation can be either flexible or even kept after the collision for permanent deformation effects. Color controls optionally apply vertex coloring based on the various deformation attributes.
This deformer allows to add skin sliding as well as skin attraction effects to a mesh. Skin sliding can be controlled through a control object and keeps the original mesh shape while deforming the vertices over the existing surface. Skin attraction can be useful for applying sticky effects to the mesh and can be used for lips of a character.
iSkinDeform is deformer-based version of the slide components tool if the Maya Bonus Tools and has also been influenced by the the reel at Chad Vernons site (which is a great source for getting started with the maya API).
iCollide, iDisplace and iSkinDeform are under the terms of the MIT License.
Maya versions 2016.5, 2017, 2018, 2019 on macOS, Windows 64 bit, Linux 64 bit.
For ease of use the script and related files are combined as a module. This allows for an easy installation and keeps all necessary files in one location.
- Copy the module folder from the repository to your Maya preferences. The tool is version independent which means it can be installed in the preferences root folder.
The Maya preferences root directory is located at:
- Windows: C:\Users\USERNAME\Documents\maya
- macOS: /Users/USERNAME/Library/Preferences/Autodesk/maya
- Linux: /home/USERNAME/maya
- A default Maya installation doesn’t have a modules folder at this specified path. You can directly use the folder from the zip file. If the modules folder already exists copy the contents of the zip file’s modules folder to the one in your preferences.
- Inside the modules folder, rename the module template file, which matches your operating system, by removing the current extension. The file should be named iDeform.mod.
- Edit the file in a text editor and replace USERNAME in the path with your user name.
- Save the file.
- Restart Maya and find the iDeform menu in the main menu bar at the top of the interface.
Select a mesh to use as a collider surface and your mesh to deform and create the deformer.
For simple ground collisions only the mesh to deform needs to be selected.
Select an object as a controller, such as a locator, and your mesh object to deform and create the deformer.
Only mesh objects are supported up to this point.
Even if it’s possible to connect several objects as colliders performance may drop with lots of objects or detailed meshes. Also the quality of the deformation effect might be below expectations whenever some colliders affect the same region of the mesh.
For more complex collision effects other solutions might work better but please keep in mind that iCollide was built to serve as a quick collision deformation solution.
Collision objects have to be volume objects. Using a plane as a collision object does not work.
- Bulge: Controls the amount of bulging when the collision happens.
- Radius: Defines the distance the bulging effect affects the mesh from the point of collision.
- Offset: Offsets the collision surface.
- MaxRange: The maximum distance the deformer searches for collision surfaces.
- IntersectionRange: The distance in world units for the maximum allowed intersection. Keep small if the mesh is in enclosed spaces.
- Use Ground: Adds a simple ground collision to the mesh. The ground collision effect is calculated before the collision with other collider objects.
- Ground Height: Defines the height of the virtual ground plane for the ground collision.
- Mode: With mode set to ‘Relax’ the mesh will go back to it’s original shape after the collision. When set to ‘Trace’ the deformation will be kept even the surface doesn’t collide anymore.
- Use Start Frame: Defines if the deformation is reset in ‘Trace’ mode when the current time equals the ‘Start Frame’ attribute.
- Start Frame: The frame on which the deformation is reset in ‘Trace’ mode.
- Bulge Shape: Defines the shape of the deformed mesh in the bulging areas.
- Collision Noise: Optionally adds a simple randomness to the deformed vertices of the mesh. Different ‘Seed’ values produce a different offset to the vertices.
- Use Colors: Applies vertex coloring to the vertices of the deformed mesh.
- Result: Defines if the mesh is deformed and colored or only gets the color applied based on the deformation attributes.
- Color Mode: Defines the source for the color effect. The options are ‘Displacement’, ‘Bulge’ and ‘Radius’.
- Max Displacement: Defines the upper boundary when mapping the displacement to the color gradient. This controls how the color from the color ramp is distributed amongst the displaced vertices.
- Scale Factor: This is a multiplier for the for the ‘Max Displacement’ reference value. This can be useful when working with deformations at a small scale.
- Smooth: Averages the color of neighbouring vertices.
- Default Color: Defines the color for all vertices that are not affected be any collision.
- Color Gain: A multiplier for the color effect.
This video demonstrates how to use vertex colors produced by the iCollide deformer as a masking effect for mesh displacement created by the iDisplace deformer.
- Texture: Links your file texture or procedural texture to the deformer.
- Use UV: Uses the UVs of the object when working with 2d texture nodes.
- Local: Useful when working with 3d texture nodes. Only the placement of the 3d texture is calculated and the position of the object is ignored.
- Scale: Define the amount of displacement applied to the geometry.
- Offset: Moves the affected vertices along their normals to produce an offset effect.
- Type: Defines the direction of the displacement. ‘Normal’ uses the vertex normals for the direction, ‘Placement’ uses the first placement node found in the connected shading graph to modify the ‘Direction’ vector, ‘User’ takes a connected matrix plugged into the directionMatrix attribute of the deformer to modify the ‘Direction’ vector.
- AverageColors: If active, the texture colors from all channels get averaged. When inactive the color channels directly modify the displacement vector (RGB > XYZ).
- Use Dropoff: Enables the use of either dropoff locators or dropoff curves.
- Dropoff Type: Defines the type of dropoff, which can be ‘Point’ (dropoff locator), ‘Curve’ or ‘Vertex Color’ (connected iCollide mesh).
- Radius: The radius of influence when using the dropoff function.
- Color Set Name: The name of the color set to use from the connected iCollide mesh.
- Color Channel: Defines which color channel is used as the source for the vertex color based dropoff.
- Color Gain: Multiplier for the vertex colors.
- Color Gamma: Gamma adjustment for the vertex colors.
- Dropoff Curve: Defines the amount of displacement originating from the dropoff object within the dropoff ‘Radius’.
- Curve Falloff: Defines the amount of displacement along the U value of the used curve when using dropoff curves or a locator chain.
- Strength: General multiplier for the deformation effect.
- Radius: Defines the distance to the control object in which vertices are effected by the deformer.
- Falloff: Controls the strength of the deformation within the deformer radius.
- Attractor: Let’s you choose between the type of attractor. Choices are ‘Point’ (transforms) or ‘Curve’.
- Pinch: Controls if the affected vertices are moved along their normals or towards the influence object.
- Negative Clamp: This option disables any movement of vertices opposite their normal direction. This feature is beta only as it can lead to unexpected results dependent on the affected area. Must only be used with care.
- Curve Falloff: Controls the amount of influence in U direction when using a curve as a control object.
- Sliding: Switches from the ‘Attraction’ mode of the deformer to ‘Slide’ mode.
- Method: Defines how the position of the moved vertices is calculated. ‘Raycast’ is more accurate but can lead to more overlapping effects when using more extreme positions of the influence object, ‘ClosestPoint’ has less overlapping effects but can be less accurate.
Version 2.0.0, updated 2018-11-10