LAST UPDATED: NOV 13TH 2004
Welcome to BlurScripts, a collection of MAXScripts written primarily for studio use, and available free to anyone who wants them.
The Disclaimers:
These scripts are provided as is, and Blur can not be held responsible for lost time, work or damage to your computer that results from usage of these scripts. We can promise you they've been used at blur studio in production by a whole bunch of people and they all seem to work fine.
If you wish to use a piece of this code in your own work, please include the original author's name in your script as a contributor. For a more complete agreement, please read these words from our lawyers.
Installation ( or the scripts may not run properly):
Pick the script pack for the version of max you're running.
Although there's a large list of available scripts, you will notice there is only a single downloadable file, BSPack_rx_v0xx.zip. A lot of the BlurScripts rely on each other to function properly, and I just don't have time to break up each script into its own little zip, so I'm releasing script updates in Pack form. All you have to do is download the zip, then extract then into your 3dsmax root directory, for example, c:\3dsmax, make sure you have recurse subdirectories on. The zip will then install a bunch of files and directories, here's a short list of what it will install assuming your max root directory is c:\3dsmax
Lastly, some of these scripts require a few third party plugins in order to work. To have everything work properly, please install the required plugins listed in the table below. If you don't, most of the scripts will still run, but a few won't.
Trouble Shooting:
If you're getting errors when starting these scripts, please try answering the following questions...
1) Are all the scripts in the directories listed above?
2) Have all scripts listed in the Files To Delete section below been
deleted?
3) Go to configure paths, is your default script directory
maxroot\scripts?
4) Is your default scripts startup directory maxroot\scripts\startup?
5) Did you install the blurpack appropriate for the version of max I'm
running?
Files To Delete:
If you've installed previous BSPacks, and are now installing a new one, you may wish to check to make sure all of the following previous BlurScript files have been deleted (all assuming your 3dsmax directory is c:\3dsmax)...
c:\3dsmax\scripts\blurscripts\BSDefaults.ms
c:\3dsmax\scripts\startup\BSLib.ms
c:\3dsmax\scripts\startup\BSDefaults.ms
c:\3dsmax\scripts\blurscripts\BlurPrimatives.ms
c:\3dsmax\scripts\blurscripts\BlurPrimatives_images.bmp
c:\3dsmax\scripts\blurscripts\RandomScale.ms
c:\3dsmax\scripts\blurscripts\GradientConverter.ms
c:\3dsmax\scripts\blurscripts\RemoveModifier.ms
c:\3dsmax\scripts\blurscripts\DepthMatte.ms
c:\3dsmax\scripts\blurscripts\ShaderConverter.ms
c:\3dsmax\scripts\blurscripts\CameraClipper.ms
| |
|
Description | Required Plugins |
| bspack_r6_r7_v001.zip | 11/13/04 | The blurpack for use with max 6 and 7. There are no new
scripts in this pack that aren't in the r4 and 5 pack, it's just
compatability. |
Character
Studio Famous Faces Layerman Shag:Hair Solidify Stitch ToonAssistant |
| bspack_r4_r5_v031.zip | 11/13/04 | The blurpack for use with max 4.2 and 5. | Character
Studio Famous Faces Layerman Shag:Hair Solidify Stitch ToonAssistant |
| bspack_r42.zip | 06/28/02 | The blurpack for use with max 4.2. | Character
Studio Famous Faces Layerman Shag:Hair Solidify Stitch ToonAssistant |
| Pack_R4.zip | -- | The blurpack for use with max 4.0. For anyone who hasn't upgraded to 4.2, these are totally unsupported, and will recieve no updates. | -- |
| Pack_R3.zip | -- | A collection of R3 compatable scripts, these are totally unsupported, and will recieve no updates. | -- |
| ActiveMtlSlot | Prints the current Active Material Slot Index to the Listener. | -- | |
| AnimatedAlign | Align one object to another object at each requested frame range. Does one key per frame. | -- | |
| AssignAtmMatte | Assigns a matte material to selected objects for use with compositing. Use on objects that will be used to render out an atmospheric pass. | -- | |
| AssignObjectMatte | Assigns a matte material to selected objects for use with compositing. Use on objects that are being used to block non Matte objects and that don't need to cast or receive shadows. | -- | |
| AssignSceneMatte | Assigns a matte material to selected objects for use with compositing. Use on objects that are part of your scenery (ie, objects that should receive shadows from non Matte objects such as ground planes). | -- | |
| AtmPass | Lets you create several different kinds of atmospheric passes. For example, you can saves an image sequence that represents the current environment ranges in the scene by changing all objects in the scene to a matte material and rendering the scene with white fog. Good for doing postprocess fog and postprocess depth of field. | -- | |
| AttachSelection | Takes a selection of objects and attaches them into one object. | -- | |
| BBoxMaker | Creates bounding boxes for selected objects. | -- | |
| BigBrother | Creates a list of various scene properties, to show what parts of the scene the animator may wish to optimize, like shadow maps that don't need to be as big, or uncollapsed modifier stacks that are too deep, etc. | -- | |
| BipedCataloguer | Point this script at a directory of .bip files and it will generate AVIs showing what each .bip does. This makes it handy when working with multiple .bips in production because you can look at a directory of AVIs to find the proper file. | Character Studio | |
| BitmapFilteringControl | Allows you to change the filtering type ons everal bitmaps at the same time. | -- | |
| BlankMat | Quickly assigns a default material to your whole scene. | -- | |
| Blinders | Helps with projects such as ride films, where there's a lot of geometry that gets processed needlessly. Basically, if an object isn't visible to the camera at a given frame, (like you've already passed it and it's behind the camera now) it's still getting analyzed during the preparing objects stage, wasting render time. This wasted time can become tremendous when you have a really large environment, as in when you're doing tunnel blast scenes for ride films. So, what you do is create a box that follows your camera, everything inside this box at a given frame will be given a visibility track with a value of 1, everything outside the box will be given a visibility track with a value of 0, so now objects are only visible if it's near the camera inside the box. | -- | |
| BlurPrimitives | Creates a few primitives I've wanted in the past. | Solidify | |
| BoxSkeleton | Creates a set of boxes and attaches them to the bones of a biped. | Character Studio | |
| BSLib | A set of useful functions required for many of the blurscripts to run. | -- | |
| BSRun | Allows you to quickly choose a blurscript from a dropdown list and run it. | -- | |
| CameraControl | Changes Camera settings for several cameras at the same time. | -- | |
| CameraMaker | Changes your view from a perspective to a camera view in one click (including creating the camera). | -- | |
| CameraMapApplier | Applies the camera map modifier to all selected objects, and applies parameters to them. Useful because if you apply an instance of the camera map modifier to a bunch of objects, the map isn't ligned up properly, and it takes too much time assigning individual camera map modifiers to several objects. | -- | |
| CameraTransfer | Takes a camera and outputs it's movement to a textfile, which can then be read in by the same script and applied to a camera. This is useful for transfering camera information between different packages (in the future) or different releases of max, for example, converting an r4 camera to r3. | -- | |
| ChamferConverter | Converts a box to a chamferbox, and vice versa, and a cylinder to a chamfer cylinder to a cylinder and vice versa. | -- | |
| ChangeBitmaps | Allows you to do search and replace in the names of bitmaps in your scene. | -- | |
| CStudioGlobalTCB | Allows you to change the TCB values globally on selected portions of a Biped | Character Studio | |
| ClearMedit | Clears slots in the materials editor with a default standard or raytraced material. | -- | |
| CollapseSubObjectMaterial | Takes an object that has a multi/subobject material, and collapses the material to use only the subobject materials that are assigned to face IDs on the object. Modifies the object as well, consolidation material IDs and collapsing it to an editable mesh. Great for cleaning up nasty subobject materials on characters or buildings that have been attached several billion times. | -- | |
| DisplayInstances | Displays a list of all other objects in your scene that are an instance of your currently selected object. | -- | |
| DisplayMat | Pick an object, run the script, this will show you the material assigned to the object. | -- | |
| DisplayMatID | Displays all material IDs used by the faces in a particular object. | -- | |
| DisplayUsedMapChannels | Displays all map channels that the selected material slot requires. | -- | |
| Do | Allows you to change properties in an object or in a selection of similar objects or its modifiers. | -- | |
| DoClassic | Allows you to change properties in an object or in a selection of similar objects or its modifiers. This script was originally called Do.ms, Do.ms now has dropdown list of paramaters instead of the manual textfield. However, the dropdown method doesn't work for every paramater that can still be affected by manually entering text, so if there's a parameter you wish to change and Do does not access it, use DoClassic. | -- | |
| ExpertModeControls | Moves common animation controls into a floater and stores all selection sets in a fast and convenient listbox. | -- | |
| FigureModeControl | When executed it stores all Bips in a floater where they can interactively be placed in and out of figure mode. This is a time saver especially with large scenes with lots of characters. | Character Studio | |
| FindByMaterial | Like SelectByMaterial, but instead just gives you a list of all scene objects that have the currently selected meditslot material assigned to it. | -- | |
| GetMat | Quickly gets the material from the currently selected object and places it into the selected material slot. | -- | |
| GlobalMotionBlur | Applies image motionblur to every visible object in the scene except to particle systems. | -- | |
| GoAway | Takes selected objects and makes them nonrenderable and see-through with one click. Good for quickly dispatching with particle emitters or other object you want to disappear from your final render. | -- | |
| GodsEyeView | Quickly makes an ortho camera from one of three vantage points. Good if you say want to quickly setup a camera aligned to an orthoview, or good if you want to render some elements flat. | -- | |
| GradientUtilities | Does several things related to Gradients. First, Coverts a standard Gradient texmap to a Gradient Ramp with similar parameters. Second, lets you make several Gradient Ramp Presets that I've needed from time to time. Only one preset exists at the current time. | -- | |
| IsolateByMaterial | Like SelectByMaterial, but instead selects all objects in the scene that has the currently selected meditslot material assigned to it (even if those objects are hidden) and then hides everything else, effectively isolating the objects in your scene that have the current material applied to them. | -- | |
| IWantMyMom! | Selects all objects visible in the scene that are parented to the world (ie, that aren't linked to any other object). Useful for linking a set of objects to a dummy without destroying their original hierarchy. | -- | |
| KeyMaker | Creates keys on each key for all selected tracks between the start and end time. | -- | |
| KillAnimation | Simply kills any and all animation for any object you have selected. | -- | |
| KillDuplicateMaterials | Goes through your scene, and will remove all materials that have duplicate names. Does not work on subobject materials. | -- | |
| KillLayerMan | Destroys all layerman information for the entire scene, both at the object level and the scene level by destroying the perisstent lm info in the scene. | -- | |
| KillMaterial | Simply removes all materials from your selected objects. | -- | |
| KillMissingModifiers | Removes all missing modifiers from selected objects. | -- | |
| LightControl | A lightboy type interface that lets you change multiple parameters in your scene lights quickly and easily. This is basically our LightUtilities script but without the extra floater, to be used in case you don't want all the other utilities, just the LightControl Floater. | -- | |
| LightIncludeExcludeManager | Copies and pastes Include / Exclude lists for scene lights. Good if say you copy the values, merge new lights or objects or lights into your scene, then pastes those values back in. Based off scene names, not nodes. | -- | |
| LightUtilities | A whole bunch of useful utilities relating to lights, including a lightboy type floater, utilities for turning your scene lights on and off en masse, removing unnecesary attenuation range clutter, and a viewer to let you view the influence of a particular light. | -- | |
| MakeUnique | Takes a selected object and makes it unique (ie, if it's an instance of another object, it will no longer be an instance). Originally found as part of Blur's Object utilities, now here it is in script form. | -- | |
| MapCollector | Lets you collector all the bitmaps from your scene, place them into a directory, and change your scene to reflect the new location of the maps. Several utilities already do this, however, this one affects all maps, including backgrounds, fog, light projector maps, etc. | -- | |
| MaterialControl | Allows you to change various parameters on lots of materials. | -- | |
| MaterialConverter | Coverts many different kinds of materials to other kinds of materials, including changing Raytraced to Standard and vice versa. | ToonAssistant | |
| MaterialRipper | Takes any max file in a specified directory (or recursively through a directory tree) and adds all scene materials to a matlib you specify. If the matlib does not exist, it will create it, otherwise, it'll add to the one that's already there. | -- | |
| MaterialStuffer | Moves groups of materials to and from the current material library, the scene selection, the scene materials and medit. For example, with one click you can put up to 24 scene materials and place them in medit. | -- | |
| MaterialToWirecolor | Takes all selected objects and makes their wireframe color the same as the diffuse color of any materials the objects may have applied. | -- | |
| MatIDCopyPaste | Copies and pastes MatIDs from one object to another. Both objects must have the same face count. | -- | |
| MergeTwo | Same as a normal merge, except creates a selectionset automatically from whatever you merged in. | -- | |
| MeshsmoothControl | Will change various meshsmooth values globally for all selected objects. | -- | |
| MissingUVWSelect | Takes your selected objects and selects any objects among them that do not have a UVW mapping modifier present. Useful for finding objects that may require mapping coordinates in order to render. Will only select geometry, not lights or helper, etc. Written for Flappy. | -- | |
| ModelHairControl | Allows you to change parameters among selected Shag:Hair model hairs | Shag:Hair | |
| ModifierManager | Allows you to add a modifer to selected objects (each modifier is a seperate modifier, not an instance of the same modifier which happens if you multiselect objects and apply a modifier in the modifier panel), and to delete modifiers from selected objects (Any selected objects will have their modifier stacks checked, and any modifier that you specify in there will be deleted.) Replaces RemoveModifier. | Solidify | |
| MotionBlurSelect | Allows you to select objects based on the type of motionblur you have applied to them. The object must be visible for it to work | -- | |
| NewNoise | The same as the regular noise modifier, except it strips away some unnecessary features (not unnecessary in all situations, just in most) and binds the x y z of strength into a single spinner that affects all axes equally. | -- | |
| NoiseControllerRandomSeed | Takes all selected objects and finds any noise controllers in them and gives those controllers a random seed | -- | |
| ObjectLock | Locks or unlocked the transform, rotation and scale of an object by turning on or off all the objects transform locks in one click. Thanks to Grant Adam for the original code. | -- | |
| ObjectReplacer | Takes a replacer object and replaces alls elected objects with that object. | -- | |
| ParticleControl | Will change various particle system related values globally for all selected systems, even between dissimilar particle systems. | -- | |
| ParticleConverter | Will convert a SuperSpray, Pcloud or PArray to any other of the three systems, keeping as many parameters as it can with the conversion. | -- | |
| ParticlePercent | Lets you globally/locally adjust the percentage of particles displayed in the viewport based on presets. | -- | |
| PatchControl | Allows you to control Patch object parameters globally and locally across multiple selected patch objects in a scene. | -- | |
| PivotPlacer | A quick and painless way to place an object's pivot at 27 places on the object's bounding box. Two modes exist, local, that aligns the pivot with the "local" bounding box (ie, it takes rotational information into account), or world that'll align the pivot with the object's bounding box with respect to the world axis. | -- | |
| Planter | Takes a selection of objects and aligns them to a ground object. Good for taking rocks and scattering them on an uneven ground surface, etc. | -- | |
| PolyEdgeCount | Prints to the listener the number of edges a selected polygon has. | -- | |
| PolygonCount | Count the number of polys in your scene and in your selection, placing the results in your interface. | -- | |
| PolyIterDown | Takes a Polyobject and decreases its iterations down one level. | -- | |
| PolyIterUp | Takes a Polyobject and increases its iterations up one level. | -- | |
| PrepFamous | Turns the tedious process of preparing a character for use with Famous Faces. | Famous Faces | |
| ProceduralMapScale | Takes all procedural maps in a material and multiplies, adds or changes their size based on a value. Good for quickly changing the size of all procedurals in a material at the same time. Works on BlurGradient, BlurNoise, Camoflage, Cellular, Dent, DynoSkin, Electric, Gradient, Marble, Noise, Smoke, Splat, Speckle, and Stucco. | -- | |
| QuickMaterial | Just a quick 1 button solution for getting some commonly used materials (well, material I use commonly) without the need for a default material library, like an all black material, all white, face mapped smoke, etc. | -- | |
| QuickMeasure | Allows you to quickly measure the distance between two mouse clicks. | -- | |
| RandomFaceSelect | Takes any Editable Mesh or Editable Poly, collapses it, and then randomly selects faces based on a weight or percentage value. | -- | |
| RandomFaceRemover | Takes any mesh object, converts it to an editable mesh, then rendomly removes faces based on a weight or percentage faces removed. Made to remove random faces from a particle emitter object, hence randomizing where particles tend to be emitted. | -- | |
| RandomMapPhase | Whichever material in the material editor you choose, this script will go in and find all maps within that material that have a phase variable and assign a random number to it. This is useful if say you have two rocks, both with the same texture on it that contains several levels of procedural noise. By cloning the material, applying it to the second rock, then using this script, the two rocks will now have similar looking textures, but look different from each other due to the phase difference. | -- | |
| RandomMat | Takes a set of materials and randomly applies them to your current scene selection. | -- | |
| RandomSelect | Takes any selection and deselects objects at random based on a weight, number or percentage. Good for selecting random objects from a set and then later applying modifiers or materials to them. | -- | |
| RandomTrackTiming | Takes any tracks you have selected and randomly moves all the keys in the track forward or backwards by a random amount. Good if, say, you have 100 birds with the same wing flapping animation, this will change the timing from where they start flapping (without actually changing the length of time to do one full flap). | -- | |
| RandomTransform | Lets you move, rotate and scale a series of objects by random amounts. | -- | |
| ReloadAllBitmaps | Reloads all bitmaps that exist in all scene materials and medit slots. | -- | |
| ReloadSelectedSlot | Reloads all bitmaps that exist in the material in your currently selected material slot. | -- | |
| RemoveNoiseAnimation | Ever get pissed off when you apply a noise modifier to an object, open trackview and say show animated and you see the noise phase has already been animated for you even though you have no desire to see it since you don't need it animated anyways? Well, me to. This takes any phase animation in any noise modifier in any selected object and deletes the keys. | -- | |
| Renamer | Allows you to rename the materials or objects in your scene in various ways (prefix, total rename, append number, etc). Originally called MaterialRenamer, now the name has changed and functionality includes the ability to rename selections of objects as well. | -- | |
| RenderCam | When running (and on is pressed) will output a sequence of rendered images of whatever was in your camera view at the current interval time. Useful for outputing a sequential set of images showing the progress of you building your scene. Minimize the script (don't close it) to let it run without cluttering your view. Just hit the off button to turn the timer on after you've setup your other defaults, or hit render now to do a render of the current scene without waiting for the timer. | -- | |
| RenderSettingsControl | Allows you to change various parameters in the rendering dialogue. Also lets you save these parameters out as files to be used later. | -- | |
| ResetViewports | Resets all the viewports in your scene to the default. | -- | |
| ScaleByDistance | Scales a series of objects based on the distance between two mouseclicks. | -- | |
| SceneCapture | Select objects in your scene that you want to retain. Press CaptureState to capture the scene in its current state. Press hide to hide all objects except the current selection. Unhide returns the scene to the initial state. | -- | |
| SceneRipper | Takes any max file in a specified directory (or recursively through a directory tree) and merges into your current scene any object with a specified wildcard. | -- | |
| SelectBipedRoot | Select any part of a biped and run the script, it now selects the biped's root. | Character Studio | |
| SelectByLightIncludeExclude | Select a light, and the script selects everything that is in the light's include or exclude list. It also prints whether these objects are included or excluded in the listener. | -- | |
| SelectByNoMaterial | Checks every object in your scene, if no material is applied the object is selected. | -- | |
| SelectedVerticesToStitchPointGroup | Copies selections from the editable mesh or editable poly level and makes stitch Point groups from them. | Stitch | |
| SelectEntireBiped | If you select any piece of a biped and then run this script, it will select the entire biped. | Character Studio | |
| SelectEntireBipedExceptRoot | If you select any piece of a biped and then run this script, it will select the entire biped except for the root. | Character Studio | |
| SelectInstances | Select any object, and run this script, it will select any objects in your scene that's an instance of your current object. | -- | |
| SelectNonSmoothedFaces | Takes an object, and selects all faces in the object that contain no smothing group. | -- | |
| ShowCameras | Made for hotkey use, if any cameras are visible, the script hides the cameras, if all cameras are hidden, it makes all cameras visible. Good for quickly hiding and unhiding all your scene cameras. Note: While there is a toggle under display to show or hide cameras, if you hide a cameras and then uncheck that box, the cameras is still not shown because you manually hid it. This script does not have that limitation. | -- | |
| ShowLights | Made for hotkey use, if any lights are visible, the script hides the lights, if all lights are hidden, it makes all light visible. Good for quickly hiding and unhiding all your scene lights. Note: While there is a toggle under display to show or hide lights, if you hide a light and then uncheck that box, the light is still not shown because you manually hid it. This script does not have that limitation. | -- | |
| SimpleScatter | A simple scatter. Takes a selected object, makes n instances of it, moves them around randomly within a distance you specify, rotates them randomly around the z axis, and scales them between 10% and 200% their original size. | -- | |
| SmokeThis | Makes a superspray, or pcloud with a material that simulates smoke. This is a quick way to create some smoke for your scene, go into the material afterwards to tweak its color, density, etc manually. | -- | |
| SplineControl | Allows you to change various parameters on splines. | -- | |
| StackBottom | Takes you directly to the bottom of the stack. | -- | |
| StackControl | Lets you quickly move to different parts of the stack. | -- | |
| StackDown | Takes you one modifier lower then your currently selected modifier. | -- | |
| StackTop | Takes you directly to the top of the stack. | -- | |
| StackUp | Takes you one modifier higher then your currently selected modifier. | -- | |
| StitchBatch | Lets you run stitch simulations on a bunch of objects over a bunch of files in a batch process. | Stitch | |
| SubdivisionControl | Will change various meshsmooth values globally for all selected objects. You can also copy the display settings to render settings, and vice versa. Can work on meshsmooth modifiers or polyobjects, or both. | -- | |
| SwapMaterials | Simple down and dirty way to store two materials to assign to objects in your scene. Quickens the process of swapping materials for mattes. | -- | |
| Sym | Takes any selected objects and instances and mirrors them across the x axis in one button press. A very simple script, I wrote it primarily for people like me who are modeling cars, buildings, helicopters, whatever, and want to build everything on one side and then make frequent previews of what the model will look like with both sides (and who don't want to click on many buttons). | -- | |
| TargetSync | Takes all your cameras and lights in the scene, and changes the name of their targets to properly reflect the name of their parent camera or light. | -- | |
| TextureMapViewer | Takes a Map that's in your mat editor and applies to it to selection of objects, renders the scene, then reassigns the old material back to your objects. This is useful if say you have a procedural mask (like noise) that's deep inside a map tree, and you just want to see what the map by itself will look like on your final object. Think of it as something similar to the "Show Map In Viewport" function, except it works with procedurals and does a full render. | -- | |
| ThreePoint | Quickly sets up a 3-point lighting setup in your scene. | -- | |
| Tracer | The user draws a top, front and side view of an object, scans in the pictures, and then this script will create 3 planes in your viewport with your three pictures on them, allowing the user to use the reference photos as a guide for building their 3d model. | -- | |
| TrackviewReady | Similar to Trackview selected, except also only shows animated tracks and it's already unrolled. | -- | |
| TransformTools | Lots of little useful tools to help transform things quickly. | -- | |
| VertexPlacer | Allows you to change the x y or z position of a selection of vertexes at the same time. | -- | |
| ViewCamera | Lets you change your active view to any camera you wish. This has several advantages over the current change viewport to camera options in max. First, the list it offers is alphebetical. There's also more room horizontally to see the full name of the camera. And it also resizes itself to the number of cameras present, so avoiding unnecessary scrolling. | -- | |
| WhoIncludesMe | Makes a list of lights that have the picked object in their Include list. | -- | |
| WipeLayermanData | Destroys all layerman information for selected objects. | Layerman | |
| WireJumble | Makes a user definable number of wires (lines) of variable thickness that travel through various target objects. Useful for making jumbles of wires that go from place to place in your scene without the need to model them, and provides more power in placement then the scatter compound object since it can give each wire a random thickness and allows multiple targets, not just an emitter object. | -- | |
| XRefBoxMode | Toggles boxmode on and off for scene xrefs. | -- | |
| XRefHidden | Toggles hidden on and off for scene xrefs. | -- | |
| XRefUpdate | Refreshes scene xrefs. | -- |