Milkshape 3D Tutorial
This Page has been viewed 48,957 times
Milkshape 3d Tutorial - Storm Object Definition file creation
This tutorial is in no way linked to Assimsoft and has been written with the definition that you, the user, already have the necessary program components installed prior to its usage. Neither Assimsoft or the tutorials creator can be held liable for missuse of this documentation and no support is given prior to, or after its usage.
As the 'small time' model creator for Star Trek Armada 1 and 2, you may not have access to 3d Max studio to export your beloved models to the SOD format that is support by Star Trek Armada 1 or 2. Therefore, I have taken the liberty of attempting to bridge the gap between the very low priced 3d modelling utility called Milkshape 3d (as created by Mete Ciragan of http://www.swissquake.ch/chumbalum-soft/) and the exporters created and released through http://www.assimsoft.com/ by GameRevolt.
Program and Model Setup
Now to begin with you obviously need to install MS3d and the necessary exporter beforehand. After this, import your model and make sure that you rotate the model using the 'top view' so that it faces with its front downwards (see image 1). Now your ready to begin your joint adding.
Now as you will have seen from quick replies on the couple of forums that questions about this exporter have appeared, each model uses the milkshape 3d "JOINTS" system to make what is more commonly known among 3dmax users as a "HIERARCHY". Each joint of this hierarchy is called a node and comes in three types:
1) PRIMARY NODE: This node is the one which all others are attached to. Without it the model will most likely be completely invisible.
2) PARENT NODE: These are sub divided what are also know as COMMAND nodes.
3) CHILD NODE: Sub nodes which are attached directly to the parent nodes and are controlled by the parent node they are attached to.
Further to this, there is a slight difference to the way that Milkshape joints are used. Each one needs to be defined using the following set of pre-usable definitions:
1) m_ This represents an actual reference to a mesh grouping, and are necessary if you plan to show up your model in game. Like the primary node if this is missing then the mesh group will be completely invisible.
2) h_ Used to represent the more commonly known HARDPOINT, and specifically used to instruct the exporter that the reference must be defined as a hardpoint.
3) s_ Used to define a joint as being reference for a sprite. You'll find that the various light references (green, red strobes etc.etc)
4) e_ Used to define the joint as being reference for an emitter. The emitter.spr file controls specific names which can be used, but the more common are steamsml (life support venting), and plasmasml (engine venting).
So what does all this mean?? Well quickly put you need to reference ALL the above to the various necessary joints which your planning on adding. At which point we delve into adding the first joint (which we'll refer to as a "node" from this point on).
The Primary Node
Be warned that this particular node is specific and MUST BE added to the each and every model your using. Anyway, to add the node simply follow these quick instructions below:
1) Click the [model] tab on MS3d's command palette.
2) Click the [joint] command button.
3) Use the top view editing window and left click in the centre of the model. (see image 2)
4) Click the [joints] tab on the command palette.
5) With the joint still highlighted (coloured red when item is selected), type in the reference h_scene root in the box to the right of the [rename] button and click the [rename] button.
Congratulations. Your successfully added your first node, but don't get too excited yet. The model won't show until you reference the mesh groups as follows:
This time you'll need to make sure your model groups have 8 characters or less in the mesh group names. Once your sure this is done right, simply follow these quick instructions:
As with the primary node above add joints for each mesh group, and the node names must match the names of your mesh groupings whilst the m_ must be tagged onto the front to denote the node is a mesh link (with the awing example I'm using in these included images the model has 2 mesh groups: awing and engines. Each of these groupings need a reference assigned to it). This example below is the one I've used (see image 3):
As a further example lets say you had three mesh groups, named: saucer, nacelles and engineer. Basically these would be referenced as follows:
You can see from image 3 that I've given each node a little bit of space between them. This isn't necessary but does help when linking the hierarchy together correctly. Now if all has gone well you should be able to successfully load the model into either the A1 SOD editor or A2 SOD viewer (remember to add the necessary textures to the RGB directory of whichever armada game your exporting for).
Right then. If all HAS gone well then you've successfully added the primary nodes which the model needs. Now onto the parent nodes.
The parent nodes are generally generic to all models. The only exception is the ENGINES node which isn't added to the damage hierarchy when creating a station of any kind (unless its likely to be movable). All parent nodes must be linked to the Scene Root node, and to carry this out just follow these simple instructions:
Firstly be aware that all the parent nodes will require the h_ reference to be linked to the beginning of each node name. Secondly also be aware, that the parent nodes are basically set out in two levels: Primary and secondary (secondary being linked only to the damage parent node).
To add each node you'll need to firstly select the Scene Root primary node. These primary parent nodes must be only linked to the scene root node and not to each other, otherwise you may get unpredictable results. Now add in and rename the following joints:
Just remember that after each joint is added to reselect ONLY the Scene Root node BEFORE adding in the next primary parent node. The final set of parent nodes is the secondary set which will require you to select ONLY the damage primary parent node. All the primary parent nodes should turn green is the scene root node is selected (see Image 4). Once your ready add in and rename new joints to reflect the following referenced names:
h_life (this is unecessary if creating a turret which is uncrewed)
h_engines (this is unecessary if creating a non movable station)
Remember to reselect the damage node and link each of the above to the damage node. These 6 represent the damage sections which flash red when a vessel takes damage on that particular section.
Right then. If all has gone well with this part you should be able to select the Damage node and ALL the sub parent nodes above should turn green (see Image 5).
Child Node - Venting Damage
Now as you've probably noticed practically every model used in both games has a type of venting for the damage which happens during combat to the LIFE SUPPORT and ENGINES. Both these nodes are more commonly known as "emitters", and as with all damage nodes are assigned only to the sub parent nodes which control them. The red plasma type venting is linked to the engines sub parent node, and the blue/white type venting is linked to the life sub type parent node. Also both these are available in three size types (small, medium and large. An extra large version is referenced in the emitter.spr file so if you wish to use it study the .spr file.). Anyway, these nodes are named directly using the e_ reference in the following way:
These two above are the most common used as they represent the SMALL version of the venting. To use the medium and large versions simply replace the sml tag with either med (medium), or lrg (large). You can also further reference these two if there is likely to be more than one of a particular type by adding the number to the end, as follows:
Although this does make them more unique they still act as the standard small venting for life support. Finally remember that you need to select the h_life sub parent first before linking the e_steamsml to it, and e_plasmasml must be linked to the h_engines sub parent node.
Be warned though that there is one small problem. Joints can't be rotated that I've found, using MS3d so you may have to export the model to A1 format only and use the A1 sod editor to manually rotate the nodes.
Child Nodes - Lighting
The running lights used in both Armada games are emitters but work using a different set of names (which, again are in the emitters.spr file) and are also reference slightly different. They aren't actually emitters in the same fashion as those for the venting points, but lighting strobes. Therefore they use the referenced command s_. Although there are around 8 different coloured running lights I'll only be showing how three of them work. The two main ones are red and green, and are used normally on the outer edge of each model in the following manner:
As with the venting nodes above you can assign a number if you wish to make the names more unique, but to my knowledge this isn't necessary. All red/green strobes must be linked to the h_lights sub parent node ONLY.
The other light thats sometimes used is s_whiteconstbig. This particular node will require rotation to the correct point but to give you an idea of what it looks like, if you've ever seen Star Trek ships in the films/tv series, there are sections on a ships hull where areas are highlighted (registry names on the saucer are a prime example). Well this whiteconstbig is normally what this is used for. However, its not necessary as practically all textures should have these highlighted areas already. Remember that all light nodes must be linked to the h_lights primary parent node.
Child Nodes - Hardpoints
Now before you go off adding hardpoint after hardpoint it is strongly suggested that you plan out the actual positioning that these should take, and also how many your likely to be using. Its a good idea to assign at least 10-16 hardpoints to critical locations (as dictated in the ODF files), as many as your weapons positions need and perhaps up to 8 for special weapons points (depending on what they are likely to be used for). As with most node references you need to use the h_ reference and attach ALL hardpoints to the h_hardpoints primary parent node. Aside from the numbered hardpoints for weapons and criticals there are several specialist hardpoint references which are used for unique usage:
h_dock (used by mining facilities and trading stations)
h_repair (used by stations that can repair)
h_build (used by stations that can build)
Just remember to link these to the hardpoints primary parent node.
Of course this exporter is a god send to those who can't afford 3dmax studio, but due to limitations with Ms3d there are a couple of minor draw backs which need to be overcome by other means. As it is hopefully this tutorial will help you to finally export a model to Armada 1/2 game format. Just remember that you need to probably resize your model either using the ODF's or Ms3d itself to rescale the model. I have also included an image of how the hierarchy should be layed out (Image 6) to give you an idea of the set of referenced and necessary nodes. Be warned though that there are other less known nodes which may be used for things such as model animation. These have not been included as it may be a rare occurance than requires their usage.
If you have any problems than theres nothing like personal experience, so experiment first before directing any questions to my contact details below.
Thanks for downloading and attempting to use this tutorial, and above all Good luck and have fun!!!
Major A Payne
(firstname.lastname@example.org or ICQ 60839084)