3ds Max Path Deform and Effects of Object Offset Transformation

I’ve been working on a few projects now in 3ds Max 2015 and 2016, and have recently been using the Path Deform modifier (specifically, the World-Space Modifier) to do some interesting things. Along the way, I’ve been hitting some serious issues with getting the object I want to deform along the path to align properly to the path. For instance, I have a poly mesh like such:

3ds - Tooth Mesh

(Notice the pivot point has been centered in the mesh)

I want to make this shape follow a path defined by the following NURBS curve:

3ds - Target Path for Deform

This seems like a common scenario. So, I naively apply the  PathDeform (WSM), select my curve, and click “Move to Path”. This is what I get:

3ds - Mesh Deformed to Path

Then, the headaches begin. The thing I didn’t mention before, that you may have picked up on was that I adjusted the pivot of the curve so that it is centered to the object. This was because I created this NURBS curve based on another NURBS surface that’s currently hidden, and needed a path to use with path deform. It’s a nice simple one-click effort to move the pivot in the common case where you may have modeled something without true regard to the pivot.

 

To visualize the difference in location, I’ll hit “reset pivot” after undoing my failed attempt to apply path deform:

Target Path With Original Pivot
Target Path With Original Pivot

Some interesting things to consider:

  • The original pivot location must be stored with the object
  • When you modify “pivot only”, one would think the pivot point is actually being modified for the object

It turns out that there’s a couple of solutions to my problem. If I leave the pivot in the original position for my curve (through “reset pivot”), and attempt the PathDeform WSM again, the results are actually what I would expect them to be:

Path Deform after resetting pivot on path (and moving to path) appears correct!
Path Deform after resetting pivot on path (and moving to path) appears correct!

This is great, but I really would like to have my pivot points be located on-screen when I’m working with objects. So, what to do?

The quick answer: Apply the XForm modifier to the path object

Why is this happening?

It turns out, that the World-Space Modifiers seem to apply modifiers against the objects original pivot location. This is where the “Object Offset Transformation” comes into play.

It seems that adjustments to an objects pivot point aren’t actually affecting the objects true pivot point. (WHAAAT!?) Yep. It took me some time to find this, as the documentation around World-Space Modifiers, and Path Deform, make no mention of this phenomenon. I came across this link to some MaxScript documentation that laid out the facts:

Object Offset Transformation

And, quoting that page, here’s the kicker:

“As another example consider the use of the ‘Affect Pivot Only’ button. This mode lets the user move the pivot without affecting the position of the geometry of the object. When the system allows the user to move the pivot point, what is actually happening is the node’s transformation is being altered (to re-orient the pivot point), then the object-offset transformation is adjusted to counter the node transformation. This lets the geometry of the object stay in the same place while the pivot point moves around. So again, when the user is moving the pivot point, 3ds Max is actually adjusting the node transformation matrix and counter-adjusting the object-offset transformation.”

My head exploded after reading this. So, basically, this object offset transformation is being applied (it seems) to the transformed mesh prior to performing the path deform.

I might refine this post a bit later, but there ya have it.

– Sean