Show Last-hidden
Unhide geometry in the order it was hidden
Wednesday, January 17th, 2007
This MAXScript entry has not yet been completed…
(more…)
Unhide geometry in the order it was hidden
This MAXScript entry has not yet been completed…
(more…)
Create a perfect sphere using just one spline
Another “just for fun!” script. I like these
A simple interface to create a perfect sphere (and variations thereof) with just one spline.


Download spherical spline 04 ui.ms.
Recursively set all groups open or closed.
This MAXScript entry has not yet been completed…
(more…)
Export 3dsmax objects' tracking data (4-corner pin, 2 point track, position) directly to After Effects
As part of a series of promos commissioned by Jetix, we (Huge Designs and I) needed to incorporate up to 15 different characters into a reusable promo “base” that could be changed each month to provide variety. Our storyboard demanded 3D, yet the characters were 2D, and rendering the same complex sequences, re-comping and outputting would have been an impossible task from both time, budget and sanity perspectives!
So, the plan was to render out one complex 3D sequence, do all the sexy post-production in After Effects, then comp-in the characters, as quick post-process, so the whole thing appeared seamless.
After Effects Tracker is designed to compliment the tracking tools found in After Effects, by transforming and exporting 3D data (world-space) to 2D data (screen-space) that After Effects can use. The following data can be exported:
After processing an object in the 3dsmax scene, After Effects-compatible data is copied to the clipboard, that can simply be pasted onto an After Effects layer as key frames, mirroring the 3dsmax scene verbatim
Below you can see how it’s a simple case of selecting the appropriate objects and clicking “Export”.
Where needed, the vertex positions can be visualized and compared to the After Effects scene to make sure any corner pinning is achieved the right way round, and not mirrored or rotated.
![]()
![]()
![]()
![]()
In the case of getting our 2D characters existing believably within the scene, I knew I would be able to achieve the effect using combination of corner pinning and Z-buffer information, along with a little matting where needed. The process was as follows:
Below is a sample of the exported data:
Adobe After Effects 7.0 Keyframe Data Units Per Second 25 Source Width 0.0 Source Height 0.0 Source Pixel Aspect Ratio 1 Comp Pixel Aspect Ratio 1 Transform Position Frame X pixels Y pixels Z pixels 0 0 0 Transform Anchor Point Frame X pixels Y pixels Z pixels 0 0 0 Effects Corner Pin #1 Upper Left #2 Frame X pixels Y pixels 0 -53.172 -31.8445 1 -52.9779 -35.3856 2 -52.7437 -38.9376 3 -52.4771 -42.5169 4 -52.1589 -46.1085 5 -51.8003 -49.7146 6 -51.4037 -53.3403 7 -50.9531 -56.9749
This plugin is not available for download, however please contact me if you wish to discuss custom 3dsmax / After Effects or any other development.
Collapse multiple objects into one mesh, preserving materials, and optionally replace a single target object.
There are times when you’re animating something and it’s a lot easier to have everything as one, big mesh, especially when pivot points and object-bounds start playing havoc with your carefully crafted animation and bizarre shit just keeps happening.
But then you’re in a pickle with modelling. You really need to keep all those beautifully-designed objects separate.
What to do!? Well, how about an example…
The objects on the left make up one “element”, each with different mapping, materials, and obviously, pivot points.
The object on the right is a cylinder animated with a path deform to make it go round in a wiggly shape.

Animating all those objects on the left would be a major pain, so let’s collapse and replace in once fell swoop:

Great! And if new objects need to be added later, it’s just a simple case of updating the animated object.

It’s pretty simple.
Pick the objects you want to collapse, pick a target mesh if required, pick the action you want…
… and click the button.
The only other option is to specify which of the original objects you want to use as the reference pivot point, which can be done by picking the object in the viewport, or by double-clicking the Source Objects list.
Download…
Just run the .ms file to create the dialog.
Adds a toolbar that allows you to swap between viewport layouts on the fly, remembering settings per viewport between layouts.
Adds a toolbar that allows you to swap between viewport layouts on the fly, remembering settings per viewport between layouts (and optionally, sessions).

Example uses:

Rollover ui to see the options…
Stores and retrieves – per view
Download Viewport Layout Manager 1.2.ms
Run the .ms file once and it will install Views-ViewportLayoutManager.mcr to the 3dsmax/UI/MacroScripts directory, and install the new toolbar automatically.
Leave comments below
Animates a master camera thourgh a series of locked-off shots, and user-defined times
Camera Animator is designed to animate a camera through a series of locked-off shots, at user defined times, for such things as titles, credits, walk-throughs, or any other situation where you would want to move methodically through a series of points-of-interest.
Click the image below to view a QuickTime movie of the script in action.
Camera Animator allows you to concentrate on framing “template” shots without worrying about animation timings, then quickly and easily create a base animation from those shots by clicking a single button.
You can continually re-frame the original shots, as well as adjust the timing and weighting of the movement in a variety of ways, and it’s just a few clicks to add cameras, reorder cameras, change timings of holds or moves on a per-camera basis, and have the entire animation update.
The final key-framed animation can be used a starting point for further development, or can just be used as-is.

Using the script is quite straightforward:
A new Animated Camera will be created that animates through the Template Camera positions using the default values of 75 frames per hold, and 25 frames per move.
You can continually re-adjust settings, and click Animate Camera again to update the animation.
There are various ways to customize the animation that the script creates:
Change Template Camera order by selecting camera(s) in the list and clicking the Up and Down buttons.
Change Hold and Move timings by either selecting the camera(s) in the list and adjusting the timings spinners, or by selecting the camera by double-clicking the item in the list, and editing the camera’s Camera Animation parameters in the Modify Panel.

Toggle the Synchronize List checkbutton to automatically synchronize the Template Cameras list selection as you drag the Time Slider. This is useful for quickly adjusting timings as you scrub through the animation.
You can also change the controller types used, depending on the level of control / ease of use required. Choose from between Position XYZ, or Bezier Position.
Choose any of the default tangent types, such as Slow, Auto, Linear to adjust the easing of the movement.
Assign a Secondary Animation track to the Animated Camera, complete with placeholder keyframes for later adjustment, to add subtle movement on top of the main animation.
The script automatically creates 2 sets of controllers and keyframes:
You can clearly see both animation curves in the Trackview below.
In this case, the Secondary Motion keys have been adjusted to give the holding phases a little life, by gently tracking left and right in the horizontal axis.

You can see Camera Animator in action on a real job in the screen grab for my Viewport Layout Manager.
Download Camera Animator.ms then drag it onto your 3dsmax viewports to create the Camera Animator dialog.
Creates a multimaterial from a folder of bitmaps, based on a template material
This MAXScript entry has not yet been completed…
(more…)
Creates sequential text objects. Useful for credits, etc.
This MAXScript entry has not yet been completed…
(more…)
Opens the most recent file, be it an autobackup or a saved file
This MAXScript entry has not yet been completed…
(more…)