Muskeelar is the implementation of a research paper that Dr. Ashraf and I have written titled “Simplified Muscle Dynamics for Appealing Real-TIme Skin Deformation”. The paper has been accepted as a Regular Research Paper for the 2007 International Conference on Computer Graphics and Virtual Reality (CGVR’07) in Las Vegas in June 2007.
This muscle system which I have implemented is suitable for usage in games because it is polygon-based, builds on existing technologies used in games (e.g. smooth skinning) and has very decent performance running on the CPU alone. The data structures used are GPU-friendly and can be mapped to the GPU for even faster performance. The muscles are able to jiggle in real-time by undergoing physics simulation via springs and these subtle jiggles add on to the realism of the character.
Video showing our muscle system running in real-time, with and without muscle dynamics for comparison
The OGRE program used to visualise the muscle system in real-time
The underlying muscles and bones
Note that this page is mostly about Muskeelar (i.e. the plugin). If you are interested in the research paper, please visit the official website for the research.
The features of the muscle system developed in Maya are discussed below.
Video showing how muscles are created for a full-body character using Muskeelar
Stable dynamics
The muscle jiggles in this system are fast and stable. The usual stiffness, damping and mass settings are there for you to control the jiggle behaviour.
Sculptable muscles
The muscles can be sculpted using the Artisan tools into any arbitruary shape. You can create flat muscles, asymmetrical muscles and even muscles with long thin tendons. It is also possible to write a custom MEL script to assign offsets to the vertices based on CT scan data of real muscles so as to model real muscle shapes.
Bendable fusiform muscles
The fusiform muscles allow for bending so that they can better approximate real muscles.
Perceptible volume bulge
Other than the fact that the muscle preserves volume on its own (i.e. will bulge when compressed etc), user is able to adjust a multiplier to increase the bulge factor so that the muscle bulge is more perceptible during compression. If it worries you that the volume is not being preserved, just turn off that multiplier and you are back into the mathematically-correct, volume-preserving calculations.
Muscle mirroring
Setup artists only need to setup the muscles on one side. The system is able to mirror muscles onto the other side of the character automatically, saving you half the time needed.
Suitable for games and films
This muscle system is polygon-based, so it can suit existing game pipelines. If you are working on films and animations, it works perfectly fine in Maya as well.
Real-time changing of character physiques
The physique of the character can be changed in real-time to get different characters on-the-fly. Extreme behaviours of the character is possible too, such as creating a jelly-like character.
Muscles increased in size in real-time
Muscles decreased in size to create a skinny character on-the-fly
Jelly-like effect by decreasing the stiffness and damping of the muscles
I have experience with physics simulation programming, character rigging and R&D on anatomical and deformable models. In my free time, I work on small personal projects such as casual games and tools development.
I am currently working at Double Negative Visual Effects in London.