KineFX Masterclass | Houdini Illume | Jeff Wagner

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello my name is jeff wagner and the next little while we're going to be taking a look at kenny effects as a visual effects artist it's important that we can create more compelling tests simulations and incorporating characters more and more is becoming an important part of the work that we need to deliver and with kidney effects it makes it so easy to integrate character into our production tests as well as expanding forward and building out really expressive motion and as we all know any any character brings a tremendous amount of appeal to all of the work that we do and from that we're going to take a look at kidney fx as a houdini generalist and effects specialist there is no doubt in my mind that you need to utilize kidney effects in your work houdini 18.5 finally has soft based rigging with this vast character building toolkit available in sops houdini brings new opportunities to procedurally rig skin and deform all geometry we've been missing a couple key things in houdini over the years first class path to former and direct access to kinematic joints as general deformers in a geometry context we now have both geometry operators or sops have proven to be a flexible and simple way of giving in the animator rigor td an accessible procedural platform to do impressive work whether it's character-related work from muscles and feathers to seamless secondary motion on top of flesh hair fur props and more one area of ongoing research within kinefx is the evolving world of using vap networks for constraints this is a familiar workflow to those artists used to let's say ice graphs in other applications and as we know once you have vops you can wrangle vex code this offers you the ability to write your vex constraints using vex code a common environment to thousands of video users exposing vex breaking code along with python for kenny fx gives a familiar environment to let's say maya riggers who are comfortable with writing code to support rigs and pipelines leading up to kinefx we had key enterprise users building up rig tooling and vex wrangles and vops to great effect performance wise it was impressive but with holes only side effects could fill this vex approach to rigging still relied on wrapping up rigs using object-based digital assets with clumsy editable nodes uh provided for customization it wasn't quite there ultimately rigs based on objects have performance issues but the real disadvantage with object-based rigs is that they are inherently non-procedural you can't dynamically build a hierarchy of bones and then procedurally manipulate the hierarchy without destroying and free parent rebuilding the object rigs nodes the object nodes just proved to be quite difficult to manage in pipelines the focus for this first canary kidney effects release is on the base foundational architecture create a tool set that allows us to import rigs using industry standard joints instead of bones with their predefined lengths local space transport is forcing expensive cracking to world space and then there is all the baggage overhead from all the node parameters use points as joints use polygon curves to define skeletons build out all the constraints in a single location with kid effects inside of sops it makes it much more accessible easy to finally bring in first-class animation inside of our geometry context so let's get on with it so you're a proficient houdini user who wants to get into kidney fx what i'd say is it's a great tool set for introducing any sort of motion characters and with a small library of motion files on a few different characters you can create a really nice suite of test characters to test anything from fire to flip to vellum to whatever you want but it's it's a good idea to see how we can start where do you start the answer is why don't you start with a final rig as well so you can go from this particular example on our content library which is eric our test dummy introduced in 18.5 and it's a kdfx rig using miximo motion it's the nervous motion and we simply just add some vellum simulation on top of the antennae this is an idealized rig i would build this differently myself but it doesn't matter because the architecture for doing motion kit bashing is here and so let's take a look how we can go from this to this which is a thriller dance um so both of the most of the motion files are mixamo they both have the same architecture so we can take advantage of the motion retargeting that we built into this rig so let's have a look and see how we set this up so the first place we want to start up is with the content library and that's under the get content library and we'll scroll down here we can see that there's the fbx eric rig that we that we use for a lot of the work that we do and then there's some rigs that were built on top of the tutorials that we released at 18.5 one of the 10 the antenna vellum simulation we also have a kenny fx jump rope and also another example that shows how you do train adaption all with the same rig but the idea is to download kdfx antenna vellum simulation and what you end up is something like this so here's a file explorer of all the files that i that you download with it along with going to the miximo website and what you're looking for is three motion files you're looking for a thriller thriller to part two fbx you're also looking for a miximo file called nervously looking around and then third you need to get the t-pose fbx and if we take a look at the miximo website you create a user login in this case i'm logged in as rgw and from here you can search for those motion files plus a whole bunch of other library of motion files for um they have a lot that are for personal use that really lets you get in as an aside there's also carnegie mellon and they have a whole bunch of motion files that you can download thousands of motion files and luca pataraccia one of the my colleagues at side effects fantastic td has actually if i go to the tutorial section under kidney effects so if you search for all tutorials that are based on kenny fx you'll see that luke has uploaded a really nice tutorial a long series tutorial on first of all how to download the cmu motion capture database he builds a really nice tool to do that and then uses all the motion files to kit bash together hundreds of different motion files and here's the retargeting lesson and this is using our new format for for for learning so you can actually create a proper learning portal in here advanced users new users doesn't matter it's a great way to to see all the different tutorials that we're starting to build out as well and you can see that there's five tutorials in this series one's an introduction then there's a manual retarget then there's a pdg retargeted using the pg graph to automatically retarget motion if you've seen louie's louise cruel's video or the games video that he did earlier in the year yeah this is in the same flavor as a matter of fact luca picked up that work and carried it much much further and then he does some smoothing clip clips and then he does an agent from rig so he even introduces some crowds at the end luca is uh considered to be a crowd expert as well so he was able to take all of this and make agents out of it so definitely take a look at this to see about getting more rich motion fibers but back to the exercise at hand so this is the file that we're going to start out with this is the file that you get from from the content library and we're going to dive i'm going to move my display flag onto the retarget node and dive inside of this and this is a really basic rig setup you can see many tutorials online they essentially have the exact same setup moving forward so you start off with with your geometry in this case it's eric we have that geometry available for you you can download from the content library it's just an fbx file off of disk and on the right hand side we have two motion files we have that nervously looking around fbx file from from miximo and we also have the t-pose that you grab from mixed mosaic pretty much every file will have the same t-pose and there's this really interesting node here that we should actually take a look at i'm going to open up the spreadsheet on this so what the rig stash pose does is it adds a rest attribute a four by four transform rest attribute so if i say um hide all attributes and just show first of all show you the transform attribute which is as we saw is ubiquitous to all the different joints so basically what makes a joint is a point and a transform attribute and um we also so the rig stash pose actually creates a rest transform as well which is a four by four matrix and it holds the rest position of the rig and many of the nodes use that rest position to refer to as they do their work and if you're coming from other softwares rest positions basically the binder pose bind to pose in this particular situation so that we stash and basically it computes the rest transforms for us and then we use another node called the rig match pose and what this does is it takes two disparate rigs in this case we have the eric rig and then we have which is uh if i put a null in here you can quickly see this uh rig um so that's the eric rig and let me open up and i'm always doing this there's the rig tree so if we take a look at the rig tree right mouse and expand subtree we can see here that this is the eric rig and you'll also see if i wire this in to the that's the rest rig and that's the animated rig they're pretty much identical slight differences different controllers maybe different parenting as long as the name space is the same the the bone deform will do the right thing and that's the one thing's a bit frustrating about if you're in here you got all this motion you're all set up and go why am i not seeing any motion and the answer is because in this particular file we've moved the the bone the actual bone deform operator into the vellum setup but we can actually create a new bone to form right here and place that down and we can wire that up and the three inputs and of course the left input is the skin in this case it's about it's already bound to the bones middle input is your your bind pose or rest position what we call and the right is your animated skeleton so we can actually see the bone to form now we can play forward and now we can see our nervous motion being applied pretty straightforward and how this is done is we have the rig match pose which is and you'll notice that this particular rig match pose was done in such a way the proportions like you see many examples where you try and get the points exact i found if you just have the right proportions in the right directionality you don't necessarily have to have them live all on top although that is more of an advanced technique when you start doing this a lot more or you're lazy because you only move as little as possible to get it to work either way um this is where you align in this case the target skeleton so you can move any of these joints around and you can um you can position them such that to try and match as close as possible to the target posts and that's targeting it to the rest post by the way and then we have map points which basically you just simply click and you just click the joints together to basically make associations and this uses a multi-lister or our list of of um multi-list of all the joints that are retargeted and you only have to do this once once if you have a family of motion coming in and then we have a separate one for just mapping the fingers because they're fussy you can do that notice how you this procedural so you can divide and conquer it doesn't matter at this point in time is just adding attributes to drive the whole the whole rebinding now when you're doing this approach you need to crack the ik transforms into rotates and back and forth so and that's what full body ik does it takes the the position of the two rigs using one as a driver into the second and then it uses uh full body ik to do the retargeting and all the and and all the really heavy lifting and to make the the whole thing work so these these um four off these three operators rig match pose match points and full body is pretty much all you need to get one rig as long as they're roughly the same one rig um to map into another uh to have the joints of one rig drive the road joints together in other words this just becomes like a controller rig on top of this rig and this just manages the name space and the tr and the transforms and the full body ik cracks the trap you know takes the rotates does ik and then spits back out rotates now we have a we also have an fk transfer in here which is set up just to transfer some of the mappings of the fingers into the and then the skeleton blend which is used to blend the two together notice by having the rig tree you can actually see many times you don't have the rig tree up you don't actually see what you're working on but in this case you can easily see that there's a left hand root and the hand right root and all of the children of those two locations in the rig are are being affected and then finally we have this antenna subnet which was just a subnet used to build the antenna get ready for the vellum solver which these three operators farm out to that other object to do the bone transform but we're doing it up here so now we want to just have some fun so i'm going to grab this fk and i'm going to drag a copy over here i'm going to keep the nervous around and it's as simple as this if you want to remap different motion just apply your different family of motion um now let's go back to our bone to form and there we go so any motion library you have of the same family you just apply to your character and it's that simple and so that means if you've got a character that if you have the same character swimming motion or with uh motion there that it's jumping or running um or or or um or any sort of motion but let's say you want to create you want to mix two different motion together so in this particular case you want to take the um this is the thriller so let's call this thriller and this one over here let's call it uh nervous and just so we have this note when we start working with motion clips as we would do in chops but in kinney effects we create what are called sequence clips so let's create a sequence clip uh motion let's actually create a motion clip and we can do this at any place we want we can actually do it before or after the riggs dash pose it really doesn't matter we can do this motion clip and this turns it into a motion clip and what a motion clip is is if i take a look and middle mouse on it you can see that there's 454 pack geos if i select a primitive you can see that i'll just delete that and delete isolate it you can see that that's one pack primitive it's just a snapshot in time and if we take a look at the spreadsheet on this we can see that um there's a time attribute on it so basically it's a pack primitive with a time attribute on it and that time attribute indicates uh where this particular pack motion piece of geometry lives within the entire sequence so i'll just move that off to the side and there's your motion clip and then what we can do is we can do a motion retime and motion clip retime for instance let's say we wanted this clip to start at a bit of a later date let's say we want to stagger create some random motion in our rig we can actually do a motion retime as well and let's say animation start let's say it started at frame 10 and speed let's make it go a little bit faster let's say 1.5 and now if we move our display flag back to the bone deform and we play forward oh yes motion clips are in fact just ways of dealing with motion what the rig deforming needs is actual the point cloud itself so many of our tools do not know how to read these motion clips so you have to do a motion clip evaluation so motion clip evaluate is what gets us back to a place where a lot of the tools are happy so this converts it back into instantaneous clips okay and now we can go back to the bone to form and now we're happy again so now we start a little bit later started the frame 10 and then we move forward so that's motion clip motion clip evaluate but there's some other things we can do we can take this motion clip i'll click it over to here and we can extract our nervous motion and we can do something even even more interesting is motion clip we don't have to clip the entire rig we can actually do a delete joint and let's plop that down here so delete joints we can actually go in here either through um selecting through the rig tree or selecting the viewport we can select and i want to pick from the shoulders down so that and shift that so i want to pick and also select joints children so that means it'll select all the other joints and i've hit enter um you can see it it deletes the joints and just like with the regular lead saw we can actually turn this into an exclusion list by doing delete and unselected so now we actually have our nervous arms so how do we apply these nervous arms onto the rig we're really hoping that miximo is very consistent which they are they have fantastic motion requires very little correction the feet generally are rock solid on their captures and and it shows when you're starting to work with kid bashing emotion and now we can take these two motion clips and we can actually put them together or or mix them together so we actually have this motion clip blend operator and this allows us to clip two motion clips together and we're going to ignore the retime for now and we're going to put that into the motion clip evaluate now now what's happening here is the motion clip blend is now takes the first input as your base rig and then the second input it says okay fine i'm going to now mix the joints from the right and to the left and it's going to kit bash the two motion together and if i bypass and unbypass that you can see that the arm motion for sure is now a lot different and we can even blend this effect in so let's frame uh let's let's blend in the nervous motion let's say at frame 10 uh over from 10 to let's say frame 30 or maybe even faster let's say frame six to frank 25 and then we can enable the blend and let's do blend out um let's say from frame 70 to frame 85 or let's say frame 90. and the effect is one of the biases 0.5 so and then we can do so that'll actually mix all the blends together so okay and then we can do a motion clip evaluate and sometimes yeah sometimes it gets a little bit let's see what i've done wrong here start frame in 70 90. let's turn this on for now and let's see how this works yeah motion evaluate so believe it or not just deleting and undeleting the node actually fixed it for me so we're now back on track um and then the motion club evaluates should be happy yes it is and now we can go back to the bone to form and now we start off with the thriller motion and then we'll blend in some of the arms then the quiet arms blend in and then it goes back to the thriller motion now we can also do the same thing with the head so um so what i'm going to do here is i'm going to alt click this drag a copy over and under delete joints let's now select the head so i'm going to pick the neck joint and hit enter again it's going to select the children and it's going to extract the motion clip and then i'm going to do motion clip blend i'm actually just going to i'll drag that out and i'm just gonna wire that in and wire this in so now i got the first one going into the second one and now i'm motion clipping the head in as well and we can go back down the bone to form so we don't even have to um take a look and then the head slung is down because we're getting the nervous head so really easy to take any of the motion that you have any motion files keep bashing together for instance if you want to have a swinging assuming character but then you want to have one of the arms uh behave differently as long as you get some motion file of the different arms you can just cut and paste it so it really is quite easy and very procedural to take all the motion and basically drive anything you want and let's see if we can create a field of eric so if we put down a grid and move that over here and we're going to rotate this rotate this uh 45 degrees so it's a bit of an angle and i'm going to copy a bunch of eric's to this grid um let's do 45 and make it a bit bigger and let's future let's do five by five and how do you copy so we're just going to use a copy of points and just take a look turn that off for now so they all stand upright there you go now you can have a field of dancing eric's now in this case you can use just regular geometry retime methods that we have available for doing crowds for forever or we could take eric and turn them into an agent we have uh agent from from skeleton that luca covers over in the tutorial and then you can create a user crowd tools to create a whole flock but this holds it very well just doing raw characters and or you could wrap this up into a for each loop compile it all these operators i believe are compile safe and then you can can you know do some some motion re-timing on top of all of this and and have lots of fun you can even re-time the arms differently than the body and have all kinds you can have the head and the arms and the body move a lot slower and yeah have lots of fun with it so very very simple system and this is if this is your first try using motion uh kenny effects just to kit bash it it's it's a great tool set you're taking advantage of this this new architecture and then you can use any of these in your simulation tests or any of your ear effects work and to recap here are the steps that we did in the first exercise which is a great first introduction to the kidney effects where we can take some motion and apply it to the eric rig and then go to miximo and download the various motion files that we talked about before which is the thriller one which comes with the rest pose as well as the nervous motion and here's some great links that i'd highly recommend for you to get up and running on using kidney effects for motion retargeting there's an introduction by fianna wong where she covers all the basics and gives you a few pointers along the way and then there's kidney effects for games by louise cruel now that one is much more than four games although he does cover kenny effects and all the different options with motion targeting even talks a bit about using the pdg to create a whole library of motion files and then there's henry dean who is one of the architects of many of the tools within kinefx and he's got a great tutorial that introduces kidney effects covering where kidney flex is really applicable to which is motion retarding and motion retiming uh covering how to create sequences sequence clips basically what we covered but a little bit more detail and then there's uh um hoodie kinfex 101 motion clips by parker coleman uh where he covers it's a really nice easy look at how to use a rig and do blending motion clip animations and then finally there's uh retargeting animation using kidney effects by bogdan zaikov where he covers retargeting a whole bunch of different uh situations for for a real work project that he's working on and that was covered in a hive great interview there covers a lot of detail including how to actually start fixing some of the motion files as well so great great introduction to kinefx with all of these various tutorials it's time to take a look at what the atomic pieces are of kinney effects and it's pretty easy what is a kidney effects joint it's basically a point an ad stop a piece of geometry where you use an ad soft delete all the geometry but keep the points or you just draw some line segments or curves and those points themselves become the joints if we use an ad saw for instance and connect two points together to create a primitive segment or we use any wrangling or any other operator such as a curve saw or a primitive some any sort of primitive operation that creates a primitive that connects those that shares two points or probably doesn't shift but it actually uses two points um we'll actually draw on that joint and then we can convert that easily into skeletons so a joint is basically just a point with a three by three transfer matrix called transform and that transform encodes translation rotation and scale and it's world space so that's the big difference between what is uh skeletons what are bones inside of houdini object space versus what a joint so all joints are considered in world space having said that we also construct a local space uh three by three transform and we can also add a rest transform four by four matrix which is used by a lot of the operators to to work with it great rate here we even talk about kin effects versus uh can effect skeletons versus object level skeletons um you know and we differentiate between the two if you're an existing houdini user this is of sense if you're new to houdini who cares um creating skeletons this is a great section on using the skeleton swap to create skeletons we're going to take take a look at two ways to build or two generic ways of building skeletons one is through this node called the skeleton stop and the other one is just take any points and we're going to be using the ad sop in a bit lots of hotkeys when you're in this state for drawing out bones this is really rapid bone creation and because we're not creating objects as we click it's immediate and it is a lot of fun to do rigging we finally made rigging easy and that's a big deal and also we talk about the skeleton more of an example and we'll take a look at this in the next exercise after this one one other resource before we go forward is looking at uh cg wiki and there's a great section on on kidney effects as well um a little more artist artist wording um and and using some analogies it's a it's also a great read read both websites and you should get a fairly good idea as to what we're dealing with but hey let's get into houdini and actually do some work so we're going to start off with an ad sop i'm in the technical desktop and i'm going to do a couple things before we start um if you're in the build desktop by the way this is stowed over to the right and you'll notice there's a stow bar way over on the left hand side you can open that up and you'll notice there's a tree view that can let you navigate wherever you want to go inside of houdini and the plus button let's add a new plane pane type and go under animation and under there there's a rig tree so this is a new pane we added in 18.5 to actually visualize the joints and the skeleton hierarchy as we compose it and we can see very quickly how when we create primitive two points together we're actually building a hierarchy and we use the vertex order to determine naturally how these primitives connect together so let's add a rig tree you can see it's blank right now so let's add a new geometry object and let's call this skeleton joints and skeletons and let's dive inside now as i said we do an add salt and if we and i'm going to stow this for now on the very bottom and let's move this over a bit and add sop we can put down a rig doctor and this is the first way in which you can create a joint we can put down a rig doctor and what this does it will um let me move this over to here control click and let's move that over and because i'm using dual monitor and then we can do that we can see here that um the rig doctor we need to do this one option down here which is transformations we need to add that three by three transform and as soon as we do that we now have a joint and we can put down a rig we can actually put a visualize rig node down we can actually start seeing what it is that we have in inside of our rig and by the way we actually have to add that point in the atop there we go and now we can go into here and we can scale our joint up we can see here that we have in fact a joint and but there's nothing to it we can see it's called point zero so remember what i said the second thing we can put down is a name operator named salp and we can call this joint under bar zero and um so and we actually have to name points by the way so it's kind of interesting if when just an aside if you're adding control geometry you have to add the name on the primitive but when we're dealing with uh joints the name has to be on the point attribute that'll get you once in a while when you're first getting in there um yeah so if you're building skeletons from scratch using input points you need to do that so now that we got this down we can actually take this and we can duplicate this three times or sorry um didn't want to do that just hold down the alt key and let's drag over three different copies and if we really wanted to we could actually have renamed this but in this case let's actually see what happens when we have three name joints of the same let's say the second add we're going to move it up and the third add node we're going to move it up and then move it over and we're going to merge these two together we're going to merge these all three together so we can take these merge them together and display and now we can see if we can joint zero join zero doing zero so let's actually call this joint one and join two and if you're an existing communities you're already going okay yeah i know how to do this programmatically um i can create a wrangle saw up or there's a whole bunch of different ways in which we can create this sort of a scenario where we have three joints um so again let's put the vis rig on the bottom of that we actually have joints we don't have a skeleton but we have locators and now how do we create joints there's several different ways we can do that one is be we can actually put it right down here we can put an ad saw down and we can forcefully not press this option we want to keep the points and with all their attributes but we can now go by group and now we have a hierarchy it's based on the vertex order remember what i said the joint order is based on vertex order and when we have branching we add some id metadata to allow us to do the parenting as well but now you can see here a joint and the rig tree so this drig tree is really nice to have up and running all the time and i can expand the subtree and you can see sure enough we've got a joint hierarchy and now we can do all kinds of interesting things with this um for instance we can build a really simple ik chain out of this and how we can do that is we can we actually have this ik chains up um ik chains operator and we can put that down but we have to we have two inputs here we got required skeleton and mark required ik drivers now remember when we say skeleton uh above the ad stop we don't have skeleton but with the ad soft we do have a skeleton there's a second way to create this data though and it's a more interesting it's it's a more kin effects ways we actually have a re-parent joints operator and if you're used to doing regular rigging you know when you're in the viewport you're always re-parenting joints to create you know there's all the tricks we could do in objects and other applications where you're parenting things together or re-parenting things and moving things around to do really creative uh parenting setups that's what reparent joints is all about so we can actually say let's actually move my display flag here we can manually parent let's say oh it's actually actually for the child first and then we can do the parent now the way i'm doing this is i press the arrow button because it's houdini we have to hit enter in the viewport now we're going to do one more but this time we're going to be using the rig tree to do this and so i can press this and i can actually say joint 2 and the rig we're still working out all the different kinks in the viewport houdini still is a little bit quirky if you're if you're newish to houdini you'd think you could hit enter in the rig tree and you can hear me pounding away the enter or if you could hit enter in here it doesn't work it takes us into the operator you have to hit enter with the cursor of the viewport toodini so for now anyway so if we press this and we now and you'll notice here i've got a dual monitor but off to the side we were popping this thing up as well so let's try this again again it popped off off onto the second monitor but now we can select joint two here and now you have to put your cursor over the viewport and hit enter and then we do parent one and again we can select a joint one and then hit enter in the viewport there you go that'll get you the first little while so remember to always put the cursor over the viewport when you hit enter so there's repair joints same thing doesn't matter we can put a switch operator in there there is no difference between the two and to prove this we can open up the spreadsheet and move our display flag onto the switch and then we can go to the switch there is no difference they're identical that now opens up the door um any freaking sock inside of her knee that can create geometry in such a way that we're aware of the vertex order going into this thing can become an ik chain just by passing it through a rig doctor and the test is just putting out of his rig if you can see the joint with the ik chains through of his rig you're you're now set up to do some really cool powerful stuff you can rig enemy to form anything you want so the ik chains now has two options got a required skeleton sure so we'll put that down on the switch the second one is now looking for drivers now we have to build a control set of points and do they have to be joints uh most likely they should be could they be raw points oh yes you can but the convention is that and and for future saving yourself you absolutely can use points now we're going to be using the re-parent joints again and repair joints is it's used like the ginsu knife of of hacking and slashing through rigs we're going to wire this also to the switch and now what we're going to do is we're going to remove all parenting and turn these into controllers so the way we remove all parenting is we break the houdini convention such that usually in every other operator or group fields in group fields when we're doing selections blank generally means everything but we're breaking the convention here you literally have to put a star now to select all your joints and when we leave the parent null it simply means we're now removing all the parenting information and we're going back into world space locations now you'll notice that the points do have a local transform but they also have a world transform which is transform and you can see all the attributes down below i'll leave this idling away so in case you you want to take a look down there to see what's happening or also right muscle in here to expand the tree to see what's going on so lots of tools to allow us to visualize what it is we're doing when we're working on so we've got the repair joints and now we can wire this into the ik chains and we can start doing some work let's add an ik chain it's adding for root mid and tip name so two different three two different ways i know to do this so the root name you can drag and drop that doesn't work so you have to go into here and let's select the viewport this is easy enough and the middle name and then we'll use the tip name and i'm hitting enter in the viewport remember enter over here doesn't work and i'm going to turn off we don't want to twist in a goal because we've actually supplied them as points and we know that because we actually grabbed the points from here they're going to have the same name as the so when we're doing the repair and we got them to nulls we're going to the ik chains because they have the same name if i click on here you can see join zero one two and here joint one zero one two but many times you might have low uh a control rig that has completely different names from the input so in that case when you're in the ik chains you would have to turn this on and actually identify these all by name but if you do match by name it'll actually use the names on here to match with the names in here not necessarily that what you want to do as well and now we want to do blend all the way onto one we set blend to zero and so now we've got these joints here what we can do is we can put down a rig pose operator rig post sop is how we interact with our control rig and if i put the iq display in the ik chains we do the control rig and i select this joint and actually hit escape and then enter something it's houdini sorry escape and enter sometimes uh re-wakes the tool now i can use this and move it you'll notice that we don't do anything so except if we do blend so why isn't blend set to one i don't know but i'm just letting you know set blend to one and now we can actually start interacting with this with this ik chain and we can see there's our look at and we can pull this away you can pull it forward pull it back now you can do all kinds of offset transforms and we have a whole bunch of tools or you can use attribute wrangle or you can use any soft to work with this but this is pretty much the architecture of the effects that's it now what i've done is something pretty interesting i'm an old-school houdini guy i love the way that you can add some some some null objects into genie and wear them together inside of adini and create some really basic rigs and i was really missing that when i was doing some technical rigging so what i did is i started uh my own little i got thousands of assets so add another asset so a few minutes in i actually created an asset which i will give to you it's a work in progress but i'm going to install asset library and i'm going to go to dollar hip and oh actually what i'm going to do here is let me save this first of all to my working directory save as and i got presentations in here go to files and i've got already um i've already got um let's actually call this can effects joints and skeletons and let's call this demo and press accept so now i'm in my files you can see there's no tails directory and that's where i want to go next so let's go assets install and install asset library and i'm going to go to my otls why do we call it otls and let's go to hip i because it kind of works out of the box that's why hda sometimes doesn't but anyway i'll load these two assets in so i've got two uh they've got a locator and an arrow primitive and you'll see what these two do in a second so press accept and i want to install these so let's place these two assets down before we forget so there's a locator and the second one is my arrow asset arrow primitive i got a bunch of these i do need to get these off to to paul to see whether or not he wants these assets to go inside of labs i've built all actually this arrow primitive can actually do pretty much what you can do in any application you can put paint solid at arrows it's it's pretty cool but either way i just want to use this as control geometry now my locator asset is essentially this um but it does a couple really cool things so if i put my plus button on here it basically encapsulates what it is we took a look at plus it adds control geometry and i can trade i can change the control geometry my general convention is green up the middle and then red is uh red is right and then apartment green red is right green is left and blue is up the middle is what i usually do so let's call this locator blue and we can call this whatever we want let's call this root and we'll notice right in here we've got the rig tree it sets up to root in the upper left and now i can alt drag this one and wire them together and as soon as i do that and i move the second locator up you can see that i'm already creating a joint so this gives you the same relationship that you have in objects inside of your dna where if you wire two together you actually uh create a world and proper correct world and uh probably not doing the right thing to the local transform noi i'm not so uh i need to fix this asset you can see here this local transform should actually be inheriting the world oh maybe it is let's try this i don't know so let's do this uh no so the local transform should actually be inheriting the roots world transform which is not so ah i got it to do but anyway um so um or maybe it is working let me be very careful on this local transform one zero zero actually it's working what am i talking about one zero zero so it's actually picking that up so no it's uh and i digress it doesn't matter but there's my root let's call this mid and let's all click this and call this tip and so now i've got my three locators in the tip let's move this up here and move it forward oh i bypassed it but anyway and we can change the colors of these as well so you can make this green and make this one let's say red and you can now see that we've cut the joints together and what i can also do is i can actually add an arrow primitive to the [Music] to the root so in this root operator we can now see that we get a narrow primitive associated with it and it actually adds it at the root position so oh there's another to do i should actually move that to the right position in the control geometry or else figure something out internally how to how to add that transform to it and first do it anyways um but you can you can scale your but anyway there's a really cool option in here with just null and we can do custom actually i did do the right thing so in here we can so basically i just exposed all the various options that we have available to us now there's a couple other users that have really built out locators i saw after the fact and they put everything in the kitchen sink in that thing and i wanted to keep more to the spirit of what houdini is and and you know if you want to add some extra functionality just wire the locator in and a couple of the tools i've seen they actually build all the various different types of locators inside of the the object as well it's up to you what you want to do and now we've got this we can actually um put this into the search if i were to name these the same it would be very smart wouldn't it so there's joint 1 0 one and two so let's call this joint zero joint one and then joint two i'm sorry about this and now we can wire this into the switch and uh so if we go to the second input we're now using and this is and the rig pose will now work on oh in the rig post by the way it should still work but i'm going to clear it all and now i'm going to start moving this around and you can see now we can do whatever we want and we can move the tip and if i actually move the display flag down there you can now see that in the rig pose here we can move any of our points and we're actually moving our skeleton which is pretty cool obviously what i should do is create a new root and put the arrow primitive on the root call it root and then parent that to the joint one geo joint one two and three so we don't actually move that in the example file i provide i actually work that out but anyway you get the idea so what's the next step to this is um is i'm sorry about that the next step to this is um we can now start building out more of the rig um we can uh do some really interesting things let's put down on l systems and in this l system move the display in flag we actually have some raw points and you can notice here if i um if i basically say expand subtree you can see that the sk the l system sop is doing exactly what it is we need to do in terms of providing primitives so if i go in here turn my lock off and let's select some primitives if i select this line segment in here you can see this is one ik chain and that could be another chain and this could be another chain and that could be another chain another chain another chain so we can see here that on the tree the l system tree already is a pretty interesting structure for us to use immediately as a as uh as a control rig whereas an ik you know as a skeleton rig so let's have a look at what we need to do in order to turn the cell system rig into a really cool kidney fx type type asset so i'm going to move this back a bit and guess what we need to do just a rig doctor because we notice we're missing the the world and locals transforms which as i said is the second piece of the puzzle to actually building a skeleton so initialize transforms and now that we've done that we actually have a first class rig and the way remember what i said before the way we can test that out is if we put down a viz rig visualize rig up visualize rig operator and we can wire that down and we can actually see all of our joints in there so now let's set up a basic rig so we can push and pull this tree around so um first thing we're going to do is put down a full body ik operator so we have a full body ik tool and it takes inputs the skeleton and it also needs to take in [Music] a control rig so what we can do here is we can actually put down the delete joints and i'm going to wire it down over here and display flag so what we want to do is we want to select those points that we want to basically work with the tree as a control rig if i were smart i'd actually be able to collect all the leaf points or you know a few points that i wanted to but let's build a bit of a control rig so i'm going to put the select operator down here and i'm going to select this point and select a few errant points you can proceduralize this so i'm holding down the shift key while i was actually accidentally holding down control but if i hold down the shift key you can grab some of these points and let's grab the middle one here too and hit enter and so now we have uh to create an exclusion group we basically just say delete non-selected and so there's our our our points now this isn't no if you wanted to keep the primitive skeleton around we could do that but okay we're going to put down uh re-parent so we can don't put down our re-parent joints and in this case again uh all the joints and we want to basically remove all the parenting so now we have a basic control rink and now we can wire that into the full body ik now um the magic node to put in here would be the rig pose rig pose is okay so what is the rig pose it's exactly like what we have in the object space you know objects we have uh transform tools where you can pick objects and move them in the viewport the portal into this is the rig pose so it's a completely different concept of what we use what we're doing in objects where we open where you actually have to select the node to get the operation that's until we wrap this up into a digital asset and we promote all these up to the top then you can have a regular rig whether that's at the object level or in the sop level you'll see that a few of our users inspired by kenny fx and want to leapfrog us and start building rigs already the majority of the users that i see with videos out there are building the rigs at the object level you can build rigs at the sop level as well but for now if you want to play it safe you could build the rigs in the object level i tend to like to build them in salts to see how far we can push this but the rig pose back to that and now i can pick some some points and move them around and you'll notice that nothing's happening with the full body ik so let's take a look at what's going on here first of all we do want to pin the root of the tree so what pin root does is it actually looks for the zero primitive where's primitive zero it assumes that's the root or at least the zero primitive coming from the skeleton so you can prune the skeleton as well to get that pin root then put a merge soft afterwards and and you know fuse the rigs together so you can actually cut up these rigs into parts and use just regular softs to reconstruct them but we actually wanted basically we can turn on compute local transforms and uh we can actually do match by attribute and as soon as we do match by attribute it's the same thing that we saw before it'll now match by name so that means if the name of this joint equals the name of that joint we are now going to get a full bind now i can go back to this rig pose and i can start pushing pulling these points around each one of these points can have a weight associated with it within the full body eye case so you can actually configure each joint and add different weights to it you can increase the number of iterations which will depending on how complex it is it'll resolve faster you can actually and generally what you find out is you increase the iterations you want to increase the damping and there's a tolerance as well tolerance i find is pretty good at the default you might want to set it to .001 if you want to have more accuracy but at the cost of speed but anyway now you can go back to your rig post and have fun so how can you move these points any way you want if you want to put some noise on here you don't have to generally use a rig pose you can do any sort of wrangling noise operator anything you want on these points as a matter of fact let's try putting down a jitter i'm just doing this cold because i haven't practiced this uh but i love to freewheel so let's put this down after the rig pose and we can actually put point jittering on here and now we can uh change the seed and we can do all kinds of things on here we can put a mountain operator put any sort of noise operator on there that you want and we're doing this on top of the rig post now we're introducing something interesting layers there's some interesting discussions about rigging and you might hear the word ephemeral rigging which is this whole concept of working with transitory rigs in a system where you have to cache every step in order to move forward which is what you would have to do in houdini and what you'd have to do in other applications but in kinefx we can stage or layer as many of these tools that we want so order of operations is basically in the order in which you build up these different transfers so here we have a rig pose on top of the point jitter so and and of course yeah you can do whatever you want you can add some slight little jittering and you can use p scale as well if it's present which it is with all system trees so that's a basic setup using l systems now it wouldn't be complete if we actually didn't do a simple rig so the documentation our documentation covers rigging flippy so let's put down the test geometry i call it i call it flippy but we have the rubber toy and let's finally see how quickly we can actually add some bones so i'm actually going to set the template flag if you're new to newish to houdini the template flat welcome to sops we only have a single display flag even though we have all these loose operators all these different leaves we're limited to only seeing one final display geometry although we can turn templates on for anything that we want so if you're somewhat newer to houdini that's what the template flag is for so i'm actually pre-setting this up now we saw using the ad sap and connecting it together the second way in which we can construct rigs is to put down by the way that you can use any geometry as we saw with the l system trees we're going to use the skeleton saw now the skeleton sop does everything that we saw with my locator and and i know the other options using the rig doctor it will actually build things on the fly for you so and you'll notice that for some reason my template i like my template geometry would be shaded for those of you who are newest to houdini just hit the d key on here and you'll notice that there's an option to switch between display options but to control the display of template geometry you can go in here and template model geometry and you can set the view of your templated geometry so i'm going to do wireframe ghost so there's a bit of a differentiation again that's just the d key change your uh your your type of display current or template which are the three basic modes in which we can work inside of your current is whatever node you have selected the display flag would be the note with the display flag and then there's the template model geometry and i just set that to wireframe ghost which i think is the default so now let's draw the skeleton i'm going to press spacebar b b as in bob to go to the quad view and now i'm going to start drawing out my skeleton i'm just changing my interface a bit here and i'm going to go in the right hand view and there's a lot of videos on this talking about the various different options on the top here we can go view based which will fire array into the scene and when we fire the array we'll do nearest hit farthest hit and then we move the joint that we're creating in the middle of that there's normal base which is basically looking at the surface normal of the geometry freehand which means just start sketching and surface means you can draw joints on the surface we're going to do view based we're going to use the right hand view first thing we're going to do is put down a root and then i'm just using the left mouse button click my cog and then i'm going to build my shoulder joint and you notice here as i'm snapping because this geometry is perfectly symmetrical we're actually putting these joints right on the grid i could turn on my construction plane um construction plane is different than the grid the grid is just for visualization but the construction plane if i turn that on it'll immediately change the behavior of all my snapping it'll actually start drawing on that construction plane and you can write must on here to see all the various different options on there but i'm not using that right now the next presentation in the next segment i will be using that construction plane to show you how to use that by the way continuing on the right hand view i'm going to now start doing the neck root the neck joint and then the head joint and i'm going to use the middle mouse button to terminate it remember i showed you the help earlier on again go to the houdini um drawing skill you know introduction to kidney fx drawing skeletons in our help we give you the full sheet of hotkeys that you can look at now i'm actually going to now just simply left mouse click on a new joint and remember i'm in this mode called create right up here on the top and i'm going to do the root for the jaw and then i'm going to do a jawbone and then i'm going to use the middle mouse button complete that and i'm going to continue on drawing here i'm going to draw the root for my hip and then i'm going to start drawing out the tail and i can use the middle last button now to draw the limbs or the legs um i'm going to actually use the top view i kind of like that so i'm going to start drawing from there and let's draw the clavicle and you can see here i'm snapping all of this and then let's draw one two three middle mouse button and again draw from there and uh let's draw there there there and there middle must button pretty easy now we're going to mirror this i could actually go in here and start renaming the joints within the skeleton stop and i'll show you a bit of that it's a bit tedious so i can call this root and this is why the rig tree up all the time i mean even though the skeleton swap you can pop up the rig tree it shows up and but i like having this permanent here and this i gotta call this cog center of gravity obviously and let's put this under uh shoulder or um folder root whatever convention you want and let's call this actually let's call this left under bar arm root and i'm just going to hit enter here now if you're in the skeleton and you hit enter it's like in drawing mode versus edit mode you'll notice here in the modify if i hit enter enter completes and it puts you into modify and you can have the option called child compensate if you wish to just move the bones and what that does is it resets all the all the local positions and all of that for you whereas if you turn child constancy off let me show you so let's say you wanted to tweak the position of this one joint if you have a child child compensate on off you hit rate must show handle and i can tweak that boom back you can see how removing everything and if i turn it's pretty straightforward it's pretty straightforward child compensate so but anyway and uh escape enter is my my my way of just resetting things but anyway let's let's uh call this so we can actually see the joints actually that's not my left arm rope that's my neck root and let's take a look at there there's my there's my arm root left arm uh root and this is going to be my left arm [Music] elbow and this is going to be my left arm wrist and the final one is going to be my left arm wrist root and i'm just going to pause right now and then i'll pick up again uh after i've renamed everything so now i've renamed most of the rig the last piece i didn't name is the tail so we can actually select all three joints and right-most on this so you can right-mouse on any of these entries within the rig tree and we can do a whole bunch of different works so let's do a rename and this is sometimes fussy um sometimes i have to like hit the arrow button hit backspace i i this is a fussy thing sometimes shift and right muscle in there and do a rename and i can call this tail and tail underbar one i just called a tail and you can see it does tail tail one and tail two it uses the vertex order to rename this but now we've got our rig so now we want to mirror this and so let's do a mirror but there's a sk there's two mirrors that we can look at there's a rig mirror pose and skeleton mirror we want skeleton mirror because we're working with the skeleton right now we're not doing any rigging or any posing we're going to do skeleton mirror and so that allows us to mirror and it mirrors everything you can see we've duplicated uh all the middle spine as well so remember the object space we're smart enough the that tool is quite evolved the old the old tools because we're creating bones it's such a permanent operation every time you do a mirror or a duplicate we're actually having objects once you create an object i mean that's the one thing that differentiates between this and object spaces objects are inherently the old rigging system and objects is not procedural given that houdini everything is procedural whereas here now we have a procedural way of creating those joints so i'm basically going to just select these joints here and hit enter or i could put name equals l underbar star and i can grab everything that way as well actually let's see if that works i'm just going to alt drag a copy and then i'm just going to put l under bar star and that should pick if i'm consistent and i can just put l under bar star and that should grab everything as well and uh did that work i don't know we'll find out actually it did there you go and now there's a bit funkiness here um we'll notice here that we actually have you can see there's left arm we actually have 28 points whereas we started off with 20. so we effectively have done a mirror but notice that sometimes the rig tree view will actually take a look at the input operator and i'll show you that by just putting down a null and we can wire this up together and we can move the display flag and let's right-mouse on this to expand the subtree so we still haven't done a successful smear so let's do uh point mirror um and the mirror plane one zero zero and attributes to mirror so this should give us a mirror and we do have a mirror and you can see both are working just fine and that's how you work away with your skeletons um and the way you would you worked that way but what we can do oh pardon me we actually have nodes with the same name so we want to say find tokens l under bar and we want to replace them with our underbar and so that should give us everything let's expand subtree and there we go so now we have left arm right arm left leg right leg right right so it's all working just fine um however we want to work on that and that covers the basics of of joints working forward as i said i'll supply a file that's worked up a little bit beyond this but this gives you a really good strong idea as to what you can do with joints basically anything you want these are the abcs you find you'll be doing a lot of this work repeating at nauseum so yeah have fun let's take a look at an example from parker coleman another example on building skeleton rigs from from scratch and in this case he builds it on top of tommy one of our basic characters and in here he loads up the file and he shows you how to draw some basic skeletons um and we've already taken a look at that he also has some nice time time time stamps on here so you can quickly jump to different parts of it binding skin to skeleton using bioharmonic capturing capture layer paint delta mush but what we want to do is he's this is a quick and dirty rig for sure and i actually built the file you can access the file as well and have a look at it and we're going to see how we can clean up the geometry make the rotation angles a lot cleaner and really work and finesse the rig so that it it behaves better when we're doing rotates and we'll have a discussion about how i like to orient joints on rigs so let's have a dive in at that so we want to take a look at the documentation i'm working with skeletons and that you can get in doc's hoodie character can affects skeletons.html and here's a really great exam description of an introduction to kennefac skeletons you can get a similar overview of ik skeletons from tokuru the tokuru website they cover similar things this i like the wording of this it's to the point very succinct and it actually gets to what we've been discussing about previously about what a joint and a polyline and a child is is basically um you know built by these polylines in the vertex orders and then we have a whole bunch of tools on top of that allow you to control and manipulate that what's interesting down here though is um creating skeletons there's a whole bunch of hotkeys in here that are really nice to print out and and paste on the side of your monitor as you start to draw skeletons you can see that there's an awful lot of meta keys and hotkeys that really allow you to quickly get a little bit more accuracy in drawing your skeletons but the area that i want to have a look at is when we're cleaning up the various different joints there's some really interesting options that we have available to us so this is a really cool technique here that we're going to take a look at drawing a skeleton on the construction plane so you can use construction plane orientated to dry your bones on um and also when we're fixing construction when we're fixing the geometry there's really nice ways of cleaning up joints that we'll take a look at orientating joints is what we want to be interested in because this is what was going to consume us for the first little part and we'll take a look at the reorient joint swap again to see how we can automatically reorder joints and we'll see how this sort of fails on a more complex rig this is meant more for simple branching structures such as trees or other mechanical rigging where you know it's a little more predictable in the way and simplified in the way that the joints are are oriented but there's a really nice technique in here that we'll take a look at that allows you to reorient reorienting joints with orientation picking so let's have a look at that now with the actual file and move it forward so here's the houdini file that i went through the tutorial not quite exact i was as i was following along i started adding a few things here and there now i am always in the technical desktop but what i'm going to do where the tree view is and if you're in the build desktop you'll notice that this stow bar will be closed so if you can open up that stow bar that would be great and then in here in the tree view plus we're going to actually create under animation we're going to create the rig tree and that's just like what we've done for the rest of the examples i always like having the rig tree up and as we pick the various operators for instance the skeleton operator we can see here that one of the things that i deviated from parker is as i was creating the joints i actually renamed the joints with the skeleton and you can do this you can there's a few different functions here we can select the joints from the rig and we can right mouse on these and we can do rename delete copy as text copies vex expressions expand the stuff so there's a whole bunch of really cool tools you can do on here but the rig tree comes alive with some states and some operators for instance the skeleton sop the rig the rig tree really does come in handy and has a lot of usefulness but for the rest of time you can actually see the what some of the operators are doing such as repair and joints we'll we'll start playing around with this some of the operators will change this as we go so let's keep on going on that and leave that open um so now um we have our skeleton and if i hit enter we enter the state and there's a few different options that we can use on here i can pick some of these joints on here and as we saw before we have child compensate i have child compensate on now because i want to start fixing some of the rotates on some of these joints and if i right mouse on here i can actually show the handle of this i can actually right mouse on here and i can actually say display join axes and uh let's actually turn the handle off for now and i like because i'm an old-school hoodie guy um arm bends um what i really want to see is the the red axis or the red rotate axis is usually the axis that i bend my arms with and then the y is usually the complementary axis and then the z axis is always the axis that aims down the arm it's just the way i like to rig and it doesn't matter if we are importing any motion capture data rig orientation really doesn't matter um in the actual solve it's basically just the position of the joints relative to the skin that does the actual deforms so these rotates were only meaningful if we are doing a rig inside of houdini and again if you follow the tutorial you'll see how parker builds a lot of these things he uses a skeleton blend to basically blend left and right which is a pretty interesting technique building a little bit of a rig so we can actually rotate between the two and we can now see the joint axes are are available to us in the entire interface as well so let's set that to zero and i've got a switch over here that switches over to a different part of the rig which basically just does all in my k and this is where um you can you can build your ik rigs so we actually have a repair we have a blast node we blow away as we saw before you blow away the parts of the rig that you want to use as your armature and then we re-parent these joints in this case we remove all parenting so we create a a broken rig essentially a broken rig where these these uh locators are now free to go in space and uh and you can do the same thing with an ad sop by the way just delete geometry but keep the points and then we can use the lmik and it just uses the positions um to drive the various different limbs in this case we have uh four four ik limbs that are being built from uh one is for the left hand and uh yeah and we can set all that stuff up with the lmik and then we have ik chains so the rig poses where we use to move these locators around and then the ik chains follow along so let's get back to the original skeleton and again i want to clean this up a bit here so in that documentation that i showed you earlier it gives you really tech really nice technique for orientating the joints now one of the things that might be confusing to you in houdini is we have these two seemingly grids one is just a display grid snapping does work with this display grid but as a construction tool it's simply for display and we can write mouse on there we can actually control rulers on grid points if we want them as well so there's a lot of controls that we can have i'm just going to have the main axis the second icon below that is our actual construction plane and as soon as we turn that on we can re-muscle the construction plane and it gives a whole different a whole bunch of different options and what we want to do is first of all i want to when i'm in here turn child compensate on and i want to select this elbow joint as i said before um i want the that red axis to sort of go where the green so i want the writers and they rotate in the x direction that's the axis that i want to open and swing the arm with i just like using rotates and x versus for arm swings and same with knee swings so what i want to do here is right mouse and unfortunately the t key for turning on the translate handle rotator scale doesn't work in this particular state so you have to basically right mouse on the joint and say show the handle and with child compensate on now i can actually rotate this bone until i just need it rough because the technique i'm going to show you from the documentation actually works quite well and again with the shoulder swing i want to select this and again i want to turn the red axis going like that and the green going forward and the z-axis will flow will go along the bone that's just fine and let's take a look at the wrist same thing i probably want my wrist to rotate this way so i'm going to pick this and this one is a little bit off so i just want to make it close and where my wrist swing is going to be that's close enough i think good now i'm going to select the three points as we know construction plane can flatten against three-point selections and if i select these three points now i can right mouse on the construction plane and there's an option in here that says orient construction plane to selection so press that and that will take the construction plane and fit it so that it passes through all these points now the next thing i want to do is with all three points still selected i can now right-mouse on them and i can say snap selection to construction plane now what this tool does in the skeleton state is it'll actually correctly orientate the closest factor to the construction plane and make them nice and straight so by doing that now i can see that my rotate my swing on my shoulder is now going in the right is pointing in the right direction my swing on the elbow is going to be correct and the swing on my wrist is now going to be nice and straight so and again the risk we can we can sort of tweak that out a bit if if we see there's the flattened wrist and we can actually open that one up a bit and i think that's actually moving the upper arm and it shouldn't be yeah it is should have child can compensate on that's better interesting bug um but we caught it because we saw the bone swing but anyway there we go so that's that's looking good and do the same thing for the leg and and then we'll do the fingers so again select these three joints and then right mouse construction plane it gets pretty quick um you get pretty quick at it once you start working again the same bug eh so i'm sorry construction plate to selection i'm sorry that's better and now again i want to take a look at this knee and i want to basically make sure child condensation is on i'm just going to select the one joint i think it's what i know what the problem is when i have multiple joints selected it really doesn't like that and so we want to rotate that joint so it's roughly like that and again the limb swing just make it rough and then the ankle as well and it's this case the my x-axis is actually pointing down and i want to make it base roughly in that direction now i can select these three joints and then right mouse and snap to construction plane and there we go now i've got my nice swing angles there now for the hand it gets pretty interesting we might want to try one of the options in here which is called orient joints so reorient joints and what this does is it tries to fix the orientation of our joints and we can see here even though we've done the skeleton it sort of flips the ankle on me it flips the it flips the toes up it sort of takes looks at the neighboring points and it tries to do its best guess at how to rearrange the joints but look at what it does to the hands i mean rotating an x because they're sort of this one sort of flip will rotate in the wrong direction so reoriented joints is great for simpler rigs or or rigs that you create procedurally such as growing flowers trees any sort of organic structure so you're growing outwards reorient works great but in this case it doesn't work too well we'll just leave that up there and call that not a great job here and back to the skeleton move our display flag and i'll fix one of the fingers and then we'll quickly jump forward and then you can see how quickly this goes for the rest of the fingers and again the nice thing about these is the the x-axis is roughly aligned where they want the fingers to rotate so let's see how good a job that does in this case i only want to pick three three fingers so let's pick the the knuckle uh the first joint and i slightly tweak that and then this and then right mouse and then you can see how quickly you can do that and snap selection to construction plane and oh let me snap selection to construction there we go that works and i'll do the next finger again so pick this this and this and then right mouse and say right construction plane i forgot to add the knuckle joint and then snap selection so really really quick workflow when we're working on this and then we'll add our finger joint and then snap selection construction plane and so on and so forth so this part of the job is much more pleasurable than it was is with the old object-based orient um and let's add her and say snap selection to construction blade and finally let's work on our thumb and again the thumb rotates are sort of not where i want them so i want the thumb to sort of curl in so what i'm going to do is make sure child compensate is on and uh again i i i i know what i did i tried using the white key still not quite used to so um and it still wants to go into the edit state so i'm just going to hit escape and then enter and again select this joint and then right mouse show handle and i just want to make it so that the rotates roughly in the direction that i want it to be so that if i do any sort of automatic opening and closing of the hands they'll all go in the same direction so i'll pick this and rotate it around just close is good enough because it'll choose the closest vector to the construction plane to orient and then finally just select only three joints here so right mouse so i'm going to make sure orient on snap or construction plane and then snap selections and that orient on snap makes it work so well there we go so now the handle done um there's a few other things that we want to do now and what i'm going to do is right mouse on this construction plane and basically there's an option in here that allows you to reset this this construction plane so and you can right mouse up here and you can set construction plane with the y-axis and there we go and there's a few other options in here so construction plane basically center plane on the y-axis and we're back to where we started now we're going to have to take we to take a quick look at fixing up some of the some of the capturing for instance around the jawbone and i'll show you can quickly create a little rig to basically move the jawbone with joints unlike bones um we're gonna find out that there's an interesting uh dilemma that we have here and this is why many times you'll see uh rigs from motion capture systems that are joint based they'll have an additional bone that's parented off the neck that'll come up or they'll fork a t off of here move a joint forward and before the reason why is it gives you a free joint to grab and rotate that bone with whereas if i grab this joint and i and i turn off child compensation which is now behaving like a regular joint and i rotate this so you can see how we're going to rotate the head along with the jaw so we'll take a look and and see um how we can tackle that problem so let's move down and move our display back on to the the bone deform and we can see that we have a full body ik operator in here which is a lot of fun in this particular rig um you can select the rigged pose here and uh in this particular case um we blasted away everything but just those locators turning that just just extracting locators from the rig and then we re-parent these to nothing we remove all the parenting information and then we pass these through a rigged pose and then we put these into as as location constraints into the full body ak which is set up the physics full body and back to the bone to form so now i can press this rig pose and i can start moving this with the various different weights and you can you can have all kinds of different fun with that so yep grab the hand there's different ways to control the weights and the hands as well we want to work on the we want to work on the jawbone though because right now the jawbone is just a translation based so if we go to the master controller up here let me pick this jawbone not only is the rig sort of or this jawbone's up here and uh we can use a rotation will do nothing because it's an end locator but if we move this around you can see that there's a flawed capture on there so we're going to build this rig at the very end our jaw rig is going to be applied after all the full body ik is being work is being done so we can take a look at this and the one approach we can take is we can do a delete joints and we're going to extract just that one jaw point so actually we're going to extract um the head joint and the jawbone you can see here we got the head and the jaw tip and i can hit enter and we're going to delete delete non-selected so we've now got this joint isolated and then we can put down a rig pose and this this we can use to rotate our jaw so if we now select this and we rotate this we can now rotate our jaw and you'll notice that the rig pose getting a little bit more detail into the rig pose the mode can be done in many different ways um you can pre-multiply post-multiply override or from the rest pose so this gives you complete control as to how you want this transform to be applied either in world space and parent space or and because we only want to do the rotate on this we can lock off all of these various different parameters lock off the translates and the scales and what that does is it just limits the degrees of freedom that we have available to us on this and as i said before you can bind uh you know we took a look at it already where you can bind control geometry in this case we're not going to um but we're going to do one more thing where i can actually um we're actually going to uh delete this anchor point now so i'm going to put delete another delete joints and uh and we'll see why in a minute we have to do this so i'm just going to delete this joint because all i want to do is just drive this one point and uh we also did up here a skeleton blend as you'll see in the tutorial from parker he shows you how to do the skeleton blend that allows you to blend one joint to the other and the attribute we're going to be matching is by name so again it's great having the rig tree up we can actually see the names as we work so in this particular case we have delete joints we have a jaw tip so if we put down a skeleton bled put that down and we're now going to wire on where we're basically going into the full body ik we're going to wire that i'm going to wire this and i'm going to replace this joint oh didn't want to do that and we're going to wire this into the third input because that's where we put our our blends in the skeleton blend let's do the translate and the rotate and the scale and we can remove the decrease of freedom as as we go forward but now if we take a look at this and you can see that the bone is wildly so we only want to do the rotates so we don't want to pick up the translates and skills because remember it's going to try and apply it in world space so now if i go to the rig pose and i rotate this you can see now that with the skeleton we actually are rotating that point and so it works quite well and now with the bone to form we can rig this up so again we apply all the degrees of freedom of translate rotate scale the skeleton blend can can can blend in local space or world space and because we've extracted the point and there's no parenting hierarchy there is no local space so we need to turn this on world space again this single joint has no local position to rotate from so we set world space on and now we're fine so if i do the rigged pose and now you can see we can control the jaw bone and that also means that um you know if we're when we're building out our rig all i need to do is just promote this handle up to the top of the rig and that's how we do our control so let's put this jaw control and uh we might want to have a rotate in x and you never know let's take a look and if we just turn the rotate thing you can get a lot all the degrees of freedom probably make a good sense so what i want to do now is just quickly paint out some of the areas in the mouth so let's crank this open and we can now go up to the area where we've actually done the capture layer paint and i already know that some parts before i do any well that's actually i'll show you there's some points in here that are that are not fused so if i pull down some points here you're going to see that the inner part the mouth bag is not fused to the actual outer skin so if i go to the capture layer paint select this and the capture region i want to paint would be the jaw so the jaw tip is what i want to paint and if i paint this down with an opacity of one you'll see what happens so you can see tear it off so this houdini so we can actually put a fuse in here and we can fuse those points in here you'll notice the capture layer of paint will error out and we'll see why that is in a second but let's actually make this a much zero smaller distance one and if we go to the capture layer paint uh display this um and error this we can see don't have matching points simply is because we already started painting on the geometry now we changed the point cloud so there's a couple things that we can do we can go stroke and we can say um we can reapply all the strokes but in this case let's go to this let's go to brush and let's go to operation and we're just basically reset all changes and now we're happy again so it's basically starting from scratch again you can see some of the contribution from the job job position and let's move right back to the daponda form and we can paint in situ so let's go back up to the capture layer paint and with the path [Music] so smooth final does a pretty good job of cleaning this up so i usually set the smooth final and so basically just dab it with the left just apply some paint and then you can smooth it out it's pretty pretty good technique been using that for many many years doing character rigging so we're good enough for now and now we can go back to our jaw control and have a look at what we've got so it's it's a start i mean it's it's good now the nice thing about this is you can you can make this quite anatomically correct because once we're in this part of the rig we can build out whatever bone or mature we want just to drive that end jawbone as we see here the only thing we're going to so the only thing that we really care about is this isolate jaw tip joint and anything else we do above here is fair game so that's one of the great things about this rigging system is you can basically add whatever it is that you want now the next thing you want to do finally is add a hand control so after the skeleton blend we can put down another rig pose and let's see the work that we've done and we're fixing all the orientation on our fingers to see if it actually works now this is a bit fussy because rig post currently doesn't allow you to do multiple joint selections so but every time you select a join it actually adds it to the list so let's start off with the thumb you can see every time you click it i'm just going to hold down the shift key and i really wish there was a there probably is a hotkey or something that allows me to select one of the bones and quickly select all the hierarchy let's try that no so let's keep on selecting almost done so now that we've selected all the joints let's we missed one there now we can open and close the hand pretty easy and again we can take a look at the delta mush version of this yeah oh the delta mush i need to be very careful because my delta mush is no longer because i use the fuse soft i have to make sure that this is coming from the fuse now because the my joints have i've changed the point count so delta bush won't be happy it needs to have everything in the same location so let's say left and controls and in this particular case i can do that and i can now open and close the hand if i were to do the x-axis that is and sure enough so i was very careful making sure that the x rotates all work and looking pretty good now if you find one of the fingers overlaps a bit you might be tempted to fix it up here but what we can do is we can actually go all the way up we could fix it in situ if you wanted to but we can go back all the way up to the skeleton and if we do it up here when we mirror the skeleton onto the right hand side we get all of that for free so what i'm going to do here is i'm just going to peek pick this right mouse and turn on the show handle and i just want to tweak this six or seven degrees so six degrees that joint and actually let's turn on child compensate so we don't pick up the parenting information and 6 and let's pick this joint and all we're doing is just moving moving that x location that rotated that joint out a bit so that the finger six degrees and then finally the tip and then we'll take a look at how that finger has corrected itself so this is how we can turn a really quick and easy rig into something that behaves a little bit better and so now we can control z let's get back to the rotate we can see now that and for the thumb if we want the thumb to rotate a little bit slower what we could do is we could just add a control add a spare parameter and and tag all these different parameters to this so what i'm going to do is add a spare parameter and then i'm going to start copying and pasting so in here [Music] under type properties or probably edit parameter interface and let's add a spare float and let's put it right up the top here under rest pose yeah that's a good place to put under transformations yeah just above transformations let's call this finger close and press accept and then what i'm going to do is i'm going to oh i should have actually created a proper range on that so let's go to the edit parameter interface a different way to get it this time and let's say range is minus 10 to plus let's try 60 and press accept and now i can just kind of create this channel reference to rotate and i'm just going to pause and do that with all the channels and then we'll get back so now i've created channel references to that driver at the top called rest transform where the finger closed and now when i manipulate that you can see that we have a nice control on top of that the thumb is i want the thumb to close a bit quicker than everything else so i can actually press on this this deselect everything plus this jump thumb joint and the hand controls jumps to that and i want to multiply this by 1.2 or 20 i want to add an extra 20 to the rotate of this so the thumb closes a bit sooner than everything else and let's pick this second joint same thing and let's pick the thumb tip same thing ctrl v and now when we do this manipulator it'll all be fine so now the thumb will close a bit sooner so that means if you were to put a hammer or something into his hand it works great and of course you duplicate it for the right hand side so that now we're well on our way to doing um more perfecting of the rig and cleaning it up and sort of the standard rig operations you'll be doing day in and day out so the final section i want to take a look at with kinefix's constraints constraints are how you take two joints and you build a relationship between them we have several constraints that we ship with houdini and they're all centered inside of ops we have a look at constraint a parent constraint a path constraint a surface constraint and a blend transforms constraint but that's not stopping you from building any of your own constraints inside of box or using attribute wrangles which are essentially building the same thing sometimes you like code sometimes you like using operators but anyway we're going to have a look at the lookout constraint because it to start off with to see how you actually get in there and how you work with these things and there's really good notes and see inside of the documentation so you can see it look at constraint how you set the things up and how you work inside of can you effect so and there's some really nice examples in here that make it pretty straightforward so if you're an expert hooting user and you just want to get into this really quickly just a quick look at this uh at this page read through it and also cg wiki has some interesting things on using constraints i'm not really called out directly but you can find a look at local constraints here if you take a look at the floating parent constraint example and they cover a bit of that as well but let's go back to the constraint documentation and documentation have a look at creating a simple look at constraint so now let's have a quick look at a look at constraint so again in the technical desktop and paint tab animation rig tree if you really don't want to do this all the time you can actually save this as a new desktop so that way that's what i've done um but moving forward so the right and again if you're in build just just unstow the right and add it there so let's add a piece of geometry geometry container let's call this um look at constraints and dive inside now you might see there there's some really good examples if you take a look at the help card for the look at it shows you uh quite a complex setup where you can use a look at constraint to constrain a camera many times we just want to have like a couple pairs of eyes looking at something so we just want to know the basics of how to do a look at constraint and for that i'm going to actually go back to my assets install asset library and i just really like my my asset so i'm going to go to the locator install and i'll show you why i really like it it's it's just a really handy way of i mean you could use a skeleton soft or use then you have to use atops and everything else that goes on top of it but i just like this locator and let's call this um root and let's i'll drag out and let's call this up vector and let's drag this out and let's call this guy look at what was called target let's move these around so let's move the up vector up and let's change it to a box and change its scale down and let's go to the root and let's change its control scale down a bit and i actually want to turn it to uh nulls and planes and let's look at the xy plane so i want to put my look at down the z axis and that's my target so let's move this target out a bit now let's move it up and so and let's label the target yellow and let's make it spheres or circles and reduce the scale a bit well and you can build out your own hierarchy as to what to look at so you can parent this to a space locator and world remember joints are always in world space but we fault but we do keep tabs of the local transformations so there's my my setup now we're going to use you you think you would be using the attribute prop but the attribuop is a completely different animal this is what you don't want to use there's a rig attribute pop and this is quite a bit different than the attribute of op architecturally speaking inside the attribute block we've built out a really nice workflow that goes beyond what regular mops can do plus we've ported a lot of the chop constraints as as vex operators as and expose them as waps so i want to take both my root my up vector right into the left input because that's what i usually the general convention is what it is that we are modifying goes in the first input and then the other inputs is where we put references in this case we want to bring that in as a second input as a reference and let's dive inside now let's start off with a look at now there's two lookouts that we need to concern ourselves with there's the original look at but that is for just building a regular vector that has nothing to do with ken fx there's got two there's a look at kenny effects and look at constraints let's have a look at kenny effects and let's actually add the look at constraint why is there no kidney effects there i don't know but the icon should give you a good idea that it's for kidney effects so let's do look at constraint so we have two of them now these use signatures if you don't know what signatures are basically it allows us to based on how we input into these slots the type will determine the layout so we can actually have vector inputs or matrix inputs and the same thing for this one matrix or vector as well so we can actually put vectors in here but remember uh that three by three transform attribute that's present on all can effects points play very nicely with this default transform but if you have points that are using like a normal and an up vector you can use those as well or if you have quaternions on them you can crack the quaternions into the vectors that you need or to a three by three matrix transform or you can use a four by four matrix and just uh you know um recast it into a three by three and it does all the right things inside of ups and i digress now when we're working in this viewport here through the rig attribute bob this is going to evolve moving into the next release and the release after that into something that is going to be really really special so treat this as a little bit different than what the attribute bob does for instance if i right mouse on here i thought first of all if i hit escape i get the view state and if i hit the right mouse button i'm going to get all the view tools but if hit enter while i'm in this workflow and i don't have my viewport pinned i'm actually looking through the vop so if i right mouse on here we have all of these very cool options we have enable output so we can actually disable and enable the output this is more for debugging to see uh what it is that this fob network is doing because this can sometimes be very misleading or not giving you updates when it actually is giving you updates so we have enabled enable input 1 enable input 2 enable input 3 and enable input 4. basically it's basically muting i think of it as the other way it's sort of enabled mute so it makes more sense to me i want a mute input three so you basically turn that off or mute input four you turn that off um some other things we can get point transform we can set point transform so we can also display the inputs and turn the inputs off now notice that the left input is what's driving the values there's also display joint axes display links if we want to so we can actually see the links let's leave the links on and we can actually show joint data if we really want to be on the joint data now when you hover over join you'll see something really interesting we actually show two entries we show root then we show root up vector and if we go to the tree view we notice that the input into this operator is the up vector operator because remember we put those two nulls so this means um pretty interesting so the root is what we want to read and write to so if if you have two entries on here it means that there's two possible selections there's basically the selection that's coming into me and then there's the selection that i wish to write to so if i press on this you can see we showed the two dots now if i drag this upper dot that has the up vector on it i'm actually going to get that point transform but i hover over this and i square the root and i and i basically pick this point again it's two clicks by the way you click first time and then the second one is you can drag out the root if i drag out the root that's what i'm writing to i've done this so many times now it's it's uh pretty standard i actually love this now if we click on here we can see there's the up vector coming in and the effector going out i obviously want to write that into the lookup so i want to get that value so i click and then drag now as i'm doing this i want to take this transform and wired from the from and transform to the two or put me that's the up what am i doing and then finally here's my target notice the target because the second input isn't writing to output data we only have the one option so you can just directly click and drag that in again because it's not part of the first input what you're writing to or not exporting this we should only show the input points coming in that's why that doesn't show that hierarchy if we were writing to the second input we'd actually see those two options as well and again this is the transform that we're using to the two and let's rearrange this a bit so it makes a bit more sense and then what we need to do is there's the points that are currently being modified many times you need to worry about this but in this particular point this will actually work just the way it is and you can see right am i right away when we do the transform because the transform is a three by three it holds both translates rotates and scales um it immediately gives us our update and you notice that our effector is a little bit crocked um so and that's because we're looking at the output transform um but we also have to look at axes all wrong so now we've got to sort of put on our hat and we say well the up vector should be in the y axis which is the way that i modeled it so we need to turn the up vector to the y axis and look at i always like going down the z-axis but you might be working with a rig environment or a rigger that uses a different application and then they have a different different preferences in the way they rig but in houdini it's minus z is the lookout and y is up so i'm just setting those up by default but you can change these however you want you can actually have negative y x y or you can actually have the you can change all these different planes around so if you can do the artist rigger thing and just cherry pick until you get the right axes but in general i like to do minus z on the look at and why is the up and that's the way i rig and it's working so if i now go up and i go to the target and sure enough you just get your basic look at pretty straightforward and that's it so that's it that's the basic atomic lookout constraint and you can build it out as complex as you want now be wary that there is a rig attribute wrangle sop as well it doesn't give you this environment only the vops environment gives you this really nice environment to look at now again we can do the same thing with the lookout constraint down here and i'll show you the simple difference here let's look at and then look up what am i doing and we can wire and we can actually put a switch in here because i know the two are going to work put a switch in here and again signatures on a lot of these vops will automatically reset the signature and then we can go to switch one now the nice thing about going to the second lookout constraints we actually have a blend as well so many of these constraints have um a lot of work and the second one is pretty interesting many times when we're working and this is also something quite unique to the rig attribute versus the regular attribute bob is we've added the ability to stash a transform so many times when you're in salts you know or in object space you know you can actually freeze transforms and what that does is it creates um uh it writes to the pre-transform of the object so we have the same concept inside of ops which is what the update offset is a basically update offset basically takes the parameters and then bakes it into the operator so it zeroes everything out and now when we do the blend now it says okay fine i want to freeze the current position with my look at in its new position but now i can go back up again and i can go back to this target and i can now start animating it and i get my look at so that's how you can freeze things subtle but extraordinarily important and if you're if you're an existing user coming into the rig attribute you go wow so the update offset and i'll show you where that is i'm going to crack this open and allow it any of contents for the more technical houdini users nothing is a black box in here double click inside of this and we actually have this ability to stash uh transforms inside of here now which is pretty cool and uh where did we put that um yeah so it's the driver it's in the stash transform of app that we added so if you want to build your own and by the way i'm inside this operator you can actually see how we build these various constraints as i said at the very beginning of this constraints lecture we give you four or five to work with you can create as many as you want i've created some pretty wacky uh geometry based constraints which i want to cover in smaller one-off uh videos so um beyond the saloon so i basically i just want to illuminate what's actually here for you to dig in so yeah dive in we have these great stash transforms a lot of these constraints inside of ops use these stashes and again to replicate this behavior you have at the object level when you using pre-transforms you know you can click on the stash transforms you want to zero out the values or you basically want to say no no why is it when i do my lookout with my aim constraint i want it up to begin with and i just want to stash that and it resets your transform so it behaves very much like a pre-transform that you apply and you do and many of them will do pre or post so there's a driver in this particular asset there's a driver and there's a driven uh cache transform as well just so you know there's no mystery there that's where we're writing this and i'm going to say match current definition to this so you can actually clear the offset again or you can update the offset now and uh yeah so you can move your look at where you want it to go where you want it to be and then you do update the offset and it just basically calculates that offset to reset your your uh look at and that's a brief look at con constraints so i want to look at one final constraint setup and that's looking at the ik solver one of the things that we've done in kinefx as i've mentioned before with the constraints is we've ported over all of the chop constraints and the critical one is the ik solver so let's have a look at the ik solver and this is a little bit of a reaction video i noticed that a couple of the users that were recording videos built custom rigs to sort of solve the the t-rex inverse kinematics type of a leg where you have uh um you have the rear leg also has the the you know uh creatures tend to walk on their toes and their ankle is is what's actually being supported it's a sprung system so i got this trick from an old friend who actually worked on um the the dinosaurs and jurassic park two three and two and three and uh so this was going way back when we were working on the wild and i'm going to show you the t-rex leg setup and what the chop solver could do because it's a direct port we could now also do with the regular solver so we should be able to do three bone or four joint ik as a special case so i'll show you that rig right now so first thing i want to do is let's add a skeleton and i'm going to try my best so you can see here i've already added the rig tree view and i'm in the technical desktop which i've modified so the skeleton and now what i want to do is i want to rob the leg long pardon me the the femur to be exactly the same as the ankle bone the same angle um i've got a rig that actually draws this one second copies it over and then connects the two lines and builds the rig but let's see if we can do this by doing something like that so i'm going to click on this so i'm in the skeleton swap escape enter and i got snapping on oh and let's go to create i'm sorry and um it's grid snapping on and let's crack it from there and i'm going to grab a leg to go to there and then drag that like there and then go down to here so i'm gonna try and draw two parallel leg bones like that um they don't have to be as long as this bone is parallel to this one i'm okay and the closer you are to parallel the better the t-rex leg would work so that's why i literally draw this one joint copy it over and then connect the two but having drawn the skeleton now we're going to put down our rig pose and the we want to basically have this one point in this one point so we want to do a delete joints and in the delete joints uh we're going to go here we're going to select this point and this point and hit enter and we're going to delete non-selected and so there we go delete non-selected and as well we want to do a re-parent just to get rid of that primitive link so being repaired all it really does is deleting we you know we could do an edge dissolver but i don't think that would work very well we can do repairance and we can just say start to null and that will get rid of that link for us so now we have two end effectors and of course we can copy control geometry to this by using the attach control geometry operator that we saw in that add that add that locator swap i did but now we're going to put down a rig attribute vop and let's take a look at the kinematic solver so i'm going to wire this in i'm going to wire the second but into the joint and move my display flag there's going to be some funkiness i'm going to show you some of the funkiness that you're going to end up with so we have an ik solver now the ik solver is can solve any number of joints and what i had what we have added one of the developers in the kennefex team did for me because i did some forensic analysis between once i realized that it was the same solver i started building uh the same rigs that i'm noticing that that was getting flipping which is exactly what i saw from one of the videos for technical rigging that i seen out there and they were doing this exceptional rig where they're doing two but i came they're doing it by they're doing all kinds of expressions and i'm going no no the the i know what our solver can do so and i'll show you that rig in a minute but i'll show you this really quick setup so let's solve by k so basically what we want to do is we want to do set transforms so set point transforms now you'll notice there's two set point transform is when we want to drive a single point one at a time but we also have this option to set point transforms and that means you can see here if i hover over x forms it's actually a matrix array that's what that matrix ah that matrix a stands for the a stands for array and you'll notice that it's a darker tint so i'm going to draw that into the transforms and the solve ik target points root goal and twist we don't have a twist on there so i'm just going to remove the twist and right away you'll see you'll get a really odd result here and um you can see that this node i don't even need to create any inputs it's already smart enough to figure out that if i have the two wires in and i've built everything correctly with name matching up the default target id and root gold twist ids will match up perfectly for me so i don't even have to monkey around with any of the you know uh any of the get point transforms uh over here but we will have to worry about that in a bit but we have this option now here that was that was added for me from recent builds i'm using build uh 596 so it will be in that build so we can actually go here compute from targets and uh yeah so we're getting closer and all we need to do is just turn up the twist flag and then now we get the right right setup because i'm not supplying a twist effector i don't know you have to turn the twist flag off now we have no rest angles that's the solve that we're used to seeing and this is the corrected solve we have a second option called compute from rest transforms and i'll show you that one right now because that's even more interesting because many times with the t-rex leg if you have a character that's flipping or the leg is going past the pole and starts getting unstable you can actually use a set type driven key where we can tie in the rest transforms with the regular transforms but let's first of all see how this behaves when we set it to just compute from targets in other words it's looking at the targets here to compute the range so we go to rig pose here and we start moving that into factor sure enough we get a really nice behavior and we can get our critter walking as it goes and now it behaves the way it should without actually having to do an exceptional rig and because these two joints are parallel they stay roughly parallel as you move and if i was even closer to being parallel you'd actually get perfect result that way so now we got our t-rex flake and the multi-ik solver works fine and that works great for also doing multi-joint limbs three or four bone joint limbs as well will work a lot better with this technique so thankfully this correction was put in there so now we can actually fully explore all the possibilities that we have in the old shop ik solver which is now ported over inside of here as a salt like but now let's add a hint to um to the way that we can work on the you know on the skeleton we're going to add a third input now and what we're going to do is we're going to do a skeleton blend and we're going to blend between two different states so we can actually drive the skeleton so we're going to put this over to here and i'm going to put another rig pose and this rigged pose will allow us to actually sculpt the rest position for our ik solver and then i can take the skeleton blend and i'm going to put a null in here just so we can clearly identify what this is and i'm going to adjust rest trans there we go i'm going to wire this in into the third input and you can see right away that it's kind of cool here that we're seeing two rigs now if i right mouse on here though because this regatta revop is doing something special with the display and if you find this disconcerting thing oh no who knew he's got that bug where it's drying jump tree that's not supposed to be drawing not the case here you have to right mouse and we're actually showing you all the inputs and the outputs as well so we can actually turn this option off here called display inputs so we can only see the result of this operator so that's that's part of the magic of working with the rig attribute mop as i said it's going to get even more special as we go to the next release in the release after that if we double click inside of here now we can actually put a get point transforms and we're going to pick up all the track because we have here rest transforms so we can supply our own rest transforms on the fly and actually is a matrix a as well so we'll get transformed so we want to get it from the third input and we can wire that into the rest transforms and now if i go back to here and we can now say compute from rest transforms and now we can actually customize what those transforms are going to look like and so we go to the rig pose here and we can now move this we can now hint we can actually edit the rest pose on the fly by going to the second rig pose and we can tweak the rest positions and this can all be animated so if we want to drive this this joint rig such that if the leg is doing some wonky things into really exceptional situations we can put a relationship between this rigged pose and that rig post sort of keep things in harmony if we're getting some odd results which is something we could do with uh with the with um the object-based rigs as well which is quite quite handy so now we can do the rig pose here and we get our nice rig for doing the binding and i said before i'd show you an example file so i have one here off to the side i've built a number of these files where i build the chain because we need to make sure that we're we're doing good work here so i'm just going to turn this guy off here so i actually built the rigging objects using the old uh ik kin shop and you can see here there's pretty much everything we have the blend in there which is what i exposed with that blend for the ik solver so this is exactly what we ported over to and we can see here if we take the chain goal here we move this leg i can actually make this leg move and it works quite well and now if i go inside of here which is it's kind of a cool setup what i did here is i have my skeleton i built it exactly from i snapped to the points of the original bone rig post skeleton blend and rig attribute and over here i'm merging in the actual control rig from the objects themselves with the rig pose so i can actually adjust things beyond what i can do at the object level and there's my rig attribute bob again set up the same way solve ik to set point transforms so if i go up here and now if i move the chain goal and i turn the display of these guys off off i can actually see my four-point chain bonus doing exactly what it was doing and this one i am very careful to make sure that these two are parallel so now i get the exact same solution with uh the new uh vop canifex workflow versus the old chopper this is just reinforcing the fact that we are porting a lot of the chops channel operators that we used in previous rigs into this new kinematic solver so hopefully if you're an existing community tv who's done so we're going to be going oh really so the expectations are that we are matching uh when we port these things over from chops into the new rig vap context that they actually behave the same so please test that out if you find any clerical errors or any sort of discrepancies please report them to to us but anyway there you go um yeah i'll provide all these files uh thank you
Info
Channel: Houdini
Views: 11,492
Rating: 4.9705882 out of 5
Keywords:
Id: Z04t_OxBshA
Channel Id: undefined
Length: 135min 37sec (8137 seconds)
Published: Wed Jun 23 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.