For quite some time I have been looking for a simple collision effect that could be used as a deformer. Unfortunately Maya doesn’t provide such a deformer without having to use soft bodies, nCloth nodes or muscle objects. The problem is that all these solutions are somewhat simulation based and time dependent and are maybe more than is actually needed. Especially when it comes down to an easy task like flattening out a tire or the feed of a character.
The initial idea came from the StretchMesh Deformer made by Kickstand. Their deformer is OpenSource since 01/2012 and it’s a really great tool. I have been able to compile it for Maya 2013 but for some reason the compilation fails for 2013.5. But it gave me the chance to take a look at the code and find out how a mesh collision is actually happening inside a plugin and learn from the pros. Still, StretchMesh has this awesome stretchyness to it and lots of other features.
iCollide is a deformer for Maya which allows to add simple collision effects to a mesh without the need of simulations. The mesh can have simple ground collisions as well as collide 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.
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.
iCollide will be maintained for future versions of Maya as soon as they are available.
Supported Maya Versions (OSX and Windows x64): 2012, 2013, 2013.5, 2014
Please note that the windows version is for 64-bit systems only, as I don’t have a 32-bit environment at my disposal.
Just copy the plugin to your users plug-ins folder
After loading the plugin from the Window -> Setting/Preferences -> Plug-in Manager, the plugin is available through the Animation Menu -> Create Deformers -> iDeform and Animation Menu -> Edit Deformers -> iCollide.
Select your mesh object to deform and go to Animation Menu -> Create Deformers -> iDeform -> iCollide to create the deformer.
Only mesh objects are supported up to this point.
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.
- 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. This feature is ignored in ‘Trace’ mode.
- Default Color: Defines the color for all vertices that are not affected be any collision.
- Color Gain: A multiplier for the color effect.
- Acceleration Range: Maximum distance for closest point calculations for collision points. This value should be kept as low as possible to allow for best performance. It should be increased if the needed collision distance is larger then this value and the affected vertices are moved to the origin.