FileFront Forums

FileFront Forums (http://forums.filefront.com/)
-   ST:A2 Modding, Mapping and Editing (http://forums.filefront.com/st-a2-modding-mapping-editing-139/)
-   -   Joint/Hardpoint Tree Structure Tool (http://forums.filefront.com/st-a2-modding-mapping-editing/428340-joint-hardpoint-tree-structure-tool.html)

Muldrf September 16th, 2010 01:15 PM

Joint/Hardpoint Tree Structure Tool
 
I create tools, for Legacy modding, but Armada shares a fairly common setup in the Hardpoint/Joint area for models in Milkshape. I've recently been working on a tool to aid in the creation of the structure of the Joint/Hardpoint tree for use with Milkshape. I was thinking it might be of use to some of the moders here.

It's a stand alone program that allows building of a "joint tree". This tree doesn't contain any position or rotation data, it's just the joints and their links. Also I added support for Joint Comments which Legacy uses on the Light joints for alteration of strobe patterns and coloration/intensity.

Once a tree is made it is saved to the Milkshape 3d ASCII txt file format and imported using the Milkshape 3d ASCII Text importer. After importing it you just have to relocate the weapon, subsytem, sprites, emitter joints, etc to the appropriate locations.

It can import Mesh Group names to speed entry of the m_ joints via a customized Milkshape Exporter that goes with the tool. I'm going to be working on importing of existing joints along with their position, rotation and comment data at a later time.

Here is a shot of the current interface.
http://i243.photobucket.com/albums/f...ools/jtp2a.jpg

I can't currently make alternate interface options as I don't "know the differences" for A, A2, and Fleet Ops compared to Legacy. Dejavu sent me some things, but it's not exactly what I need to sort it out properly. If someone can fill me in with the data I need, I can make the alternate interfaces, otherwise it will just stay rigged for Legacy as I don't have time to do a lot of hunting.

If you want to look at more data on the tool the main thread for the tool is here: http://forums.filefront.com/stl-modd...ture-only.html

Freyr September 16th, 2010 02:38 PM

Re: Joint/Hardpoint Tree Structure Tool
 
Quote:

Originally Posted by Muldrf (Post 5395997)
I create tools, for Legacy modding, but Armada shares a fairly common setup in the Hardpoint/Joint area for models in Milkshape. I've recently been working on a tool to aid in the creation of the structure of the Joint/Hardpoint tree for use with Milkshape. I was thinking it might be of use to some of the moders here.

Very probably, thanks for the heads up. I don't model myself, but i'm sure someone that does will drop a message in here in the near future.

Quote:

Originally Posted by Muldrf (Post 5395997)
I can't currently make alternate interface options as I don't "know the differences" for A, A2, and Fleet Ops compared to Legacy. Dejavu sent me some things, but it's not exactly what I need to sort it out properly. If someone can fill me in with the data I need, I can make the alternate interfaces, otherwise it will just stay rigged for Legacy as I don't have time to do a lot of hunting.

I'm afraid I don't mod legacy, so i'm not sure of the differences myself. I do happen to have a copy of this though, which probably contains everything you want to know. If not, please ask away. I probably won't know the answer, but I can usually remember where to get the information. =p

Spoiler:

Quote:

Originally Posted by The Storm 3D Lead Developer
Storm3D Object Definition (SOD) File Format
===========================================
Author: Steve Williams
Storm3D Graphics Engine Lead.
Copyright (c) Activision 2000.

Modifications: Fixed node specification error.

Audience
========
This document is intended for use by experienced 3D tools programmers for the purposes of writing exporters, importers and conversion tools to/from the .SOD format. A good understanding of real time 3D graphics principles is assumed. The reader is expected to be familiar with real time 3D geometry concepts such as lighting, animation & scene graph hierarchies.


Introduction
============
The SOD file format is a binary file format describing the 3D directed scene graph hierarchies used by the Storm3D rendering engine. Each .SOD file describes one such hierarchy.

The SOD file format has evolved through several versions. This document describes the latest format, 1.8. Documentation of previous formats is not available at this time.


Datatypes used in this document
===============================
UINT8 unsigned 8 bit integer
UINT16 unsigned 16 bit integer
UINT32 unsigned 32 bit integer
FLOAT floating point (4 byte) value
VECTOR2 {FLOAT u, FLOAT v}
VECTOR3 {FLOAT x, FLOAT y, FLOAT z}
MATRIX34 { VECTOR3 RIGHT, UP, FRONT, POSITION } MATRICES MUST BE ORTHOGONAL.
COLOUR { FLOAT red, FLOAT green, FLOAT blue } Component range 0.0 - 1.0

Other local datatypes are defined where appropriate.

Additional Syntax
=================
TYPE ARRAY(nentries) - A contiguous array of nentries of type TYPE

Identifiers
===========

IDENTIFIER
{
UINT16 strlen(string), string (8 bit ascii values) including terminating '0'
OR
UINT16 0 - Indicates null string.
}

File Structure
==============

Section 1 : File Header
Section 2 : Lighting Materials
Section 3 : Nodes - Written recursively from the root.
Section 4 : Animation Channels
Section 5 : Animation References

Section Description
===================


Section 1 : File Header
=======================

HEADER Storm3D_SW File identification header (8 bit ascii values) - no strlen or terminating '0'.
FLOAT version Current version is 1.8, older formats are not described at this time.


Section 2 : Lighting Materials
==============================
Defines the characteristics of the vertex lighting materials defined in this .SOD file.

UINT16 count - The number of lighting materials defined in this file.

LIGHTING_MATERIAL ARRAY(count) Array of lighting materials.

LIGHTING_MATERIAL
{
IDENTIFIER identifier Name of the lighting material.
COLOUR ambient Real time lighting ambient component
COLOUR diffuse Real time lighting diffue component
COLOUR specular Real time lighting specular component (only used by the phong illumination model)
FLOAT specular power Specular exponent, used to determine the 'shininess' of material using the phong illumination model.
UINT8 lighting model (constant=0, lambert=1, phong=2)
}


Section 3 : Nodes
=================

The nodes consist of 5 types NULL, LOD_CONTROL, SPRITE, MESH and EMITTER which together form
a scene graph which describes the object's hierarchy.

UINT16 count - The number of nodes in the hierarchy.

<Update: Note node_type & identifier order has been switched to correct error in initial specification.>

NODE
{
UINT16 node_type (0 - null, 1- mesh, 3 - sprite, 11 - LOD control node, 12 - emitter) DO NOT USE OTHER VALUES.
IDENTIFIER identifier
IDENTIFIER parent (which will be null for root node)
MATRIX34 local transform
TYPE_SPECIFIC_DATA<node_type> Type specific data field as defined below.
}


Null Nodes
==========

TYPE_SPECIFIC_DATA<NULL>
{
No addtional data required.
}

Null nodes are used for two purposes :
1. As &apos;glue&apos; to stick the rest of the hierarchy together
2. To mark specific locations in the hierachy, for example, hardpoints.


LOD Control Nodes
=================

TYPE_SPECIFIC_DATA<LOD_CONTROL>
{
No addtional data required.
}

Storm3D uses discrete (rather than dynamic) LODs for level of detail control. Each
child of an LOD control node indicates a discrete LOD that the graphics engine may
use when rendering this object. LOD selection is based on visible on-screen area.


Sprite Nodes
============

TYPE_SPECIFIC_DATA<SPRITE_NODE>
{
None: The appropriate sprite node definition to use is determined from the
identifier. The sprite node definition is defined in the .spr files.
}

Examples of sprite node usage include running lights in ST:Armada.

TYPE_SPECIFIC_DATA<PARTICLE_EMITTER>
{
IDENTIFIER Emitter used by this node as defined by an @emitter description in the .spr files.
}

Polygon Mesh Nodes
==================

TYPE_SPECIFIC_DATA<MESH>
{
IDENTIFIER texture material (0 for default) - Defines the TEXTURE_MATERIAL to be used by this mesh.
IDENTIFIER texture (0 if untextured)
UINT16 nvertices : Number of vertices
UINT16 number of texture coordinates (ntexcoords)
UINT16 number of vertex lighting groups (ngroups)

VECTOR3 ARRAY vertex positions (nvertices entries)
VECTOR2 ARRAY texture coordinates (ntexcoords entries)

VERTEX_LIGHTING_GROUP ARRAY (ngroups entries)

UINT8 cull type (0 - no cull, 1- (backface cull)

UINT16 0 - unused must be 0.
}

VERTEX_LIGHTING_GROUP
{
UINT16 num_faces (all faces are triangles)
IDENTIFIER lighting_material (0=default)
FACE ARRAY (num_faces entries)
}

FACE_VERTEX
{
UINT16 index into mesh vertex positions array
UINT16 index into mesh texture coordinate array
}

FACE
{
FACE_VERTEX ARRAY(3) 3 entries describing a triangular face.
}

Section 4 : Animation Channels (Defines transform animation)
================================================== ==========

UINT16 count // Number of animation channels

ANIMATION_CHANNEL ARRAY(count) Array of animation channels.

ANIMATION_CHANNEL
{
IDENTIFIER node : The node to which this animation channel refers.
UINT16 nkeyframes : The number of keyframes used by this channel.
FLOAT channel_period : The length of time one loop of this channel lasts.
UINT16 0 : Not currently used. Must be 0.
MATRIX34 ARRAY(nkeyframes) keyframe_data : The actual animation transforms, evenly spaced over time &apos;channel_period&apos;.
}

Section 5 : Animation References (Defines texture animation)
================================================== ==========

Animation references are a way of linking texture (flipbook) animations defined in the
.spr files to the geometry of a .SOD mesh node. An example of their usage is the
flipbook animation applied to the geometry for the various shield effects in Armada.


UINT16 num_animation_references

ANIMATION_REFERENCE ARRAY(num_animation_references)


ANIMATION_REFERENCE
{
UINT8 type : Must be 4
IDENTIFIER node : The node to which this animation applies.
IDENTIFIER anim : The animation (as defined in .spr files) that is to be applied to this node.
FLOAT playback_offset : Time offset in seconds to be applied to this animation reference.
}

Additional Information
======================

Vertex Lighting Material Sharing
================================

Vertex lighting materials are shared between objects, when parsing a .SOD file,
Storm3D searches for a match in all previously loaded files. If a match is found, that
material is used. This prevents artists from having to ensure the material characteristics
of commonly used materials are correct in each file, and also saves memory.

A &apos;palette&apos; of commonly used materials can be found in materials.sod
In Armada, this file is loaded prior to most other SOD files & so defines the
characteristics of many common materials.


Hierarchy Structure (Armada Specific)
=====================================
Armada uses various nodes in a Storm3D hierarchy for special purposes.
These include hardpoints, damage nodes, running lights, borgification.
When generating new artwork, the artist must pay careful attention to the
structure of the hierarchy for the new object to function correctly in Armada.
A definition of the hierarchy structure required by Armada is beyond the scope
of this document. For the time being, existing artwork can be used as a reference.


TEXTURE_MATERIAL Definition
===========================
A texture material defines the characteristics of the polygon rasterizer used to
render the polygons in a given mesh. The texture materials are currently fixed
and defined within the executable.

Useful values are :

default - Standard material
additive - Use additive blending
translucent - Semi transparent
alphathreshold - Use for objects using alpha channel &apos;cut outs&apos; - alpha
channels will have hard edged &apos;threshold&apos; but objects will be
drawn quickly.
alpha - Uses entire alpha channel. Object will require sorting, so
will have performance implications.
wireframe - Use wireframe graphics.


Muldrf September 16th, 2010 05:51 PM

Re: Joint/Hardpoint Tree Structure Tool
 
Actually what I am looking for is something like this:
http://forums.filefront.com/members/...uder-model.png

That's the basic Legacy joint tree structure. I need the same type of thing for A, A2 and FleetOps.

The other thing I'm looking for is a list of the various possible sprites for A, A2 and Fleet Ops. That would include "light" sprites and "emitter" sprites and if there are any other type. Also if the naming is different than Legacy "m_" "h_" "s_" For example "whiteconst", "greenstrobe", "plasmasml".

If the trees and options are different for each of those three I may make 3 specific interface setups for them.

Freyr September 17th, 2010 03:09 AM

Re: Joint/Hardpoint Tree Structure Tool
 
Quote:

Originally Posted by Muldrf (Post 5396221)
Actually what I am looking for is something like this:


That's the basic Legacy joint tree structure. I need the same type of thing for A, A2 and FleetOps.

I think that Westworld's Big Book of Modding contains most of this info. The BBOM is the original "bible" that was complied around the time the game was released to explain points to people. I don't know what changes have been made by fleetops.

Westworld's BIG Book of Modding

Quote:

Originally Posted by Muldrf (Post 5396221)
The other thing I'm looking for is a list of the various possible sprites for A, A2 and Fleet Ops. That would include "light" sprites and "emitter" sprites and if there are any other type. Also if the naming is different than Legacy "m_" "h_" "s_" For example "whiteconst", "greenstrobe", "plasmasml".

If the trees and options are different for each of those three I may make 3 specific interface setups for them.


These are the possible emitters for A2:-
Spoiler:

@emitter rift
@emitter riftcloud
@emitter firecomet
@emitter icecomet
@emitter chunk1_disabled
@emitter latinum_spray
@emitter test_cloud
@emitter smoke
@emitter plasmasml
@emitter plasmamed
@emitter plasmalrg
@emitter plasmaxl
@emitter steamtiny
@emitter steamsml
@emitter steammed
@emitter steamlrg
@emitter steamxl
@emitter borgbore_beam
@emitter override
@emitter microorg
@emitter psiondis
@emitter microor2
@emitter crpulsar
@emitter gemini
@emitter contrail
@emitter rocket
@emitter neb1
@emitter neb2
@emitter premgate
@emitter worm
@emitter swneb1
@emitter swneb2
@emitter swneb3
@emitter swneb4
@emitter swneb5

Muldrf September 17th, 2010 07:43 AM

Re: Joint/Hardpoint Tree Structure Tool
 
That book does look like it contains the A2 and info on the A1 trees. I'll have to look at it closer. For one there are command nodes "c_". I'll also need to know the valid sprite entries to populate the dropdown boxes to make them easy to use, that might be somewhere else in the book.

That would leave FleetOps, which I take is some addon that uses additional sprites options and maybe some other changes.

Anyway no rush I still have plenty of work to do on the tool before I'd look at starting the alternate interfaces.

starfox1701 September 17th, 2010 10:18 AM

Re: Joint/Hardpoint Tree Structure Tool
 
For FO stuff you will need to go talk to the Devs on their site. Modeling for FO is in its infancy since the changed the SOD version and FO models won't work in A2 without being back converted.

The tool sounds very usefull. looking forward to it.

pepperman September 18th, 2010 02:15 PM

Re: Joint/Hardpoint Tree Structure Tool
 
Would it be helpful to get a Milkshape model of a stock ship from A1 and A2? THey would have the hierarchies that you need.

If your tool is primarily for Milkshape I don't think spending a lot of time on command nodes "c_" will matter as I don't thinkl Milklshape supported them anyways. I beleive MAX is needed for those.

Muldrf September 19th, 2010 10:11 PM

Re: Joint/Hardpoint Tree Structure Tool
 
The tool is only for milkshape unless there happens to be a milkshape 3d ascii text importer for MAX. Unless you bring the file into milkshape, then save it to a format the MAX can import that support joints.

I looked at that Modding book quickly and with how the MAX hardpointing is done, I am doubtful that such a process would be worthwhile. I've been told hardpointing is alot better to do in MAX than Milkshape to begin with, but I only use milkshape.

Dejavu sent me some joint trees from A, A2 and Fleetops. They will be helpful once I write up the Joint Import Code, but it's not been done yet. That probably won't be for a couple weeks as I'm finishing up the XI pack for Legacy first.

Muldrf October 22nd, 2010 06:31 AM

Re: Joint/Hardpoint Tree Structure Tool
 
Well I figured and update was due.

I have finally gotten to implement the ability to import existing joint trees into the tool from milkshape. With the examples that Dejavu sent I don't see the need for any serious modifications to the utility for use with the Armada series.

I don't yet have a list of valid emitters (e_) or sprite (s_) joints to populate those dropdown boxes, but beyond that it shouldn't take much. The Armada version would also be a stand alone tool without the other interfaces that the LMTools include as they are Legacy only functions generally. Basically I'm not building the Armada Tool into a Legacy Modding Utility, I doubt that would be found helpful by you guys (and gals) or vice versa.

I figure it's best to not create a branched off copy until I'm sure it's in good operating order, or I will have an awful mess updating both versions as I fix things. So it will still be awhile until I get to this as I know the tool needs a fair bit of work yet. If anyone wanted to use the existing version for Armada I don't see any reason it wouldn't work for you, it just won't be quite as convenient as an Armada version of the tool. I haven't released the version that imported existing joints yet though, as it's still in testing.

starfox1701 October 22nd, 2010 10:15 AM

Re: Joint/Hardpoint Tree Structure Tool
 
This should help

Quote:

Storm3D Object Definition (SOD) File Format
===========================================
Author: Steve Williams
Storm3D Graphics Engine Lead.
Copyright (c) Activision 2000.
Modifications : Fixed node specification error.
Audience
========
This document is intended for use by experienced 3D tools programmers
for the purposes of writing exporters, importers and conversion tools
to/from the .SOD format. A good understanding of real time 3D graphics
principles is assumed. The reader is expected to be familiar with
real time 3D geometry concepts such as lighting, animation & scene
graph hierarchies.

Introduction
============
The SOD file format is a binary file format describing the 3D directed
scene graph hierarchies used by the Storm3D rendering engine.
Each .SOD file describes one such hierarchy.

The SOD file format has evolved through several versions.
This document describes the latest format, 1.8.
Documentation of previous formats is not available at this time.

Datatypes used in this document
===============================
UINT8 unsigned 8 bit integer
UINT16 unsigned 16 bit integer
UINT32 unsigned 32 bit integer
FLOAT floating point (4 byte) value
VECTOR2 {FLOAT u, FLOAT v}
VECTOR3 {FLOAT x, FLOAT y, FLOAT z}
MATRIX34 { VECTOR3 RIGHT, UP, FRONT, POSITION } MATRICES MUST BE ORTHOGONAL.
COLOUR { FLOAT red, FLOAT green, FLOAT blue } Component range 0.0 - 1.0
Other local datatypes are defined where appropriate.
Additional Syntax
=================
TYPE ARRAY(nentries) - A contiguous array of nentries of type TYPE
Identifiers
===========
IDENTIFIER
{
UINT16 strlen(string), string (8 bit ascii values) including terminating '\0'
OR
UINT16 0 - Indicates null string.
}
File Structure
==============
Section 1 : File Header
Section 2 : Lighting Materials
Section 3 : Nodes - Written recursively from the root.
Section 4 : Animation Channels
Section 5 : Animation References
Section Description
===================

Section 1 : File Header
=======================
HEADER Storm3D_SW File identification header (8 bit ascii values) - no strlen or terminating '\0'.
FLOAT version Current version is 1.8, older formats are not described at this time.

Section 2 : Lighting Materials
==============================
Defines the characteristics of the vertex lighting materials defined in this .SOD file.
UINT16 count - The number of lighting materials defined in this file.
LIGHTING_MATERIAL ARRAY(count) Array of lighting materials.
LIGHTING_MATERIAL
{
IDENTIFIER identifier Name of the lighting material.
COLOUR ambient Real time lighting ambient component
COLOUR diffuse Real time lighting diffue component
COLOUR specular Real time lighting specular component (only used by the phong illumination model)
FLOAT specular power Specular exponent, used to determine the 'shininess' of material using the phong illumination model.
UINT8 lighting model (constant=0, lambert=1, phong=2)
}

Section 3 : Nodes
=================
The nodes consist of 5 types NULL, LOD_CONTROL, SPRITE, MESH and EMITTER which together form
a scene graph which describes the object's hierarchy.
UINT16 count - The number of nodes in the hierarchy.
<Update: Note node_type & identifier order has been switched to correct error in initial specification.>
NODE
{
UINT16 node_type (0 - null, 1- mesh, 3 - sprite, 11 - LOD control node, 12 - emitter) DO NOT USE OTHER VALUES.
IDENTIFIER identifier
IDENTIFIER parent (which will be null for root node)
MATRIX34 local transform
TYPE_SPECIFIC_DATA<node_type> Type specific data field as defined below.
}

Null Nodes
==========
TYPE_SPECIFIC_DATA<NULL>
{
No addtional data required.
}
Null nodes are used for two purposes :
1. As 'glue' to stick the rest of the hierarchy together
2. To mark specific locations in the hierachy, for example, hardpoints.

LOD Control Nodes
=================
TYPE_SPECIFIC_DATA<LOD_CONTROL>
{
No addtional data required.
}
Storm3D uses discrete (rather than dynamic) LODs for level of detail control. Each
child of an LOD control node indicates a discrete LOD that the graphics engine may
use when rendering this object. LOD selection is based on visible on-screen area.

Sprite Nodes
============
TYPE_SPECIFIC_DATA<SPRITE_NODE>
{
None: The appropriate sprite node definition to use is determined from the
identifier. The sprite node definition is defined in the .spr files.
}
Examples of sprite node usage include running lights in ST:Armada.
TYPE_SPECIFIC_DATA<PARTICLE_EMITTER>
{
IDENTIFIER Emitter used by this node as defined by an @emitter description in the .spr files.
}
Polygon Mesh Nodes
==================
TYPE_SPECIFIC_DATA<MESH>
{
IDENTIFIER texture material (0 for default) - Defines the TEXTURE_MATERIAL to be used by this mesh.
IDENTIFIER texture (0 if untextured)
UINT16 nvertices : Number of vertices
UINT16 number of texture coordinates (ntexcoords)
UINT16 number of vertex lighting groups (ngroups)
VECTOR3 ARRAY vertex positions (nvertices entries)
VECTOR2 ARRAY texture coordinates (ntexcoords entries)
VERTEX_LIGHTING_GROUP ARRAY (ngroups entries)
UINT8 cull type (0 - no cull, 1- (backface cull)
UINT16 0 - unused must be 0.
}
VERTEX_LIGHTING_GROUP
{
UINT16 num_faces (all faces are triangles)
IDENTIFIER lighting_material (0=default)
FACE ARRAY (num_faces entries)
}
FACE_VERTEX
{
UINT16 index into mesh vertex positions array
UINT16 index into mesh texture coordinate array
}
FACE
{
FACE_VERTEX ARRAY(3) 3 entries describing a triangular face.
}
Section 4 : Animation Channels (Defines transform animation)
================================================== ==========
UINT16 count // Number of animation channels
ANIMATION_CHANNEL ARRAY(count) Array of animation channels.
ANIMATION_CHANNEL
{
IDENTIFIER node : The node to which this animation channel refers.
UINT16 nkeyframes : The number of keyframes used by this channel.
FLOAT channel_period : The length of time one loop of this channel lasts.
UINT16 0 : Not currently used. Must be 0.
MATRIX34 ARRAY(nkeyframes) keyframe_data : The actual animation transforms, evenly spaced over time 'channel_period'.
}
Section 5 : Animation References (Defines texture animation)
================================================== ==========
Animation references are a way of linking texture (flipbook) animations defined in the
.spr files to the geometry of a .SOD mesh node. An example of their usage is the
flipbook animation applied to the geometry for the various shield effects in Armada.

UINT16 num_animation_references
ANIMATION_REFERENCE ARRAY(num_animation_references)

ANIMATION_REFERENCE
{
UINT8 type : Must be 4
IDENTIFIER node : The node to which this animation applies.
IDENTIFIER anim : The animation (as defined in .spr files) that is to be applied to this node.
FLOAT playback_offset : Time offset in seconds to be applied to this animation reference.
}
Additional Information
======================
Vertex Lighting Material Sharing
================================
Vertex lighting materials are shared between objects, when parsing a .SOD file,
Storm3D searches for a match in all previously loaded files. If a match is found, that
material is used. This prevents artists from having to ensure the material characteristics
of commonly used materials are correct in each file, and also saves memory.
A 'palette' of commonly used materials can be found in materials.sod
In Armada, this file is loaded prior to most other SOD files & so defines the
characteristics of many common materials.

Hierarchy Structure (Armada Specific)
=====================================
Armada uses various nodes in a Storm3D hierarchy for special purposes.
These include hardpoints, damage nodes, running lights, borgification.
When generating new artwork, the artist must pay careful attention to the
structure of the hierarchy for the new object to function correctly in Armada.
A definition of the hierarchy structure required by Armada is beyond the scope
of this document. For the time being, existing artwork can be used as a reference.

TEXTURE_MATERIAL Definition
===========================
A texture material defines the characteristics of the polygon rasterizer used to
render the polygons in a given mesh. The texture materials are currently fixed
and defined within the executable.
Useful values are :
default - Standard material
additive - Use additive blending
translucent - Semi transparent
alphathreshold - Use for objects using alpha channel 'cut outs' - alpha
channels will have hard edged 'threshold' but objects will be
drawn quickly.
alpha - Uses entire alpha channel. Object will require sorting, so
will have performance implications.
wireframe - Use wireframe graphics.

and this

Quote:

Command Nodes:
Command nodes are special nodes the modify the export behavior of their parent mesh. The are any node whose name
begins "c_". Specifically, they are:
"c_tm_[name]" Use the texture material [name].
"c_anim_[identifier]_[playback_offset]_nn" Texture animation.
"c_borg_[texture]" specify a borg assimilation texture for the parent node.


pepperman October 22nd, 2010 07:43 PM

Re: Joint/Hardpoint Tree Structure Tool
 
Here is the emitter sprite file form A1 (Armada)

sprite_table

# texture definitions
#------------------------------------------------------------

@tmaterial=additive

@reference=64
softdot xparticle 0 0 32 32
steam xparticle 0 32 32 32
star xparticle 32 0 32 32
spore xparticle 32 32 32 32

@reference=128
plasma xsmoke 0 0 32 32 @anim=tex4x4_smoke
riftex mnebula5 64 64 64 64

# sprite_node definitions
#------------------------------------------------------------

@sprite_node ventplas plasma fade3 (2,2) (1,1,1) billboard
@sprite_node test plasma fade4 (2,2) (1,1,1) billboard
@sprite_node nebula1 steam inoutpurple (8,8) (0,0,0) billboard
@sprite_node gatesprite steam gatefade4 (0.5,0.5) (1,1,1) billboard
@sprite_node nebula2 spore inoutred (8,8) (0,0,0) billboard
@sprite_node spores xspark const (3,3) (0.75,0.2,1.0) billboard
@sprite_node hulleatspores spore const (3,3) (0.75,0.2,0.0) billboard
@sprite_node ventgas steam steamfade2 (1.2,1.2) (1,1,1) billboard
@sprite_node exhaust steam gasfade3 (2,2) (1,1,1) billboard
@sprite_node contrail softdot fadefast.25 (1.5,1.5) (1,1,1) billboard
@sprite_node thruster softdot fadefast.25 (0.5,0.5) (1,1,1) billboard
@sprite_node stars star overfade4 (5,5) (0.2,0.2,1.0) billboard
@sprite_node wormsprite softdot fadeblue3 (2,2) (1,1,1) billboard
@sprite_node rift softdot riftfade4 (1,1) (1,1,1) billboard
@sprite_node chunk plasma fade3 (0.3,0.3) (1,1,1) billboard
@sprite_node gemsprite spore gemfade2 (3,3) (1,1,1) billboard
@sprite_node redtrail softdot redfade1 (3.5,3.5) (1,1,1) billboard
@sprite_node starfade star fadeyellow3 (5,5) (1.0,1.0,0.0) billboard

##### RIFT EMMITTER #####

@emitter rift
type=spray
pixel=(0.9,0.7,0.1)
sprite=rift
expansion_rate=1.5
firing_period=0.15
lifespan=4
velocity=12
spread_angle=3.0
@end_emitter

@emitter riftcloud
type=cloud
pixel=(0.9,0.1,0.1)
sprite=stars
expansion_rate=-0.25
velocity=0.25
lifespan=3.99
particle_count=30
cloud_radius=20
@end_emitter


# Chunk emitters
# ==============

@emitter chunk1_disabled
type=spray
pixel=(1.0,0.6,0.1)
sprite=chunk
expansion_rate=0.7
firing_period=0.15
lifespan=1.0
velocity=0.0
spread_angle=3.0
@end_emitter

# Latinum spray for freighters
# ============================

@emitter latinum_spray
type=spray
pixel=(0.9,0.1,0.1)
sprite=starfade
expansion_rate=1.3
firing_period=0.15
lifespan=2.99
velocity=8.0
spread_angle=10.0
@end_emitter



# Damage smoke emitter
# ====================

# Note: lifespan/velocity = texture animation period for once complete cycle per particle

@emitter test_cloud
type=cloud
pixel=(0.9,0.9,0.2)
sprite=exhaust
pixel=(1,0,0)
expansion_rate=1.2
velocity=0.5
lifespan=5
particle_count=30
cloud_radius=20
@end_emitter

@emitter smoke
type=spray
pixel=(0.6,0.6,0.6)
sprite=test # this is the sprite_node #
expansion_rate=1.3
firing_period=0.15
lifespan=3.9
velocity=10.0
spread_angle=5.0
@end_emitter


##### Damage emitters #########

#Venting Plasma#

@emitter plasmasml
type=spray
pixel=(0.9,0.9,0.2)
sprite=ventplas
expansion_rate=1.1
firing_period=0.15
lifespan=2.999
velocity=8.0
spread_angle=5.0
@end_emitter


@emitter plasmamed
type=spray
pixel=(0.9,0.9,0.2)
sprite=ventplas
expansion_rate=1.2
firing_period=0.15
lifespan=2.999
velocity=8.0
spread_angle=5.0
@end_emitter


@emitter plasmalrg
type=spray
pixel=(0.9,0.9,0.2)
sprite=ventplas
expansion_rate=1.3
firing_period=0.15
lifespan=2.999
velocity=8.0
spread_angle=5.0
@end_emitter




@emitter plasmaxl
type=spray
pixel=(0.9,0.9,0.2)
sprite=ventplas
expansion_rate=1.4
firing_period=0.15
lifespan=2.999
velocity=8.0
spread_angle=5.0
@end_emitter

# Venting Gas#



@emitter steamtiny
type=spray
pixel=(4.3,0.3,0.3)
sprite=ventgas
expansion_rate=.1
firing_period=0.15
lifespan=1.999
velocity=4.0
spread_angle=2.0
@end_emitter


@emitter steamsml
type=spray
pixel=(0.1,0.3,0.9)
sprite=ventgas
expansion_rate=1.1
firing_period=0.15
lifespan=1.999
velocity=8.0
spread_angle=5.0
@end_emitter


@emitter steammed
type=spray
pixel=(0.1,0.3,0.9)
sprite=ventgas
expansion_rate=1.2
firing_period=0.15
lifespan=1.999
velocity=8.0
spread_angle=5.0
@end_emitter


@emitter steamlrg
type=spray
pixel=(0.1,0.3,0.9)
sprite=ventgas
expansion_rate=1.3
firing_period=0.15
lifespan=1.999
velocity=8.0
spread_angle=5.0
@end_emitter


@emitter steamxl
type=spray
pixel=(0.1,0.3,0.9)
sprite=ventgas
expansion_rate=1.4
firing_period=0.15
lifespan=1.999
velocity=8.0
spread_angle=5.0
@end_emitter


# Special Weapons Emitters
# ========================

# Borg bore emitters
# ==================

@emitter borgbore_beam
type=beam
sprite=wborgbpart
expansion_rate=0.0
firing_period=0.15
velocity=10.0
@end_emitter


# Computer override emitters
# ---------------------------------------------

@emitter override
type=cloud
sprite=stars
expansion_rate=-0.25
velocity=0.25
lifespan=3.99
particle_count=15
cloud_radius=20
@end_emitter


# Micro-organism emitter
# ----------------------

@emitter microorg
type=cloud
sprite=spores
expansion_rate=-0.25
velocity=0.25
lifespan=2
particle_count=15
cloud_radius=20
@end_emitter

# Micro-organism emitter
# ----------------------

@emitter psiondis
type=cloud
sprite=spores
expansion_rate=-0.5
velocity=0.5
lifespan=4
particle_count=30
cloud_radius=50
@end_emitter

# Micro-organism emitter for Cardassians
# ----------------------

@emitter microor2
type=cloud
sprite=hulleatspores
expansion_rate=-0.35
velocity=0.15
lifespan=2
particle_count=18
cloud_radius=50
@end_emitter




# Chain reaction pulsar trail
# ---------------------------

@emitter crpulsar
type=spray
pixel=(0.9,0.9,0.2)
sprite=redtrail
expansion_rate=-1.02
firing_period=0.15
lifespan=0.79
velocity=0.01
spread_angle=20
@end_emitter


# Gemini effect trail
# -------------------

@emitter gemini
type=spray
pixel=(0.9,0.7,0.2)
sprite=gemsprite
expansion_rate=-1.25
firing_period=0.15
lifespan=1.99
velocity=0
spread_angle=30
@end_emitter




#Blue contrail emitter#
#-------------------------------------

@emitter contrail
type=spray
sprite=thruster
expansion_rate=-0.5
firing_period=0.15
lifespan=0.249
velocity=0.0
spread_angle=0
@end_emitter

@emitter rocket
type=spray
sprite=contrail
expansion_rate=-1.25
firing_period=0.15
lifespan=0.249
velocity=0
spread_angle=0
@end_emitter

#Nebula1 emitter#
#-------------------------------------

@emitter neb1
type=cloud
sprite=nebula1
expansion_rate=3.0
velocity=0.25
lifespan=10
particle_count=20
cloud_radius=75
@end_emitter

@emitter neb2
type=cloud
sprite=nebula2
expansion_rate=3.0
velocity=0.25
lifespan=10
particle_count=20
cloud_radius=75
@end_emitter



# Gate Emitters
#-------------------------------------------------

@emitter premgate
type=spray
pixel=(0.1,0.8,0.9)
sprite=gatesprite
expansion_rate=1.9
firing_period=0.15
lifespan=3.99
velocity=12
spread_angle=3
@end_emitter

#this emitter has been disabled
#@emitter worm
#type=spray
#pixel=(0.1,0.1,0.1)
#sprite=wormsprite
#expansion_rate=-0.40
#firing_period=0.15
#lifespan=1.999
#velocity=15
#spread_angle=0
#@end_emitter


################################################## #############
# Software nebulae
################################################## #############

@emitter swneb1
type=cloud
pixel=(1,1,0)
expansion_rate=3.0
velocity=0.25
lifespan=10
particle_count=100
cloud_radius=250
@end_emitter

@emitter swneb2
type=cloud
pixel=(1,0,0)
expansion_rate=3.0
velocity=0.25
lifespan=10
particle_count=100
cloud_radius=250
@end_emitter

@emitter swneb3
type=cloud
pixel=(.5,0,1)
expansion_rate=3.0
velocity=0.25
lifespan=10
particle_count=100
cloud_radius=250
@end_emitter

@emitter swneb4
type=cloud
pixel=(0,1,0)
expansion_rate=3.0
velocity=0.25
lifespan=10
particle_count=100
cloud_radius=250
@end_emitter

@emitter swneb5
type=cloud
pixel=(0,0.3,1)
expansion_rate=3.0
velocity=0.25
lifespan=10
particle_count=100
cloud_radius=250
@end_emitter

################################################## #################
@sprite_node nanogas nanovent const (3,3) (0,0.2,1) billboard
@sprite_node nanoplasma nanovent const (3,3) (1,0.4,0) billboard

@emitter plasmasml
type=spray
pixel=(0.9,0.9,0.2)
sprite=nanoplasma
expansion_rate=1.1
firing_period=0.15
lifespan=2.999
velocity=8.0
spread_angle=5.0
@end_emitter

@emitter plasmamed
type=spray
pixel=(0.9,0.9,0.2)
sprite=nanoplasma
expansion_rate=1.2
firing_period=0.15
lifespan=2.999
velocity=8.0
spread_angle=5.0
@end_emitter

@emitter steamsml
type=spray
pixel=(0.1,0.3,0.9)
sprite=nanogas
expansion_rate=1.1
firing_period=0.15
lifespan=1.999
velocity=8.0
spread_angle=5.0
@end_emitter

@emitter plasmalrg
type=spray
pixel=(0.9,0.9,0.2)
sprite=nanoplasma
expansion_rate=1.3
firing_period=0.15
lifespan=2.999
velocity=8.0
spread_angle=5.0
@end_emitter

@emitter plasmaxl
type=spray
pixel=(0.9,0.9,0.2)
sprite=nanoplasma
expansion_rate=1.4
firing_period=0.15
lifespan=2.999
velocity=8.0
spread_angle=5.0
@end_emitter

@sprite_node nanogas nanovent const (3,3) (0,0.2,1) billboard
@sprite_node nanoplasma nanovent const (3,3) (1,0.4,0) billboard

@emitter steamtiny
type=spray
pixel=(4.3,0.3,0.3)
sprite=nanogas
expansion_rate=1.1
firing_period=0.15
lifespan=1.999
velocity=4.0
spread_angle=2.0
@end_emitter

@emitter steamsml
type=spray
pixel=(0.1,0.3,0.9)
sprite=nanogas
expansion_rate=1.1
firing_period=0.15
lifespan=1.999
velocity=8.0
spread_angle=5.0
@end_emitter

@emitter steammed
type=spray
pixel=(0.1,0.3,0.9)
sprite=nanogas
expansion_rate=1.2
firing_period=0.15
lifespan=1.999
velocity=8.0
spread_angle=5.0
@end_emitter

@emitter steamlrg
type=spray
pixel=(0.1,0.3,0.9)
sprite=nanogas
expansion_rate=1.3
firing_period=0.15
lifespan=1.999
velocity=8.0
spread_angle=5.0
@end_emitter

@emitter steamxl
type=spray
pixel=(0.1,0.3,0.9)
sprite=nanogas
expansion_rate=1.4
firing_period=0.15
lifespan=1.999
velocity=8.0
spread_angle=5.0
@end_emitter

@emitter plasmaxl
type=spray
pixel=(0.9,0.9,0.2)
sprite=nanoplasma
expansion_rate=1.4
firing_period=0.15
lifespan=2.999
velocity=8.0
spread_angle=5.0
@end_emitter

@sprite_node nanogas nanovent const (3,3) (0,0.2,1) billboard
@sprite_node nanoplasma nanovent const (3,3) (1,0.4,0) billboard
############################{bah}################# ##################

pepperman October 22nd, 2010 07:45 PM

Re: Joint/Hardpoint Tree Structure Tool
 
Here is the emitter sprite file from A2

sprite_table

# texture definitions
#------------------------------------------------------------

@tmaterial=additive

@reference=64
softdot xparticle 0 0 32 32
steam xparticle 0 32 32 32
star xparticle 32 0 32 32
spore xparticle 32 32 32 32

@reference=128
plasma xsmoke 0 0 32 32 @anim=tex4x4_smoke
riftex mnebula5 64 64 64 64

# sprite_node definitions
#------------------------------------------------------------

@sprite_node ventplas plasma fade3 (2,2) (1,1,1) billboard
@sprite_node test plasma fade4 (2,2) (1,1,1) billboard
@sprite_node nebula1 steam inoutpurple (8,8) (0,0,0) billboard
@sprite_node gatesprite steam gatefade4 (0.5,0.5) (1,1,1) billboard
@sprite_node nebula2 spore inoutred (8,8) (0,0,0) billboard
@sprite_node spores xspark const (3,3) (0.75,0.2,1.0) billboard
@sprite_node hulleatspores spore const (3,3) (0.75,0.2,0.0) billboard
@sprite_node ventgas steam steamfade2 (1.2,1.2) (1,1,1) billboard
@sprite_node exhaust steam gasfade3 (2,2) (1,1,1) billboard
@sprite_node contrail softdot fadefast.25 (1.5,1.5) (1,1,1) billboard
@sprite_node thruster softdot fadefast.25 (0.5,0.5) (1,1,1) billboard
@sprite_node stars star overfade4 (5,5) (0.2,0.2,1.0) billboard
@sprite_node wormsprite softdot fadeblue3 (2,2) (1,1,1) billboard
@sprite_node rift softdot riftfade4 (1,1) (1,1,1) billboard
@sprite_node chunk plasma fade3 (0.3,0.3) (1,1,1) billboard
@sprite_node gemsprite spore gemfade2 (3,3) (1,1,1) billboard
@sprite_node redtrail softdot redfade1 (3.5,3.5) (1,1,1) billboard
@sprite_node starfade star fadeyellow3 (5,5) (1.0,1.0,0.0) billboard

##### RIFT EMMITTER #####

@emitter rift
type=spray
pixel=(0.9,0.7,0.1)
sprite=rift
expansion_rate=1.5
firing_period=0.15
lifespan=4
velocity=12
spread_angle=3.0
@end_emitter

@emitter riftcloud
type=cloud
pixel=(0.9,0.1,0.1)
sprite=stars
expansion_rate=-0.25
velocity=0.25
lifespan=3.99
particle_count=30
cloud_radius=20
@end_emitter


# Chunk emitters
# ==============

@emitter chunk1_disabled
type=spray
pixel=(1.0,0.6,0.1)
sprite=chunk
expansion_rate=0.7
firing_period=0.15
lifespan=1.0
velocity=0.0
spread_angle=3.0
@end_emitter

# Latinum spray for freighters
# ============================

@emitter latinum_spray
type=spray
pixel=(0.9,0.1,0.1)
sprite=starfade
expansion_rate=1.3
firing_period=0.15
lifespan=2.99
velocity=8.0
spread_angle=10.0
@end_emitter



# Damage smoke emitter
# ====================

# Note: lifespan/velocity = texture animation period for once complete cycle per particle

@emitter test_cloud
type=cloud
pixel=(0.9,0.9,0.2)
sprite=exhaust
pixel=(1,0,0)
expansion_rate=1.2
velocity=0.5
lifespan=5
particle_count=30
cloud_radius=20
@end_emitter

@emitter smoke
type=spray
pixel=(0.6,0.6,0.6)
sprite=test # this is the sprite_node #
expansion_rate=1.3
firing_period=0.15
lifespan=3.9
velocity=10.0
spread_angle=5.0
@end_emitter


##### Damage emitters #########

#Venting Plasma#

@emitter plasmasml
type=spray
pixel=(0.9,0.9,0.2)
sprite=ventplas
expansion_rate=1.1
firing_period=0.15
lifespan=2.999
velocity=8.0
spread_angle=5.0
@end_emitter


@emitter plasmamed
type=spray
pixel=(0.9,0.9,0.2)
sprite=ventplas
expansion_rate=1.2
firing_period=0.15
lifespan=2.999
velocity=8.0
spread_angle=5.0
@end_emitter


@emitter plasmalrg
type=spray
pixel=(0.9,0.9,0.2)
sprite=ventplas
expansion_rate=1.3
firing_period=0.15
lifespan=2.999
velocity=8.0
spread_angle=5.0
@end_emitter




@emitter plasmaxl
type=spray
pixel=(0.9,0.9,0.2)
sprite=ventplas
expansion_rate=1.4
firing_period=0.15
lifespan=2.999
velocity=8.0
spread_angle=5.0
@end_emitter

# Venting Gas#



@emitter steamtiny
type=spray
pixel=(4.3,0.3,0.3)
sprite=ventgas
expansion_rate=.1
firing_period=0.15
lifespan=1.999
velocity=4.0
spread_angle=2.0
@end_emitter


@emitter steamsml
type=spray
pixel=(0.1,0.3,0.9)
sprite=ventgas
expansion_rate=1.1
firing_period=0.15
lifespan=1.999
velocity=8.0
spread_angle=5.0
@end_emitter


@emitter steammed
type=spray
pixel=(0.1,0.3,0.9)
sprite=ventgas
expansion_rate=1.2
firing_period=0.15
lifespan=1.999
velocity=8.0
spread_angle=5.0
@end_emitter


@emitter steamlrg
type=spray
pixel=(0.1,0.3,0.9)
sprite=ventgas
expansion_rate=1.3
firing_period=0.15
lifespan=1.999
velocity=8.0
spread_angle=5.0
@end_emitter


@emitter steamxl
type=spray
pixel=(0.1,0.3,0.9)
sprite=ventgas
expansion_rate=1.4
firing_period=0.15
lifespan=1.999
velocity=8.0
spread_angle=5.0
@end_emitter


# Special Weapons Emitters
# ========================

# Borg bore emitters
# ==================

@emitter borgbore_beam
type=beam
sprite=wborgbpart
expansion_rate=0.0
firing_period=0.15
velocity=10.0
@end_emitter


# Computer override emitters
# ---------------------------------------------

@emitter override
type=cloud
sprite=stars
expansion_rate=-0.25
velocity=0.25
lifespan=3.99
particle_count=15
cloud_radius=20
@end_emitter


# Micro-organism emitter
# ----------------------

@emitter microorg
type=cloud
sprite=spores
expansion_rate=-0.25
velocity=0.25
lifespan=2
particle_count=15
cloud_radius=20
@end_emitter

# Micro-organism emitter
# ----------------------

@emitter psiondis
type=cloud
sprite=spores
expansion_rate=-0.5
velocity=0.5
lifespan=4
particle_count=30
cloud_radius=50
@end_emitter

# Micro-organism emitter for Cardassians
# ----------------------

@emitter microor2
type=cloud
sprite=hulleatspores
expansion_rate=-0.35
velocity=0.15
lifespan=2
particle_count=18
cloud_radius=50
@end_emitter




# Chain reaction pulsar trail
# ---------------------------

@emitter crpulsar
type=spray
pixel=(0.9,0.9,0.2)
sprite=redtrail
expansion_rate=-1.02
firing_period=0.15
lifespan=0.79
velocity=0.01
spread_angle=20
@end_emitter


# Gemini effect trail
# -------------------

@emitter gemini
type=spray
pixel=(0.9,0.7,0.2)
sprite=gemsprite
expansion_rate=-1.25
firing_period=0.15
lifespan=1.99
velocity=0
spread_angle=30
@end_emitter




#Blue contrail emitter#
#-------------------------------------

@emitter contrail
type=spray
sprite=thruster
expansion_rate=-0.5
firing_period=0.15
lifespan=0.249
velocity=0.0
spread_angle=0
@end_emitter

@emitter rocket
type=spray
sprite=contrail
expansion_rate=-1.25
firing_period=0.15
lifespan=0.249
velocity=0
spread_angle=0
@end_emitter

#Nebula1 emitter#
#-------------------------------------

@emitter neb1
type=cloud
sprite=nebula1
expansion_rate=3.0
velocity=0.25
lifespan=10
particle_count=20
cloud_radius=75
@end_emitter

@emitter neb2
type=cloud
sprite=nebula2
expansion_rate=3.0
velocity=0.25
lifespan=10
particle_count=20
cloud_radius=75
@end_emitter



# Gate Emitters
#-------------------------------------------------

@emitter premgate
type=spray
pixel=(0.1,0.8,0.9)
sprite=gatesprite
expansion_rate=1.9
firing_period=0.15
lifespan=3.99
velocity=12
spread_angle=3
@end_emitter

#this emitter has been disabled
#@emitter worm
#type=spray
#pixel=(0.1,0.1,0.1)
#sprite=wormsprite
#expansion_rate=-0.40
#firing_period=0.15
#lifespan=1.999
#velocity=15
#spread_angle=0
#@end_emitter


################################################## #############
# Software nebulae
################################################## #############

@emitter swneb1
type=cloud
pixel=(1,1,0)
expansion_rate=3.0
velocity=0.25
lifespan=10
particle_count=100
cloud_radius=250
@end_emitter

@emitter swneb2
type=cloud
pixel=(1,0,0)
expansion_rate=3.0
velocity=0.25
lifespan=10
particle_count=100
cloud_radius=250
@end_emitter

@emitter swneb3
type=cloud
pixel=(.5,0,1)
expansion_rate=3.0
velocity=0.25
lifespan=10
particle_count=100
cloud_radius=250
@end_emitter

@emitter swneb4
type=cloud
pixel=(0,1,0)
expansion_rate=3.0
velocity=0.25
lifespan=10
particle_count=100
cloud_radius=250
@end_emitter

@emitter swneb5
type=cloud
pixel=(0,0.3,1)
expansion_rate=3.0
velocity=0.25
lifespan=10
particle_count=100
cloud_radius=250
@end_emitter

################################################## #################
@sprite_node nanogas nanovent const (3,3) (0,0.2,1) billboard
@sprite_node nanoplasma nanovent const (3,3) (1,0.4,0) billboard

@emitter plasmasml
type=spray
pixel=(0.9,0.9,0.2)
sprite=nanoplasma
expansion_rate=1.1
firing_period=0.15
lifespan=2.999
velocity=8.0
spread_angle=5.0
@end_emitter

@emitter plasmamed
type=spray
pixel=(0.9,0.9,0.2)
sprite=nanoplasma
expansion_rate=1.2
firing_period=0.15
lifespan=2.999
velocity=8.0
spread_angle=5.0
@end_emitter

@emitter steamsml
type=spray
pixel=(0.1,0.3,0.9)
sprite=nanogas
expansion_rate=1.1
firing_period=0.15
lifespan=1.999
velocity=8.0
spread_angle=5.0
@end_emitter

@emitter plasmalrg
type=spray
pixel=(0.9,0.9,0.2)
sprite=nanoplasma
expansion_rate=1.3
firing_period=0.15
lifespan=2.999
velocity=8.0
spread_angle=5.0
@end_emitter

@emitter plasmaxl
type=spray
pixel=(0.9,0.9,0.2)
sprite=nanoplasma
expansion_rate=1.4
firing_period=0.15
lifespan=2.999
velocity=8.0
spread_angle=5.0
@end_emitter

@sprite_node nanogas nanovent const (3,3) (0,0.2,1) billboard
@sprite_node nanoplasma nanovent const (3,3) (1,0.4,0) billboard

@emitter steamtiny
type=spray
pixel=(4.3,0.3,0.3)
sprite=nanogas
expansion_rate=1.1
firing_period=0.15
lifespan=1.999
velocity=4.0
spread_angle=2.0
@end_emitter

@emitter steamsml
type=spray
pixel=(0.1,0.3,0.9)
sprite=nanogas
expansion_rate=1.1
firing_period=0.15
lifespan=1.999
velocity=8.0
spread_angle=5.0
@end_emitter

@emitter steammed
type=spray
pixel=(0.1,0.3,0.9)
sprite=nanogas
expansion_rate=1.2
firing_period=0.15
lifespan=1.999
velocity=8.0
spread_angle=5.0
@end_emitter

@emitter steamlrg
type=spray
pixel=(0.1,0.3,0.9)
sprite=nanogas
expansion_rate=1.3
firing_period=0.15
lifespan=1.999
velocity=8.0
spread_angle=5.0
@end_emitter

@emitter steamxl
type=spray
pixel=(0.1,0.3,0.9)
sprite=nanogas
expansion_rate=1.4
firing_period=0.15
lifespan=1.999
velocity=8.0
spread_angle=5.0
@end_emitter

@emitter plasmaxl
type=spray
pixel=(0.9,0.9,0.2)
sprite=nanoplasma
expansion_rate=1.4
firing_period=0.15
lifespan=2.999
velocity=8.0
spread_angle=5.0
@end_emitter

@sprite_node nanogas nanovent const (3,3) (0,0.2,1) billboard
@sprite_node nanoplasma nanovent const (3,3) (1,0.4,0) billboard
############################{bah}################# ##################

Muldrf November 9th, 2010 01:43 PM

Re: Joint/Hardpoint Tree Structure Tool
 
For Armada/Armada 2. Are any emitters other than the "plasma" and "steam" series used during hard pointing?

such as "plasmasml, plasmalrg, steamsml, steamtiny, steamlrg"?


--

Are the lights such as "color" and "constant or strobe" like they are in legacy?
"whitestrobe"
"greenconst"

Blue, Green, Red, White, Yellow, Amber I believe are the legacy defaults. Then there are large variants of each one as well... "blueconstbig" I believe for example.

Also for Lights can the "color" and "strobe patterns" defined as in legacy? For Legacy they are defined by entering specific data in to the "comment" of the particular joint in milkshape.

----


I don't have the game, so I would have no way of beta testing it. If a modder out there wants to test out a beta version I could put one together for you though, just let me know. Without a beta tester/user I won't be making any betas, I will just make a release version once the Legacy tool is fully debugged and do my best to set it up with what data I have and hope it works as I have no way of being sure myself.

F/\}{IŽ3$ November 10th, 2010 10:16 AM

Re: Joint/Hardpoint Tree Structure Tool
 
Quote:

Originally Posted by Muldrf (Post 5421954)
For Armada/Armada 2. Are any emitters other than the "plasma" and "steam" series used during hard pointing?

such as "plasmasml, plasmalrg, steamsml, steamtiny, steamlrg"?


--

Are the lights such as "color" and "constant or strobe" like they are in legacy?
"whitestrobe"
"greenconst"

Blue, Green, Red, White, Yellow, Amber I believe are the legacy defaults. Then there are large variants of each one as well... "blueconstbig" I believe for example.

Also for Lights can the "color" and "strobe patterns" defined as in legacy? For Legacy they are defined by entering specific data in to the "comment" of the particular joint in milkshape.

----


I don't have the game, so I would have no way of beta testing it. If a modder out there wants to test out a beta version I could put one together for you though, just let me know. Without a beta tester/user I won't be making any betas, I will just make a release version once the Legacy tool is fully debugged and do my best to set it up with what data I have and hope it works as I have no way of being sure myself.

Its pretty close to the legacy nodes.

Here is a list of sprites that are used in A2. There are more in the sprites file, but only one or two ships use them, so modders usually ignore them. No guarantee here..

btw. as a modder you can easily add new sprites to the game, so your program needs an option to add sprites other than the standard sprites.

emitters:
plasmasml
plasmamed
plasmalrg
plasmaxl
steamtiny
steamsml
steammed
steamlrg
steamxl

Lights:
blueconst
blueconstbig
bluestrobe
bluestrobebig
greenconst
greenconstbig
greenstrobe
greenstrobebig
redconst
redconstbig
redstrobe
redstrobebig
whiteconst
whiteconstbig
whitestrobe
whitestrobe2
whitestrobebig
yellowconst
yellowconstbig
yellowstrobe
yellowstrobebig
bigbillboard

If you want the full list, you could ask for the sprite files.
I believe that they are released on a2files.

Muldrf November 12th, 2010 02:52 PM

Re: Joint/Hardpoint Tree Structure Tool
 
Thanks. The lists are for populating dropdown/combo boxes to make name selections quicker and easier. If someone wants to enter something not listed they can always type it directly into the box.

Muldrf April 13th, 2011 11:46 AM

Re: Joint/Hardpoint Tree Structure Tool
 
Been quite awhile. Been busy with other things and Legacy work. But here is a video showing usage of the hardpoint/joint tool as it's rigged for Legacy at this time so some options are slightly different than they would be for Armada I/II.

YouTube - Star Trek Legacy Modding Guide: LMTools Ship Hardpointing


Does it look helpful and would anyone be interested in using it? I'm to used to getting very mild responses when I release tools, and generally have the impression I wasted time putting them together and out to the general public. This more so in this case, because for Legacy I actually use the tools personally, while in this case I would not use it as I don't mod Armada.


Basically the tool lets you start with an empty joint tree, then populate it with the mesh groups and stick on any other joints you will need. Then you import them into your model. Any location based joints then get relocated in milkshape. If you then want to go back and do modifications by adding some joints etc you can either do it manually in milkshape (what a pain) or export the existing tree back to the tool and add the joints and reimport it into milkshape as seen in the video.

I almost always go back to the tool to add more joints as it only takes seconds to do if I have the tool open. Where messing with milkshape selecting the right joint, then placing the new one and renaming it is a bit annoying to me. Kind of spoiled maybe, but if they are mesh joints then it is very easy to get them rotated or out of place when doing it in milkshape, but in the tool you always place them perfectly at 0,0,0 and no rotation. I have finalized porting of models that were originally done by other people and on a number of times that they have had mesh joints (m_) slightly out of place.

starfox1701 April 13th, 2011 01:15 PM

Re: Joint/Hardpoint Tree Structure Tool
 
Hell yea I would use that. Great work!!!:stallard:

As for a luk warm respons remeber that your tool is actualy aimed at a small percentage of moders out ther as not all moders do full conversions or new build models. Other then making lives like mine easier the real value of such tools is that they encourage others to start this kind of moding. This covers both modeling and programing; skills that are always in uber high demand. Think about it you could be the insperation for the next DJ Curtis, Rick Knox, or Dasher 42.=p

Dan1025 April 13th, 2011 03:33 PM

Re: Joint/Hardpoint Tree Structure Tool
 
Great work, I'd certainly use it! Anything that makes hardpointing quicker/easier/less painful is a huge plus in my book :)

I often find it to be the most boring part of modding and it actually puts me off working on a mod when I have a lot of models to get ingame at once.

Dominus_Noctis April 14th, 2011 05:16 AM

Re: Joint/Hardpoint Tree Structure Tool
 
Looks great :) . I'll try to advertise it where I can :nodding:

Muldrf April 14th, 2011 11:11 AM

Re: Joint/Hardpoint Tree Structure Tool
 
When I get a bit of free programming time away from the kids I'll see about putting a beta together.

Biggest things are ripping it out of the LMTools to a stand alone setup. Then switching over the default tree structure. Then making alterations to the preset entries.

I take it that the sod exporters do not use "comments" for the light sprites like Legacy does. That's the Color/Intensity and Pattern fields.

The other thing was the Command Nodes. c_ they could be added or as they sound like they aren't generally used, could be put in the "Custom Named Joint" box with manual entry of the prefix.

Someone from fleet ops got back to me initially, but didn't respond after that. So a Fleetops specific base tree and sprites might be something for later down the road if there is call for it too and I can get the info I need.

Basically the tool wasn't 100% functional last I posted, but was getting close. Far easier to do the programming once and not try to keep two very similar tools up to date. While not perfect, it should be solid enough to need minimal modification at this point.

Dominus_Noctis April 14th, 2011 12:47 PM

Re: Joint/Hardpoint Tree Structure Tool
 
You'd probably have the most luck if you posted directly on the Fleet Ops forums - I can make a post there when you want me too about this of course :)

starfox1701 April 14th, 2011 02:01 PM

Re: Joint/Hardpoint Tree Structure Tool
 
Quote:

The other thing was the Command Nodes. c_ they could be added or as they sound like they aren't generally used
We would use them if we could export them. The Milkshape exporter won't do animations And I could never find anyone how could or would fix it. Truth be told both the Milkshape and Max exporter need updated.

Muldrf April 15th, 2011 08:20 PM

Re: Joint/Hardpoint Tree Structure Tool
 
Dominus_Noctis, you can post over there about it. If you send me the address I'll see about going myself when I get the chance. I likely won't until I get to start coding though. Which might be soon or might be a couple weeks.

I don't expect it to take too long to sort it out. I could probably knock it out in a couple days provided my wife and kids are away, but that's highly unlikely.

starfox1701 April 16th, 2011 02:08 PM

Re: Joint/Hardpoint Tree Structure Tool
 
Looking forward to it

Muldrf April 17th, 2011 07:14 PM

Re: Joint/Hardpoint Tree Structure Tool
 
Looks for starters like removal of the Generic light and the Amber lights from Legacy. Adding of the "billboard" entry to sprites.

I have to add a quantity and increment function to the emitters (due to an exporter limitation, Legacy can only use 1 of each, so that currently isn't in the tool).

Take off the Color and Pattern for sprites.

--

Armada you don't rotate hardpoints. But Armada 2 uses rotated hardpoints? How are those handled, or are rotated joints able to even be done in Milkshape?

starfox1701 April 17th, 2011 09:06 PM

Re: Joint/Hardpoint Tree Structure Tool
 
Yes you use a null joint to point it in the direction wanted and then delete the null joint just before exporting the model.

Muldrf April 18th, 2011 07:47 AM

Re: Joint/Hardpoint Tree Structure Tool
 
Then the hardpoint directional joint function can stay. It's the same method for Legacy except you don't delete the null joint before exporting as the exporter ignores it. The directional for a hardpoint makes a "joint##" in that "direction" relationally to the hp joint as seen in the video, it, makes it easier to ensure you grabbed the right joint and didn't miss moving any. Plan out you want 6 Up 6 Down 2 Forward 2 Aft etc then you can see you moved them around to where you wanted and didn't mix them up.

I think I'm going to download both Demos and look at the stock models hardpoints in them to get the base trees hammered out. I have a few ideas how to do the swap, likely a dropdown that you set to "Armada" "Armada 2" "Fleet Ops". Switching it would switch the "default tree" and for Fleet Ops add the additional sprites to the dropdown and possibly a few other things.

Muldrf April 18th, 2011 04:06 PM

Re: Joint/Hardpoint Tree Structure Tool
 
What are the s_crew joints on the stock sovies?
http://myipdq.bay.livefilestore.com/...sov.jpg?psid=1

Muldrf April 18th, 2011 06:35 PM

Re: Joint/Hardpoint Tree Structure Tool
 
oh I missed that "s_sensor" joint what's that? The s_ prefixes are for sprites and Legacy uses nothing like those..

--------------

Well anyway I have an alpha/beta put together. I have used that Armada 2 Sovie joint tree as the basis for the Armada and Armada 2 trees. There is a fleet ops tree but it's identical to the Armada 2 mode at this time. The only change I did between the Armada and Armada 2 tree is the removal of the "h_scene root" on Armada, it starts out with "h_root" at the top.

Anyone interested in beta testing it? I can send/post it and the milkshape joint exporter that it uses to get the mesh group data and any existing joint data.


I'll look at a real armada tree and see what other differences there might be. I'll get the fleet ops tree made uniquely for it when I get the required info on it. It also has Legacy mode, but that won't do you guys much good. I set it to default to Armada 2 mode at this time, but I'll set it up so that it saves your last selected mode on closing then reopens in that same mode the next time.

starfox1701 April 19th, 2011 04:16 AM

Re: Joint/Hardpoint Tree Structure Tool
 
I think it is supose to be h_sensor. PM me a link

Adm_Stacks April 19th, 2011 06:05 AM

Re: Joint/Hardpoint Tree Structure Tool
 
The s_crew tag are damage sprites. They have to do with crew system damage from my experience. For example, When the h_crew system is reduced by 20% it applies the first s_crew tag. (The percentage is used as an example only. I don't know how the actual programming works for them, just the effect.)

Muldrf April 19th, 2011 06:21 AM

Re: Joint/Hardpoint Tree Structure Tool
 
The image I put in that post above is what the sod importer made of the Armada 2 Sovie model from the Armada 2 demo download. Since you can not have 2 joints of the same name, so I'm guessing the s_ is right for the joint as it's attached to the h_ joint of the same name, but it's not like anything I've seen posted here, or in anything else I came across.

I pulled hardpoints from some models that are not stock and they weren't consistent enough to tell what way was correct. When I look at ships in Legacy that have been done in Milkshape I often find mistakes and variations from Moonraker's specs, including my own. It is far to easy to get the wrong parent joint and more than just a little inconvenient to use the Model Information tool in it to find out if you connected them properly.

Then again "what is correct" is variable, or rather not too rigid in some areas of the trees, so "my way" might not be the "only way". I'm just looking for a good and valid starting point for everyone. I did put those crew joints on the default trees for now as they showed up in both the Armada 1 and Armada 2 sovie from the demos, but they can be removed if they shouldn't be there or if they are not used.

------
I sent you the link for hte 1.0.0.0a version. I have 1 known problem. If you select a file to import that is not formatted properly then it will give you a crash message, if you choose to ignore you can keep using it or let it close and reopen it. Say you try to import some random text file or one of the Output files from the tool.

The tool can't understand it's own output. The reason for this is because the output is Milkshape 3d's ASCII Text format, while the import format is a custom format I came up with. The custom format is much simpler, it doesn't include the model or texture data like the Milkshape ASCII format so it doesn't have to sort through all that.

The problems this causes is possible confusion as to "why can't it read it's own file", and you can't make "presets" using the tool. You can make presets though by setting them up, exporting them and bringing them into Milkshape then exporting them from Milkshape in the Legacy Joint Tool ASCII format. I'm thinking maybe presets would be useful to add? I could make a "save preset" option or something like that and the presets would be saved to the Legacy Joint Tool ASCII format instead of the Mikshape ASCII format.

Muldrf April 19th, 2011 09:10 AM

Re: Joint/Hardpoint Tree Structure Tool
 
I found this:

Quote:

Damage Sprite Node Names Damage sprite nodes for ships
crew1
crew2
crew3
crew4
crew5
crew16
sensor
In Westworld's BIG Book of Modding. So those I guess are unique static names and not incremented numbers using the same sprite over again like the standard light sprites that go "whitestrobe_01" _02 etc as I first suspected.

Adm_Stacks April 19th, 2011 02:05 PM

Re: Joint/Hardpoint Tree Structure Tool
 
The s_sensor tag seems to be non-funtional. I looked at several other SOD models from A2, and they don't have the s_sensor tag. As for the s_crew tags, there are several of them from crew1 on up. Each one is a reference to a diffrent sized sprite that share the same texture. Whatever program that the game devolopers used, allowed for duplicated sprite names.

pepperman April 19th, 2011 04:39 PM

Re: Joint/Hardpoint Tree Structure Tool
 
Here are all of the stock damage sprite nodes as defiend in damage.spr file

#crew damage
@tmaterial=alphathreshold
crew1 Xdamage01 0 0 64 96
crew2 Xdamage01 0 96 64 64
crew3 Xdamage01 0 160 64 96

crew4 Xdamage01 64 0 64 96
crew5 Xdamage01 64 96 32 96
crew6 Xdamage01 96 96 32 64
crew7 Xdamage01 96 160 32 32
crew8 Xdamage01 64 192 64 64

crew9 Xdamage01 128 0 64 64
crew10 Xdamage01 128 64 64 96
crew11 Xdamage01 128 160 64 96
crew12 Xdamage01 160 224 32 32

crew13 Xdamage01 192 0 64 64
crew14 Xdamage01 192 64 32 32
crew15 Xdamage01 224 64 32 32
crew16 Xdamage01 192 96 64 160

# @sprite_node name sprite animation (width,height) (r,g,b)
# RGB Colour values range from 0 (none) to 1.0 (full intensity)
#damage sprite nodes
@sprite_node crew1 crew1 fire (5,5) (1,1,1)
@sprite_node crew2 crew2 fire2 (4,3) (1,1,1)
@sprite_node crew3 crew3 fire (3,3) (1,1,1)
@sprite_node crew4 crew4 fire2 (4,4) (1,1,1)
@sprite_node crew5 crew5 fire (3,2) (1,1,1)
@sprite_node crew16 crew16 fire2 (4,10) (1,1,1)
@sprite_node sensor origin const (2,2) (0,1,0) billboard
@sprite_node sd1 sparks const (2,2) (0,1,0) billboard
@sprite_node sd2 sparks const (2,2) (0,1,0) billboard
@sprite_node sd3 sparks const (2,2) (0,1,0) billboard
@sprite_node sd4 sparks const (2,2) (0,1,0) billboard
@sprite_node sd5 sparks const (2,2) (0,1,0) billboard
@sprite_node sd6 sparks const (2,2) (0,1,0) billboard
@sprite_node sd7 sparks const (2,2) (0,1,0) billboard
@sprite_node sd8 sparks const (2,2) (0,1,0) billboard

#fturret
@sprite_node sensorftur origin const (2,2) (0,1,0) billboard

#fsuperbl
@sprite_node crewfsup1 crew1 fire (3.63,3.64) (1,1,1)
@sprite_node crewfsup2 crew2 fire2 (2.9,5.04) (1,1,1)
@sprite_node crewfsup3 crew3 fire (3.63,2.11) (1,1,1)
@sprite_node crewfsup4 crew4 fire2 (1.96,1.97) (1,1,1)
@sprite_node crewfsup5 crew5 fire (1.87,2.11) (1,1,1)
@sprite_node sensorfsup origin const (2,2) (0,1,0) billboard
#fsensor
@sprite_node sensorfsen origin const (2,2) (0,1,0) billboard

#fresear2
@sprite_node crewfre21 crew1 fire (6.48,6.46) (1,1,1)
@sprite_node crewfre22 crew2 fire2 (11.4,4.33) (1,1,1)
@sprite_node crewfre23 crew3 fire (2.35,10.88) (1,1,1
@sprite_node crewfre24 crew4 fire2 (10.79,4.33) (1,1,1)
@sprite_node crewfre25 crew5 fire (7.63,5.55) (1,1,1)
@sprite_node sensorfre2 origin const (2,2) (0,1,0) billboard

#fresear
@sprite_node crewfre11 crew1 fire (6.21,3.33) (1,1,1)
@sprite_node crewfre12 crew2 fire2 (3.21,3.21) (1,1,1)
@sprite_node crewfre13 crew3 fire (2.62,8.18) (1,1,1)
@sprite_node crewfre14 crew4 fire2 (3.87,3.87) (1,1,1)
@sprite_node crewfre15 crew5 fire (1.6,10.55) (1,1,1)
@sprite_node sensorfre1 origin const (2,2) (0,1,0) billboard
#fmining
@sprite_node crewfmin1 crew1 fire (11.47,11.47) (1,1,1)
@sprite_node crewfmin2 crew2 fire2 (11.47,11.47) (1,1,1)
@sprite_node crewfmin3 crew3 fire (11.47,11.47) (1,1,1)
@sprite_node crewfmin4 crew4 fire2 (11.47,11.47) (1,1,1)
@sprite_node crewfmin5 crew5 fire (11.47,11.47) (1,1,1)
@sprite_node sensorfmin origin const (2,2) (0,1,0) billboard

#fbase
@sprite_node crewfbas1 crew1 fire (11.13,11.13) (1,1,1)
@sprite_node crewfbas2 crew2 fire2 (13.71,13.71) (1,1,1)
@sprite_node crewfbas3 crew3 fire (22.36,9.23) (1,1,1)
@sprite_node crewfbas4 crew4 fire2 (13.33,21.7) (1,1,1)
@sprite_node crewfbas5 crew5 fire (9.77,9.75) (1,1,1)

starfox1701 April 19th, 2011 08:42 PM

Re: Joint/Hardpoint Tree Structure Tool
 
Remember that if you use these sprights you have to place them right on the surface of the ship and rotate them so they lay flat.

Muldrf April 20th, 2011 07:50 AM

Re: Joint/Hardpoint Tree Structure Tool
 
Those sprites fall in line with Westworld's book. It does look like 1-6 and 16 are the only ones setup the other references have no actual "sprite_node" entry which is what the model should reference to.

I'll see what i can do to finish it up. I have a few things to adjust and add, but it seems like it should pretty much be finished up. If anyone else wants to give the beta a try let me know.

Muldrf April 22nd, 2011 05:47 AM

Re: Joint/Hardpoint Tree Structure Tool
 
Well it's done except the Fleet Ops tree. I'll try to contact them and see if I can get the info, if not I'll pull it for now and release as is with just the A1 and A2 trees. If I get the info I need later I can enable it again.

Basically I have to write up the readme.

I'm leaving saving of additional templates as a possible future feature. I'll look at an "Undo" button as starfox1701 suggested but that's a bit more complex than one might initially expect.

Dominus_Noctis April 22nd, 2011 04:10 PM

Re: Joint/Hardpoint Tree Structure Tool
 
Some modders who know FO's system have expressed interest, however it may take them a few days to get back to you :( . I hope that is sufficient ...

Muldrf April 22nd, 2011 08:01 PM

Re: Joint/Hardpoint Tree Structure Tool
 
I sent Optec an email. I'll check the sprite file there and see what I find. If I don't get any more direct info, I'll just go with what i find in there and leave the tree the same as Armada 2.

I'll give it over the weekend and if no new info comes back I'll do my best estimate.

Dominus_Noctis April 22nd, 2011 08:03 PM

Re: Joint/Hardpoint Tree Structure Tool
 
I can easily zip up and attach the rest of the sprite stuff if that would help (will do so now in fact). I'll talk to Optec this weekend and see if he has the time/information readily available to help :)

Muldrf April 24th, 2011 04:32 AM

Re: Joint/Hardpoint Tree Structure Tool
 
From the setup I doubt any other spr files have fleetops content in them.

Code:

@sprite_node Warpglowspriteblue6 flare_glow_soft const (6,6) (0.06,0.06,0.12) billboard
@sprite_node Warpglowspriteblue6A flare_glow_soft const (6,6) (0.0,0.0675,0.12) billboard
@sprite_node Warpglowspriteblue6B flare_glow_soft const (6,6) (0.0,0.09,0.12) billboard
@sprite_node Warpglowspriteblue6C flare_glow_soft const (6,6) (0.0,0.045,0.06) billboard
@sprite_node Warpglowspritedarkblue6 flare_glow_soft const (6,6) (0.045,0.045,0.09) billboard
@sprite_node Warpglowspritered6 flare_glow_soft const (6,6) (0.12,0.0,0.0) billboard
@sprite_node Warpglowspritered6A flare_glow_soft const (6,6) (0.12,0.04,0.0075) billboard
@sprite_node Warpglowspritered6B flare_glow_soft const (6,6) (0.12,0.015,0.015) billboard
@sprite_node Warpglowspritegreen6 flare_glow_soft const (6,6) (0.0,0.14,0.0) billboard
@sprite_node Warpglowspritegreen6A flare_glow_soft const (6,6) (0.03,0.12,0.06) billboard
@sprite_node Warpglowspritegreen6B flare_glow_soft const (9,9) (0.375,0.6,0.3) billboard
@sprite_node Warpglowspritegreen6C flare_glow_soft const (6,6) (0.0,0.09,0.0) billboard
@sprite_node Warpglowspritegreen6incubation flare_glow_soft IncubationGlow (10,10) (0.0,0.14,0.0) billboard
@sprite_node Warpglowspriteocher6 flare_glow_soft const (6,6) (0.07,0.10,0.04) billboard
@sprite_node Warpglowspritepink6A flare_glow_soft const (6,6) (0.12,0.075,0.105) billboard
@sprite_node Warpglowspritepink6B flare_glow_soft DefenderGlow (10,10) (0.12,0.075,0.105) billboard
@sprite_node Warpglowspritepurple6A flare_glow_soft const (6,6) (0.045,0.0,0.12) billboard
@sprite_node Warpglowspritewhite6 flare_glow_soft const (6,6) (0.06,0.06,0.06) billboard
@sprite_node Warpglowspritegold6 flare_glow_soft const (6,6) (0.10,0.075,0.025) billboard

@sprite_node Warpglowspriteblue9 flare_glow_soft const (9,9) (0.06,0.06,0.12) billboard
@sprite_node Warpglowspriteblue9A flare_glow_soft const (9,9) (0.0,0.0675,0.12) billboard
@sprite_node Warpglowspriteblue9B flare_glow_soft const (9,9) (0.0,0.09,0.12) billboard
@sprite_node Warpglowspriteblue9C flare_glow_soft const (9,9) (0.0,0.045,0.06) billboard
@sprite_node Warpglowspritered9 flare_glow_soft const (9,9) (0.12,0.0,0.0) billboard
@sprite_node Warpglowspritered9A flare_glow_soft const (9,9) (0.12,0.04,0.0075) billboard
@sprite_node Warpglowspritered9B flare_glow_soft const (9,9) (0.12,0.015,0.015) billboard
@sprite_node Warpglowspritegreen9 flare_glow_soft const (9,9) (0.0,0.14,0.0) billboard
@sprite_node Warpglowspritegreen9A flare_glow_soft const (9,9) (0.03,0.12,0.06) billboard
@sprite_node Warpglowspritegreen9B flare_glow_soft const (9,9) (0.375,0.6,0.3) billboard
@sprite_node Warpglowspritegreen9C flare_glow_soft const (9,9) (0.0,0.09,0.0) billboard
@sprite_node Warpglowspriteocher9 flare_glow_soft const (9,9) (0.07,0.10,0.04) billboard
@sprite_node Warpglowspritepink9A flare_glow_soft const (9,9) (0.12,0.075,0.105) billboard
@sprite_node Warpglowspritepurple9A flare_glow_soft const (9,9) (0.045,0.0,0.12) billboard
@sprite_node Warpglowspritewhite9 flare_glow_soft const (9,9) (0.06,0.06,0.06) billboard
@sprite_node Warpglowspritegold9 flare_glow_soft const (9,9) (0.10,0.075,0.025) billboard

@sprite_node Warpglowspriteblue12 flare_glow_soft const (12,12) (0.06,0.06,0.12) billboard
@sprite_node Warpglowspriteblue12A flare_glow_soft const (12,12) (0.0,0.0675,0.12) billboard
@sprite_node Warpglowspriteblue12B flare_glow_soft const (12,12) (0.0,0.09,0.12) billboard
@sprite_node Warpglowspriteblue12C flare_glow_soft const (12,12) (0.0,0.045,0.06) billboard
@sprite_node Warpglowspritered12 flare_glow_soft const (12,12) (0.12,0.0,0.0) billboard
@sprite_node Warpglowspritered12A flare_glow_soft const (12,12) (0.12,0.04,0.0075) billboard
@sprite_node Warpglowspritered12B flare_glow_soft const (12,12) (0.12,0.015,0.015) billboard
@sprite_node Warpglowspritegreen12 flare_glow_soft const (12,12) (0.0,0.14,0.0) billboard
@sprite_node Warpglowspritegreen12A flare_glow_soft const (12,12) (0.03,0.12,0.06) billboard
@sprite_node Warpglowspritegreen12B flare_glow_soft const (12,12) (0.375,0.6,0.3) billboard
@sprite_node Warpglowspritegreen12C flare_glow_soft const (12,12) (0.0,0.09,0.0) billboard
@sprite_node Warpglowspriteocher12 flare_glow_soft const (12,12) (0.07,0.10,0.04) billboard
@sprite_node Warpglowspritepink12A flare_glow_soft const (12,12) (0.12,0.075,0.105) billboard
@sprite_node Warpglowspritepurple12A flare_glow_soft const (12,12) (0.045,0.0,0.12) billboard
@sprite_node Warpglowspritewhite12 flare_glow_soft const (12,12) (0.06,0.06,0.06) billboard
@sprite_node Warpglowspritegold12 flare_glow_soft const (12,12) (0.10,0.075,0.025) billboard

@sprite_node Warpglowspriteblue20A flare_glow_soft const (20,20) (0.0,0.0675,0.12) billboard
@sprite_node Warpglowspritered20A flare_glow_soft const (20,20) (0.12,0.04,0.0075) billboard

@sprite_node Warpglowspriteblue30A flare_glow_soft const (30,30) (0.0,0.0675,0.12) billboard
@sprite_node Warpglowspritered30A flare_glow_soft const (30,30) (0.12,0.04,0.0075) billboard

@sprite_node WarpglowspriteSaber6A flare_glow_soft SaberWarpGlow1 (6,6) (1,1,1) billboard
@sprite_node WarpglowspriteSaber6B flare_glow_soft SaberWarpGlow2 (6,6) (1,1,1) billboard
@sprite_node WarpglowspriteSaber6C flare_glow_soft SaberWarpGlow3 (6,6) (1,1,1) billboard
@sprite_node WarpglowspriteSaber6D flare_glow_soft SaberWarpGlow4 (6,6) (1,1,1) billboard
@sprite_node WarpglowspriteSaber6E flare_glow_soft SaberWarpGlow5 (6,6) (1,1,1) billboard
@sprite_node WarpglowspriteSaber6F flare_glow_soft SaberWarpGlow6 (6,6) (1,1,1) billboard


Muldrf April 25th, 2011 08:35 PM

Re: Joint/Hardpoint Tree Structure Tool
 
Optec did get back to me, but I have one more email off to check on a final question. If it comes back one way it's about done, if not I have to do a little work on the warpsprites.

Here's a look at the current interface. I've changed the interface a bit tonight, the other "Tabs" are now nearly the size of the interface to let you view more data in them, although they are rarely used. It gives a nicer flow I think. It also gives me more room for additional buttons etc if I need them in the future.

I found I have to make the window so it can't be resized. I also forget if I fixed up the Tab Order (as in the order the Tab key will navigate from item to item on the interface).


I am posting the proposed readme as well.

I also didn't note it but, it requires Microsoft .Net Framework 3.0 to be installed to run. Although the tool should be able to be compiled to work with 2.0 I'm forgetting if Vista came with 2.0 preinstalled or if it only came with 3.0.

http://public.bay.livefilestore.com/...ht3.jpg?psid=1

Quote:

Joint/Hardpoint Tool for Legacy & Armada 1/2 by Muldrf

Version: 1.0.0.3a

This new build of the joint tool is for aiding in creation of new joint trees and modification of existing joint trees for use in conjunction with Milkshape for Star Trek Legacy, Star Trek Armada and Star Trek Armada II games.

-----------
Initial Setup:
The tool should work with Xp, Vista 32 and 64bit, and Windows 7 32bit and 64bit. It requires Microsoft .Net Framework 2.x

Just extract the exe file and create a shortcut to it. Copy the msMJTExporter.dll to your Milkshape folder

-----------
Basic Features:
Welcome to the Hierarchy Hardpoint/Joint Tool. It is used to create new or modify existing "Joint" data for use in Milkshape Specfically to aid in the Porting of ships for Star Trek Legacy and the Star Trek Armada games. Originally created for use with Legacy models, I have added support for Star Trek Armada, Armada 2 and Fleet Ops modes. This is used in conjunction with the "Legacy Joint Tool ASCII" Milkshape Exporter. You can start from scratch making a tree using one of the 4 baseline trees, Legacy, Armada, Armada 2 or Fleet Ops. You can import Mesh Group Names from Milkshape with the Legacy ASCII exporter, as well as any existing joint data. The Output txt file that is created by the tool is in Milkshape ASCII Format so that it doesn't require a special "importer".

To import trees into Milkshape from the tool you must first delete any existing Joints from the model (or it won't import the new joints), then use the Milkshape ASCII Importer and select the file. If you have an existing tree you can doublclick on the "h_scene root" (Legacy, Armada2, Fleet Ops) or "h_root" (in Armada 1) to highlight it then press "Delete" on your Keyboard. When importing the data Milkshape may make your textures disappear, when that happens save your file then reopen the saved file and it will refresh your textures.

Interface:
"The Tabs"
Tree View - Shows your overall joint structure. This Tab is the one that is used primarly. You can Drag and Drop joints in the Treeview to other Parent joint "levels", such as drag a joint from the h_hardpoints section to the h_lights section if you misplaced it. This also has most of the joint manipulation buttons on it.

Grid View - This shows the data that the tree view works from, including the other underlying information that is used, such as location and rotation and and joint comments (only used in Legacy). While you can edit some the data in the Gridview it's not generally done. The main thing I use the Grid View for is when porting a model I will verify that the m_ joints are at 0,0,0 and have no rotation at all, if they don't I will manually edit them back to the proper 0,0,0 values.

Output tab - This is a preview of your output file. You could copy and paste the text from here into notepad etc and save the txt file. This view is generated either when pressing the "Pre-Build" button or when pressing Export. The Pre-Build button allows you to generate the output and do some manual adjustment if you like before saving the file. If you do edit the Output text you then must still Export it by using the Export button, just tell it to NOT Flush the Output data when it asks, it only asks that if the output window isn't empty.

"The Buttons"
Tree View Buttons:
Up - move the selected joint "up" on the list at it's current Hiearchy level, this will move it to the top of it's current level but not into the next higher level.
Down - same as "up" but moves the currently selected joint "down".
Move Checked - will move every joint that has the checkbox checked to be attached to the currently selected joint. There are some situations where this will have to be pressed more than once to get them all moved. I just haven't tracked them all down yet.
Rename - Shows a box where you can edit the name of the currently selected joint. You can rename a joint fully if it's currently a h_ joint you can rename it to something totally different such as a s_ joint.
Pattern Color - This button is only for Legacy it lets you edit the Pattern and or Color/Intensity values of a Light Sprite, it is disabled in the Armada modes of the tool.
Delete - Deletes the currently selected joint, be sure to delete any "child" joints first, I never intended to delete joints using that button that had "child" joints under it.

Right Side Buttons:
Clear Tree - Clears the tree back to the Default tree for the currently Selected Mode.
Import - Imports joint data from a "Legacy Joint Tool ASCII" format file, including model group names, and all joint data including joint name, parent joint, position, rotation and comment data.
Pre-Build - as mentioned above this populates the current data on the tree and grid views to the Output window in the Milkshape 3d ASCII format. Useful if you want to do some additional tweaking before saving the output file. I have very rarely used this, but left it enabled "just incase".
Export - This will check if the Output tab is populated and if it is ask if you want to repopulate it and clear the changes or use the current data there, if the output window is empty at the time it will populate it automatically. This then saves to output text to a Milkshape 3d ASCII format file that can be imported into Milkshape.
Help - Displays the Help menu.
Exit - Closes the program.

"The Other Stuff"
h_ Section. This is for creation of h_ type joints at the currently selected joint on the treeview. Either hierarchy or harpoint joints. It also allows automatic creation of an additional joint that will be placed in a specific direction from the joint. You can also add more than 1 at a time by using hte Quanity box, when using that box the Increment function will tag on a ## suffix such as if you place "hp" in the name field and Quanity of 3 you will get h_hp01, h_hp02 and h_hp03.

s_ Section. This section is for creation of s_ type joints at the currently selected joint on the treeview. It also has the Quanity and Increment function except it places a _## suffix suc has whitestrobe and qty of 2 would give s_whitestrobe_01 s_whitestrobe_02. The Pattern and Color data is only for Legacy, it allows making custom blink patterns and colored lights without having to add new spr file entries, you can actually make a blue strobe into a pink constant light if you care to.. Again the Pattern and Color boxes are disabled in the Armada modes.

m_ Section. This section is for creation of m_ type joints at the currently selected joint on the treeview. These are Model Group joint names, they are used to tell the exporter to export the model group sections to the sod (Aramda1/2) or m3d (Legacy). If you use the Legacy Joint Tool ASCII exporter in milkshape you can import the Mesh Group names directly from Milkshape, otherwise you can manually type them into the box and add them. The "Add" will add a joint with the name that is in the box at the time. The "Add All" button will add every group name to the currently selected joint, this is helpful in Legacy where you could have a large number of mesh group names.

e_ Section. This seciton is for the creattion of e_ type joints attached to the currently selected joint on the treeview. These are generally used when a ship takes damage. For Legacy only the plasmamed and plasmalrg emitters actually work. For Armada games you can apparently use all the plasma and the steam type emitters. For Armada you can have Incremented names as well like the s_ joints with a suffix of _##. For Legacy you can NOT use the Increment function, I'm hoping to get the Leagacy exported updated to allows incremented emitter joints to work, or I would have disabled the function in Legacy mode.

Custom Named Joint (no Prefix) Section. This is for adding a joint of any name. Unlike the other sections this is a litteral name, as in if you put in "Bob" it will place the joint of "Bob" on the tree without any prefix or sufix. This is incase you need some oddly named joint. I have not had to use this so far, but I figured it was a good thing to have "just incase".

List of Joints Box. This box basically shows all the joints you have on your tree currently in a running list.

Mode Box. This box is to allow you to switch between the various modes of the tool. When you switch the mode it will wipe out your current tree in favor of the base tree of that mode. The various modes have different s_ joint list to work with. Also the Armada modes don't support the Pattern and Color function on the s_ joints so those interface parts are disabled when in those modes.

-----------
Revision History:

Changes From Version 1.0.0.2a to 1.0.0.3a
1. Removed "crew#" joints from the initial tree. If you want to add them just do so from the s_ joint type.
2. Fleet Ops added the numerous "warpglowsprites" to the s_ joint type dropdown. Removed the crew# and sensor joint from the Fleet Ops tree as it seems they don't ever use them.
3. Added info to the Help window on the various interface bits and some basic usage info.
4. Can now add Mesh Group (And "Custom Named Joint(no Prefix)") names that are "unique" by "Capitalization" such as "m_R_logo" will no longer cause a duplicate if "m_r_logo" already exists. This is due to Legacy uses r_logo, R_logo, l_logo and L_logo as logo mesh names.
5. "Base Tree" joints now populate to the List of Joints box.
6. Selected Joint on Treeview now remains visibly selected when it looses focus.
7. The Root (first top level item on the Treeview) is now selected automatically on Startup or Clearing the tree to prevent errors when trying to add joints before selecting any initial joint.
8. Fix Loop if you answer "No" to the Auto Increment question when a duplicate joint name is found to be on the tree.

Changes From Version 1.0.0.1a to 1.0.0.2a
1. When changing the "Mode" box it will now ask if you want to switch modes or not. If you say yes it will preform a Clear Tree function to flush out the old modes tree. If you say no then it reverts back to the previous setting

Changes From Version 1.0.0.0a to 1.0.0.1a
1. Fixed "Increment" function for when duplicate joints are found for s_, e_, and h_ joints.
2. Added Crew1-Crew5, Crew16 and Sensor as options on the s_ joint list for the Armada games. These are fixed name joints, I don't know if they work with sufixes like _01 tagged to them.
3. The tool now saves the last used mode. So if you exit with it set to Armada it will reopen in Armada mode etc.
4. Added the Change Log that your reading.
5. Added file format check incase an improper file is selected for import. The "Legacy Joint Tool ASCII" that the tool imports is NOT the same as the "Milkshape 3D ASCII" file that it exports to.

-----------
Permissions / Notices:

This tool can be use to assist in modding Star Trek Legacy, Armada, Armada 2 etc.

This tool and these files are not supported by Maddoc or Bethesda Softworks Activision etc and they are not responsible for any damages to your game directory. As with all modtools you are using them at your own risk. The end user of the tool accepts responsibility for usage of the tools.

The Tool can not be distributed with any other package without obtaining permissions from myself (Muldrf).

The Tool exe must not be distributed without this readme.

-----------
Credits / Contact:


If problems are found with the tool you can contact me and I'll see what I can do to help. Also if you have feature requests let me know.

The Tool is coded by Muldrf

markenobrookstone AT hotmail DOT com

Your Daily Gamepad - Chris Jones Gaming - Index

I also follow the Filefront forums for Legacy.

Again anyone wanting to try the beta can send me a Personal Message and I will send the link. The link I previously gave out will not work any longer.

Muldrf April 29th, 2011 07:25 AM

Re: Joint/Hardpoint Tree Structure Tool
 
The Finalized version submitted for approval. v1.0.0.5

Starfox if you want it now, you can grab the 1005 from the same link as the last file at any time. Operationally it's the same as 1004 that you downloaded the other day. It has some layout and tab navigational changes though, that I think help it flow better. If you don't use "tab" to navigate around the interface you won't notice much change though.

http://myipdq.bay.livefilestore.com/...t15.jpg?psid=1

starfox1701 April 29th, 2011 07:54 AM

Re: Joint/Hardpoint Tree Structure Tool
 
I'm On my Way :D

Muldrf April 29th, 2011 02:18 PM

Re: Joint/Hardpoint Tree Structure Tool
 
Have fun with it Starfox.

My wording wasn't as "clear" as intended. It might be misread, I meant to say "I have submitted the file to Armada files for approval". I'm not sure how fast or slow it is for the files to be processed.

Terra_Inc April 29th, 2011 04:02 PM

Re: Joint/Hardpoint Tree Structure Tool
 
Quote:

Originally Posted by Muldrf (Post 5498735)
Have fun with it Starfox.

My wording wasn't as "clear" as intended. It might be misread, I meant to say "I have submitted the file to Armada files for approval". I'm not sure how fast or slow it is for the files to be processed.

With the screenshots broken, it may take some time. Depends on BreakIT now. :uhoh:

Muldrf April 29th, 2011 06:06 PM

Re: Joint/Hardpoint Tree Structure Tool
 
Well POtDs have started working tonight it seems, that mean the file images are fixed as well? I see "previous" stuff hasn't had the images show up on the file, but thinking maybe anything "newly" posted will be in order?

Majestic-MSFC April 30th, 2011 06:12 AM

Re: Joint/Hardpoint Tree Structure Tool
 
I just download the tool from A2Files, took a bit to get working, but it looks great I have made a HP template for my Fleet Ops models, but haven't tested it in-game yet as I have no models ready for in-game use.

One addition I would ask is a save option, where you can save the tree that can be re-opened in the program, perhaps having it be able to load in the format it exports. But this is a great tool and will really help many modellers out as hardpoint is a real pain but having a complete map with every possible joint needed will really save time for many. :)

StarBlade April 30th, 2011 06:56 AM

Re: Joint/Hardpoint Tree Structure Tool
 
Quote:

Originally Posted by Muldrf (Post 5498859)
Well POtDs have started working tonight it seems, that mean the file images are fixed as well? I see "previous" stuff hasn't had the images show up on the file, but thinking maybe anything "newly" posted will be in order?

We honestly have no idea. As Terra said, it's up to the Break IT guys now. The file may or may not work, and/or be available for download, and/or have its associated images showing, at any given moment. They're in the process of rebuilding the entire server side of the main site (not the forums) from scratch, and there is no easy way to do that.

Just for the record, for everyone, this is not intended as an invitation to public discussion of A2Files', and FileFront's, issues, so please don't offer me suggestions or well-intentioned criticisms. I have neither the means nor the intention of acting on them, or even passing them on.

That being said, this looks like it'll become an essential tool for modders, and it represents a very positive development for the A2Files modding community. Thanks for the hard work, Muldrf.


All times are GMT -7.

Powered by vBulletin®
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
SEO by vBSEO 3.6.0 ©2011, Crawlability, Inc.