eduardo simioni

Tag: scene

scale all the things!

by on Aug.16, 2012, under 3ds Max, maxscript, pipeline

Here’s a nice trick my mate at Funcom, Endre Eikrem, told me. You can scale everything, scene, mesh, skin, rig, animation, with this simple code:

units.SystemScale = 0.5
holdMaxFile()
units.SystemScale = 1.0
fetchMaxFile useFileUnits:false quiet:true

You just need to have “Respect System Unit in Files” activated, inside Customize/Unit Setup/System Unit Setup. That’s it!

Except! There’s always some exception. So far we found a couple of stuff that are not scaled with this trick:

  • Wire Parameters. They are strings, so it’s expected that Max doesn’t scale them.
  • Key Tangents. If tangents were manually edited they are not going to be scaled. On the other hand, animation keys are scaled correctly.
  • Float Limit Controller. It’s value is not scaled.

There might be other exceptions, but so far these are quite easy to workaround with Maxscript. Specially if your rig is simple. On Funcom rigs, we just needed to parse Orientation_Constraint controllers and edit their wire parameters to the FK/IK handle. Float_Limit controller is just a matter of finding it and setting a new value based on the units.SystemScale used. And key tangents are not to worry if you first bake/plot the animation on the handles. Keyframes being scaled, it works flawlessly.

If anyone trying this out find any more exceptions please let me know.

2 Comments :, , , , , , more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!