MaxScript Release 0.2 Source for 3ds max 4
(10/26/2000)
Copyright (c) 2000 by Borislav Petrov, Bobo's
Rendert**ls.
SHORT DESCRIPTION
InstaWire is a MacroScript utility.
It is based on an idea by Neil Blevins of Blur Studio.
It provides a new flexible way for fully
or partially instancing objects, materials and modifiers.
Creates a copy of a source object and instances
all or only some of its properties.
Uses Instanced Controllers by default for
speed when the value is passed between instances without changes.
Can use Wire Controllers to allow later editing
of the instancing using more complex expressions.
Provides an offset option to create an array
of copies along any world axis.
INSTALLATION
InstaWire is a R3-style MacroScript
with a Floating Rollout.
Download and Unzip the distribution
file to your \Scripts directory.
Start 3ds max 4, select MAXScript > Run Script
and select the file (Alternatively open Windows Explorer and drag&drop
the file to your max 4 Viewports)
Right-click a toolbar, select Customize...,
find Category "Bobo_s Tools" and drag&drop InstaWire to
the toolbar. (Alternatively you can place InstaWire in a
QuadMenu or assign to a Keyboard Shortcut)
Select a single object and press the button
/ select the QuadMenu Item / press the Shortcut to launch the script.
USAGE
Version 0.2 (10/26/2000)
InstaWire can
be launched only when a single object is selected in the scene. The button/icon
will be disabled if this is not the case.
The single selected
object will be made the Source for Instancing. To select a different object,
you can either select a new object in the scene and press the icon again
to relaunch the utility, or press the [GET] button and pick a new object
from the scene.
The name of the Source
will appear in the edit text field on top of the utility.
All valid parameters
will appear in a list box bellow. They will be prefixed with an > meaning
they will be instanced.
You can toggle a single
track's instancing by double-clicking it.
You can toggle the instancing
startus of all tracks by pressing the [All],[None] and [Invert] buttons.
The "No Offset" mode
will be set by default. In this case, the instanced object will appear
at the same position in the scene as the Source.
When a different offset
mode is selected, the offset will be calculated in world coordinates and
the selected world axis will be used. For example, if +X is selected, the
instance will appear to the right of the Source when seen from the Top
viewport.
The default instancing
mode is "Fan". In this case, each instance will be generated from
the same Source. This means that when using Wiring, all Instances will
have direct connection to the same object and will build a fan. The names
of the objects will have the suffix _IW and a unique number.
The optional "Chain"
mode makes each new instance from the last instance. InstaWire will set
the last instanced object as the current source after the operation. The
next instance will keep the _IW suffix and receive a new unique number.
The default instancing
mode is currently "Insanced Controllers". In this mode, an instance of
the source controller will be created (and a new controller will be assigned
where necessary). This method avoids the multitude of Wire controllers
and is generally faster and more stable. The drawback is that you cannot
change the 1:1 value dependence between instances.
The optional instancing
mode is "Wiring". The utility was originally developed to provide exactly
this functionality. The current Magma Build M042 crashes when too many
chained controllers have been created. That's why this mode is currently
only a second option. It lets the user change dependencies by editing Parameter
Wiring later.
Press the [MAKE INSTANCE!]
button to generate an instance of the currently picked Source object using
the settings in the dialog. In the source object has been changed, deleted
etc., you will be prompted. Parameters that failed to create an instanced
controller will be listed in the Listener.
KNOWN PROBLEMS AND
LIMITATIONS
Currently supports Geometry objects only.
Lights, Cameras etc. have a self-multiplication problem (reported as a
bug already) when properties are being accessed through MAXScript.