Hodor animations and joint position woes

Finally Decided to update my resourcer and I have a few major issues

  1. the meshes are aligning very strangely compared to the joints (the joints are centered at the pivot points for the meshes that will be animated)

  2. the mad file either crashes on export or hangs unless I delete the ANIM section

Here is a max render of it during travel

and during resourcing

Here is how it shows up in game

everything is really messed up and some things like the claws and plasma torches are in the right spot, but the other parts are not or even stacked on top of each other

Here is the joint hierarchy for the front end boring head

I have reset all xforms and rotations and collapsed meshes (I even reset xforms on the dummy joints and collapsed those)

I am not sure what else to do. I remember HW2 export through Maya had a similar issue but I don’t remember how i solved it.

#2 animation crashing

when I enable animation export HODOR either crashes or it generates infinitely large files (GB if I let it), it does not seem to like my ANIM parameters

OPEN should run from 1 - 100 frames
ROTATE(during resourcing) is from 101-300
CLOSE is from 301-400

here is the ANIM section

I have played around with the actual times to line them up to specific frame, I have tried to put only one ANIM in I have also ensured that each animation step has been keyed inside the time range, still no luck getting HODOR to not crash. The example ships work and I can’t see what I have done differently…

PM me with your DAE & low-res versions of your textures. I’ll debug it and let you know where the fault lies…


I will be very interested to hear what yall find as I am also crashing HWR with my exported mad file. And the animated chunks of my ship are waaay off from where they’re supposed to be. No problems generating the HOD and MAD from HODOR though.

1 Like

@sastrei - If you’ve got a repro you can also send it this way, I just want to see it and document the issue so that people can move on :wink:

Probably a dumb question on my part, but: Are you animating the meshes or are you animating the joints?

In the Taiidan Interceptor example, it’s the Joints that the wing meshes are children of that have all the keyframe data, not the meshes themselves. Since DAE does the coordinates of children objects in the local space of their parent. If you’re animating the mesh instead of the joint, the positioning might not be what you think it is after the DAE conversion.

1 Like

Yes, animating the joint not the mesh. Salient point though.

1 Like

@EvilleJedi - Sir, your issue (which I’ll make HODOR bitch about soon!) - is that you’ve got animations on joints with the same name. More than a single node with the same Joint name. JNT[PLASMATORCH4] - you’ve got a 2nd one with one of the Max ‘uniquifying’ variant names: JNT[PLASMATORCH4]_ncl1_1

@sastrei - The issue may be on my end, related to ‘empty’ animation channels. I’ll either fix it or explain what to do!

ALSO - Both of you are using BEZIER frames. The engine does support them, but right now only in NIS files. Though, hell - I think there’s a fallback that’s working in this case?

1 Like

So what’s the effect of using them? I do use bezier keyframes as well, my animation simply doesn’t run. Is that what you would expect to happen in such case? The DAE export should bake the animation though, I have to check what keyframes are present after export.

1 Like

Pouk, your issue may be something else - because the BEZIER frames are getting into the MAD files. I don’t think they’re gonna work quite right (I did the NIS work after the MAD stuff, so I actually haven’t tried this much). One way or the other BEZIER will be okay soon - woo hoo.

1 Like

BUG LOCATED. Indeed using BEZIER keys causes some nasty issues during MAD file save (oops). So for now, really, really don’t use those.

I imagine it’ll work once the next HODOR comes - but I’ll make sure with some tests once I get there.


Should we be using euler or quaternion instead? (I think those are different?)

Eh? No, BEZIER relates to the key-curvature types - use LINEAR, and you’ll be golden until I put the next HODOR (and UNHOD) release out (I keep saying ‘soon’, but I mean ‘soon’, really!)…

1 Like

oooh yeah looks like I named the children right but the parent was copied. It would be great if hodor would make sure that the children of the weapon hardpoints/repair/capture are all consistent if that is important.

it looks like I should use the bezier key frames to do ramp rates and then force a few keys in between and set them to linear. I will try that and see what happens (as well as fixing the naming) will that fix the weird offsets in game though?

Use LINEAR only - no BEZIER until I give the all clear :wink:

My dish animation is working now. Thanks @BitVenom!!! :smile:

Now to chase down those offset errors. @evillejedi how do you bring in your meshes to 3ds max? origins set to their rotation points and everybody clumped at 0,0,0 ?

also summoning @dkesserich as this thread will likely apply to the blender dae exporter as it has the same bezier/linear distinction.

Edit 2100 hrs: Eliminated the offset errors. Max was screwing with the origin point. Made use of the hierarchy tab and it’s “edit pivot” tools to correct the issue.

As of right now, the Blender DAE exporter sets everything to LINEAR interpolation automatically.

Which I realize could be problematic if someone does want Bezier curves linking their keyframes (once HODOR supports it).

I think for Blender it’s going to have to be a ‘bake your curves to keys before exporting’ thing (might be able to automate that) instead of explicit bezier support. Especially since I don’t have a bezier DAE to compare to, and then parsing that out and figuring out how to plug it into the exporter might be outside of my abilities.

1 Like

well it looks like removing bezier allowed the export to finish and the animation works at least to the point that it needs to loop(doesn’t loop)

ST: start frame in seconds
EN: end frame in seconds
LS: start of looping in seconds or is it offset from ST?
LE: end of looping in seconds or is it offset from ST?

The main issue However is I still have everything exploded into different orientations and shifted around all weird. It doesn’t seem to have any logical pattern. Some elements are properly aligned, and others deeper in the hierarchy are not or are relative to the hierarchy but shifted in the wrong axis.

collapsed modifiers, reset xforms, checked the 90 rotation on each joint, disabled animation everything looks fine in max.

the DAE also imports back into max looking fine. I guess I’m going to rerig it from scratch piece by piece and see what is broken.

  • ST: start frame in seconds
  • EN: end frame in seconds
  • LS: start of looping in seconds (past ST)
  • LE: end of looping in seconds (before EN)

So generally, LS/LE are zero. The decision to loop or not is made elsewhere (in the event or madstate that triggers the anim, if I recall?).


STF/ENF/LSF/LEF - The extra ‘F’ means Frame instead of defaulting to seconds. Can be way more efficient to use that depending on your software package.

As for rigging - It is extremely important to look at the Examples - the meshes are sitting with no transforms relative to their joints. ZERO. The joints get animated in a hierarchy - the meshes just come along for the ride. Often I’ll see a mesh which has a center and bounding-box super, super far from 0,0,0 (local) - and you can just tell it’s going to animate poorly because it’s moving relative to a joint that is nowhere near it.


ding ding ding - Really can’t highlight this enough…

started using STF ENF, works great, however the
LSF and LEF need to be set to zero like you said otherwise the animation doesn’t play

One of the things I found is that the X:90 rotation was NOT being propagated through the joints to the meshes like the examples (they showed 0,0,0 rotation, the examples had 90,0,0) When I rotated the pivot points X:90 the meshes ended up in the right orientation in game, but were still translated all over the place. (it would be helpful if hodor stated which mesh threw the WARNING - Unable to locate Geo instance under Root
- check for un-reset xform…?. I had to go mesh by mesh reseting xform and collapsing since it seems like HODOR does not like the pivot point being rotated without a xform reset, which is something that doesn’t show up on the 3dsmax modifier stack)

so I parented all of the meshes to the ROOT_LOD[0] instead of their JNT for animation and now everything lines up in game (no animation obviously) So for static ships I know how to properly line everything up.

Lining up the pivot point with the animation joints seems to have fixed most of the issues, however sometimes I am getting things flipped 180 degrees in game even though the pivot for the joint and the mesh are aligned at frame 0

I also have a problem where markers that are under a joint are playing the effect at ship 0,0,0 position. I have tried playing around with the pivots but have not had any success getting them in position without moving them to the ROOT_LOD and therefor not having them animated.