|General Notes version 3.9
A big part of all 3DPI scripts is completely restructured. Even
if the new version of the 3DPI does not show alot of visual changes,
the technic behind is nearly new. This offers speed improvements
and allows more flexibility for new features, e.g. the possibility
to pause the 3DPI.
Due to the big number of technical changes, not every little
detail is docummented this time, but all important changes should
- Within the Preferences of the 3DPI one can choose the new option
"Pause when deactive".
If this option is selected, the 3DPI will be paused whenever the
3DPI window is inactive. So the 3DPI will check and display all
informations only as long as the 3DPI window is the active one.
If the option is not selected (default), the informations will
be updated constantly, just like it has been with all previous
- The 3DPI will always be paused while Director is deactivated.
- On PC the 3DPI will also be paused while the window is minimized
by the "Collapse" Button. (Sadly on Mac the 3DPI will
not be paused while the window is minimized by the windows Collapse
One can now select a specific object by typing the beginning
letter(s) of the objects name.
Therefore a field is added, which appears after clicking on the
little arrow at the left bottom corner of the list of objects.
The area, that is below the Buttons to create new objects or
to delete them, will now be used for special 3DPI feature-Buttons.
These feature Buttons currently are:
"Information" - When clicking on this Button
a dialog will open, which gives an overview about all objects
that are using the selected object.
This Button is available in the Texture-Tab, Shader-Tab and Modelresource-Tab.
- At Textures: all Shaders, Particle ModelResources, Camera
Backdrops and Overlays will be listed, that use the selected
- At Shaders: all Mesh Modelresources and Models will be listed,
that use the selected shader.
- At ModelResources: all Models will be listed, that use the
Within this dialog one can also directly navigate to one of these
"Model Hilite" - While pressing this Button,
the 3DPI will hilite the model.
This Button is available in the Model-Tab and the RigidBody-part
in the Havok-Tab.
- At Models: the selected Model will be hilited. (In the Model-Tab
this feature is also available when clicking on any model in
the list, while pressing the option (= alt) key, or when clicking
with the right mouse button.)
- At RigidBodies: the model, that is corresponding to the selected
RigidBody, will be hilited. Please Note, that if more shockwave3d
member exists, the 3DPI will search the model within all members,
and will select the first one, that includes a model with the
same name like the RigidBody.
All 'Hyperlinks' will now be displayed by a Button. Click on
the Button to navigate to the specific object.
The following Hyperlinks are also added:
- for the property #parent at all Nodes
- for the property #rootNode at cameras
- for getRigidBodyA() and getRigidBodyB() at springs and Dashpots
within the Havok-Tab.
|Copy names to Clipboard
Hidden feature added: in all lists on top of the 3DPI window,
a control-click on a listed object will copy its name resp. reference
|changes at #mesh and #meshDeform
At the Modelresource #mesh and the model modifier #meshDeform
the missing entries are added to change the #normalList, #textureCoordinateList
and #colorList. (Exception: no textureCoordinateList-entires at
mesh modelresource, because of possible errors, when no textureCoordinateList
Click on the arrows on the left beside each property name to access
- The list of motions now also displays the motion-type.
- The "Map"-Button for the map-function is build in.
- suggested new names: When creating a new ModelResource,
the 3DPI will not anymore suggest the name "ModelResource_n"
than a name depending on the type: "sphere_n", "box_n"
and so on. (Of course instead of 'n' a number will be used.)
- new mesh: Within the dialog to create a new Modelresource,
one can now also choose the type #mesh. If #mesh is choosen and
clicking on the "OK" Button, another dialog will open
asking for the parameters for the new mesh.
- functions added: The functions for generateNormals()
and build() are added at mesh ModelResources.
When clicking on the generateNormals-Button while pressing the
option key (= alt key), the dialog will be skipped and the style
(#flat or #smooth) will be taken that was choosen last time.
Please Note: after creating a
new mesh, one has to set all values of the mesh 'correctly'
that the generateNormals function will succeed. If generateNormals
does not accept the values, nothing will happen after clicking
on the "OK" Button within the generateNormals-dialog.
- Navigation: Switching between the model properties and
the modifiers is now provided by 2 Buttons instead of 1 popUp.
Changing the selected modifer can be done with the popUp beside
The 3DPI will remember the last selected screen within the Model-Tab.
Instead of always displaying the "Model Properties"
after clicking on the Model-Tab, the 3DPI will navigate back to
the last activated part (Model properties / selected model Modifier).
- Reordered Properties: The model properties are alittle
reordered, to have all model-specific properties together, and
those available without scrolling the page, that probably are
needed more often.
- Creating new model: The recource, that was choosen last
time when a new model was created (choosen within the dialog at
the "New"-Button), will be suggested next time again
when creating a new model.
(Only the name of the modelresource will be stored. If a modelResource
with the name exists, this will be suggested, otherwise none.)
A "PUT" Button beside the property shaderlist.count
offers the possibility to put the complete shaderList into the
The index at the property #shaderList is changed to an editable
field with a Wheel beside instead of a PopUp. "All"
will be the default value. (Type 0 instead of "ALL"
to access the complete shaderList.)
- Adding modifiers: If it fails to add a modifier to model,
an error will be displayed. If possible, the error will also explain
- Correction: The property #playrate of the modifiers #bonesPlayer
and #keyFramePlayer can be set to negative values.
- added properties/functions: isInWorld(), removeFromWorld(),
addToWorld() and property #attenuation at point light.
- bugfix with property #attenuation, when trying to set
it to vector(0,0,0)
- imporvement: at the interactive help tools to change
the rotation at directional lights and the position at point lights,
the preferred vertical axis can be choosen now.
- Stepping: When clicking on the "step()" Button
longer than half a second, the step-function will run continously
as long as the Button is pressed.
- added functions for rigidBodies:
- applyForce() and applyForceAtPoint() ... available by the
- applyImpulse(), applyImpulseAtPoint() and ApplyAngularImpulse()
... available by the Button "applyImpulse..."
- applyTorque() ... available by the Button "applyTorque..."
- Picking feature at RigidBodies:
If the Picking Button is switched on, and it's function is
set to "Pick TAB specific object", the 3DPI now offers
the possibility to pick the RigidBody corresponding to the Model,
that was clicked on. Please note, that the 3DPI will only search
the RigidBody within that Havok Member that is currently selected.
- Improvement creating RigidBodies: the dialog for creating
rigidBodies does not list anymore models, that have already been
used for rigidBodies.
- Improvement creating springs and dashpots: the dialogs
for the Havok functions MakeSpring(), MakeLinearDashpot() and
MakeAngularDashpot() do now also offer other types of syntax,
e.g. to define a worldPosition instead of a second rigidBody.
- Navigation Improvement: The 3DPI will remember the last
selected screen within the Havok-Tab. Instead of always navigating
to the "CastMember" Properties after clicking on the
Havok-Tab, the 3DPI will navigate back to the last activated part
(CastMember / RigidBody / Spring / LinearDashpot / AngularDashpot).
- 2 Buttons are added at property #gravity:
- "gravity along -y axis" sets the gravity to vector(0,
- "gravity along -z axis" sets the gravity to vector(0,
while G is the length of the gravity vector that was set before
clicking on the Button.
If the gravity was vector(0,0,0), or when clicking on the Button
with the right mouseButton or while pressing the option key (=
alt key), then the new length of the gravity (G) will be 386.22.
- little Improvement: Within the dialog for the setRigidBodyB()
function (for Springs, LinearDashpots and AngularDashpots) one
now can also choose #none.
Generally all the tracing functions of the 3DPI are alittle improved.
E.g. shockwave3D-objects will now be provided by their name instead
of their index, e.g. shader("myShader")
instead of shader.
The function "Trace Property List" is completely
restructured. It will now output the following informations:
- the scriptLine to rebuild the reference to the selected Object
e.g. theShader = member(7, 1).shader("DefaultShader")
- "settable properties"
a property list of all properties, that can be rebuild with
a generic handler (example see below) and the "do"
- "reference properties"
a property list of all properties, that refer to other shockwave3D-objects,
like shader.textureList or model.parent. To rebuild this properties
a special handler is needed (example see below).
- "read only properties"
a property list of all properties, that cannot be set.
- "rebuilding Help"
a property list of informations that might help to rebuild the
property values. This list can contain the following informations:
- #object for the reference of the object (only in Sprite-Tab,
Member-Tab, Havok-Tab and Renderer-Tab).
- #member for the reference to the member of the object.
- #objectType, which is similiar to #ilk, except that it
will always provide #modelResource for all ModelResources.
- #name for the object name.
Two example handlers can rebuild all the "settable properties"
and "reference properties" that have been outputted
by the 3DPI: rebuildHandlers.txt.
(The scripts are not optimized for speed, but on the other hand
work generic for all outputted lists of the complete 3DPI.)
- No more endless errors:
Due to the restructured scripts it should not happen anymore,
that the 3DPI runs into endless errors!
If the 3DPI runs into an error, Director will display the error,
but then the 3DPI will stop, while your movie continues to play
(if possible). One needs to reopen the 3DPI to continue working
Please check the "Known Issues" to get an idea about
the reason of errors.
- New PopUps: the PopUps are redesigned.
- Previews changes:
- Previews of shaders and modelresources will remain switched
on or off, when entering the 3DPI-screen with the Preview
- The Preview of a texture will only be updated exactly when
clicking on the Preview-Button, not constantly.
- The Preview of a texture will be scaled to fit within the
- Picking Button Bugfix:
Clicking inside the 3DPI will be ignored for the Picking-feature,
so if the 3DPI window is placed above the stage, no problems should
- small Bugfix: Within the dialog for "CloneModelfromCastMember"
and "CloneMotionFromCastMember" the suggested new name
will now be updated correctly also on PC.
|anti-aliasing properties added
The 2 new properties #antialiasingSupported and #antialiasingEnabled,
that have been added in the Director 8.5.1 update, are now available
in the Sprite-Tab.
If running the 3DPI with Director 8.5 and not 8.5.1 both properties
are greyed out and inactive.
Also see: About anti-aliasing
|little tracing improvement
When creating new objects, the traced script will store
the new object in a variable now.
E.g. instead of:
theModel = theMember.newModel("model_1")
- The active renderer should not switch anymore when starting
the 3DPI or when creating a Preview. (In fact there are circumstancances
the renderer might switch, but in this cases the 3DPI will revert
the renderer afterwoards again.)
- Errors with the value 'NAN' (mainly appearing with Havok objects)
should not happen anymore.
- Tracing was working incorrectly at the models shaderList, if
"ALL" was selected for the list index and the model
used more than one shader.
- Tracing is working again when adding, inserting or removing
a cameras backdrop or overlay.
- To avoid possible errors, changing a property of a backdrop
or overlay is now ignored if the source of the backdrop or overlay
has a width or height of 0.
- PopUps in the Camera-Tab should work again properly.
- If "trace changes" of the Trace-Button is active,
nothing appears anymore in the message window when only changing
any 'index' value.
|Hyperlink to Node's children
A Hyperlink button is added beside the child.count property at
If the node has only one child, clicking on the button will link
to the one child immediately.
If the node has more than one child, clicking on the button opens
a dropDown that lists all the children. Selecting one child in
the popUp will link to that child.
In the bonesPlayer part of the model-Tab the bones transform
/ worldTransform is added at the end of the page. (You need to
Select the bone index at 'bone[indexNumber]'
and the corresponding transform values are displayed below.
The values of the rootbone, the first bone, are not editable.
You can now choose about the way, how the search function (see
picture below) should work in detail.
Autosearch ON (default): If you switch the 'Autosearch'
option in the 3DPI preferences on, the first fitting object will
be searched immediately after typig a letter into the search
Autosearch OFF: If you switch 'autosearch' off, after
typing into the search field you need to press the return key
to start searching the first fitting object.
On the right side of name lists of the member sub-TABs (texture,
shader, motion, modelResource, model, light, camera and group)
now appears a small 'Filter' Button.
If the Button is selected (pressed), you can filter the objects,
depending on their names, and so the list of objects only shows
what you are interested in.
Click with the option key (or the right mouse button on
PC) on this Button to open the dialog for defining the filtering
You can either hide all objects that names fit to the
or only show these and no others.
You can hide or show objects, which names either contain
the filter string,
or start with it.
Additionally you can always hide all objects, that Director
automatically creates for Overlays and Backdrops. That
means, Shaders and models, that names start with "Overlay-copy"
or "Backdrop-copy" will not be listed.
|new feature: Duplicate Shader
Shaders can now be duplicated. Please note that there does not
exist such a Director function, than it is a feature of the 3DPI,
which in fact only creates a new shader and sets all its properties
identical to the shader that you want to duplicate.
When clicking with the option key (or the right mouse button
on PC) on the duplicate button, the dialog for naming the new
shader will be skipped and the 3DPI chooses a new name by its
|new feature: Duplicate ModelResource
The same way as the 'Duplicate Shader' feature now also works
for ModelResources - except for ones of type #fromFile and #extruder.
Please note that duplicating meshes will fail, if the mesh
ModelResource to copy does not have a textureCoordinateList defined.
with keyframePlayer and bonesPlayer
In the keyframePlayer and bonesPlayer part of the model-Tab the
3DPI now also displays the name of the first motion in the playlist:
In the rigidBody part of the Havok-Tab the technic behind the
Button 'Make' (MakeRigidBody) is improved.
Until now it was not possible to create rigidBodies with the help
of the 3DPI if more than one shockwave3d member exists, because
there is no way to get the shockwave3d member that was used for
Havok initialization. This dead-end is removed.
Now the 3DPI checks the names of all RigidBodies and compares
them with the models in all w3d members:
- If only one member has models, which names fit with the rigidBody
names, this member will be used for the MakeRigidBody dialog.
- If more than one member might fit, or no rigidBodies exist,
there first appears a dialog, asking for the correct shockwave3d
member, that was used for initialization. Then the normal dialog
appears that helps to create a new RigidBody.
NOTE 1: If you select the wrong member in the first dialog,
making a RigidBody will fail if you select a modelname that does
not exist in the correct member: nothing happens after clicking
on the 'OK' Button. To close the dialog click on the 'cancel'
NOTE 2: In fact it could happen that the 3DPI chooses
a wrong member, but probably it never will happen. If you delete
a model after creating a rigidBody out of it (for example if you
want to create invisible walls you can delete the wall-models
but the wall-rigidBodies will continue to work) and you have another
shockwave3d member, that contains models with the same names,
the 3DPI will take this member for the makeRigidBody dialog.
If you see any problems in this direction, please let me know.
|small correction with wheels
Some wheels (endless sliders) at the meshdeform part of the model-Tab
did not allow to change values in small steps (< 0) that is
normally working while pressing the option-key. This is corrected.
The wheel-stepSize for the values at textureCoordinateList are
set to 0.1 instead of 1.0 in general (so changing the value while
pressing the option key will change in 0.01 steps).
|Bugfix with 'clearCache'
A few users reported an error "Script error: Handler not
defined #clearCache" after starting the 3DPI. The real
problem seems to be the new NetLingo Xtra update, that can be
downloaded at Macromedia to adress security issues (technote
16636). It looks like, Macromedias technote is missing one
important step: you also need to copy both the IML and DP/Dirapi
libraries into your Director folder (varies depending upon auth,
projectors and Shockwave).
However, because the 3DPI does not need the line 'clearcache'
anymore since a long time, in version 3.9.3 this line is now
finally deleted, and you can continue to work with the 3DPI,
even if netLingo does not work correctly.
You can choose in the 3DPI preferences, if you would like to
have the 3DPI window as floating palette or not.
The collapse Button in the right upper corner now also appears
under Mac OSX to be able minimizing the window on this system
Finally the 3DPI will open where you closed it last time.
At any Node (model, light, camera and group) there is now a
'Parent-Child Hierachy' button on the left side of the name
list. If a node is selected and you click on the button, the
3DPI switches to the member-Tab, and displays the Parent-Child
Hierachy so that you immediately can see the Node in the Hierachy.
(It opens the collapse arrows of the parent nodes and scrolls
down if necessary.)
with Overlays and Backdrops
Sometimes it could happen that the selection of an Overlay
or Backdrop changed unexpectedly. Fixed.