talk.bindpose.com has been shut down on the 6th of March 2021. You can read a bit more about it here.

You are currently reading an archived copy of the latest content, with all the usernames deleted.

FK/IK with blend colors node not working

by user59 posted 28-02-2018 | 6 comments

Hello, everyone!

I have an IK and a FK chain that I wanted to blend into the result one with a blend colors node. I saw this method was preferred over constraints due to its speed. I had FK rotation as my first input and IK rotation as my second and then the output would go in the result chain rotate. Every time I would set a connection between the nodes, I could see my joints slightly shifting position which caused them to not be aligned anymore and at the end, nothing would work, the rotation of the result chain wouldn't cause any movement.

I had cleared my joints history beforehand and froze their transformations. When I would try to do the same for translation, at the end the rig would be broken in all three chains at 45 degrees from each other, stretched on the ground plane.

Does anyone know what I could have done to prevent this or what went wrong? Thank you!

 

by user9 posted 01-03-2018

You might need to put those joint chains in the same space, you can simply group them under a transform node.

What you are actually doing is blending the translate and rotate value. If you want them to sit in the different space. You can use constraints because it will blend the space based on worldSpace position.

Or you can decompose the world matrix and then blend them.

The other reason that you IK chain has a tiny values is because the algorithm of IK is trying to match the joint transformation until it reaches a tolerance value. Meaning it's not gonna be perfect matching at every moment. If I am not mistaken, you can change this value in ikSolver node, access it through outliner by disable DAG obj only.

Hope it might help. :D

 

by user59 posted 07-03-2018

Thank you for your reply!

I have tried grouping them under a transform node, but the joints kept moving on their own after I set up connections as before.

Unfortunately I am still fairly new to using nodes and I have not completely understood what I could do with the decompose matrix.

Also, I'm afraid I did not understand what you meant by the IK chain having tiny values.

I think I solved my issue with the pairblend node as someone suggested below, but I would be grateful if you could go in a bit more detail about your solutions.

 

by user101 posted 28-02-2018

First, try using pairBlend node instead of blendColors. Connect FK Translate and Rotate to pairBlend's inRotate1 Translate and inRotate1 Rotate, use inRotate2 Translate and Rotate for IK. When the weight is set to 1, it'll be driven by IK.

Here is an example: https://i.imgur.com/2GC1QAG.jpg

Make sure your 3 joint chains are sitting at the exact position. That might be the problem but of course i'm not certain. If you have time, rebuild your first chain with the orientation you want, then duplicate twice, rename and then without touching anything go for the blend setup.

 

by user59 posted 07-03-2018

As I have just tried the pairBlend I'm almost 100% sure it is working. Thank you!

I have tried building everything clean as you suggested one more time for the blendColors, but still no success, the joints still keep moving every time I establish a new connection.

 

by user8 posted 01-03-2018

Is there an added benefit to using the pairBlend node? I see that it has a few extra parameters and it is geared towards translations and rotations whereas the colorblend is "meant" for rendering and texturing.

 

by user101 posted 01-03-2018

With blendColors you have to use one for translate and one another for rotation, with pairBlend you can do both with one node(as the name states). Plus when you connect your rotation to blendColors node, it'll create a unitConversion node, you don't have that with pairBlend. All in all, less nodes. These are the advantages i know of and it's pretty convenient to switch over from blendColors.