Surface based morphing
rather than calculate a deformation in object space, the deformation is
calculated in surface space which is independent of the current pose:
this means you can do things like morph above deformation modifiers in
the stack. For example you can deform/skin a low resolution character,
then subdivide and morph up wrinkles or other deformations on the
animated high res mesh, using morph targets created with the high
Surface morph also hooks into
the data the Tension Modifier generates, using the
compressing/stretching areas as masks for easily dialing up morphing in
compressed/expanded areas - for example procedurally have skin bunch up
inside elbows, etc. This is a generic use of map channels (vertex
colours) with the ability to pick RG or B - so you can generate the
mask any way you like. If you are using a progressive morph target, you
can have it mask through
the progression, allowing fine control of how a target is dialed down
as the effect diminishes.
Useful in combination with my
modifier, which will convert a 3dsmax texture map (ie bitmap sequence)
to vertex colors (and optionally selection as well) - and this data can
be used as a mask in the same way as the standard Tension data flowing
up the stack - ideal for using Tension data that has been RTT'd to bake
While the deformation itself
occurs in surface space, targets are still modifications of the
reference mesh of the morph. The Extract target option allows you to
model on top of the stack - ie in a pose you need to correct - and it
will convert that to a modification of the base reference mesh for use
as a target.
Load PointCache2 files (PC2)
as a target, with ability to mask through the progression of the target
Use Tension Modifier output as
masks for the morphing (vertex colors).
Paint masks interactively on
the mesh, including Blur Paint and a 'Blur All' button.
Use target selections as a
mask (including soft selection - requires capturing selection with the
Per channel support for using
or ignoring the stack selection.
Progressive Targets - with
choice of interpolation algorithm: linear, bezier and hermite. Bezier
interpolation provides generally smoother results that the built in
3dsmax morpher. Hermite gives tension and bias options.
Cumulative morph mode - a
morph can work on top of morphs earlier in the morph list or based on
the stack mesh.
Extract modelled target: model
a shape on the deformed object at the top of the stack and extract that
as a morph target you can dial in.
Auto-reload specific channels
rather than being forced to reload them all.
Individual toggles for
enabling/disabling channels as well as progressive targets.
Optionally use a reference
mesh for the base pose, rather than the stack object. Allows for some
interesting results when the reference itself is deformed.
Support for masking based on soft selection of the
targets, stack or reference mesh.
Scripted UI - extend/rewrite
to fit your pipeline, MXS UI is not encrypted or any such malarky.
Surface morphing allows
possibilities such as morphing on top of a cloth simulation, or adding
finely controlled details to a character tesselated above a baked
pointcache (where a displacement map does not give enough control). The
progressive targets allow smooth transition between the target list,
and allows for greater control over - say - the way skin bunches up or
stretches out - rather than simply a linear morph fading out at the
edges of the mask, the wrinkles/stretching skin can transition between
different controlled shapes.
not a perfect world, and surface morphing has it's limitations: low res
meshes don't work well, nor areas where the mesh has sharp creases and
you are morphing a reasonable distance: tiny changes in the surface can
mean large deviations in direction for your morph. If you are having
troubles then try subdividing your mesh/targets and see if it gives you
Limitations - No support
for Patches or Nurbs. Supported
types are TriMeshes, (ie regular editable mesh stack), and PolyMeshes.
NOTE: Surface morph is slower than the standard morpher - it is doing
many more calculations so it is not suprising, though it is very usable
regardless. Point caching the result is recommended for very heavy
meshes (or very slow computers). You can use SurfaceMorph in 'Local'
mode (ie not surface based) and if all channels are set to local it
will be faster to calculate.
Surface Morph for 3dsmax 2013/2014 64 bit
Surface Morph for 3dsmax 2015/2016 64 bit
Surface Morph for 3dsmax 2017 64 bit
Surface Morph for 3dsmax 2018 64 bit
Surface Morph for 3dsmax 2019 64 bit
Surface Morph for 3dsmax 2020 64 bit
Unzip the downloaded
link. The dlm goes into
your plugins directory, and the .ms file into your scripts/startup (if
not startup then make sure it's evaluated at some point).
The UI is scripted - use the button in the modifiers controls to open
USE AT OWN RISK. Surface
morph has been used in
production for many years, but the UI is really crappy (I always
intended to rewrite when done, surface morph is not actually done -
missing a 98% complete feature of no need for vert ordering or vert
count to match).
Credits: Surface Morph was written by Grant Adam.
If you find
SurfaceMorph useful and would like to show your appreciation feel free
use the button below. Thanks in advance :)