Notifications
Clear all

[Closed] Scripted controller for arm twist bone

Hi guys and gals,

I have been trying to make some good and almost always working twist bone for the arm. As you can imagine, no luck so far. I got pretty close and that’s where I wanted to ask for some help and ideas.

I made a Helper1, aligned it to arm bone and linked it to clavicle. Then I created an exposeTM helper with arm bone as an “expose node” and Helper1 as “local reference node”. Now the Local Euler x rotation would be great to counter rotate the twist bone, except when arm bone rotation on y axis is around 89 degrees, the exposed x rotation will flip to 180 degrees (gimals I guess?).

Changing axis orders in exposeTm helper results in somewhat different results, but each is ruined with some sort of axis flip. Another almost working situation was if I changed the axis order for X to YXZ, this gave me -90/90 degree rotation, but after certain rotations on other axis, I got weird flip on X axis where rotating clockwise was not giving negative values anymore, but possitive and vice versa.

My first question is that would it be possible in scripted controller to somehow detect the sudden change in angles and kinda ignore it, stay on the previously value that was alright? I guess answer will be no :shrug:

Second question would be that I have noticed that when I create a helper, for rotation I use xyz controller and then for each x,y,z component I change the default controller from bezier float to tcb float. This tcb float controller then gives nice rotational values over 180 degrees. This sounds great to be used for counter rotating the arm twist bone. Unfortunately so far I have failed to make any use of that (as soon as I put some orientation constraint on the helper, it’’s xyz controller of course stops sending out any values, because no rotation is happening on that controller). Any ideas how to make use of this?

Thanks.

3 Replies
 PEN

Doing what you suggest just will not work well at all. You will get pops all over the place. As for getting the value from the object that is not returning it you are already doing it with an Expose TM so just do the same with it.

Some one out lined steps in the rigging forum ages ago on a way to reduce the flip. It was really detailed so no point in me doing it again here. I will have a look for the post but I suggest that you do the same as well as I might not find it.

Thanks PEN, i was looking for a solution on internet and didn’t find some definitive solution, so I doubt I could have get close to one

Thanks for the tip on the rigging forum, I will try to look for it. Will post here if I find it.