*SOLVED* Nodes Missing on export
by To-mos · in Artist Corner · 08/18/2011 (6:50 am) · 7 replies
So as you may of seen before we have an issue with nodes missing on export...I'll post the dump file and hopefully someone has some insight as to why it's not exporting my nodes. From the dump it looks like its reading the configuration file about always exporting the nodes but when the time comes it's ignoring them.
Max file C:TorqueTorque 3D 2009 SDK 1.0.1My ProjectsJuggernaut x5gamecoremodelsvehiclesreconmilitary ATV.max exported to \chingchongmy projectsjuggernaut x5gamecoremodelsvehiclesreconrecon.dts
Exported on Thu Aug 18 09:39:22 2011
Begin reading config file "C:TorqueTorque 3D 2009 SDK 1.0.1My ProjectsJuggernaut x5gamecoremodelsvehiclesreconrecon.cfg".
Always export node: "mount0"
Always export node: "mount1"
Always export node: "eye"
Always export node: "cam"
Always export node: "hub*"
End reading config file.
First pass: collect useful nodes...
Processing Node base01 with parent Scene Root
Found subtree starting at Node "base01"
Processing Node start01 with parent base01
Processing Node body1 with parent start01
Processing Node col-1 with parent start01
Processing Node detail1 with parent base01
Processing Node collision-1 with parent base01
Processing Node detail100 with parent base01
Processing Node detail50 with parent base01
Processing Node detail25 with parent base01
Processing Node mount0 with parent base01
Processing Node mount1 with parent base01
Processing Node hub0 with parent base01
Processing Node hub1 with parent base01
Processing Node hub3 with parent base01
Processing Node hub2 with parent base01
Processing Node eye with parent base01
Processing Node cam with parent base01
Processing Node bounds with parent Scene Root
Bounding box found
Second pass: put shape structure together...
Adding detail named "detail1" of size 1 to subtree "base01".
Adding detail named "collision-1" of size -1 to subtree "base01".
Adding detail named "detail100" of size 100 to subtree "base01".
Adding detail named "detail50" of size 50 to subtree "base01".
Adding detail named "detail25" of size 25 to subtree "base01".
Adding detail named "mount0" of size 0 to subtree "base01".
Adding detail named "mount1" of size 1 to subtree "base01".
Adding detail named "hub0" of size 0 to subtree "base01".
Adding detail named "hub1" of size 1 to subtree "base01".
Adding detail named "hub3" of size 3 to subtree "base01".
Adding detail named "hub2" of size 2 to subtree "base01".
Ignoring node named "eye" off subtree "base01" because no trailing number.
Ignoring node named "cam" off subtree "base01" because no trailing number.
Adding node "base01" with parent "base01" to subtree rooted on max-node "base01".
Adding node "start01" with parent "base01" to subtree rooted on max-node "base01".
Adding node "body1" with parent "start01" to subtree rooted on max-node "base01".
Attaching object to node.
Adding object named "body".
Adding mesh of size 100 to object "body".
Object offset transform:
scale: x=2.98724, y=2.25987, z=1.59216
stretch rotation: x=-0.00000, y=-0.00000, z=-0.00000, w=1.00000
translation: x=0.03384, y=0.79813, z=-1.30056
actual rotation: x=-0.00000, y=-0.00000, z=-0.00000, w=1.00000
Adding mesh of size 50 to object "body".
Object offset transform:
scale: x=2.98724, y=2.25987, z=1.59216
stretch rotation: x=-0.00000, y=-0.00000, z=-0.00000, w=1.00000
translation: x=0.03384, y=0.79813, z=-1.30056
actual rotation: x=-0.00000, y=-0.00000, z=-0.00000, w=1.00000
Adding mesh of size 25 to object "body".
Object offset transform:
scale: x=2.98724, y=2.25987, z=1.59216
stretch rotation: x=-0.00000, y=-0.00000, z=-0.00000, w=1.00000
translation: x=0.03384, y=0.79813, z=-1.30056
actual rotation: x=-0.00000, y=-0.00000, z=-0.00000, w=1.00000
Adding mesh of size 1 to object "body".
Object offset transform:
scale: x=2.98724, y=2.25987, z=1.59216
stretch rotation: x=-0.00000, y=-0.00000, z=-0.00000, w=1.00000
translation: x=0.03384, y=0.79813, z=-1.30056
actual rotation: x=-0.00000, y=-0.00000, z=-0.00000, w=1.00000
Adding node "col-1" with parent "start01" to subtree rooted on max-node "base01".
Attaching object to node.
Adding object named "col".
Adding mesh of size -1 to object "col".
Object offset transform:
scale: x=2.06425, y=2.06425, z=2.91705
stretch rotation: x=-0.00000, y=-0.00000, z=-0.00000, w=1.00000
translation: x=0.00000, y=0.00000, z=-1.44009
actual rotation: x=-0.00000, y=-0.00000, z=-0.00000, w=1.00000
Third pass: Collapsing unneeded nodes...
Add default object states...
Adding object state to 4 detail level(s) of mesh "body".
Adding frame.
Object is visible.
3888 faces, 11664 verts, 11664 tverts before cropping textures and joining verts
2511 faces, 7533 verts, 7533 tverts before cropping textures and joining verts
1396 faces, 4188 verts, 4188 tverts before cropping textures and joining verts
389 faces, 1167 verts, 1167 tverts before cropping textures and joining verts
---------------------------------
Adding object state to 1 detail level(s) of mesh "col".
Adding frame.
Object is visible.
32 faces, 96 verts, 96 tverts before cropping textures and joining verts
---------------------------------
Add default node states...
Adding node rotation at time 0 for node "base01".
rotation: x=0.00000, y=0.00000, z=0.00000, w=1.00000
---------------------------------
Adding node translation at time 0 for node "base01".
translation: x=0.04501, y=0.12478, z=1.02787
---------------------------------
Adding node rotation at time 0 for node "start01".
rotation: x=0.00000, y=0.00000, z=0.00000, w=1.00000
---------------------------------
Adding node translation at time 0 for node "start01".
translation: x=0.00000, y=0.00000, z=0.00000
---------------------------------
Adding node rotation at time 0 for node "body1".
rotation: x=0.00000, y=0.00000, z=0.00000, w=1.00000
---------------------------------
Adding node translation at time 0 for node "body1".
translation: x=0.00366, y=-0.10237, z=0.49911
---------------------------------
Adding node rotation at time 0 for node "col-1".
rotation: x=0.00000, y=0.00000, z=0.00000, w=1.00000
---------------------------------
Adding node translation at time 0 for node "col-1".
translation: x=0.00366, y=-0.10237, z=0.49911
---------------------------------
Adding 0 sequences...
Optimizing meshes...
Optimizing mesh "body" detail level 1.
1167 verts before joining verts
504 verts after joining verts
389 faces before stripping
Using quick and dirty stripping method.
158 strips with average length 4.77 (range 3 to 26) and 49 reversals
Results in 527 cache misses
Optimizing mesh "body" detail level 25.
8332 verts before joining verts
1395 verts after joining verts
1396 faces before stripping
Using quick and dirty stripping method.
257 strips with average length 8.48 (range 3 to 73) and 270 reversals
Results in 1534 cache misses
Optimizing mesh "body" detail level 50.
11022 verts before joining verts
2123 verts after joining verts
2511 faces before stripping
Using quick and dirty stripping method.
330 strips with average length 10.83 (range 3 to 131) and 402 reversals
Results in 2724 cache misses
Optimizing mesh "body" detail level 100.
17436 verts before joining verts
3011 verts after joining verts
3888 faces before stripping
Using quick and dirty stripping method.
359 strips with average length 13.90 (range 3 to 152) and 383 reversals
Results in 4168 cache misses
Optimizing mesh "col" detail level -1.
96 verts before joining verts
42 verts after joining verts
32 faces before stripping
Using quick and dirty stripping method.
10 strips with average length 6.20 (range 4 to 15) and 10 reversals
Results in 42 cache misses
Shape Hierarchy:
Details:
detail100, Subtree 0, objectDetail 0, size 100
detail50, Subtree 0, objectDetail 1, size 50
detail25, Subtree 0, objectDetail 2, size 25
hub3, Subtree 0, objectDetail 3, size 3
hub2, Subtree 0, objectDetail 4, size 2
hub1, Subtree 0, objectDetail 5, size 1
detail1, Subtree 0, objectDetail 6, size 1
mount1, Subtree 0, objectDetail 7, size 1
mount0, Subtree 0, objectDetail 9, size 0
hub0, Subtree 0, objectDetail 8, size 0
collision-1, Subtree 0, objectDetail 10, size -1
Subtrees:
Subtree 0
base01
start01
body1 --> Object body with following details: 100 50 25 1
col-1 --> Object col with following details: -1
Sequences:
Material list:
material #0: "military-ATV".
Checking for duplicate nodes...
Checking for duplicate objects...About the author
#2
you get the idea
08/18/2011 (9:43 am)
Yeah I actually fixed it, it looks like you have to have the other nodes linked under start01 and not the base01. It was a heirarchy issue. So now it's+base01
---+start01
-----+mount01
+mount02
+eye
+cam
+hub0-3you get the idea
#3
'Markers' under 'base01'.....actual 'stuf'/meshes under 'start01'
08/18/2011 (9:57 am)
exactly....what I was thinking...bad hierarchy. Glad you caught it.'Markers' under 'base01'.....actual 'stuf'/meshes under 'start01'
#4
A second question is how does the buggys shocks work it looks like the engine slides up and down a set of animations for each shock. Is that hardcoded into the engine or something?
08/18/2011 (10:02 am)
That is awesome to know...another question though is. Does the main node of everything below have to be named base01? I exported a wheel with box01 as the main node and it seemed to export fine. I was just following the buggys layout to make it all.A second question is how does the buggys shocks work it looks like the engine slides up and down a set of animations for each shock. Is that hardcoded into the engine or something?
#5
Yes, from the datablock of the spring object comes the values to animate to. You animate the 'max/min' distance as a single sequence 'springBLAH' to correspond to each object. Engine code/physics take over from there inside the engine, determining the 'height' of each spring animation to play depending upon how much 'mass' it is, riders' etc...it's nice. Hope this makes some kind of sense, it's 'standard/stock' TGE vehicle behavior. It helps to have your target DTS shape the same 'scale' as TGE 'units'...base10 system helps.
08/18/2011 (12:28 pm)
That's correct, I do not believe hierarchy 'level' is hardcoded, just the parent/child relationship between the objects[blah01--smallerBlah01]. IE...the meshes begin in the subTree of the main root node[I think that's correct].Yes, from the datablock of the spring object comes the values to animate to. You animate the 'max/min' distance as a single sequence 'springBLAH' to correspond to each object. Engine code/physics take over from there inside the engine, determining the 'height' of each spring animation to play depending upon how much 'mass' it is, riders' etc...it's nice. Hope this makes some kind of sense, it's 'standard/stock' TGE vehicle behavior. It helps to have your target DTS shape the same 'scale' as TGE 'units'...base10 system helps.
#6
08/18/2011 (3:05 pm)
That is brilliant. Is there any specific name I need to give the animations or the shocks in the animation. It looks like the buggy has some special names for its shocks but I don't know if that's just for organization.
#7
The Shape Editor, with a DTS shape selected, has a Tab that lists nodes and sequences any particular scripted 'shape' is.

Try adding the stock torque vehicle to a mission or select it in a mission that has it included. Next, bring up the World Editor(F11) and then find the Shape Editor button
. Then, bring forward the Hints Tab, and take a look at what nodes and sequences the shape 'could/should' contain. Intuitively, a green check means the selected object contains the parameter, a red X means it is not present in the shape. Pretty cool, huh?
Using this Editor allows you to fine tune DAE and DTS shapes and sequences. There are panels for most all the properties of the shape, and the "Hints" Tab is one of them; and it's very useful for answering questions you are now asking here, ;)!
Between the Official Documentation and opening and tinkering with the various great Editors, which GG has graciously provided, you can find most all of your art related questions answered.
08/19/2011 (6:30 am)
There is a definite namingConvention to both animations and nodes for nearly everything in stock Torque, ;).The Shape Editor, with a DTS shape selected, has a Tab that lists nodes and sequences any particular scripted 'shape' is.

Try adding the stock torque vehicle to a mission or select it in a mission that has it included. Next, bring up the World Editor(F11) and then find the Shape Editor button
. Then, bring forward the Hints Tab, and take a look at what nodes and sequences the shape 'could/should' contain. Intuitively, a green check means the selected object contains the parameter, a red X means it is not present in the shape. Pretty cool, huh?Using this Editor allows you to fine tune DAE and DTS shapes and sequences. There are panels for most all the properties of the shape, and the "Hints" Tab is one of them; and it's very useful for answering questions you are now asking here, ;)!
Between the Official Documentation and opening and tinkering with the various great Editors, which GG has graciously provided, you can find most all of your art related questions answered.
Torque Owner Rex
BrokeAss Games
Or that the nodes are outside the hierarchy??