Skip to main content
Loading Explore guides…
Blender Robotic Arm Rigging · Acedra
Home
Explore
Engineering
Blender Robotic Arm Rigging
Sign in to save
Chat
If YouTube asks you to sign in, open the video on YouTube.
Watch on YouTube
Reload player
Transcript
72 segments
Copy
Hide video
0:02
Hello and welcome to Can I Rig It? My tutorial series where I show you how to rig real life objects in Blender. And in this video, I'll show you how to rig this robotic arm that is easy to move with just one controller. For this, we first need to create the main armature. Then, we set it up for easy control with an IK system. You will learn how to limit certain rotations so that the arm follows its own rules. After that, we will set up the clamp
0:32
and I'll show you how you can open and close it with just one controller. [music] By the way, I'm Nico, a 3D artist, and my passion are robots and other mechanical creations. Hello everyone and welcome to another tutorial. I was on a little break, but now I'm very eager to create more mechanical rigging tutorials for you guys. So, we're going to jump right into it. And uh as you can already see, this is what we're going to create today. So, this is a robotic
1:04
arm. Um this is a version that starts from the ceiling as you can see at the top. But what I will show you today is also applicable for robot arms that are mounted on the floor or on the wall. It doesn't really matter. This is just one example. But I will teach you one specific technique that makes it possible for you to create all kinds of various arms, no matter how many joints and digits
1:27
they have, no matter where they are mounted. So in the end, it should work as intended for your personal project. So specifically, what are we going to do here today? Well, uh we will create an armature for this kind of robot arm that is controlled just by one bone at the end. And this is this one here. So when I just move this one, everything will move accordingly depending on how we set it up. But as you can see, you don't need to touch any of the other bones. It's just this
1:59
one that will help us move and steer the whole robotic arm. So that's the main aspect of the arm. But we will also take a look at this little clamp here. So um this one we will use just one bone to open and close it. And we're also going to take a look at some pistons. If you've seen my tutorials before, you know they are all part of my tutorials because they are super easy to set up and they make everything look a little bit more complicated and more complex. So,
2:29
um that's why we're going to also incorporate them here. And by the way, if you want to follow along, you can download this project file from the link in the description below. It leads to my Patreon, but this file is completely free for everyone. Okay, so let's get started. Then we will start with a fresh new file. And as you can already see, there are some parts that look kind of weird. For example, the pistons, especially here, they are facing upwards or downwards. In the end,
2:53
it's just easier to align the bones with the pistons themselves instead of just trying to find the right angle and just eyeballing it. So, we're going to start with the main armature for the main arm. And what do we have here? We have, for example, this part here, which is only allowed to rotate in this direction. We have this part that is only allowed to rotate in this direction and so forth. At the end, we have like this joint that can move in all directions. This will make
3:20
everything easier for us because then we can just move it in all directions and we don't have to worry about certain axes. And at the end, we have this clamp with also some small pistons here. So, the first thing that we're going to do is create a chain of bones that will start here from the start of the arm. We'll go down here, up here, and go to the end where we create our main controller bone.
3:44
And this bone will control the whole [music] arm. And the way we do it is the same way we do almost everything here on this channel, and that's with the IK constraint. The IK constraint is super powerful. It lets you create a chain with two controllers, and you just move those, and everything in between will be calculated automatically. So, this is a super fun system that I use all the time. And here this will be the main driver for the whole arm. And one small
4:09
thing before we start, there are some shortcuts I use all the time. So it would be great for you to memorize those. One is uh for example shift s which gives us some control over where to put in our 3D cursor or maybe where to put in some geometry where the 3D cursor is because then we can align objects very precisely to each other so there is no like misalignment or anything. The second one is when we create bones. Ctrl tab. This lets me switch into pose mode very quickly
4:39
and we will do this a lot. So it's definitely good to have those memorized. But for your convenience, I will always show in which mode I'm currently am. Uh when you look at to the bottom left corner of the screen right there. Yeah, there you can see the mode I'm currently in. Okay, so let's get started. So the first thing that we're going to do is create the main chain of bones. And we're going
4:59
to start right here. So the first thing that we're going to do is put the 3D cursor where we want to have the first bone, which is right here. We select this object, press shift S, and set cursor to selected. So now the armature will appear here. So shift A, single bone, and there you can see it, but it's hidden by the geometry. So we go into the armature properties and check in front. So we
5:23
have everything in front. It's not obscured by the geometry. We go into edit mode by pressing tab and just go down and we will put it around here. Now we go back into object mode. Select this object here. And it has this pivot point here. So now with shift S again, we can put the cursor to the selection again. And when we go back into edit mode with the armature, we can select just this
5:47
little end point again. Shift S. And we can say selection to cursor. So that way we have a precise point where we put the start and end of the bones. So that's one way of doing it very precisely. But to make this tutorial not too long, I will just eyeball it. But I think you get the gist of it. Um how to set it like super precisely. So with E, we will extrude another bone and place it right here.
6:14
E again, we'll put it right here. And then we have here this one pivot point that will go straight up. So, we will create one more bone that was going to go up here. And then we should probably create one more here. But it's not necessary because this bone will already control this whole piece. So, we don't have to connect those. We can just go up here, put the cursor to the selection,
6:41
go into edit mode of the armature, and just press Ctrl+ A. And we can create a new bone right here. And just put it around where this little sphere is. We just need to connect those two by pressing Ctrl P. So we first select this bone, select the other one that should be the parent, Ctrl P, and say keep offset. Now we have the dotted line here that shows us that this bone is connected to this one. Okay. So in edit mode, we're going to create one more bone here. So just going down.
7:12
This will control this whole piece here. And now we need one more bone. This will be the IK target or the controller of the whole arm. And we're going to create it by just extruding one more time with the E from this point here. But we need to disconnect this bone because it only works if it's completely disconnected from all the other bones. So we do that by pressing AltP and select clear parent. Now this one is completely detached. There is no dotted line whatsoever. And
7:40
um that's pretty much it for now. So I will just quickly hide this one by pressing H because we need one more. And I'm just going to extrude it to the side. So E and press X to go to the side. This will be later on um used to control the rotation of this whole piece here. So that's good for now. I will press Alt H which will unhide all the bones that I that I hid. So Alt H. So this is our let's
8:08
call it IK target. Okay. So far so good. So now this is a good moment to parent all the geometry to the bones so we can see how everything behaves. The usual way is to just select the geometry then shift selecting the armature going into pose mode selecting the bone that you want to parent this geometry to and then pressing Ctrl P and then choosing bone. So now we can test if that worked.
8:34
If I go again into pose mode and rotate it, you see that the geometry is attached to the bone. And we can uh repeat this for all the other parts. But there is also a very handy add-on that I highly recommend. The link will be in the description below. And uh this lets you parent all the geometry to the nearest bone. And it's called parent to nearest bone. So uh you can just select the geometry that you want to parent. So this piece, this one, and also [music] this one.
9:03
And then you select the arateur last. You right click, select parent, and then parent to nearest bone. And it will calculate the proximity of the geometry to the bones and select the right bone. Hopefully, it doesn't work all the time, but like in nine out of 10 times, it works perfectly. So, let's see. We go into pose mode again and move the whole thing. Okay, this works. This is also working. This too. And this too. Okay, so so far so good. So now we can create the IK chain or
9:35
the inverse kinematics chain which is super easy. It's a constraint down here in the uh constraint properties. But there's an easier way and I always use this one which is you just select the IK target first. Then the next bone in the chain. And we're just going to quickly use this one as the bone that inherits this constraint. And all we have to do now is just press shift I. And it says right here add IK target selected bone. And now this bone here has the IK constraint.
10:05
And you see this yellow dotted line which means that the influence of this whole chain goes from this target to the first bone. And this is also indicated by the zero here. But you can also just limit the amount of influence by just limiting this chain by by choosing just two bones or three or four or five or six. So now when we move the IK target, you see what's happening? Yeah, we already
10:31
moved the whole arm. It's not moving properly yet, but we're going to get there. Okay, so far so good. But you can already see this is not what we want to have. And especially when I move it to the side, this is also not what should happen. So, how do we limit this? Well, there is an easy way, by the way. So, alt G to reset the position of the IK target. Each bone has its own bone properties,
10:57
a little thing that is called inverse kinematics. And this gives us some options how to limit certain rotations for each bone. For example, when we look at this one here, we can also enable the axis. So, we can see with uh which axis we're dealing with. And uh here we can see we have the z-axis, the x-axis, and down goes the y-axis. We can't see it right now, but trust me, it's there.
11:24
And we want this bone to only rotate on its Yaxis. And since the rotation of this bone is controlled by the IK target, we go into the bone properties into the inverse kinematics tab. And we can lock certain axes for being influenced by this target. And since we want to have the Y rotation to still work, we just basically need to lock all the other axis, which is the X and the Z-axis.
11:50
So now when we move this target again, you can see this bone doesn't just move wherever it wants. It only rotates on its y-axis. That's basically it. So it's super easy. And we can do now the same thing for all the other bones. We just see here which axis should still rotate. In this case, it should be the x-axis. So we go again here and lock all the other axis. The same way here, that's the x-axis. So we lock all the other ones too. this case here again we want to have the Yaxis
12:21
again rotate but not the other ones. So we lock everything but the Y-axis and the same thing here. This time it's the Z-axis that should be rotated. So we lock these and that should already do it. So let's see how it works now. So I will move this and you can see no matter where I move it, it's following properly. So this is already cool. We can also hide all the other bones by just pressing shift H. This way everything will be hidden except the selected bone. So shift H. And
12:56
now we can see just the main bone and everything is clearer. So we can see if all the parts rotate properly. Okay. So now I will press Alt H to unhide all the other bones. I will maybe change the display to sticks so the bones don't obscure the geometry. And uh one thing that I would like to adjust is um you can see here no matter where I put the put the target on this bone here barely
13:20
rotates. It rotates a little bit but I would like to rotate it a little bit more. And um since this one can rotate in all the directions, this one does need to work so much. So uh what we can do, we can increase the stiffness of each bone. And you can do this also in the properties. You can see the y-axis is still open. It's not locked, but we can increase the stiffness for it so that all the other bones should do more of the work to solve this whole chain. So now when we increase
13:51
the stiffness of this one, this rotation now needs to work more to still be able to reach the target. So now when we move it, you can see this bone here barely rotates. It has some high, let's say, like friction, so it doesn't rotate too much. But this one actually needs to do more work. And this can also make up for more interesting movements and positions which I also like a lot. So I will maybe
14:18
put it at as 0.5. So no matter where you go, both of those rotations need to work to get us where we want to go. So this is good and all, but the system is not perfect and it will work for most of your projects, I'm sure, but you need to be aware of a few limitations. So this all looks great, right? Yeah. But if you want to move it around way too much, for example, around like 180°, maybe a little bit more, then this will happen. And this happens because the constraint always
14:53
wants to solve for the shortest path between the beginning of the chain and the controller. And sometimes it needs to recalculate, especially when having these uh limitations set. so that suddenly it needs to recalculate and everything looks kind of weird suddenly. And um there are a few solutions but none of them are really perfect. For example, you can adjust the stiffness for some bones. For example, for this one, when we go here into the inverse kinematics tab and adjust the
15:22
stiffness, it goes back to going down. Yeah, we can also adjust the stiffness of the first one. So there you can kind of tweak it and hope for the best. So for this example now, now it kind of works. So the stiffness of the first bone was a little bit too much. So now we were able to move it even further than just like 180° maybe up until this point. You can also use a pole bone to um say it that this part should always point upwards. But uh when you introduce a pole um
15:54
and for you who don't know, when you go into the constraints, you can select a pole target. This is the target that the uh bending will point towards. And in this case, I'm actually not sure where to put it. Either at the bottom or at the top because we have basically two bent parts. But either way, this will deactivate the IK locks of the first bone, which we still need. So, uh yeah, everything has its up and downs. So, um just be aware that there are certain limitations of it.
16:25
Okay, so that was already the main part, but we're not done yet because we still have the pistons, which will be super easy. So, we go back into edit mode and we will create a few more bones. Um, let's go back into object mode and put the 3D cursor again where the pistons are. So, for example, here. So, shift S, cursor to selection. We select the armature, go into edit mode, and just press shift A to create another bone. We move this one a little bit more down. So, this is
16:56
already great. We go back into object mode. Select this one. Shift S. Cursor to select it. Select the armature. Back into edit mode. And another one. Shift A, which will create another bone. We make it a little bit smaller. The size doesn't really matter in this case, but I will just make it a little bit smaller. Then we need to also parent these bones to the according parts. So, this one will move with this whole piece. So we need to actually parent it to this one. So select
17:24
this one with shift and ctrl P keep offset. The same thing with this one. This will be parented to this whole arm. So the the beige geometry which is controlled by this bone. So we will parent it to this one. Keep offset. And now we need to make those two bones point at each other. This way we will create the pistons. So no matter how the arm is positioned, they will always slide into each
17:50
other. So the first thing that we could do is just let them point at each other which is possible. Yes. But sometimes it can create some little errors and I would advise to not do that because then you create like this kind of dependency loop and since they both move at the same time it can cause some errors here and there. So what I like to do is go back into object mode and create some
18:14
empties that both bones will look at. So shift A create an empty. And I like to use those spheres. Maybe make them a little bit smaller. So we will duplicate this one and put it also where um this piston is. And we can again select the empty shift select the piston. Press shift S and then just say selection to active. We will also parent these to the geometry the same way. That's very important.
18:38
They should not be parented to the bones or anything else. Just to the geometry. So Ctrl P object keep transform. And the same thing with here. So, shift select the object, Ctrl + P object keep transform. And now we can go into pose mode again and use some bone constraints. And in this case, what we need is the damp track constraint. [music] It's fairly easy. It just points towards a certain object. And in this case, the object will be this empty here. So, you can just take the
19:09
picker here. And as you can already see, it points towards the empty. So now when I move the empty, this bone follows the empty wherever it is. The same thing we're going to do with the other bones. So Ctrl tab to go into pose mode again. Then track and we will select this empty here. But now we also need to parent the geometry to the bones. So we go into the armature properties and just select the rest position to reset everything as it was before. And then we can just select
19:38
those two here. Select the armature. Right click, parent, and again to nearest bone. This should already work. And now when we go back into post position, you see both objects got parented to the right bones. Now when we move the whole arm, you can see right here the pistons work as they should. So that's already awesome. So now all we have to do is do the same thing for these here. I will just uh fast forward to this part because it's the same process as here. So let's go.
20:12
Okay. So now when we move the IK target again, you can also see here that the pistons are moving properly. And one more thing before we go to uh rigging the clamp is to make our lives a little bit easier, which is to make the bones look a little different because all the bones look the same, but they have different importances. And to do that, we have this little add-on which is free, which is called bone widget. And this gives you a big list of various little gizmos that you can
20:48
use to make the bones look differently. So it's a little bit easier to distinguish all the bones. So, and for the main IK, I like to use just a regular circle. So, I just select this and press create. And now I have this little circle that moves the whole arm. For this one, this will be used to rotate this whole head here. I will choose the roll. So this way we can now rotate the whole
21:14
head here with just this one gizmo. So now [music] we will parent this to this bone. So we will shift select the armature, go into pose mode again. So ctrl tab and then ctrl P and we set the parent to bone. So now when we go back, select the armature, go back into pose mode. We can now move this whole thing. And one more thing that we can do, we can just limit the rotation of this bone here. We will
21:40
lock it here and lock all the axis on the side here except the X-axis. So now when I just press R to rotate, it only rotates on the X-axis. Let's go to the view from the front and we will create more bones for this clamp here. So let's put the 3D cursor to this pivot point. Select the armature. go into edit mode and press alt A again to create a new bone. I will just scale it down because they are very big and just move it right here. That should do it with E. I will extrude
22:14
one more. And let's put it right here. The same we're going to do on the other side. And we can maybe just copy this one. So, select both bones. Shift D to duplicate to move it along the Yaxis. And then we can just press CtrlM to mirror. And we just choose the Y-axis. We just align it right here. That should do it. We can also already create the bones for the pistons. And uh we currently the pistons are aligned perfectly to face each other. We don't want to have that in
22:43
the beginning. So I'm just going to press Alt R to reset the rotation. But I will rotate it 180°. The same thing with here. So reset it. Then R 180. And the same thing with this one here. Alt R and then rotate it 180. And the same thing here. So now when we create a new bone right here, edit mode, shift A, scale the bone down all the way down here. Do the same thing here. But we need to parent them because with shift A, you create a complete new chain.
23:22
We need to parent them to this one here. So in edit mode, you just select all these bones right here. Then this one to the last. Ctrl P. Keep offset. And now we have the relationship lines showing that these are now connected. These and these ones should be connected to this whole part which will be controlled by this bone. So we just parent this to this one here. The same with this. Keep offset. Awesome. So now we go back into pose mode.
23:53
We rotate this piece and we see that yes the bones move but not the geometry because we forgot to parent the geometry. So we will select all those major pieces the two piston parts the two clamp parts and then the armature right click parent to nearest bone. And now when we go back into pose mode we rotate it and yes. And before we go any further, we can set up the pistons here again, which is fairly easy because in this case, we actually don't need any empties because
24:24
we already have some parts, these hinges here, as some targets because they are at the exact point where the bones should be pointing towards. So, we can just use those as the target. Ctrl tab to go into pose mode again. We select this bone. This should point towards this little hinge. So we go into bone constraints damp track and choose this one here bolt03 as the target. Okay. So now when we rotate we can already see yeah this is working well. But now how
24:59
do we get one more bone that will control the opening and closing of the clamp? Well first of all we need a bone. So let's for example select these two here. And when I now press shift S and say cursor to select it, it will take both origin points and take the average. So the middle here, cursor to select it. Now the cursor is there. And now when we go back to edit mode, press shift A. It will create a bone right in the middle. Let's move it down here. So this will be
25:29
our controller for the opening and closing. Okay, this looks good. And this bone will be parented to this one. So alt P keep offset. That's good. Can also name it with F2 to let's say open close. How do we get this bone now to control the opening and closing? And obviously there's a constraint for that which is called the transformation constraint. So we go back into the pose mode, select the bone that should be controlled and we add the transformation constraint. And this
26:03
looks a little bit complicated when we open up all those options here, but um just bear with me. It's way easier than it looks. So, first of all, we need a target. The target is the bone that will be controlling our rotation of these bones here, which is obviously this open close bone. So, we select the target. First, we select the armature. Then, we select the bone, which is open close. So,
26:27
now we selected this one. And now you can see this map from so from this bone here we choose a range of location that should control the opening and closing. In the map two area we choose the angle which should be rotated as soon as we move this one up and down. So first we choose the range of the bone and right now it's at Y0. So it's local Y. Oh, by the way, we should also change the space
26:59
to local space for both. Otherwise, when we move the whole arm, they would also be influenced. It's uh position would change and this would trigger also the rotation. So, both local space. Now, we want to move it let's say from zero to when we move it up let's say to minus 10. So, this will be our range from 0 to minus 10. So we go here, choose location because the map from is the changing of the location and in the Y because it's the local Y-axis we select -10 to 0. So this will
27:35
be our range. And now we choose when we move it from 0 to minus 10, how far should it rotate? And for this we have this area here. So first of all we have to change it from location to rotation. And this is now pretty confusing. At least it was for me in the beginning because you have like the XYZ, you have also XYZ for each of them. So what does it mean? Well, after a long time of figuring
28:02
this out, I finally got it. So we have to focus on this part here. We are looking for the source axis for the Z rotation. Our bone will be rotating on its Z-axis. So we go to the Z part here. We already checked rotation. And now the source axis is the axis well of the source object which is this bone here this open and close bone. So um since it's moving on its y-axis we have to take the Z source and change it to Y. And then the Y movements will trigger the Z rotation on this bone
28:35
here. And now we just need to figure out how far it should rotate. So we can go here into the uh Z rotation and just see. Okay, let's see. Maybe to about like 70°. Yep, that looks about right. So, we go here and say, okay, between 0 and 70, it should move. So, let's put it in there. And it already moved. And that's because it's inverted currently. So, if we move it up and down, it triggers the opening. It is also okay. If you want to have it like this, then it's perfectly
29:00
fine. But I want to have it the other way around. So, I will switch those numbers and say from 70 to zero. And now when I move it up, it opens. And that's basically it. So, that's the whole secret behind the transformation constraint. You don't have to worry about all the other fields here. So what we can do now uh we can copy this constraint from this bone to this bone. So we can select this
29:21
one then this one after that with shift Ctrl C copy selected constraints transformation. And now when we move it up and down they rotate in the same direction. So we just need to change the direction from 70 to minus 70. And now when we move it up and down yay it's opening and closing. We just need to um also add it to those two bones. So uh we can copy it also from this one again. Ctrl C. Copy it. And now this should in theory also rotate in the same direction. Right now yeah
29:57
it's moving outwards. So we also need to change its rotation to minus 70. And now when we move it, yes, this is what we need. So the same thing will happen to this bone. We will copy its constraint, but we will also invert it again from plus 70. Now the clamp is opening and closing. So that's pretty cool. One thing that will make things a little bit easier maybe, first of all, we can change this gizmo to well, let's take this arrow for example. Yeah, but it's very loose. It moves
30:31
in all directions. So we can limit its movement with a um limit location constraint. So we can for example set a maximum and minimum for all the axis and we want to lock all the axis except it has to move from 0 to minus 10 up and down. So X will be locked between 0 and zero. The Z will be also locked. Oh also we need to set it to local space. Yeah that way it won't like be reset to the world
30:57
origin. And Y will be also limited but the minimum will be minus 10 and the maximum will be zero. So now when I just press G and move it, it doesn't move anywhere else. I just can move it left and right, but it doesn't move. It just moves in its own limited space between 0 and minus 10. Okay, so this looks pretty good so far, but there's just one [music] little thing. You can see this this
31:24
bone here is rotating depending on where we move it. But I would like to always point downwards and have full control over its rotation. Not that it's rotating by itself depending on where I move it. But that's a super easy fix. We can go into the IK constraint. And there you see there's this rotation check mark that is unchecked. And this makes this bone to be aligned with this bone also. If I just quickly clear the bone. So this one here, they both are very independent of each
31:57
other. But we can make it that this bone here has the same rotation at as the IK target. And so as soon as we check it, you can see it automatically snaps into the rotation of the IK target. And now when we move it, I will just quickly create the circle again. Now the head always is pointing downwards. But if I want, I can still rotate it in all the directions. So that's no problem at all. And now you have this cool arm that is moving everywhere. Uh we can now maybe create some
32:35
collection. So select all the main parts that will be controlling everything. Everything else is not important. We can press M and create a new bone collection which I will call main. Create. And if we go to the armature properties, we can hide the bones collection which is all the other bones. So we only have the main collection. And now we have just this part opening closing. We have this one
33:00
to move the whole arm. and this one to rotate it. And uh now you're probably wondering um wait a second, there are still some parts missing, right? And you are correct. We still have these cables here that are kind of like jiggling and moving with the arm. And for these, I have an extended version of this tutorial over on my Patreon. So if you'd like to see how to set up those uh cables and how to move them dynamically and wiggle a little bit, you can see this all in
33:29
this extended version of this tutorial. So if you are curious about this, please consider joining my Patreon. You will have access to the long version of this video, but also the extended versions of some other tutorials that are also here on YouTube. Other than that, you will also have access to my rigging course which goes over various principle of mechanical rigging including like robotic arms, legs, gears, pistons, and cables. And if you just want to have the course,
33:55
it is also available on Gumroad and on Superhive. So, to support me and my work, either my Patreon or my shops are the best way to do so. The second best thing you can do is just liking this video and clicking on the like button or subscribing to this channel. This really helps me out a lot. And also, please let me know if I did everything right or maybe there are better methods that
34:15
I used. Please let me know in the comments below. I would love to hear your feedback. If I did good, if I did bad, please also let me know so I can do better in the next videos. Other than that, thank you everyone for watching and I hope to see you in the next ones. Take care and bye-bye. [music]
Here to help you learn
Sign in to keep a private conversation with your course tutor.
Ask me anything about the material…
Sign in to chat