Wednesday, 9 November 2016

Update 4: Simple Mechanical Rig

Entry1:

With my capstone centralized around a mechanical creature, I figured I would experiment with a very basic vehicle that only uses simple machines - the bicycle - and that I wanted to do it entirely without bones. I know this wont be a huge challenge, but there were somethings I felt I could play with Having already modeled one for my street corner. First thing I did was break the mesh apart into the pieces that would move: handle bars, wheels, pedals, etc.



Entry2: 

I set up very simple controllers, and used parenting to group the appropriate meshes together. I used the connection editor to drive the pedals into the back wheel (this time actually getting to use  the multiply node mentioned in the last post), ensuring that the rear wheel moved faster as its on a smaller gear. The handlebars control the front wheel, and the front wheel can rotate independently for the back.

The pedals were the part The I was most interest in: something I hadn't done before was create a part of an object the moved relative to a part its anchored to, but allow for its own movement. The solution turned out to be much easier than I expected and actually did not present that much of a challenge. I simply parented a locator to the pedal arm, and then parented the pedals to the locators. This makes the pedals stay level, no mater how the arms are rotated



All in all, this was actually pretty easy, though I was interesting to be working only with where the rotation point of the controllers was. There was a little bit of learning here, but I was able to intuit it through a little trial and error rather than research or learn from another source.

Update 3: Arms IK/FK toggle


Entry1

Something we've never really gotten around to doing with rigging in our classes is, well, rigging. We've gone as far as to place joints in relation to a mesh, but have done nothing past that. Today I will start by working out how to bind skin, create controllers, and be able to toggle IK/FK.

I found an arm from second year where we had placed the joints inside the mesh and I have added basic nurbs shapes for controllers.



Entry2

I have used parenting and constraints in order to make the hand locator and elbow pole behave as intended. I add a rotate chain solver IK handle connecting the shoulder and wrist. Finally, I have bound the skin using the Geodesic Voxel method, which seems to yield the best and quickest results. For the sake of this exercise, I will not worry about weight painting too much. Seen below, the rig is now behaving as intended


Entry3:

Next up is making the toggle for IK/FK. This will be done with a driven key. I've created another nurbs shape with an boolean attribute. This will drive the toggle between IK/FK, as well as the visibility for the controls. The connections are driven through the connection editor



Entry4:

Since I already have controllers for the IK mode, I need to still create some for the FK. I've often seen orbs made of three rings used in this place, but when grouping nurbs circles in the regular fashion they maintain a hierarchy. Reading through Rigging for Game by Eyal Assaf I have found that Python or MEL can be used to remedy this. The example given used MEL, so that is what I used as well. The jist of it is a line fo code reading:

parent -shape -relative [a list of the names of the shapes you wish to group, seperated with spaces] [the name of the object you wish to add those shapes to];

This results in a complex nurb shape where any part of it can be clicked without worrying about a hierarchy


Entry5:

This part requires me to be able to invert the boolean on the IK toggle, but I at first had no clue how to do this. I found that nodes can be created in the hypergraph, then thought I could use a MultiplyDivide node to multiply by -1 thus inverting it (forgetting thats not how booleans work all at the same time). One of these nodes is a reverse node. This node seems to be able to flip a fed boolean and does what I need. Connections are driven through the connection editor.

I had to restructure the parenting and constraints of many of the components involved, but the end result is as desired and allows the use to toggle between IK and FK, and remembers the last posion of both.

IK and controllers, working as intended

FK and controllers, with only one small hiccup

The only issue with this setup is that, when switching from IK to FK, the FK wrist orientation remains the same as it was when it was IK


Overall this seems to be a success, though I know there are other ways to get this working, one of which includes using multiple sets of joints for each type of control method.



Saturday, 5 November 2016

Update 2: The One With No Subtitle

The last week has been busy, though I've found some small amount of time to put toward this research. After asking someone currently employed as a rigger and recently graduated, I was pointed towards learning Python scripting, and trying to work with an animator whenever I can. As the animator is the one who will be using the rigs, it should be tailored to them. The the time remaining, I'm sure I cannot get too in depth with Python scripting, though I will be sure to pursue this in the future. Letting animators use my rigs and give feedback as they are constructed is also a very helpful pointer and I will definitely be asking the animators in the class to play with and give feedback on any rig I create.