So I'm basically having the same issue as the one posted in
this thread. But that thread is old and the answer wasn't posted if it was found.
I just have the model and two copies of it. The modified copies aren't really that much more complicated; one is closing the mouth while the other is a screaming face (not done well, but it's enough).
At any rate, I've done all of the suggestions regarding the xForm and pivot points and resetting everything, and... well it didn't fix much.
I've used the morpher properly in the 2010 version of max a few years back, so this is the first time I'm using it in the 2012 version. When using the sliders, the original head not only morphs completely wrong (like it's going inside-out?) and moves to the right (model's left). After performing the suggestions, only one stopped moving to the right, but both are still morphing inside-out instead of like the target.
Any new suggestions, please?
Replies
if its just moving..
first make sure the morpher is set to automatically reload targets or none of the following will have any effect
make sure the pivots on all the meshes are lined up. ie. place everything at 0,0,0 and if the meshes are not all on top of each other, make it so they are and align all the pivots to the base mesh (the one with the morpher)
if they still do it after that then reset xforms on everything and reapply the morpher
if you can't reset xforms for some reason then you can use an xform modifier to adjust the incorrect targets (use the subobject mode gizmos, don't just move them)
The moprher is really very simple - nothing clever is going on at all in there so in almost all cases if there's a problem it's because it's being fed crap data
But what makes the target not valid? I don't think I understand what you mean by vertex order.
My model is a full body, so I selected the polys that made the bust, and detached it to a separate element. I made two copies of that bust element.
When it wouldn't let me select the copies (after moving their verticies around to make faces), I thought that because it was a full body model, that it wouldn't let me chose them as targets. So I detached the bust again but as a separate object. I put the morpher modifier on it again and then the killer inside-out and moving horizontal mess commenced.
The geometry wasn't much different except for moving verticies around.
So that makes me think again, what is vertex order?
every vertex in a mesh has a number
it's a bit of a simplification but a morph target in max stores basically this in a big table
In the above example vertex 1 moves up -1 unit in the z axis and vertex 2 moves 3 units in the Y axis.
If the number of verts in the base mesh doesn't match the number of verts in the target it won't know what to do when it runs out of verts and the universe will implode - hence max won't let you add a target with the wrong number of verts.
if vertex order changes, the vertex numbers get switched around - this happens if you do things like attach/detach your targets or run them through an exporter that rebuilds the mesh.
Again, it's a simplification but if you attach meshA with 4 verts to meshB with 4 verts , vertex 1 in meshA will become vertex 5 in the resulting mesh.
why does this matter?
If, in your base mesh vertex 1 is at the tip of the nose and in your morph target it's at the tip of the ear
In this case when the morph is applied the nose vert will move to where the tip of the ear is defined in the target because the relative positions of basemesh vertex1 and targetmesh vertex 1 are at the nose and the ear repectively.
make sense?
good
There are many sneaky tricks you can apply to work around this restriction but unles you fully understand how it all works I advise keeping things as simple as possible and just assume that you're not allowed to do anything except move verts in a mesh that you're planning on using to morph
That made so much sense. Then I can see why my busts did what they did then.
At this point, the bust copies that were modified are then unable to be used. So to solve this, I'll have to keep the face of my character a separate object, and THEN make copies to change them up.
Thank you very much for all of the replies! (:
Yep meshes must be identical, so the vert index table and the object pivots match.
You must make copies in object mode not sub-object mode (vert, edge, poly, element).
The reason for this is that morphs are relative to the objects pivot point. When you clone a mesh in sub-object mode it changes potion relative to the objects pivot. Verts will move to compensate.
To fix the "my mesh moves to the right/left whatever:"
If both meshes have the same number of verts, faces edges and are technically identical but the vert numbering is wrong you can use Morphix to renumber one mesh to match the other.
If it is only the pivots that need to be aligned you can select all the verts, turn on 3D snaps mode/vert, click on one vert and move the mesh so it occupies the same space. Then go to the hierarchy tab, turn on affect pivot only, click the align tool and then click on the original mesh to move and align the morphs pivot to the original mesh.
Transmographier:
If you're mesh is perfectly mathematically symmetrical (as in you can apply symmetry on it and nothing changes), then you can use a tool like transmographier to mirror morph targets. This way you can do one side of the mouth or eye and mirror that over to the other side of the face.
I normally have 3 morphs that come from one.
EyeL_LidLower_Right, EyeL_LidLower_Left, EyeL_LidLower_Both.
With this tool you only make one and then flip a few switches to make the others, very handy. Saves a lot of time and allows you to see both sides as you push verts around. This should be included in max as a standard feature.
You can have asymmetry but you plug it in as a separate "asymmetry morpher" into transmographier. This enables you to work symmetrically on a asymmetrical mesh.
Facial Morph Control Panel:
Also Facial Morph Controls is a great tool to animate morphs with its much better than the standard morpher UI.