Home Website Youtube GitHub

EPIC_Spine module and the EPIC_Arm module joint orient issues

NOTE: Original post from @Taylor_Wright

I’m having a lot of weird joint orient issues, both with the EPIC_Spine module and the EPIC_Arm module.

For the spine module, the spine joints never directly orient towards their children. There is always an offset in the child’s TranslateZ.

For the arm module, the lower arm, lowerarm twist, and hand all have erroneous translations and joint orients.

The lowerarm twist is particularly egregious:

I can attach my guide file if needed, but I can’t see anything wrong with it.

Hello @Taylor_Wright

I am checking with the metahuman template. Not sure if I understand the problem.
Are you asking to point the joint to the next one?
For example in this image is the X axis

some sample data showing the error and the correct position will help. The image attached looks good to me.

the forearm roll will twist a little to interpolate the hand and elbow orientation

this is more visible with more roll joints

Hey Miquel,
Sorry, I could only post one image but Chris has now opened up my permission so I will post more.

Yes, I would expect parents joints to orient towards their children. I have never had this issue in the past with other Spine module (usually we use the spine_ik_02 module).


Each child joint has an offset in the .tz. It’s not what I would expect to happen.

For the arms, this is all at rest pose:


The lowerarm and the hand have the same orientation. However, the lowerarm twist is cocked at 45 degrees off the axis. This is definitely not what I would expect and I haven’t seen this with the other arm modules. Also, the lowerarm and hand itself have odd joint orients:

I would expect only a rotation of the Z, with none on the X. Ideally there would only be one axis of rotation along the arm plane.


Thanks for the info @Taylor_Wright I will check this more carefully ASAP

@Taylor_Wright EDIT: I think, I have found the source for the translation values in the arm
is related to the way the roll is calculated using the rollspline solver and the little value that we have in the joint orient (x axis in your example)

EDIT: the values were always there in other components using the spline roll solver

However, the position is the correct

For example freeTangents arm and legs use the maya IK spline, this will not have that value

I will keep checking this to see if I can get the value only in one axis

Thank you, I appreciate it!

Hello @Taylor_Wright

I have fixed the offset in the roll bones.

still working in the other stuff


Awesome! Thank you, this will be a huge help.

@Taylor_Wright I have opened a ticket for this and I will start to commit the changes soon

@Taylor_Wright about the spine joint orientation I think is is correct. Or at less is what I expect from the component design and implementation
Here is an image comparing Epic spine, Epic Cartoon spine, and S Shape spine

The joint orientation is based in the curve tangent that drives it, not like the spline roll solver that aims to the next joint.
the spine_ik_02 is built always straight so maybe you didn’t note it?

Anyway I will review it to see if I can aim at less the last joint of the chest

added a little change to get a less the last joint of the spine section, oriented to the chest joint (Note that the chest joint is named spine_05 or similar)

This is awesome, thank you Miquel!

1 Like