Digital Molecular Matter (DMM) is a material physics simulation system that uses the finite element method to make objects in a virtual world behave as if they were made from real-world materials by modelling the internal stresses the object experience as they are subjected to external forces. DMM Animator is a plugin for Maya that can be used to create DMM objects, assign physical material properties to the objects, and have them simulate as part of a Maya animation.
DMM Animator allows the user to adjust simulation mesh densities as well as identify what parts of each mesh should be controlled by the simulator and what parts should be fixed or animated by Maya. Surface meshes are automatically prepared for deformation and fracture and can have textures assigned to internal and external faces. Exporters are included to allow DMM objects to be exported into a video game engine containing DMM Engine. DMM Animator also contains the real-time version of the DMM simulator so a user can see how objects will behave when exported to DMM Engine.
By utilizing DMM Animator, users can create "baked" 3D animations that can be exported for playback within a game without DMM Engine. Users can create deformed and fractured versions of art assets. For example, to create a bombed out building, an animator might use DMM Animator to blow up a pristine version of the building to create a damaged version which can then be exported as an art asset.
DMM Animator consists of two Maya dynamic linkable libraries (dmm_release.mll and dmm_cinematic.mll), a set of python scripts, Attribute Editor Templates, some shelf scripts and shelf icons, and a user guide. The linkable libraries provide a set of Maya nodes that do most of the work of the plugin. The dmm_cinematic.mll library is more accurate but slower than the dmm_release.mll library and is used for creating baked or very visually accurate animations. The dmm_release.mll is used to preview how objects will behave interactively in a game that uses DMM Engine.
DMM Objects
When a DMM object is created in Maya, the DMM user interface scripts set up a node network that represents the object. In the case when the object is a DMM primitive (such as a cube or sphere) or when a tetrahedral cage is used, the input mesh first goes to a Surftri node. The output of this node is a Delaney triangulated mesh, which is connected to a Netgen node. The Netgen node outputs a tetrahedral mesh which is the input to the DMMObject node. The DMMObject node outputs a deformed version of the tetrahedral mesh and a deformed version of an input surface mesh (if present). The DMMObject node is connected to a DMMScene node, which is where the simulation is performed. DMM objects that are attached to the same DMMScene node will interact when the simulations is played. A DMM object network can also start with a tetrahedral mesh, in which case the Surftri node and the Netgen nodes are not used.
If a DMM object has a surface mesh then the input surface mesh is connected to a DMMPrepMesh node. The DMMPrepMesh node prepares a surface mesh for deformation and fracture. The output of the DMMPrepMesh node is connected to the DMMObject node. The simulated (deformed) mesh output from the DMMObject node is then connected to a Maya mesh node for display. Maya materials from the input mesh are passed through to the final simulated mesh. Changes, like setting a Maya material to a certain face, are generally done only on the input mesh and not the simulation mesh.
Simulating
Because DMM simulation is integrated into Maya through DMM Animator, when the user plays a Maya animation with DMM objects in it, the DMM objects will automatically simulate. To allow interaction with keyframed animations or to keep parts of DMM objects from simulating, DMM Animator provides the ability to set all or part of a DMM object to be passive (or "driven"). Driven objects will animate as they are keyframed to animate and can interact with non-driven DMM objects in interesting ways. For example, if you wanted a DMM cannonball to be animated going through a brick wall, you might want to keyframe the trajectory of the cannonball but adjust the physical properties of the brick wall to achive a visually desirable result.
The maximum simulation step for DMM in the plugin is 0.04 seconds. When playing a simulation the simulation step is the frame time divided by the number of sub steps. The default sub step is 2. If the current time is moved beyond the maximum step time (taking sub stepping into account), the simulator will not simulate. If the current time is moved backwards the simulation will reset to the initial state. In order to play a simulation backwards or skip forwards the DMM cache can be turned on.
Physical Materials
Because Digital Molecular Matter is a material physics system. Every part of a DMM object can be assigned a physical material, which is represented as a set of values for stiffness, toughness, density, yield, etc. With DMM Animator, each physical material in a scene is represented by a Physical Material node. Each DMM object is connected to a physical material node. That material node represents the physical material for the whole object. Although the DMM simulator supports changing material values on the fly, the DMM Animator only checks the material values at the start of playing a simulation. Changes in material setting do not take effect until the simulation is replayed.
Fracture
DMM Animator not only allows the deformation of surface meshs, it can fracture them as well. In order to fracture a surface mesh, the mesh is clipped to a fracture pattern. The fracture pattern is by default the tetrahedral mesh for the DMM object. The actual fracture that occurs is dependent on the stress experienced by the DMM object as well as its material properties.
To visually augment fracture, "splinter cages" can be used to create different fracture patterns such as wood, cement, or bricks. Complete facilities to create and apply splinter cages is included.
In addition to clipping the input surface mesh, "inner faces" are created as part of the fracture preparation. These inner faces are the faces that the broken pieces will have that are not part of the surface of the unbroken mesh. Because these inner faces are generated automatically, the input surface mesh must be manifold and watertight. The UV coordinates for the inner surfaces are randomly generated and the scale factor for the UVs can be set by the user.
Exporting
DMM Animator can export DMM objects for use by a game engine with the DMM Engine integrated. DMM Animator can also export DMM animations in XML format. These animations require a DMM animation player to be incorporated in a game engine to play the animations. The player binary and source are provided free. Because the DMM simulator runs in Maya, and the simulated surface meshes are normal Maya meshes, DMM animations can be rendered as movies from within Maya. |