Thank you so much for this tutorial! I'd gladly pay for this kind of knowledge. Keep up the great work👍
@JarredLove11 ай бұрын
thank you so much for taking the time to watch and comment - I am thinking of putting together some sort of paid tutorial series, but need to figure out a good place to host it and determine a fair price... maybe I'll be able to get that going soon?!
@yuhuangy32176 жыл бұрын
I'm just speechless and feel very grateful for all of your tutorial. Feels kinda bad that i got to know it for free tbh...Anyways, great work!
@JarredLove6 жыл бұрын
Thank you so much - I'm glad you are enjoying my videos! Perhaps in the future I will consider some sort of paid video series or a book... but for now, the idea is to share some knowledge with the whole CG community. Please keep checking back for future videos!
@postamartin5 жыл бұрын
hello, animator here. Honestly, I never used the banking. Like you said. It's so rare its much quicker to just keyframe the foot on those three frames manually
@JarredLove5 жыл бұрын
Hey Martin P - thanks for watching and for the vindicating comment (sweet, sweet, vindication)! I always appreciate animator feedback - helps me rig better!
@maccollo9 ай бұрын
This seems super practical. Will definately implement this in my own rigs. It seems like it would also be useful for the hands aswell since you often need to rotate them around something the character is holding on to. Personally I dislike things like foot roll and banking for multiple reasons: It usually restricts degrees of freedom that I might need. What if I wanna twist the the foot while keeping the ball of the foot planet as the character is steping of sideways? Thats a thing feet can do, but I can't cuz the rig doesn't let me. Second, it's usually not even faster to manipulate. You have to move the mouse to this tiny channel in the channel box, click it, middle mouse dr.. dammit I miss clicked, click it again, middle mouse drag. Much more annoying that just pick walking to the controller and press E.
@JarredLove6 ай бұрын
@maccollo thanks for watching and commenting! I'm glad you like this and can see uses for it. It's relatively easy to add this almost anywhere in the rig. Hand IK controls are a great place for it as well - you can also use them for adjusting rotation points for the whole character (typically called main or cog control) for a situation where the character is hanging or something and you want it to rotate from above the head instead of at the ground plane or the hips/waist. I personally don't like the seemingly popular 'foot bank' controls, but I wouldn't write off foot roll controls altogether! I think they're beneficial and can be set up in a way where you allow the user to define at what rotation the ball of the foot no longer bends before the next part of the roll happens... But if you're talking about a very specific rotation amount for each phase of the roll that cannot be adjusted, then I agree with you 100% If you don't like using a separate user defined attr in the channel box, look into other ways you could drive it - such as a 'foot roll' control that follows the foot ik positional control. You could use the rotation channels on that control to drive the more complicated foot roll and maybe even some of the other foot twisting you mentioned. You can also have the foot roll 'macro' control and create some other controls to keep the individual joint rotations open for animation - you just need to blend/add the values together before driving the actual joint. One of the beautiful things about rigging is there's no one single 'right' way to rig something - experiment and come up with some cool stuff!
@rexildur32664 жыл бұрын
Thanks, bro I just subbed to your channel, as an aspiring Animator I'm not afraid to go a little technical where in return it will help me animate a little quicker.
@JarredLove4 жыл бұрын
I'm glad you liked the video, and thank you for the sub! I hope you find my videos useful on your rigging journey!
@quarkblack Жыл бұрын
Thankyou Jarred, movable pivots are just wow!!! I tried implementing all the setups you have demonstrated here. May I please ask one question? In the jaw example, I have jawCtrl setup with movable pivots for rotate and scale, Arrow Up on rot_pivot_ctl / scale_pivot_ctl allows teeth_ctl to be rotated/scaled, but am unable to figure out how the geo would budge. Are lo_teeth or teeth_att node reading any connections?
@JarredLove Жыл бұрын
Hello! So sorry to reply so late... to make the teeth geo move with the teeth control, you'd need to either parent the geometry under the control (less desired), or have a joint under the control and bind the geo to it (better option). Some people like the parenting because it would run a little faster, but I prefer having my model in a completely separate grouping structure for file organization rather than having bits of the model spread around everywhere (in case I need to swap in an updated model or something). I hope that helps! Thanks for taking the time to watch, try it out, and comment!
@beyazpiyonable7 жыл бұрын
Great explanation. Keep the videos coming please! =)
@JarredLove7 жыл бұрын
I'm glad you enjoyed it, and I hope you find it useful! I will definitely continue posting videos, so please keep checking back!
@ritzgada9994 жыл бұрын
NIce tip.. its quite helpful. thanks
@JarredLove4 жыл бұрын
You are welcome - thank you for taking the time to watch and comment!
@alonza1 Жыл бұрын
Hi Jarred, thanks for the great series of examples! What I am trying to figure out how to give my animators an moveable pivot that can also be animated. That's not possible is it? Is there a way to make it possible?
@JarredLove Жыл бұрын
Hello - thanks for taking the time to watch and ask a question! Yes, this is possible. In each of the examples, the node used to move the pivot around can be keyed, so you should be able to rotate something, then move the pivot and key that, and then rotate from the new pivot location. You will want to key the previous location as well, of course. Hope that helps!
@alonza1 Жыл бұрын
@@JarredLove but once the driven control who pivot we moved, is rotated, moving the pivot or animating it, moves the control. You say it yourself in the video. How do we avoid that?
@JarredLove Жыл бұрын
Even though I gave a longer response on the email you sent, I thought I'd put this part in this thread for anyone else who reads it and has a similar question: Moving a pivot of a rotated item is going to appear to move the item - there is no way around that. It's partially why I did my best to explain why it's happening to help understand it is technically working as designed. Often what you could do is to hide the rotation pivot change within the motion of the item. But that wouldn't work as easily if you are 'pinning' the item somewhere in a rotated state and then want to rotate it from a different pivot... What you would want to do in a case like that is to create some sort of script/tool that would be similar in principle to an fk/ik switch or space switch tool. The basic premise is to determine where it's positioned, move the pivot in one frame as well as move the control to the appropriate location so the item appears to be in the same place, and then you have the pivot in the new location to rotate at that point. Alternatively, you could add a few additional movable pivot controls to give your animators a bit more wiggle room for manipulating it...
@AakashKalaria7 жыл бұрын
Neat! Useful stuff!
@JarredLove7 жыл бұрын
I'm glad you enjoyed the video! I hope you can use it for some cool projects!
@Nacktmull20125 жыл бұрын
Really helpful Tutorial. faved!
@JarredLove5 жыл бұрын
Hey Gatsby - thanks for watching! I'm glad you liked the video
@Exsulator25 жыл бұрын
This is great! Just one question! I'm making a hammer with this technique. I'd like for a character to throw the hammer; upon releasing the hammer, the pivot goes from the hand (pivot on handle) to it's most heavy point (pivot in hammer's head). But it's a little bit frustrating that if I move the pivot now, the hammer moves way out of position. So is there a way to make this rig more robust? E.g. a run-time script so that the hammer stays in place even while moving the pivot on none-zero hammer-translate-values? Otherwise, the animator must do a lot of snapping which is difficult now that the hammer has a new pivot point :F
@JarredLove5 жыл бұрын
Hey Exsulator, thanks for watching and for the question. I think I would possibly go about that a few ways. First, I'd let the animators see what they can do and determine if it's really an actual problem or just something they think would be nice to have. If it's only going to be done a few times it may not be worth the extra time to rig or create a tool for, but if it's going to be used thousands of times, then yeah... a rig solution might be better. I also say to let the animators go with it first because the transition of the pivot from the handle to the head of the hammer can be done over time, so the animators could animate this transition at the same time they're animating the transition from being constrained to the hand to being 'free' of it. It's entirely possible that animating that constraint, the pivot move, and the rotation and translation of the hammer over 10 frames will be a smooth enough transition that doesn't actually require a lot of snapping and fidgeting. If that's not the case, then you could probably write a script to determine the world space position and orientation of where the pivot should be and then move the pivot there, then translate and rotate the hammer to match it up. This would be similar to an fk/ik snap tool, but would be significantly easier if you had predetermined spots for the pivot to move between. All that being said, probably the easiest way to handle it and still have a movable pivot would be to make your hammer rig have two spaces that it can blend between - one being a hand held space and the other being the world space. You could set it up with a control at the appropriate main pivot location for each space (ie: a control to use when it's in a hand and a different control to use when it's thrown). Then you can set up the movable pivot system just below the node that is constrained between those two spaces so the animators can use the moveable pivot more like an offset from the main controls. I hope that helps!
@LeftRightize5 жыл бұрын
Am I missing something? I don't have any pivor translations in node editor
@JarredLove5 жыл бұрын
No worries - hopefully we can clear up any confusion! So, there is not an attribute named 'pivot translation' (or similar); however, you are looking for something named 'rotatePivot' which tells the transform where the pivot for rotation is relative to it's initial matrix. There is a similar attribute for scale (the 'scalePivot' attr) to let the transform know where the pivot for scaling is. If you do not see the attribute right away by expanding the node in the node editor, you can also try clicking on the circle at the very top of the node (the one next to the symbol showing the node type) as you are trying to make the connection from your driver node. If you still do not see the attr you are looking for in that list, you should see "other" down at the bottom which will bring up a window similar to the connection editor - or at least, just one half of it - which should show you all of the attributes that can be driven on the node. Another method for you to try would be to right click on the top of node in the node editor, and select the "show all attributes" option. Still another way to do it would be to select your driver node, shift select the driven node, and then open the connection editor which should load the nodes in the correct sides and go from there (or you could just open the connection editor and do the load left/right thing if you prefer). This should work for any attribute you are looking for that does not typically show up in the node editor by default. Hope that helps, and thanks for watching and asking!
@punniyakotti57673 жыл бұрын
Hi jarred , its a great tutorial, i can followup the pivot negation tutorial but this foot setup tutorial i couldn't , would be great if you demonstrate the foot setup in step by step.i'm a tracking and matchmove artist as i want to use this method while doing object track though camera perspective in maya, looking forward, thanks
@JarredLove3 жыл бұрын
@punniya kotti - hey, thanks for taking the time to watch the video and comment! This video is basically just about how to do the movable pivot, which you can insert pretty much anywhere in your rig. I was using the foot as an example application of the idea and did not really intend for it to be a foot system/foot roll tutorial as there are a lot of those around. The foot system here is pretty much the same as a typical 'reverse foot' system. The only difference is that I've taken out any 'extra' pivot nodes (beyond the heel, toe, and ball) and inserted the movable pivot into the foot system hierarchy. For it to work best, you would want to parent the movable pivot system to the main foot control, and then parent the top node of your foot roll transforms/joints to the last node in the movable pivot hierarchy (probably the negate node). In order to keep the pivot control values clean, you'd likely want a buffer node above it. It's not really necessary, but making one allows you to place the buffer node where you want the default position of this pivot control to be (I usually place it on the ground at the ball of the foot) - without the buffer node, the movable pivot would just start where the actual foot control's pivot is (likely the ankle). I hope that makes sense, but let me know if I should clarify anything!
@punniyakotti57673 жыл бұрын
@@JarredLove thanks a lot man👍
@punniyakotti57673 жыл бұрын
I want to setup movable pivot for only head . No rig just head. I want to place 4 pivot on different location on head, where can able to move pivot when ever I want to animate, In results I'm getting cycle error, like if I do rotation on one pivot it's tend to affect other pivot location. I'm wondering how to solve 😟😟😟
@JarredLove3 жыл бұрын
I'm a little unclear what you're trying to do. Would a single movable pivot control work? It would allow you to move the pivot to each of those different locations on the head. Placing a movable pivot on the head sounds a little odd, though... Do you have some sort of IK neck setup that allows the neck to stretch and stay connected properly if the head is rotating around some other pivot besides where it connects to the neck? If so, you would likely need those pivots to not be parented under the neck (this may be where the cycle is coming from?)... What effect are you trying to create? As for diagnosing the cycle, are you inter-connecting these 4 pivot controls somehow? You could try to find it by graphing it out in the node editor. I will usually set the graphing traversal depth to 1 so only one level of connections will get brought in at a time, then start from one control and add in it's inputs/outputs, then do the inputs of those input nodes and the outputs of the output nodes that were added, and continue stepping through in that manner to see if I can find where the cycle is coming in. If you're unfamiliar with the node editor, I have a video with some basics on how to use it. hope that helps!
@punniyakotti57673 жыл бұрын
@@JarredLove thank you for replying me. Give me some time, I will send video. what I'm trying.
@RudeCube5 жыл бұрын
Is this usable with deform skeleton? Im shure, im can not modify rotation pivot of joint an then export to game engine, for example
@JarredLove5 жыл бұрын
If you're talking about a skeleton that is exclusively for binding the geometry and is driven by a control rig, then I would not suggest it. This would be better used in the control rig to drive the bind skeleton. In this way, baking animation into the joints and exporting a skeleton to a game engine won't affect the pivots of the actual bind joints themselves to ensure stability.
@morin66613 жыл бұрын
Hi, thank you very much for the tutorial. I have issue with the geo. when geomerty is not attached go joint or main ctrl, everything works. But when I constraint it to the main ctrl, it moves with the pivot ctrl. Help me :(
@JarredLove3 жыл бұрын
Hello, thanks for taking the time to watch, test, and comment! Without seeing a file, it's very difficult to say what the issue might be. Could you please provide a little more detail for what is going on? What do you mean by 'main ctrl' - is this separate from the moving pivot control? Are you trying to make a foot rig with the movable pivot? Are you trying to insert a movable pivot somewhere else?
@morin66613 жыл бұрын
@@JarredLove Main ctrl means the upper control and pivCtrl is under that main ctrl. geometry is in separate grp (using constraint to transform it). I connect piv ctrl to main ctrl's rotate pivot. It work when I move the piv ctrl to another location and main ctrl rotates from that location. But geometry also moves with the piv ctrl. It works when geometry is parented in main ctrl and if it's outside, geometry moves with pivot. I am making simple rig for a box and wanted to apply it.
@JarredLove3 жыл бұрын
Ah, I tend to have a joint under the control and then bind geometry to that instead of constrain it to a control, so I haven't seen that happen before in my test cases. The constrained geometry is moving due to how Maya handles constraints - it connects rotate pivots and other things like joint orients to factor that into the constraint itself.... That's great for the majority of times you're constraining something, but since we're tricking out the rotate pivot for this different behavior, it kind of trips up the constraint. So, I would say you could throw an empty transform under your main control and constrain the geometry to that transform instead of the control. Now... if you really don't like the idea of that extra transform and you're feeling adventurous, you could use matrix nodes to essentially do the constraint instead of using Maya's constraints (it's relatively easy). I have a video on how to use matrix nodes to make 'custom' constraints that you could check out for how to do that. I tested a matrix system with the main control driving the geometry and it seemed to work as expected - let me know in this comment thread if you need any help with that!
@morin66613 жыл бұрын
@@JarredLove Thank for the quick respones. Yes, I also did bind the geo to joint and it was working. Yes, I was thinking the same. Because pivot is being moved, bid geo responds to that. I will try matrix node some other time :)
@JarredLove3 жыл бұрын
awesome - glad you got it working!
@morin66613 жыл бұрын
I was trying this setup with joints and had to put the joint in the controller because if I put it outside, it will move with pivot controller. I parented a locator under the main control which also have pivot control as a child. I constraint the joint to locator and it was not moving with the pivot anymore. I guess that direct control between main control and joint creates a issue but using locator solves the issue :)
@JarredLove3 жыл бұрын
If I'm understanding what you're saying correctly, it seems that when you are using the child pivot control method (the one that drives the rotate pivot of the control above it), anything you constrain to the main control will follow the child pivot control because of how Maya's constraints work. Sorry for the troubles! I usually have a joint under the control that I actually use to bind the geo to, or I'll use the other method which has the negated transform node to keep children where they were by counter-acting the pivot controls movement (like the foot example). But, You could also try using matrix nodes to constrain your joint to the main control as well - I tried that with the geometry issue you had in another post and it seemed to work as expected. Glad you got it working with the locator - if you plan to keep it, you could delete the locator shape node and just use it's transform node if you want to clean up your hierarchy a little (that way you don't need to hide it!)
@morin66613 жыл бұрын
@@JarredLove Thanks for the detailed explaination :). I will try other methods but for now , I will stick to the locator method. It is a bit simple but works for now :D
@JamesVilela-Slater9 ай бұрын
@@JarredLove Hi Jarred! Love your work and videos, they're a great inspiration for me. Nowadays with newer versions of maya, instead of parenting the joint under the driver control(teeth_ctrl). You can keep the bind joint in a separate grp for a cleaner outliner, and connect 'teeth_ctrl' World Matrix[0] to 'bind joint' Offset Parent Matrix in the node editor. The dynamic pivots will still all work correctly. (I tested this on your blue_cube method for the teeth). Thanks again for all your content :)
@JarredLove9 ай бұрын
@@JamesVilela-Slater Thanks for watching and commenting (especially in a comment thread!). I'm glad you're finding my videos useful. Also thanks for adding the additional feedback in here - keeping controls and bind joint hierarchies separate is definitely a good idea and should be done whenever possible. The offsetParentMatrix stuff is so awesome, and I love it!
@LeoOgawaLillrank15 жыл бұрын
Hi! Amazing video series! Thank you so much for making them. I just had one question. I am not able to find the "Rotate Pivot" option in the node editor. All I find is "Trans minus Rotate Pivot" which does not seem to work. How can I set it up so the correct options are available? using Maya 2017 btw. Thank you!
@JarredLove5 жыл бұрын
Hey Leo, glad you like the videos! The attribute is there, it's just that the node editor tries to be a little helpful and cut down the 'clutter' by only listing certain attrs for certain nodes in the default display. This can be a little annoying since some nodes have pretty common attrs that you would plug into that just don't show up for some reason (like the various matrix nodes, for example)... Once connected, attrs which are hidden from this view will show up. But to initially connect to them, you've got a few options. You could right click and hold on the top of the node in the node editor to bring up a hotbox and then go down to 'show all attributes' to see all of the attributes that are available. But that's a lot of attrs to look through and makes a transform node super long in the node editor. Or you could take the output and drag it to the orange circle at the very top of the node and select 'other' which will bring up a list of available attrs that you can click on - it looks similar to half of the connection editor. Speaking of that... another option is to just use the connection editor to do the initial connection. Hope that helps and thanks for watching!
@yakushira46094 жыл бұрын
Something confused me ...so there is no way to keep the object stable in the world space while adjusting the pivot`s location? But thanks for the tip anyway.
@JarredLove4 жыл бұрын
Hi - thanks for watching and commenting! I described why it feels like the cube is 'moving' in the first part of the video. It's technically not moving in world space, but when you move the pivot in the local space of the object while it's rotated, the node (cube in this case) is essentially 'moving' in local space to update and ensure the node will go back to it's 'correct' spot when you rotate back to zero. So... technically speaking, it is stable since the behavior is consistent and predictable (the node is not moving around erratically or inconsistently each time you move it); however, I understand what you mean. You can deal with that by a bit of counter animation - you would just need to move the position of the node while you're moving the pivot. But, as you rotate it back to zero, you'd also need to move it back to it's previous position as well. If you're really fancy, you could probably create a tool/script that could help you will that. It would involve noting where the pivot is before and after the move, then moving the node to compensate for the shift. But in practical animation purposes, it probably won't be that bad or noticeable because you can 'hide' it as things are moving. The only place it would become extra tedious is if you were animating a box tumbling or something like that... in which case, moving the pivot would probably only be part of the whole solution for making that box (or whatever it is) do that.
@sakabonnos5 жыл бұрын
can you upload the file because I don't understand this .. and I need to try something by myself .. thanks
@JarredLove5 жыл бұрын
Hi Ramy Sameer, I'm hesitant to upload any files anywhere in case there's some reason in the future I would need to take the files down. I've seen this issue several times in the past where there's a link to download an example file, yet it's not actually there when I tried to download it (not to mention some potential issues with maya version compatibility). I'd prefer to try and make sure the video has enough of an explanation for anyone to replicate it on their own. So to that end, what part of setting this up is confusing you? Maybe I can explain it a little better and help you figure it out.
@ahmadshaik19666 жыл бұрын
nice
@JarredLove6 жыл бұрын
Thanks! I'm glad you liked it - hope you were able to find something useful in my videos
@nli2work5 жыл бұрын
Every foot should be rigged like this
@JarredLove5 жыл бұрын
I agree! Heh, but seriously, I'm glad you found this useful!