Jump to content

Applying IK-Spline to joints breaks joint positions


Recommended Posts

Dear all,

 

It has been days that this problem is troubling me and I have finally managed to isolate it. Whenever I create a joints rig, use the Character > Convert > Joints to Spline command and then apply the resulting spline to my rig via the IK-Spline tag, it breaks the positions of my joints, see screenshots before and after applying the spline to the tag. In case there is a geometry bound to the joints, it completely f**** up the pose. The problem also persists when I manually draw the spline. I have also attached a minimal working example as .c4d file for further inspection.

 

Is this a known bug, if yes how can I work around it? Or am I doing something wrong? Help is direly needed.

 

Thanks a lot in advance!

 

Best

ddkk

 

c4d s22 macOS 14.6

Screenshot 2021-06-07 at 11.43.52.png

Screenshot 2021-06-07 at 11.44.03.png

spline_ik_bug.c4d

Link to comment
  • 2 weeks later...

Over a week and no responses  😞

Rather disheartening...



I have a similar'ish problem as the OP,  where I have a creature with a long neck. It's curved a bit, but I didn't think that'd matter.  Put spline in, assign Spline-IK, watch as the neck flips upside down without warning.
I used the same approach as I've used on monster tails and stuff, checking alignment of joints and etc.... Works there,  messes up horribly here.  I'm struggling to understand how this feature works and why it doesn't when it doesn't. 

 

neck.jpg

Link to comment

Hey DDKK

I found that either switching the spline IK tag from fit to relative, or switching the spline type to another type can give more accurate initial placement.

However, if you specifically want the IK Spline to have the "Fit" behavior and the spline to interpolate linearly, a neat little cheat would be to set the spline to bezier, and to set all the vertices to hard interpolation; All the points should remain in place when setting up the IK Spline.

I hope this helps.

 

SYLXERIA if you could post a your scene, I wouldn't mind taking a look and trying to help. 🙂

Link to comment
6 hours ago, Matches said:

 

SYLXERIA if you could post a your scene, I wouldn't mind taking a look and trying to help. 🙂

That would be absolutely amazing  if you could, thanks for the offer!  I'd also really appreciate just being able to know more about the How's and the Why's of all this, since the worst and most frustrating part isn't necessarily "It's not working" but not knowing why it's not working.  I watched a few YouTube videos on Spline-IK, watched the portion of GSG-U's  Intro to Rigging tutorial (Never understood that xPresso setup that called for specific coordinates. Wouldn't that break the rig if the character moved from its neutral position since the coordinates are now different? Or is it Relative?)  and in all cases it just looked simple. So I follow that setup and usually it works, but when it doesn't I don't know why.

 

I know it's dependent on the joint alignment but to the best of my knowledge this dinosaur's neck is aligned properly - or at the least, isn't aligned any differently than other parts of models where the Spline-IK did work correctly.  Having a fix would be great, knowing how to fix it myself next time would be better - if you know what I mean 🙂

 

 

The last thought I had was maybe it's because of the weighting, which I'm still fixing since it was imported in through DAZ's Bridge, which is currently having some 'issues' - mostly with older content.

Brachiosaurus DR.zip

Link to comment

Hi, SYLXERIA

Having looked over the file, and not seeing the initial setup, my guess would be, that the joint orientation was setup with the z axis pointing up the chain instead of down, which caused all of the joints associated with the ik spline, to flip approx. 180 degrees around each one's respective x axis.

When setting up an ik spline chain, make sure all the joints' alignment matches the axis in the ik spline tag's align field, and that they point with their positive side facing down the chain, from the root to the end.

If you have an earlier version of your scene, take a look and confirm the direction the joints were facing before you applied the ik spline tag, and see if that fixes the problem.

I hope this helps you 🙂

Link to comment
3 hours ago, Matches said:

Hi, SYLXERIA

Having looked over the file, and not seeing the initial setup, my guess would be, that the joint orientation was setup with the z axis pointing up the chain instead of down, which caused all of the joints associated with the ik spline, to flip approx. 180 degrees around each one's respective x axis.

When setting up an ik spline chain, make sure all the joints' alignment matches the axis in the ik spline tag's align field, and that they point with their positive side facing down the chain, from the root to the end.

If you have an earlier version of your scene, take a look and confirm the direction the joints were facing before you applied the ik spline tag, and see if that fixes the problem.

I hope this helps you 🙂

That was the initial setup actually,  but  yes that fixed it!   It's surprising that I overlooked that for so long but it feels obvious now that you pointed it out.

The idea that the joints in the neck would need to have the Z axis going UP the neck opposed to the tail joints having the Z going DOWN it  instead of the whole length being aligned the same  never really crossed my mind until now.

 

Now that you bring all this up, it does make sense - since the tag is applied to the base of the Neck going up, in reverse of the direction the Z axes are pointing. So reversing them was one solution, maybe putting the tag at the bottom of the neck chain and have it going down would have been another. Either way, it's solved now.


Thank you again, very much - it's one of those 'simple questions' that's been bugging me for so long, and it's finally been answered!

Link to comment
  • 2 months later...
On 6/18/2021 at 2:06 AM, Matches said:

Hi, SYLXERIA

Having looked over the file, and not seeing the initial setup, my guess would be, that the joint orientation was setup with the z axis pointing up the chain instead of down, which caused all of the joints associated with the ik spline, to flip approx. 180 degrees around each one's respective x axis.

When setting up an ik spline chain, make sure all the joints' alignment matches the axis in the ik spline tag's align field, and that they point with their positive side facing down the chain, from the root to the end.

If you have an earlier version of your scene, take a look and confirm the direction the joints were facing before you applied the ik spline tag, and see if that fixes the problem.

I hope this helps you 🙂

Again with a problem and months later but;  what do you do when the chain just flips into reverse?  I've tried the Z pointing up the chain, down the chain,  every time the whole neck hierarchy just goes and reverses itself and the head ends up in the chest.  Are the X/Y  axis supposed to be in a certain direction too?

Link to comment
11 hours ago, Matches said:

It's difficult to try and diagnose the problem without seeing the actual scene. Please upload your updated scene file and I'd be happy to try and help. 🙂

 

8 hours ago, everfresh said:

my guess would be that your joints have a different scale than 1 before you applied the spline ik... but yeah, hard to tell without  file.

 

 

I'll get a scene file up when I get home to my work computer;  it's a problem I've had more than once, where a figure's neck will just flip backwards but things otherwise work fine. 

 

Link to comment

Strangest thing,  I go and open up one of the figures to recreate the situation I was describing, and its neck didn't flip its joint chain in reverse, but instead flipped upside down.  The Z+ is going up the chain instead of down though, but it ends up deforming like with the dinosaur much earlier if I reverse their direction.

 

The snake figure looks like its not doing anything weird right now, but I remember doing something to it a while back, I just don't remember what - the only problem its having right now is the body twisting randomly when moving a handle  (The setup is a temporary one, I've actually been meaning to re-work the rig setup since having 140+ joints didn't sit well with me)

 

I apologize for all these questions about a basic topic,  I still feel I'm not much more than a beginner when it comes to a lot of topics, character rigging/animation being one of them.  Actually felt hesitant to ask for so very long because I felt the things I would have trouble with were "too simple" of a topic to seek help over ahah...

SplineIKCharacters.7z

Link to comment

I took a quick look at your constrictor scene, and the first thing I noticed was that in the neck chain, joints 23-41 were twisting off course and not keeping a consistent up axis. Once I fixed this, the rig behaved predictably without giving weird twists.

Try it for yourself and see if that helps. 🙂

Link to comment
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • LATEST ACTIVITIES

    1. 0

      Nodes Modifier result isn't updated anymore

    2. 220

      Scene Nodes | Capsules file pit

    3. 3

      Flipped clones in multi-segments curve

    4. 2

      How to create continuous UV texture for irregular wall like shapes ?

    5. 52

      Looking forward to the next C4D release

×
×
  • Create New...

Copyright Core 4D © 2023 Powered by Invision Community