Shoulders are always one of the trickiest parts, so videos like this are always super appreciated 😄 Thank you so much, God bless you and your family always! 🙏😊
The solution I would probably implement is this: Two seperate IK and FK rigs. An influence slider onto a third rig (to switch between IK and FK smoothly), then set the Z vector based on a root bone of the mesh and give it a Z-Vector offset based on the angle between the of the attached Mixed_IK_FK_Arm bone and the shoulder bone, with a limiter function, so that it only moves up, when the angle between the two is small enough.
thanks for the solutions! For the bones you dont need to rename the other, with a bone selected symmetrize in edit mode and even if the mirror bone exists it will get replaced with the right one and the right (or left ;) ) name.
I've got a simple FK solution: copy each rotational axis of the upper arm bone as a driver to each rotational axis of the shoulder bone. This'll make the shoulder move however the upper arm does: basically a double rotation without any parent/child cyclical issues. To lessen the effect, go into each driver, choose scripted expression, and multiply it by .25, .5 or whatever influence you want. If you also need manual control of the shoulder (who doesn't?), create a new shoulder bone and parent the existing shoulder bone to that. Now all you need to animate is the new shoulder bone: the driver bone can be hidden but it'll still be there influencing the arm.
I have not tried this. But if se add this to a metarif,will it passed on to a generated rig? Im thinking of making a meatrig with all these extra features. Also the exmaple you showed with the elbow, chest muscle and knees. With my rigify save preset addon its super easy to save this as a new meatrig then and reuse vs doing it all over again each time
7:00 Right click>Symmetrize no more need to type or what ever, sometimes blender can break so ensure you either clear the bone role (alt-R) you may need to perform it once more (i have only ever had this occur once where it wouldn't accept symmetry due to my bone roll problems). As for my own problem i am using rigify for my rigs, when i follow these steps with my own rig i end up having my arm turn into a helicopter rotor that does not want to return to rest pose in posemode. It's almost as if the IK doesn't like it, i would like to use it however, does this work for rigify?
I found angle to be in RBF node [left side] after digging, and found out the items you select, even camera or light, have their own options list. I wonder if there's a way to use camera angle to influence shapekey with a threshold, or influence a custom property (like for anime faces)? For example, the bone and cam have a start angle, but when you rotate either bone or camera [a feedback loop] your shapekey slides or a custom property slides depending on how you record the setup speed. But I can't seem to get it to work or imagine it properly into RBF nodes lol... Maybe it can create a difference angle calculation? (I noticed there's an rotational 'difference' option inside of the variables for normal drivers--don't know if this was new or not). I did ask the creator but he was rude very fast. I mean fast. I said I should know what to do with RBFs, and overassumed a lot over small explanations... so i stopped emailing him smh... Usually maya community are this harsh, and he thought that the blender community functions the same way since he's new to it. It's one of the reasons why I left the maya community to join blender. Over priced and always mean for small things lol.
Thank you for this! But imo it could be better to reduce the influence of damped track, instead of reducing coply location for the target-bone. Cuz if you will try to make rotation of the whole body and pull an arm to the front, the target bone will appear somwhere inside the body and shoulder will go crazy.
What I did was have a shoulder control bone extruded from the shoulder in edit mode. For relations only set the shoulder control bone local location on and set to no parent. Set a collar bone Ik bone as shoulder ctrol bone. Pole target bone is the neck. In relations settings parent it to the top of the spine, and only tick local location. I think the parent keep offset in edit mode might be a good step to follow too! I got the method while following a tutorial from Darren Lile. The tutorial is like ten tears old at this point... and it still works!
@CGDive don't mention it! It's a ten part series so be mindful that it's a bit lengthy, but pretty basic once you understand it, and very good as a template.
@CGDive I'm sorry. What I meant was I made the shoulder rigging myself based on Darren's method of the knee and elbow control bones and applied that to the shoulder, and the key difference between the control bones are the IKs for the joints they control.
Thanks for the great tutorial! I have tried to apply this method to the Rigify Rig and in general everything is working fine, but there is a dependency cycle.
I managed to bypass the bone dependency loop. But another problem came up, since I had to add a new bone as a buffer and bind hand_ik and mch-shoulder_target to it with constraints, the function of snapping IK bones to FK bones position doesn't work anymore because constraints don't allow it.... please if you have time and opportunity try to apply this method to rigify rig and maybe make a short video on this topic
I couldn't get the bone to snap to the other so I just set it on the end of the bone instead. After I added copy location and chsnged to local space the shoulder control bone move nesr the hsnd control bone causing the shoulder to pull down toward the hand.
Great tutorial with great easy to use setups. Though i'm not sure why your shoulder has limit of 30 deg. up rotation, I can almost touch my ear with the shoulder without bending the neck xD
You can? Wow! :D As I said in the video, these are just quick base values. Each character is different depending on their flexibility, what they are wearing etc.
the method is good but there is a flaw in your method to add extra rotation, first making child of the mhc bone directly in the edit mode can ruin the hierarchy of bones, second when rotating the spine it over rotates, to fix you want to add the damped constraint to the mhc bone and then copy rotation set to before original, this way it doesn't overshoot and doesn't ruin the hierarchy.
I have two serious questions. One when I try to pose my character's leg on the -x location, the foot looks weird. Is that normal or do I have to do something to make it look right? The second question is, since I bought Auto-Rig Pro, do I really need Auto-Rig: Quick Rig?
Quick Rig creates a control rig from a simple rig such as mixamo, game rigs you downloaded from game engines etc. I don't know if you need it. Only you do :) The question about -x location is a bit unclear to me. I can't help, sorry.
@@CGDive I thought the normal auto-rig was for any engines. If I get Quick rig, will it mess up all of the hard work I put into my other rigs through Auto-Rig pro or do I have to go through the process of rigging them all over again? -As for the -X location question, when I move my characters leg on the -X location, the foot follows it but it looks like it's (the foot) is flat on the ground. I was just wondering is that normal?
Explained at 4:02. Notice what I do and read the annotation ;) Damped track points the constrained bone to the target. To make it not move by default, make sure that it is pointing exactly at the target in the rigs rest pose.
@@CGDive Yes i was going to delete my comment because i solved it in that way, unfortunately today i was very tired to follow a tutorial properly 😊 thanks again!
I'm not really fond of any of these, because in reality, clavicle moves depending on the location of the elbow, not the hand. Basing it on the position of an IK controller (or proxy hand marker) is not ideal: it works properly only when the arm is extended, not when the arm is bent. I prefer a two-pass IK method: do 2-chain IK with modified arm bones (head of humerus above clavicle head, closer to clavicle head) to get the elbow; then, do 2-chain clavicle->humerus to track this elbow position. Not really sure what would constitute a fully FK solution, because of course origin of humerus depends on clavicle rotation, but it seems like any FK solution would be trivial from an IK solution: just determine the position of a mechanism IK controller from FK bones.
I wonder if it really is impossible to make an automated FK shoulder bone. Of the top of my head it should be possible with drivers. I think I have done it in the past but again maybe I am misunderstanding, it went something like this. Make a new mechanism bone inbetween the shoulder bone and the upper arm bone ( i.e. the upper arm is parented to the mechanism bone and the mechanism is parented to the shoulder bone) Give the mechanism bone a driver that reads the relevant rotation and moves the mechanism up and towards the head with a desired sensitivity. Thats it, now you can rotate the shoulder bone freely to tweak the arm as usual and the mechanism will react to the rotation of the upper arm and simulate shoulder rotation.
If you think you have done it before, could you do it again and confirm that it works? I don't think I can recreate your setup exactly based on a text description of what you may have done in the past :)
@@CGDive So I gave it a go and it does seem to work. What I did was a simple test on the human meta rig from rigify. The drivers I used where as follows MCH y location : 0.175*sin(var) MCH x location: -0.175+0.175*cos(var) Note that the mechanism bone was extruded straight up from the tip of the shoulder bone. Remember to parent the upper arm to the mechanism bone (keep offset). Anyway, Given how much more knowledgeable you are than me I am convinced there is something I am missing but I would be very happy if the solution was this simple. Let me know your findings :D
So parent arm bone to mch bone, drive mch location by arm rotation. Isn't it alone will create cyclic dep. loop. On top of that we supposed to drive shoulder rotation - will lead to another loop. The main point of the video is to avoid those dep. issues?
@@CGDive So I uploaded the file but youtube deleted my comment, I guess they don't allow links. Sorry but it looks like I may not be able to share the file after all. Well anyway, the setup is so simple that you should be able to recreate it without having the file, let me know if something is still unclear
I've got decades in 3D and that is one of the best and simplest solutions I've seen in any package - Nice, well done!!!
Awesome!
Shoulders are always one of the trickiest parts, so videos like this are always super appreciated 😄
Thank you so much, God bless you and your family always! 🙏😊
I am really impressed by the simplicity of this solution. Thanks!
You are such a cool smart guy, you put complecated things so easy to understand, a true teacher! thank you very much!
Thank you, sir!
The solution I would probably implement is this:
Two seperate IK and FK rigs. An influence slider onto a third rig (to switch between IK and FK smoothly), then set the Z vector based on a root bone of the mesh and give it a Z-Vector offset based on the angle between the of the attached Mixed_IK_FK_Arm bone and the shoulder bone, with a limiter function, so that it only moves up, when the angle between the two is small enough.
TBH, I don't understand what your solutions is solving along with most of the lingo you used.
thanks for the solutions!
For the bones you dont need to rename the other, with a bone selected symmetrize in edit mode and even if the mirror bone exists it will get replaced with the right one and the right (or left ;) ) name.
Oh wow. I was SO close to your version of the Max Zhang solution, and yet I was missing a couple things. That target bone for the clavicle is genius.
I've got a simple FK solution: copy each rotational axis of the upper arm bone as a driver to each rotational axis of the shoulder bone. This'll make the shoulder move however the upper arm does: basically a double rotation without any parent/child cyclical issues. To lessen the effect, go into each driver, choose scripted expression, and multiply it by .25, .5 or whatever influence you want. If you also need manual control of the shoulder (who doesn't?), create a new shoulder bone and parent the existing shoulder bone to that. Now all you need to animate is the new shoulder bone: the driver bone can be hidden but it'll still be there influencing the arm.
Your videos are pure gold my friend! Thank you! Following you.. always!
please talk more about fixing weights on body parts like the hips
Copy the weights from a model that already has the required hip weights.
I have not tried this. But if se add this to a metarif,will it passed on to a generated rig?
Im thinking of making a meatrig with all these extra features. Also the exmaple you showed with the elbow, chest muscle and knees. With my rigify save preset addon its super easy to save this as a new meatrig then and reuse vs doing it all over again each time
Nice, im not a blender user. Im going to recreate the setup on maya. Thank you for the tutorial 😀
Cool!
7:00 Right click>Symmetrize no more need to type or what ever, sometimes blender can break so ensure you either clear the bone role (alt-R) you may need to perform it once more (i have only ever had this occur once where it wouldn't accept symmetry due to my bone roll problems).
As for my own problem i am using rigify for my rigs, when i follow these steps with my own rig i end up having my arm turn into a helicopter rotor that does not want to return to rest pose in posemode.
It's almost as if the IK doesn't like it, i would like to use it however, does this work for rigify?
5:55 (Maya poles, Softimage up pole vector). Yes. This solution is better for Blender.
I found angle to be in RBF node [left side] after digging, and found out the items you select, even camera or light, have their own options list. I wonder if there's a way to use camera angle to influence shapekey with a threshold, or influence a custom property (like for anime faces)? For example, the bone and cam have a start angle, but when you rotate either bone or camera [a feedback loop] your shapekey slides or a custom property slides depending on how you record the setup speed. But I can't seem to get it to work or imagine it properly into RBF nodes lol... Maybe it can create a difference angle calculation? (I noticed there's an rotational 'difference' option inside of the variables for normal drivers--don't know if this was new or not).
I did ask the creator but he was rude very fast. I mean fast. I said I should know what to do with RBFs, and overassumed a lot over small explanations... so i stopped emailing him smh... Usually maya community are this harsh, and he thought that the blender community functions the same way since he's new to it. It's one of the reasons why I left the maya community to join blender. Over priced and always mean for small things lol.
Thank you for this! But imo it could be better to reduce the influence of damped track, instead of reducing coply location for the target-bone. Cuz if you will try to make rotation of the whole body and pull an arm to the front, the target bone will appear somwhere inside the body and shoulder will go crazy.
Nice, thanks for the tip 👍
This is really brilliant - but what about Rigify? I could not figure it out: Any ideas
What I did was have a shoulder control bone extruded from the shoulder in edit mode.
For relations only set the shoulder control bone local location on and set to no parent.
Set a collar bone Ik bone as shoulder ctrol bone. Pole target bone is the neck.
In relations settings parent it to the top of the spine, and only tick local location. I think the parent keep offset in edit mode might be a good step to follow too!
I got the method while following a tutorial from Darren Lile. The tutorial is like ten tears old at this point... and it still works!
Darren Lile, thanks for the lead. Will check!
@CGDive don't mention it! It's a ten part series so be mindful that it's a bit lengthy, but pretty basic once you understand it, and very good as a template.
@@ty_teynium I just watched it I think. It's the one using 2.79 right? I don't think there was any shoulder rigging so I must be missing something.
@CGDive I'm sorry. What I meant was I made the shoulder rigging myself based on Darren's method of the knee and elbow control bones and applied that to the shoulder, and the key difference between the control bones are the IKs for the joints they control.
@@ty_teynium Oh, Ok... now I am not sure if you've actually watched my video ;)
Thanks for the great tutorial! I have tried to apply this method to the Rigify Rig and in general everything is working fine, but there is a dependency cycle.
That doesn't sound fine haha
Yes, you're right, I'm trying to figure out how to work around this, but so far I haven't managed to get it done. 😞
I managed to bypass the bone dependency loop. But another problem came up, since I had to add a new bone as a buffer and bind hand_ik and mch-shoulder_target to it with constraints, the function of snapping IK bones to FK bones position doesn't work anymore because constraints don't allow it.... please if you have time and opportunity try to apply this method to rigify rig and maybe make a short video on this topic
Hello. Great tutorial. Please like the other user suggested, if you can recreate this set up with rigify in a short tutorial, it would be fantastic.
Thank you so much for this tutorial ... this is so good
Most welcome 😊
This video is brilliant.
Hello. Great tutorial. Please like another user suggested, if you can recreate this set up with rigify in a short tutorial, it would be fantastic.
Will consider it, yeah! :)
I couldn't get the bone to snap to the other so I just set it on the end of the bone instead. After I added copy location and chsnged to local space the shoulder control bone move nesr the hsnd control bone causing the shoulder to pull down toward the hand.
Update: I just had to adjust where the shoulder target bone was located in edit mode.
Nice!
This will help a lot. Thanks.
Two questions. Does this method work with rigify and would I have to do this every time I rig a model?
Yes (but it may not be easy to do) and yes.
Great tutorial with great easy to use setups.
Though i'm not sure why your shoulder has limit of 30 deg. up rotation, I can almost touch my ear with the shoulder without bending the neck xD
You can? Wow! :D
As I said in the video, these are just quick base values. Each character is different depending on their flexibility, what they are wearing etc.
Thank you for the lesson
Always welcome
I wish someone could make a rig/amature system like action figures and their joints.
in years of animation I don;t remember having to use fk for any other reason other than the shoulder rotation
Awesome tutorial!!!
Thank you!
Thanks it's so experimental bro
I like it
Enjoy
Great Tutorial Thank you man !
You're welcome!
the method is good but there is a flaw in your method to add extra rotation, first making child of the mhc bone directly in the edit mode can ruin the hierarchy of bones, second when rotating the spine it over rotates, to fix you want to add the damped constraint to the mhc bone and then copy rotation set to before original, this way it doesn't overshoot and doesn't ruin the hierarchy.
do you have a tutorial per chance?
I have two serious questions. One when I try to pose my character's leg on the -x location, the foot looks weird. Is that normal or do I have to do something to make it look right? The second question is, since I bought Auto-Rig Pro, do I really need Auto-Rig: Quick Rig?
I was wondering the same thing about Quick rig. I got to try the thing about the -x location.
Quick Rig creates a control rig from a simple rig such as mixamo, game rigs you downloaded from game engines etc. I don't know if you need it. Only you do :)
The question about -x location is a bit unclear to me. I can't help, sorry.
@@CGDive I thought the normal auto-rig was for any engines. If I get Quick rig, will it mess up all of the hard work I put into my other rigs through Auto-Rig pro or do I have to go through the process of rigging them all over again?
-As for the -X location question, when I move my characters leg on the -X location, the foot follows it but it looks like it's (the foot) is flat on the ground. I was just wondering is that normal?
@@bratdoll332 You can move the foot on the -x location then you have to rotate the foot on the y until you get it straight enough.
Thank you so much for this!
my shoulders were looking so wack and i was messing with weight painting but this looks 1000% easier.
Why when i apply the Damped Track, the shoulder moves? like if the new ik is in a wrong position..
Explained at 4:02. Notice what I do and read the annotation ;)
Damped track points the constrained bone to the target. To make it not move by default, make sure that it is pointing exactly at the target in the rigs rest pose.
@@CGDive Yes i was going to delete my comment because i solved it in that way, unfortunately today i was very tired to follow a tutorial properly 😊 thanks again!
@@robertone6602 Ok, great. No need to delete it :)
I'm not really fond of any of these, because in reality, clavicle moves depending on the location of the elbow, not the hand. Basing it on the position of an IK controller (or proxy hand marker) is not ideal: it works properly only when the arm is extended, not when the arm is bent. I prefer a two-pass IK method: do 2-chain IK with modified arm bones (head of humerus above clavicle head, closer to clavicle head) to get the elbow; then, do 2-chain clavicle->humerus to track this elbow position.
Not really sure what would constitute a fully FK solution, because of course origin of humerus depends on clavicle rotation, but it seems like any FK solution would be trivial from an IK solution: just determine the position of a mechanism IK controller from FK bones.
I wonder if it really is impossible to make an automated FK shoulder bone. Of the top of my head it should be possible with drivers. I think I have done it in the past but again maybe I am misunderstanding, it went something like this. Make a new mechanism bone inbetween the shoulder bone and the upper arm bone ( i.e. the upper arm is parented to the mechanism bone and the mechanism is parented to the shoulder bone) Give the mechanism bone a driver that reads the relevant rotation and moves the mechanism up and towards the head with a desired sensitivity. Thats it, now you can rotate the shoulder bone freely to tweak the arm as usual and the mechanism will react to the rotation of the upper arm and simulate shoulder rotation.
If you think you have done it before, could you do it again and confirm that it works? I don't think I can recreate your setup exactly based on a text description of what you may have done in the past :)
@@CGDive So I gave it a go and it does seem to work. What I did was a simple test on the human meta rig from rigify. The drivers I used where as follows
MCH y location : 0.175*sin(var)
MCH x location: -0.175+0.175*cos(var)
Note that the mechanism bone was extruded straight up from the tip of the shoulder bone. Remember to parent the upper arm to the mechanism bone (keep offset). Anyway, Given how much more knowledgeable you are than me I am convinced there is something I am missing but I would be very happy if the solution was this simple. Let me know your findings :D
@@anjuro Any chance you could upload the blend somewhere. I am super eager to check it out :)
So parent arm bone to mch bone, drive mch location by arm rotation. Isn't it alone will create cyclic dep. loop. On top of that we supposed to drive shoulder rotation - will lead to another loop. The main point of the video is to avoid those dep. issues?
@@CGDive So I uploaded the file but youtube deleted my comment, I guess they don't allow links. Sorry but it looks like I may not be able to share the file after all. Well anyway, the setup is so simple that you should be able to recreate it without having the file, let me know if something is still unclear
This is nice.
This looks like how I've been doing it, unfortunately I never got the chance to do a tutorial. :\
What if you're using rigify?
It can be done but only for the IK arm.
nice
Does this work with rigify?
you should be create the same setup with the underlying rig of it (not the control or bbones rig)
It can be done but only for the IK arm.
Cool !
Thanks, mate!
best! :D
Can you post a download link to the .blend file?
sent on discord :)
me being autistic and managing to follow this tutorial after two and a half hours: 💀✨