How to constrain joint when using two bone IK?

I am developing arms for VR, make hand follow controller.
I have separate arm meshes and animation blueprint like in below.

this AnimBP is for left arm and AnimBP for right arm is about same as left one except for offset rotation.

problem is as show in this picture, left arm joint is bent opposite direction. right arm is just fine.

Since they are separate mesh and animBP i didn’t make one hand with negative scale [-1, 1, 1] for other hand. both of them are [1, 1, 1].

I have seen FABRIK might be solution for this but those arms just don’t have Effector information in this case.

how can i figure this out?

When solving a two bone IK, the middle joint (elbow or knee) has a range of valid positions - anywhere in a circle that in in the middle between the two outer bones. In your case the left arm is picking the “top” of the circle when you want somewhere near the bottom.

You can’t constraint the angles with the two bone IK solver, but you can provide a target position which the solver will try to position the middle joint near - so it will pick the point closest on the possible circle to that location. So you set that location off to the side, but the hips and the elbow will solve to be in that direction.

The property is called JointTargetLocation. Like the effectors, it can be relative to a bone or not - JointTargetLocationSpace and JointTargetSpaceBoneName tell the solver where you have defined it.

That should be all you need, but if you want to see examples of using JointTargetLocation it is used in the content examples IK examples.

I thought JointTargetLocation is for shoulder not elbow, i was totally misunderstood. now it works perfectly! Thank you, you saved me a week.

Hello!I am also developin arms in VR,But i have a big problem,that is arms’ rotation.If i have a rotation in real world,My VR Arms don not rotate.How do you solve that?