I was trying to solve a problem when I had an object (a point helper) in a scene that was part of a hierarchy (in a rig) but I wanted the object to transform in a different object’s space than was its parent! Essentially, this means transforming objects in “AUX” pivots’ space (if you know MotionBuilder, you know where I’m going with this).
A friend of mine asked me how I’d go about rigging a wheel so that it spins no matter which direction it travels and stick to a ground as well. At first I thought this’d be a piece of cake as all I really needed was a direction vector and its magnitude to add to the rotation of the wheel. Well, the solution turned out NOT to be that simple in the end.
(the video lags a bit, but the entire rig is actually faster than real-time)
Just a quick note about my latest, successful , transform conversion in a real production environment. If you’ve read my last article about the transformation matrices and how they can be used for manipulating object positions, rotations and scale, you’ll remember I also wrote about an example of converting 3ds Max object transform matrix into Maya’s xform matrix. All I needed was some real-world scenarion where I could successfully test out this method as it was, to me, untested territory. It finally came on the project we’ve been working on at UPP. I have several characters set-up and rigged in 3ds Max that I then transfer between various software packages we use here (mainly Maya and XSI). Obviously, the problem is the Up axis that is different in 3ds Max, which is the Z axis, in Maya and XSI it’s the Y axis. The problem isn’t the translation of objects, that’s easy, the main problem is the rotation of objects that needs to be converted to the different axis scheme.
The matrix in a 3D space has nothing to do with Neo’s hassle with sentinels, no, instead these are extremely useful and helpful vector arrays that make up a position, rotation and a scale of any object in your scene. Recently I’ve been re-inventing the wheel when I needed to write a system that’d allow me to instantly and without any user input transfer objects from Max to Maya and XSI. The reason for matrices in this case lies in the convenience of the whole matrix storing the object’s entire transformation information, which is, essentially, all that you need in order to accurately describe object’s exact position, rotation and scale in a 3D space.
No matter how the title sounds, this article is about 3D CGI and 3ds Max primarily.
From the TD (Technical Direction) point of view, the parent world is what you’ll be dealing with most of the times when it comes to objects’ (nodes, entities, fragments tec…) manipulation and mainly exchange between different software packages. Why? Let me explain. When you draw an object into your scene, let’s say a single box called “MyBox”, the object automatically becomes a part of a hierarchy. What is hierarchy you ask? Think of it as a relationship between objects (or whatever for that matter). There are strict rules that apply every time all the times for all objects. So, the box, MyBox, becomes automatically a child of the “World” – an invisible MAXObject.