Rigging chains and Scoprion's hook in Blender

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] hi everyone eric from p2 design here in this video i will show you how to rig a hook or a graph node get over here this tutorial was a request from twitter but you can leave your request in the comment section below the tricky part is indeed the chain whenever you want to rig this kind of equipment but it's not that hard there are just a couple of tips you should apply whenever you are reading this kind of equipment or animating them and i will show you them right now let's get started all right the first thing we need is a hook and one ring from the chain to generate the chain we will add an array modifier onto the chain ring i will use the relative offset so that whenever i will scale my object the array modifier will fall a value of 0.67 in my case is okay because i get the depth of the ring to be crossed i will add an empty and rotate it by 90 degree on the y-axis so that we can use this as an offset object onto the array modifier when activating the object offset option it will rotate by 90 degree on the y-axis each iteration or duplication of the chain ring based on the array modifier the next step is to use a curve to set a curve modifier so i will add a bezier curve and in edit mode i will try to align the curve with the global y-axis as most modifier the origin point position is pretty important and this is why i'm aligning the curve along the axis but also along its origin point to align the point i'm just scaling them to zero using the 3d cursor as an origin i will just move one of the control points till the end of the chain and i will subdivide it by right clicking and choosing subdivide then i will select in object mode the chain then the curve press control p and use the curve deform by default it will bind the object to the x-axis so i will select the y-axis on the curve now as soon as i will enter edit mode i will be able to modify the curve and the object will follow but you may not move the origin point the very first in the chain and you should not move the chain object because it will go crazy in the array modifier tabs i will switch the fit type to fit curve and then as soon as i will edit the curve and make it longer the ray modifier will generate enough ring to the chain so that it fits the length of the curve now i will parent the empty use to set the object offset in the array modifier to the curve so that whenever we are moving the curve it will follow and so it won't make the array modifier buggy for the time being one big issue is that whenever we increase the length of the chain we can see the rings popping which is not good so we would like to move the origin of the chain but it gets buggy and if we do it in object mode the chain doesn't deform anymore to fix that and get proper controllers onto the curve we will be using hooks they can be any kind of object and we can bind any controller point of the curve and its tangent to it so we could do it directly with bones but for the sake of organization i will first use empties to do in edit mode on the curve i will select the last controller point and snap the cursor to it then in object mode i will add an empty get back into edit mode on the curve and add a hook modifier from there as a hook object we can select dmt and then click the assign button in edit mode that's very important you need to have the control point selected and press assign now the controller point of the curve is hooked to the empty and so the empty will behave as a new controller point so whenever i'm rotating it or scaling it it's like scaling or rotating the control point directly but the fact that it's an object allow us to animate it it also means that i can now move the curve and since one of the control point is pin in space by this empty the length of the curve will be modified independently what i will do now is get back into edit mode onto the curve so that i can add a couple more controller points by subdividing the curve and i will bind them to individual empties using hook modifiers in this example i created seven controller point onto the curve but you can create as much as you want the more you will the more complex it will be to animate the curve for sure the benefit of working with a curve is that if your liking of point or you have too much you can remove them or add them later on during your animation and update your rig accordingly as soon as i am done i will create some kind of master empty that will be the parent of the curve but also the parent of my hook model i will orient it on the y-axis and rotate it so that it fits the chain ring and i will parent it to this root controller i will then create the very last empty that will allow us to hook the first controller point of the curve but i want allow it to translate so that we won't have any bugs the idea is that we can move the curve using the principle empties that you are looking at and then if you want to change the curvature of the origin of the curve we can use the secondary empty i am creating right now so you can rotate or scale the origin controller point of your curve but you may not translate it meaning that you may not change its location it will get buggy knowing that i will bind the controller to this newly created empty and we can jump into rigging the ringing stage is gonna be like super simple in the previous file i've put all my chain object and its controller into a collection that i have imported in this character scene i will then edit the rig of my character the first thing i will do is to add some kind of root bone that will be the parent of the main controller of the chain so that the wall chain will follow and then i will create a separate bone pair hook or pair empty we have created just before from there i will simply parent each hook empties to the corresponding bone so that i will be able to animate them alongside the armature so into the action of the character and the empties will follow and so the chain and the hook will follow so this will perfectly work for animation features or animation inside of blender but for video game we you will most generally ask your tech artist to write a script to generate the chain along some controller point or maybe along the curve you would export so i've created a roon bone and the first curvature bone that will allow me to parent the first hook controller to it and then in edit mode i will enable the snapping to vertices in the top bar are holding control and i will simply duplicate the different bone and snap them on the different empties then to parent the empty to the different bone i will go back into object mode then select the armature go into pose mode and select the bone press control p and select bone and i will repeat the process for each of the empties object mode select it select the amateur go into pose mode select the bone control p bone so we are currently creating and binding a bone pair empty we have created a main root bone which will be the parent of all these controller bones we also have a bone that is going to be the parent of the empty controlling the hook or the grapple geometry but also the origin of the curve and we finally need this third bone that will add a copy rotation and copy scale onto the empty that is hooked to the very first origin controller of the curve so that we won't be able to move this controller but we will be able to rotate it and scale it as we did before when we were building the mechanism so i will select the hook root empty which is the empty controlling the very first control point of the curve add a copy rotation source the armature then go back into pose mode to identify the bone copy its name go back onto the empty and pass the name of the bone into the copyrotation constraint so now when i rotate the bone it will apply the rotation to the empty controlling this point of the curve i can now add a copy scale and pass again the name of the same bone for the sake of organization i've created a bone group for all the bones that are controlling the chain and i will also give them some custom shape to help the readability one of the last thing i did was to create bones that are parented to the deformation bones of the hand and that will allow us to stop the hook and the tip of the chain to hit i won't be redoing the wall explanation because i've explained this in detail in the previous video you will find the link in the description as told on twitter i haven't spent that much time preparing the animation for this tutorial this is why i haven't made any animation breakdown along this current video but i just want to show you a couple of tips that goes along with the rigging that we've just paid because if you use it right away it might not fit your need so don't hesitate to rig on the fly whenever you're animated for the sake of readability i'll change the custom shape of the curved controller to those double-sided arrows this will help me to figure out the orientation of the tangent of the curve one of the most obvious constraint i've built during animation is a simple child of constraint i've constrained the hook with the cube using the child of constraint and whenever the hook hits the cube i will switch on the constraint so that whenever i remove the cube the hook will behave as a child of the cube the not that obvious constraint i've built then is a copy location on each of the curve controller to d and controller all to the tip controller of the curve the main benefit of the rig we've just built is to be able to control the length of the chain on the fly it will be generated whenever we make the curve longer when the chain is going out straight forward or when it's length it's pretty short i don't want to have to move all the controller we have built and this is when i will trigger on the copy location this way the different point will be snapped one onto each other and if we also scale them down this will create odd angles onto the curve and so we won't be generating any new chain ring when the chain needs to get loose i will disable the constraint by reducing its influence to 0 and keyframe it and i will have my hands on the different controllers this way this allows me to get a decent animation within less than a couple of hours i believe that with maybe four hours of work i would have a very nice animation using this technique this is the end of this video i hope you enjoyed it and i will see you very very soon bye you
Info
Channel: Pierrick Picaut
Views: 22,712
Rating: undefined out of 5
Keywords: blender3D, modeling, shading, rigging, B3D, p2design, sculpting, digital, animation, cartooning, rendering, CYCLES, tutorial, Pierrick, Picaut, Pieriko, 3D, Computer, Graphic, blender, eevee, VIDEO GAME
Id: z1z85AsUjcI
Channel Id: undefined
Length: 14min 13sec (853 seconds)
Published: Wed Aug 05 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.