So, Autodesk throws another plugin into the 3dsmax package. (as of 3dsmax 2011 Subscription) Let's understand it, rant about it and move on...
This is what they do. Don't be mad at Autodesk. They just buy things now. Then again, how could you not be a little upset. I used to be there, working and talking with programmers to see how we could make a great toolset. But making original tools is expensive. Design, specs, testing, documentation, it tallys up quick. If we just keep buying these other peoples plugins, it'll make for a better tool in the end? Right? No. Wait, what they really mean is, "if we keep buying these plugins, people will think they are real features and buy this product" all so the shareholders make money. Wait. People don't really buy it becasue of those transparent attempts at features do they? No, they buy it to stay current. I want to be current all things like Open EXR, HDR files, FBX compatibility, maybe if were lucky some breakthrough in texture mapping. We mainly upgrade only not to be left behind.
Im all for them buying plugins and calling them features. Max would still be clothless if it weren't for buying plugins. I have to say. That cloth is still very usable in production. Caching cloth to point caches helps too, but it still has a pretty good basic toolset. Hair and Fur however (Shave and a Haircut origin) was a great idea, but the lack of max like user interface just killed it. That with some seperate undo system and a hit or miss renderer and it left the market open to newer tools like Hair Farm, which is integrated very well.
Getting back on point, Phys-X is a bit different since it was developed by nVidia. I could only speculate why they integrated it, probably because a developer over there thought it might be cool. After autodesk thought it only natural to push this dynamics technology on the max users just like they did with Havok many years back. Phys-X is eveywhere and im sure its a plan to strong arm the video card\game market. Dont get me wrong, Im ok with all this. Matter of face this little physics demonstration can be quite usefull. (and I still own ADSK stock)
The results I've seen from Phys-X already in Particle Flow Box#2, and Rayfire, it looks pretty usable. (After buying a copy of Rayfire, we were told to download this plugin from Nvidia's developer site to use it with Rayfire!) Many of you are probably skeptical about using game physics for anything other than realtime, but It does have it's place. Im only writing this post since I recently needed to drop a shipping container, and have all 4 walls slam down and Phys-X worked for me like a charm.
The 3dsmax Phys-X Workflow
Lets just spell out the intended worklfow of this plugin. We have a scene we want to simulate dynamics for. We take a set of objects, set up some dynamics properties and constraints and run a simulation. Once we have what we like, were done. Right? The part many developers forget to think about is working with clients. The client may like 2 different simulations many file versions apart. You might be asked to "split the difference" and other tricky requests. I use point cache modifiers for this with cloth, but for objects? (Point Cache Space Warp modifier maybe?) Maybe the animation layer system would work for creating different "takes" of the shot, but I ain't got time to test out that crap. Someone let me know if you can save dynamics animation to animation layers.
Phys-X is pretty straight forward. You use the toolbar buttons to assist you in adding constraints and property modifiers to your objects. As far as I can see, dynamics can only be turned on at a certain frame. There doesn't appear to be a way to have an object stand still until its gets hit which was my first instinct of what it should do.
Constraints are powerful. Make 2 boxes with a constraint and start messing with the parameters. You will quickly find out that the coordinate space of you boxes is important. And with max, that coordinate system is based on which viewport you created the object in. (Make a dummy in each of the 4 viewports and compare the local Z directions) I always try to make "rig type" and object in the perspective view since it matches the world coordinate system. Objects build in left and top viewports will be rotated 90 degrees to each other. (first 2 mouse inputs give you x and y, the last gives you the z.) All I can say is to take care and think through the constraints and their coordinate. The limts also work from the coodinates point of view so don't expect the transform gizmo arrow to stay within the constraints pie graph in the viewport. It takes a little fiddling to ge the right axis limited. Watch out for mirrored objects too. The axis might appear flipped.
The Timeline Issue
This is where a little design intervention could go along way. The timeline in Phys-X is seperate from the 3dsmax animation timeline. I'm sure there is a reason, but it throws off the common max user. Makes the tool feel "broken" even if it's acting as intended. I always feel like it hit the "back to start" button on the max timeline, and then have to do it again on the Phys-X toolbar.
Dropping a Shipping Container
So I had an opportunity to use this just last month on a canadian lottery spot. It needed a shipping container to be dropped on a guys lawn. With it limited set of features Phys-X was still a good choice for this type of effect. It makes keyframes. You can slide them around, re-time them and even save them off with 3dsmaxs save animation tool. Getting the scale was the first thing to do. A small box dropped on teh floor moves faster than a gigantic box, landing on a lawn. I linked all my objects to a dummy and scaled it til I got a good fall within the frame count I was given. Dropping a box that's flat with the ground is boring and very symetrical. I tilted the shipping container in all three axis to let it's corner hit first and got a great result. The sim I used in the end wasn't very different from the first one I did. And of course I did this on simple boxes and linked the real mesh to it.
I didn't get a chance to finish the shipping container drop for the commercial. It was yet another job where not enough time was really given to finish the effects the way I really wanted them to look. When I started writing this post, I made another version of the dropping effect, but this time I tried to finish the job by denting the shipping container and adding a "flex" effect to make it look like real metal hitting and bending. That version will see the light of day only through this post.