<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Bryan Bentley, Character TD</title>
	<atom:link href="http://www.bryanbentley.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bryanbentley.com</link>
	<description>Rigging, Simulation, Tools .... Awesome</description>
	<lastBuildDate>Sat, 17 Dec 2011 07:36:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Rigging the Basic Spine</title>
		<link>http://www.bryanbentley.com/rigging-the-basic-spine/</link>
		<comments>http://www.bryanbentley.com/rigging-the-basic-spine/#comments</comments>
		<pubDate>Sat, 17 Sep 2011 05:17:52 +0000</pubDate>
		<dc:creator>bbentley81</dc:creator>
				<category><![CDATA[Rigging]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[character setup]]></category>
		<category><![CDATA[maya]]></category>
		<category><![CDATA[rig]]></category>
		<category><![CDATA[rigging]]></category>
		<category><![CDATA[spine]]></category>
		<category><![CDATA[spline]]></category>
		<category><![CDATA[splineIK]]></category>
		<category><![CDATA[twist rig]]></category>

		<guid isPermaLink="false">http://www.bryanbentley.com/?p=188</guid>
		<description><![CDATA[In this post we are going to set up a basic spine for a character. In later posts we will make it have have the ability to stretch to match the controller’s position, and squash to maintain volume.  A biped spine is the two hard masses of the rib cage and the pelvic bone held [...]]]></description>
			<content:encoded><![CDATA[<p align="LEFT">In this post we are going to set up a basic spine for a character. In later posts we will make it have have the ability to stretch to match the controller’s position, and squash to maintain volume.</p>
<p align="LEFT"> A biped spine is the two hard masses of the rib cage and the pelvic bone held together by spline wrapped in squishy stuff. So this is how we will set up the spine in Maya. We will have a pelvis joint, a chest joint, and several joints that make up the spine that are driven by a spline ik system.</p>
<p align="CENTER"> Lets Start:</p>
<p align="CENTER"><strong>SETTING UP THE JOINTS</strong></p>
<p>The first thing to do is to import your bind skeleton into a new scene. Delete the arms, legs, neck, and head, leaving only the pelvis, chest, and spine joints.</p>
<div id="attachment_189" class="wp-caption aligncenter" style="width: 262px"><a href="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture11.jpg"><img class="size-full wp-image-189" title="Capture1" src="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture11.jpg" alt="" width="252" height="384" /></a><p class="wp-caption-text">Figure 1</p></div>
<p align="LEFT">I like to make a duplicate of this heir achy and put it in a display layer and set it visualization mode to template. The helps to make sure that while you are doing your setup your joints do not drift away from the rest.</p>
<div id="attachment_190" class="wp-caption aligncenter" style="width: 959px"><a href="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture22.jpg"><img class="size-full wp-image-190" title="Capture2" src="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture22.jpg" alt="" width="949" height="437" /></a><p class="wp-caption-text">Figure 2</p></div>
<p align="LEFT">We need to separate the top of the spine from the chest joint. There is a Maya tool to do this called “disconnect joint”. This command will make break the joint chain and make a new joint for the missing end of the spine. <strong>Make sure you zero this new joints rotate and jointOrient Values after using the command.</strong></p>
<div id="attachment_191" class="wp-caption aligncenter" style="width: 401px"><a href="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture32.jpg"><img class="size-full wp-image-191" title="Capture3" src="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture32.jpg" alt="" width="391" height="633" /></a><p class="wp-caption-text">Figure 3</p></div>
<p align="LEFT">We will also unparent the spine from the pelvis joint. Rename all your joints to something that will denote them as joints in the animation rig, and not to be directly bound to the skin later on. I like to use the postfix “CTR” for control. So , for example, you would name your spine joints, spineACTR, spineBCTR, ect, ect. It is always a good idea to name your end joint something unique. I use the obvious END so spineCtrEND.</p>
<p align="LEFT">Next we need to make root locators for our newly broken hierarchy. The root locator is a transform that acts as a buffer for translate, rotate, scale information, so that the joint itself can have all it&#8217;s values at zero when at rest.</p>
<p align="LEFT">For the first joint in the chest, spine and pelvis repeat the following</p>
<ol>
<li>
<p align="LEFT">create a locator and give it a name that denotes it as a root locator. I like to use CHN or RUT, ie spineRUT or spineCHN</p>
</li>
<li>
<p align="LEFT">parent the root locator to the root joint in the chain and zero out all it&#8217;s transformations. This should snap the locator to the exact spot of the joint chain.</p>
</li>
<li>
<p align="LEFT">Unparent the locator and repartent the joint under the locator</p>
</li>
</ol>
<p align="CENTER">Once you are done your scene and outliner should look something like this:</p>
<div id="attachment_192" class="wp-caption aligncenter" style="width: 463px"><a href="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture41.jpg"><img class="size-full wp-image-192" title="Capture4" src="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture41.jpg" alt="" width="453" height="520" /></a><p class="wp-caption-text">Figure 4</p></div>
<p align="CENTER"> <strong>CREATING THE CONTROL OBJECTS</strong></p>
<p align="LEFT">Now we are going to go about creating controls for the whole upper body, the chest and the hips. We want the chest and the hips to be siblings under the upperBody controller so that they can move independent of one another.</p>
<p align="LEFT">You can use any shape, but for the sake of simplicity I am just going to use nurbs circles. Make three, and name them in such a way to denote that they are controller objects. I tend to use the postfix “CON” ie hipsCON, chestCON, and upperBodyCON. We are also going to make root locator for our controllers. They serve the same buffering function as the root locators for the joints.</p>
<p align="LEFT">Create three locators and name them in such a way that denotes them as root locators for your controller objects. I like to use NUL or OFS for “offset” ie hipsNUL, chestNUL ect ect.</p>
<p align="LEFT">Parent your controller objects under their respective locators. Now point snap (hold down the “v” key) the chest locator were the root of the chest joint is. We want the hips controller object and the upperbody controller object to sit in between the base of the spine and pelvis bone.</p>
<p align="LEFT">To do this select the spine and pelvis joints and then the upperbody locator and pointConstrain with maintain offset turned off. This will snap the locator (and it&#8217;s children) to a point directly between the two selections. Delete the pointConstraint you just made and point snap the remaining hips locator to the upperbody.</p>
<p align="LEFT">Also select all your controller objects and run a edit &gt; delete by type &gt; history to get rid of any construction nodes that make up the nurbs curve.</p>
<p align="CENTER">When it is finished it should look something like this:</p>
<p style="text-align: center;"><a href="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture52.jpg"><img class="aligncenter" title="Capture5" src="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture52.jpg" alt="" width="834" height="511" /></a></p>
<p align="CENTER"> <strong>CREATING THE SPLINE IK</strong></p>
<p align="LEFT"> We are now going to create the spline ik to connect the hips to the chest. Hide your controller objects, chest joints and pelvis joints so that they are not distracting.</p>
<p align="LEFT">We need a nurbs curve for the ik solver to use to rotate the spine. Go to create &gt; EP curve. Now, by holding down v, snap the first point of the curve to the base of the spine joints and the second to the end of the spine. Go into the curves attribute editor (make sure your are on the shape and not the transform) and turn on the display cvs under the component display tab.</p>
<div id="attachment_194" class="wp-caption aligncenter" style="width: 856px"><a href="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture62.jpg"><img class="size-full wp-image-194" title="Capture6" src="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture62.jpg" alt="" width="846" height="489" /></a><p class="wp-caption-text">Figure 6</p></div>
<p align="LEFT">As always rename the curve to something that denotes it as a curve. I use the postfix CRV. In this case I have called the curve spineIkCRV.</p>
<p align="LEFT">We are now ready to create out ik. Go to skeleton &gt; Ik Spline Tool and open the options box. Uncheck all the option boxes. Your mouse cursor should be a crosshair now denoting that Maya is now in a building mode. Holding the crtl button on the keyboard, in the outliner, select the base of the spine, the tip of the spine, and then the curve.</p>
<div id="attachment_195" class="wp-caption aligncenter" style="width: 1104px"><a href="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture72.jpg"><img class="size-full wp-image-195" title="Capture7" src="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture72.jpg" alt="" width="1094" height="523" /></a><p class="wp-caption-text">Figure 7</p></div>
<p align="LEFT">You will now have an ikHandle1 in world space, and an effector1 node under the last joint in the spine. Rename these two objects to something useful. I used spineIkHND and spineikEFF.</p>
<p align="LEFT"> Now if you move the cvs of the curve you can see that the joints snake along with it. Pretty cool, but this is not effective for animation. We are going to bind the curve to joints at the top and bottom of the spine os that we can use those to indirectly control the spine.</p>
<p align="LEFT"> Create two locators. These will be the root locators for the joints that will bind the curve. Name them something like spineikCrvANUL, and spineikCrvBNUL. Now create two joints named spineikCrvAJNT, and spineikCrvBJNT. Parent these under their respective locators.</p>
<p align="LEFT"> Point and oritnet constrain, without offset, spineikCrvANUL to the first joint in the spine hierarchy, and spineikCrvBNUL to the last. Now Delete the constrains as they were only to position these joints.</p>
<p align="CENTER"> You should now have something that looks like this:</p>
<div id="attachment_196" class="wp-caption aligncenter" style="width: 737px"><a href="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture82.jpg"><img class="size-full wp-image-196" title="Capture8" src="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture82.jpg" alt="" width="727" height="646" /></a><p class="wp-caption-text">Figure 8</p></div>
<p align="LEFT">Now that our joints are in place, we can bind the curve to them. Go to skin &gt; bind skin &gt; smooth bind option box.</p>
<div id="attachment_197" class="wp-caption aligncenter" style="width: 828px"><a href="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture9.jpg"><img class="size-full wp-image-197" title="Capture9" src="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture9.jpg" alt="" width="818" height="431" /></a><p class="wp-caption-text">Figure 9</p></div>
<p align="LEFT">Set “Bind to” to “Selected Joints”, “Bind method” to “closest distance”, and “skinning method” to “classic linear”. Now select your two new joints and press the “bind skin” button. Now when you move one of the new joints the spine joints snake along. The bottom will act strange right now b/c we turned off “root on curve” when we made the ik, but we will fix that when we parent everything together.</p>
<p align="LEFT"> We need to adjust the weight of the cvs so that the top two cvs are only affected by the top joint and vise versa with the bottom.</p>
<p align="LEFT"> Hide your joints by toggling their view off in the viewport through show &gt; joints. Select all the cvs of the curve and go to windows &gt; general editors &gt;component editor. Under the smooth skins tab you will see entries for the four cvs and the two joints. Cv[0], and [1] should be 1.00 for jointA and 0.00 for B. Cv[2], and [3] should be 0.00 for jointA and 1.00 for B. once you are done with this turn the joints visibility back on.</p>
<div id="attachment_198" class="wp-caption aligncenter" style="width: 795px"><a href="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture10.jpg"><img class="size-full wp-image-198" title="Capture10" src="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture10.jpg" alt="" width="785" height="615" /></a><p class="wp-caption-text">Figure 10</p></div>
<p align="CENTER"><strong>CONTROLLING THE SPINE TWIST</strong></p>
<p align="LEFT">Notice that if we rotate either joint on it&#8217;s aiming axis we get no twisting action in the spine. This is because curves have no rotation data in Maya. We will use the splineIk&#8217;s advanced twist feature to control the twisting of the spine. The advanced twist is basically another aim calculation built into the solver node, and as such has many of the same options. For more information on aim constraints see my post on them.</p>
<p align="LEFT">So we can better see what is happening with our spine, turn on the local rotation axis for all of the spine joints except for the start and end. Also turn on the local rotation axis for the bind joints we just made</p>
<p align="LEFT">Select the splineIkhandle and open the attribute editor. Under Iksolver attributes &gt; advanced twist controls toggle on “enable enable twist controls”. Now yo will see you local rotation axis flip and spin. Not to worry this is only because we have not set the proper parameters yet.</p>
<p align="LEFT">Set the “world up type” to “Object rotation Up start/end”. Now simply type in the name of the joint at the base of your some in “World Up Object” Field and the name of the joint at the top of the spine in “World Up Object 2”. You should now see your local rotation axis are back to normal.</p>
<p align="CENTER">Here are The setting mentioned above and what they pertain to in the rig:</p>
<div id="attachment_199" class="wp-caption aligncenter" style="width: 841px"><a href="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture111.jpg"><img class="size-full wp-image-199" title="Capture11" src="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture111.jpg" alt="" width="831" height="639" /></a><p class="wp-caption-text">Figure 11</p></div>
<p align="LEFT"> so now when we twist the two end joints we get nice distributed twisting long the length of the spine joint chain. It is also a good idea to increase the radius of the two bind joints so that they are easier to select.</p>
<p align="CENTER"> <strong>PUTTING IT ALL TOGETHER<br />
</strong></p>
<p align="LEFT">Wow that was a lot to take in. Luckily the hard part is over, all we have left to do is parent the systems together. Unhide the other elements of the spine that we hid while setting up the Ik.</p>
<p align="LEFT">We want to parent everything that moves with the pelvic bone to the hips controller object, so that would be the pelvis locator, the bind joint at the base of a the spine, and the spine itself.</p>
<p align="LEFT">We want to parent everything that moves with the chest under the chest controller object, so that would be the chest joint locator, and the bind joint at the top of the spine. Finally we want to move the entire system with the upperBody so we parent both the locator above the chest controller object and the locator above the hip controller object to the hips controller object.</p>
<p align="CENTER">Here is what your outliner will look like when all that is done:</p>
<p align="CENTER"> <a href="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture12.jpg"><img class="size-full wp-image-200" title="Capture12" src="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture12.jpg" alt="" width="809" height="613" /></a></p>
<div class="mceTemp mceIEcenter">
<dl id="attachment_200" class="wp-caption aligncenter" style="width: 819px;">
<dd class="wp-caption-dd">Figure 12</dd>
</dl>
</div>
<p align="LEFT">We still have a few nodes that are not tucked away yet. The curve that drives the spine ik and the ik handle should never be touched or moved by an animator. So, we will put them under a “noTouch” null. Select them both the curve and the splineIkhandle and press crtrl+g. This will put them under a transform that sits at the origin. Rename this group something like spineNoTouch.</p>
<p align="LEFT"> There is still one small problem with our setup. If we take the hips and rotate them in z we can see that our spine top pulls away from our chest base.</p>
<div id="attachment_201" class="wp-caption aligncenter" style="width: 385px"><a href="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture13.jpg"><img class="size-full wp-image-201" title="Capture13" src="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture13.jpg" alt="" width="375" height="430" /></a><p class="wp-caption-text">Figure 13</p></div>
<p align="LEFT">This is an easy fix. Zero the rotations in the hips. Select the spine tip and the root locator of the chest joint and point constrain. Now when we rotate the hip the chest sticks to the top of the spine while still following the orientation of the chest controller object.</p>
<p align="LEFT"> Now all we do is group the noTouch and the upperBody locator into another group called spineRigNUL. If everything has gone to plan if you toggle the visibility of this new group on an off you should see no difference in the spine setup and the joint we templated at the beginning of the tutorial.</p>
<p align="LEFT"> Having all the controller object the same color is boring and visually confusing. Lets fix that. Select the hips and chest controller objects, and press the down arrow key. What you have just done is select the shape node of the curve. Go to display &gt; wireframe color and pick a color from the menu that pops up.</p>
<div id="attachment_202" class="wp-caption aligncenter" style="width: 738px"><a href="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture14.jpg"><img class="size-full wp-image-202" title="Capture14" src="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture14.jpg" alt="" width="728" height="662" /></a><p class="wp-caption-text">Figure 14</p></div>
<p align="LEFT">Now Just delete the template joints and the display layer and now you have yourself a working spine right&#8230;go you!!!</p>
<div id="attachment_203" class="wp-caption aligncenter" style="width: 557px"><a href="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture15.jpg"><img class="size-full wp-image-203" title="Capture15" src="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture15.jpg" alt="" width="547" height="527" /></a><p class="wp-caption-text">Figure 15</p></div>
<p align="CENTER">CHEERS</p>
<p align="CENTER">B.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bryanbentley.com/rigging-the-basic-spine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building 3 Joint Chains With Aim Constraints</title>
		<link>http://www.bryanbentley.com/building-3-joint-chains-with-aim-constraints/</link>
		<comments>http://www.bryanbentley.com/building-3-joint-chains-with-aim-constraints/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 04:53:03 +0000</pubDate>
		<dc:creator>bbentley81</dc:creator>
				<category><![CDATA[Rigging]]></category>
		<category><![CDATA[3d. joint orient]]></category>
		<category><![CDATA[aim contraint]]></category>
		<category><![CDATA[axis]]></category>
		<category><![CDATA[joint chains]]></category>
		<category><![CDATA[local rotation]]></category>
		<category><![CDATA[maya]]></category>

		<guid isPermaLink="false">http://www.bryanbentley.com/?p=173</guid>
		<description><![CDATA[In the previous post I talked about the proper setup for a three joint chain. In this lesson I will show a more precise way to create this setup. As mentioned before the previous setup is clean but what happens when you HAVE to have your pivots on exact locations, like with mechanical rigs. To [...]]]></description>
			<content:encoded><![CDATA[<p>In the previous post I talked about the proper setup for a three joint chain. In this lesson I will show a more precise way to create this setup.</p>
<p>As mentioned before the previous setup is clean but what happens when you HAVE to have your pivots on exact locations, like with mechanical rigs. To position a joint chain using the previous technique would be rather painful. Lets look a a different way to do this, using an aim constraint to find the normal vector to the the plane formed by the three positions in space we are trying to mach.</p>
<p>The sounded like a lot. We&#8217;ll take this one thing at a time. Any three points will make a plane. Think of a piece of paper. If you can place three dots on that paper and move it around in space. The dots are our joints and the paper is the plane that they make. Now take three push pins and poke them though each dot. These are your normals to that paper plane.</p>
<p>If you look at the paper on edge you will see the all the shafts of the push pins are parallel! And because I had neither paper or pushpins as I am writing this I am using the magic of 3d to illustrate this idea to you.</p>
<div id="attachment_175" class="wp-caption aligncenter" style="width: 933px"><a href="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture1.jpg"><img class="size-full wp-image-175" title="Capture1" src="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture1.jpg" alt="Figure 1" width="923" height="388" /></a><p class="wp-caption-text">Figure 1</p></div>
<p>So here is how we go about finding the “pushpins”, which is the z axis in this illustration. We use aim constraints. To see more about aim constraints check out my post on them.</p>
<p>So lets say you have three locations in space that your joints have to hit exactly. (posA, posB, posC)</p>
<div id="attachment_176" class="wp-caption aligncenter" style="width: 667px"><a href="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture21.jpg"><img class="size-full wp-image-176" title="Capture2" src="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture21.jpg" alt="Figure 2" width="657" height="541" /></a><p class="wp-caption-text">Figure 2</p></div>
<p>STEP 1:</p>
<p>use the <strong>joint tool</strong> and go into an orthographic view and draw three joints in a straight line. It doesn’t matter now long the chain is, just that the joints are there.</p>
<div id="attachment_177" class="wp-caption aligncenter" style="width: 212px"><a href="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture31.jpg"><img class="size-full wp-image-177" title="Capture3" src="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture31.jpg" alt="Figure 3" width="202" height="359" /></a><p class="wp-caption-text">Figure 3</p></div>
<p>STEP 2:</p>
<p>point constrain the the first joint to the posA object</p>
<p>STEP 3: (this is were the magic happens)</p>
<p>Open up the aim constraint option box. Set the <strong>“ world up type”</strong> to <strong>“object up”</strong> and put the name of <strong>posC </strong>object in the field (in my case it was called loc3), and make sure maintain <strong>offset is off.</strong> Select the <strong>posB</strong> object and then the <strong>first joint </strong>and pres apply.</p>
<p>Your first joint should now be aiming at the posB object. But why did we use the last position as an up object? What that gives us is the two vectors we need to define our third (see aim constraint post).</p>
<p>To check and see if you are on the right track, create a polygon plane and parent it under the first point. Now zero all the transformations. You may have to put 90 in the aiming axis (x in my case) but that is ok.</p>
<p>If you scale up the plane big enough you will see it now passes directly though the center of all three positions!</p>
<div id="attachment_178" class="wp-caption aligncenter" style="width: 838px"><a href="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture4.jpg"><img class="size-full wp-image-178" title="Capture4" src="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture4.jpg" alt="Figure 4" width="828" height="496" /></a><p class="wp-caption-text">Figure 4</p></div>
<p>STEP 4:</p>
<p><strong>Point constrain</strong> the <strong>second</strong> joint to the <strong>posB object</strong>. If you have done this correctly you should now only have values in the aiming channel (in my case it is x):</p>
<p>STEP 5: (more magic)</p>
<p>Open the aim constraint option box again. This time change the <strong>“World up type”</strong> to <strong>“Object rotation up”</strong> and put the name of your <strong>first joint</strong> in the field. Also put zeros in all of the up vector fields <em>except</em> the ones that would be be the “pushpins” from earlier (in my case it is z). Do this also for the <strong>“world up vector”</strong> option.</p>
<p>Now select your <strong>posC object</strong> and your <strong>second joint</strong> and press apply. If you have done this right you should have rotations in only one channel (z in my case).</p>
<div id="attachment_179" class="wp-caption aligncenter" style="width: 748px"><a href="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture51.jpg"><img class="size-full wp-image-179" title="Capture5" src="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture51.jpg" alt="Figure 5" width="738" height="447" /></a><p class="wp-caption-text">Figure 5</p></div>
<p>STEP 6:</p>
<p>Point constraint your <strong>last joint</strong> to the <strong>posC object</strong> and zero out its rotations, jointOrients, and rotateAxis values if it has any.</p>
<p>STEP 7:</p>
<p>Delete the plane and all the point and aim constraints you have made. Select the top joint and run modify &gt; freeze transformations to move the joints rotation values into the jointOrient.</p>
<div id="attachment_186" class="wp-caption aligncenter" style="width: 519px"><a href="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture81.jpg"><img class="size-full wp-image-186" title="Capture8" src="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture81.jpg" alt="Figure 6" width="509" height="510" /></a><p class="wp-caption-text">Figure 6</p></div>
<p align="center">DONE!</p>
<p>&nbsp;</p>
<p>You may be asking yourself, “why go to all this trouble? why not just point snap the joints and be done with it?” Hers is why, your joint orients will not be clean if you just point snap your joints into place.</p>
<p align="center"> Here is what I am talking about:</p>
<div id="attachment_181" class="wp-caption aligncenter" style="width: 617px"><a href="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture71.jpg"><img class="size-full wp-image-181" title="Capture7" src="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture71.jpg" alt="Figure 7" width="607" height="416" /></a><p class="wp-caption-text">Figure 7</p></div>
<p>The sad part about this is that no amount of gratuitous use of the joint orient tool will fix this travesty. If you do run into a situation were you absolutely cannot change the orientation of your joints, I would suggest building a clean chain. Place nulls under each joint that have the exact same orientation as the joint with wonky rotate axis and then point and orient constrain them to these nulls.</p>
<p>This way you keep your strangely oriented joints and you have a clean chain to put ik or other controls on. I hope this helps!</p>
<p align="center"> CHEERS</p>
<p align="center">B</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bryanbentley.com/building-3-joint-chains-with-aim-constraints/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Demystifying the Aim Constraint</title>
		<link>http://www.bryanbentley.com/demystifying-the-aim-constraint/</link>
		<comments>http://www.bryanbentley.com/demystifying-the-aim-constraint/#comments</comments>
		<pubDate>Sun, 17 Jul 2011 03:39:45 +0000</pubDate>
		<dc:creator>bbentley81</dc:creator>
				<category><![CDATA[Rigging]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[aim contraint]]></category>
		<category><![CDATA[maya]]></category>
		<category><![CDATA[rigging]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.bryanbentley.com/?p=152</guid>
		<description><![CDATA[Out of all the constraints in Maya the aim constraint seems to give beginners the most headaches. This is most likely due to the fact that there is little explanation of this concept of “Up”. The best way to think of “Up” is not the physical direction but as a vector in space. Anything that [...]]]></description>
			<content:encoded><![CDATA[<p>Out of all the constraints in Maya the aim constraint seems to give beginners the most headaches. This is most likely due to the fact that there is little explanation of this concept of “Up”. The best way to think of “Up” is not the physical direction but as a vector in space.</p>
<p>Anything that rotates is Maya (and all 3d apps for that matter) gets this rotation from three vectors. These three vectors all have a length of one and are at 90degree angles to one another These vectors are calculated In such a way as to produce the rotation of the object.</p>
<div id="attachment_159" class="wp-caption aligncenter" style="width: 247px"><a href="http://www.bryanbentley.com/wp-content/uploads/2011/12/aimConstTutorial_html_m61c316a2.gif"><img class="size-full wp-image-159" title="aimConstTutorial_html_m61c316a2" src="http://www.bryanbentley.com/wp-content/uploads/2011/12/aimConstTutorial_html_m61c316a2.gif" alt="Illustration 1: a locators three axis of rotation" width="237" height="237" /></a><p class="wp-caption-text">Illustration 1: a locators three axis of rotation</p></div>
<p>In Maya you can visualize these vectors in several ways;</p>
<p>&nbsp;</p>
<p align="center">Through the main menu:</p>
<p align="center">display &gt; Transform Display &gt; Local Rotation Axis</p>
<div id="attachment_166" class="wp-caption aligncenter" style="width: 350px"><a href="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture2.jpg"><img class="size-full wp-image-166" title="Capture2" src="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture2.jpg" alt="Illustration 2: visualizing local rotation axis with the Maya menu" width="340" height="371" /></a><p class="wp-caption-text">Illustration 2: visualizing local rotation axis with the Maya menu</p></div>
<p align="center">Through the attribute editor:</p>
<p align="center">In the attribute editor under the Display tab. Toggle “Display Local Axis”</p>
<div id="attachment_171" class="wp-caption aligncenter" style="width: 514px"><a href="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture3.jpg"><img class="size-full wp-image-171" title="Capture3" src="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture3.jpg" alt="Illustration 3: visualizing the local rotation axis with the attribute editor" width="504" height="434" /></a><p class="wp-caption-text">Illustration 3: visualizing the local rotation axis with the attribute editor</p></div>
<p>you can also do this though commands:</p>
<p align="center">mel:</p>
<p align="center">setAttr &#8220;locator1.displayLocalAxis&#8221; 1;</p>
<p align="center"> python:</p>
<p align="center">cmds.setAttr(&#8220;locator1.displayLocalAxis&#8221;, True)</p>
<p>What we mean when we say “Up” is really “what axis should we use for the cross product”. What is the cross product you ask? By taking the cross product of two vectors that are a length of one and are at 90 degrees to one another we get a third vector that is also one unit in length and 90 degrees to both input vectors.</p>
<p>That was all pretty heady lets look at some examples:</p>
<p>here is the aim constraint option box:</p>
<div id="attachment_165" class="wp-caption aligncenter" style="width: 731px"><a href="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture.jpg"><img class="size-full wp-image-165 " title="Capture4" src="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture.jpg" alt="Illustration 4: the default aim constraint options window" width="721" height="471" /></a><p class="wp-caption-text">Illustration 4: the default aim constraint options window</p></div>
<p>This is a lot of info so we will step through it one at a time. Aim Vector is the axis we want to point at our target. The first field is x, second y third z. (this is true for almost all three field inputs in Maya). The up vector field is what we&#8217;ve explained previously. It is the axis that we will use to define the third axis vector. So Maya defaults to aiming the x axis at the target and uses the y axis to calculate the z axis.</p>
<p>The next three fields work together to place the up vector. Think of this as telling what is in the “Up vector” field were to go.</p>
<p>Here are the default settings. We are aiming the x axis at our target and telling the y axis to point up in y.</p>
<div id="attachment_167" class="wp-caption aligncenter" style="width: 859px"><a href="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture5.jpg"><img class="size-full wp-image-167 " title="Capture5" src="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture5.jpg" alt="Illustration 5: aiming with the default settings" width="849" height="409" /></a><p class="wp-caption-text">Illustration 5: aiming with the default settings</p></div>
<p>here is another example were we are telling our y axis to point in x:</p>
<div id="attachment_168" class="wp-caption aligncenter" style="width: 859px"><a href="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture6.jpg"><img class="size-full wp-image-168 " title="Capture6" src="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture6.jpg" alt="Illustration 6: changing the &quot;up&quot; position from y to x" width="849" height="408" /></a><p class="wp-caption-text">Illustration 6: changing the &quot;up&quot; position from y to x</p></div>
<p>Now what if we want to change were out “Up” is pointing. In these two examples the up placement is static. By using the “Object Up” and  “Object Rotation Up” options we can define the position of our up vector.</p>
<p>I this example we use “Object Up” and specify an object in the scene. The “up” vector will now always aim to this object. The rotation of the object in this example is irrelevant.</p>
<div id="attachment_169" class="wp-caption aligncenter" style="width: 944px"><a href="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture7.jpg"><img class="size-full wp-image-169" title="Capture7" src="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture7.jpg" alt="Illustration 7: using another objects position as the up" width="934" height="446" /></a><p class="wp-caption-text">Illustration 7: using another objects position as the up</p></div>
<p>I the next example the “Object Rotation Up” is now being used with the same object. We can see here that the orientation of the y axis of the aiming object now matches the x axis of “World up object”. The position of the object in this example is irrelevant.</p>
<div id="attachment_170" class="wp-caption aligncenter" style="width: 942px"><a href="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture8.jpg"><img class="size-full wp-image-170" title="Capture8" src="http://www.bryanbentley.com/wp-content/uploads/2011/12/Capture8.jpg" alt="Illustration 8: using another object's rotation to determine up" width="932" height="400" /></a><p class="wp-caption-text">Illustration 8: using another object&#39;s rotation to determine up</p></div>
<p>&nbsp;</p>
<p>By effectively controlling the “up” of an aiming object you have options that far exceed the capability of the more simple point, orient and scale constraints.</p>
<p>&nbsp;</p>
<p align="center">CHEERS</p>
<p align="center">B.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bryanbentley.com/demystifying-the-aim-constraint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Keeper and The Wraith</title>
		<link>http://www.bryanbentley.com/keeper-and-the-wraith/</link>
		<comments>http://www.bryanbentley.com/keeper-and-the-wraith/#comments</comments>
		<pubDate>Sun, 17 Oct 2010 15:42:26 +0000</pubDate>
		<dc:creator>bbentley81</dc:creator>
				<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Rigging]]></category>

		<guid isPermaLink="false">http://www.bryanbentley.com/?p=139</guid>
		<description><![CDATA[Finished Principal animation on my short film! It is the story of The Keeper who takes care of ancient statues and the villain who wants to destroy them.Thank you to the wonderful animation and design team. Hopefully I&#8217;ll get this rendered sometime this century. The main subject in interest as far as rigging goes on [...]]]></description>
			<content:encoded><![CDATA[<p>Finished Principal animation on my short film!</p>
<p>It is the story of The Keeper who takes care of ancient statues and the villain who wants to destroy them.Thank you to the wonderful animation and design team. Hopefully I&#8217;ll get this rendered sometime this century. The main subject in interest as far as rigging goes on this would be the flapping wings and the facial setups with stick on clusters. Hopefully I&#8217;ll be putting vids up on how I did those.</p>
<p>ENJOY!</p>
<object width="600" height="365"><param name="allowfullscreen" value="true" /><param name="wmode" value="opaque"><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=27815479&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=27815479&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="600" height="365" wmode="transparent"></embed></object>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bryanbentley.com/keeper-and-the-wraith/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Offload Studios Newsletter Feature &#8220;The Keeper&#8221; by Bryan Bentley</title>
		<link>http://www.bryanbentley.com/offload-studios-newsletter-feature-the-keeper-by-bryan-bentley/</link>
		<comments>http://www.bryanbentley.com/offload-studios-newsletter-feature-the-keeper-by-bryan-bentley/#comments</comments>
		<pubDate>Wed, 09 Jun 2010 15:32:13 +0000</pubDate>
		<dc:creator>bbentley81</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.bryanbentley.com/?p=124</guid>
		<description><![CDATA[This month&#8217;s feature Tactual: &#8220;The Keeper&#8221; by Bryan Bentley For the past two years Bryan Bentley has been a creature technical director at Industrial Light and Magic. Prior to this he worked as both a technical animator doing cloth and hair simulation, and creature finaling at Rhythm and Hues. Prior to this he worked as [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://offloadstudios.com/core/index.php/blog/june-2010-newsletter.html" title="Offload Studios" target="_blank"><img class="aligncenter" title="Off Load Studios" src="https://app.icontact.com/icp/loadimage.php/mogile/704435/ac616a50076f32a3a33668d9b889ea9b/image/jpeg" alt="" width="600" height="126" /></a></p>
<p style="text-align: center;">This month&#8217;s feature Tactual:<br />
<strong>&#8220;The Keeper&#8221;</strong><br />
by Bryan Bentley</p>
<p>For the past two years Bryan Bentley has been a creature technical director at Industrial Light and Magic. Prior to this he worked as both a technical animator doing cloth and hair simulation, and creature finaling at Rhythm and Hues. Prior to this he worked as a tools programmer at The Jim Henson Co.</p>
<p>Bentley has worked on some great films including the Oscar winning Golden Compass, and the most recent Hulk film. His current project is Rango, ILM&#8217;s first fully animated film, starring the voice of Johnny Depp and directed by Gore Verbinski.</p>
<p><img class="aligncenter" title="Keeper Poses" src="http://www.bryanbentley.com/wp-content/uploads/2011/08/3dprint-e1312866243515.jpg" alt="" width="650" height="250" /></p>
<p style="text-align: center;">Photos by Laura Henderson</p>
<p>Bentley received his Bachelors of Science from Purdue University, and is currently pursuing his Masters of Fine Art from Savannah College of Art and Design. The tactual, &#8220;The Keeper&#8221; is the main character in his thesis film &#8220;The Keeper and the Wraith&#8221;. The thesis seeks to explore different ways of representing characters in a visual medium.</p>
<p>Bentley decided that having the main character brought into tactual reality seemed to be the logical exploration of this principle.</p>
<p><strong>Bryan speaks about tactualizing &#8220;The Keeper&#8221;:</strong></p>
<p>&#8220;I have never had a model printed before, so there was a little bit of a learning curve to the requirements for the model. The biggest hurdle was making the character &#8220;water tight&#8221;. Because the original model was designed for animation and highly optimized, there was some pre-processing that needed to be done, but Dan @ Offload Studios was very helpful and made the experience most pleasant.&#8221;</p>
<p>&#8220;I am very happy with the result of the print and I will most definitely return for my future printing needs. I will be finishing my thesis this August, and &#8220;The Keeper and the Wraith&#8221; will be completed mid 2011.&#8221;</p>
<p><strong> Tactual Notes: Staying Withing the Real World</strong><br />
Digital Asset Manager Dan Hutchings notes on tactualization</p>
<p>Every tactual has unique concerns in the production stages. Our concern with Bryan&#8217;s sculpture was with her hair, and that it may put the finished tactual off balance. However, once the model had been printed, it was able to stand on its own. This is a perfect example of how a good artist can feel the balance of his model, even when it exists in a digital medium.</p>
<p>Balance and structure are two very important things to think about when it comes to producing a &#8220;real world&#8221; model. Skinny legs supporting a massive body, or floating objects would normally be advised against. That being said, there are always ways to solve the challenges of gravity and physics. The use of magnets, pegs and support rigging can be developed to realize a complicated structure. See our website&#8217;s gallery for some examples of this. http://offloadstudios.com/core/index.php/blog/june-2010-newsletter.html</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bryanbentley.com/offload-studios-newsletter-feature-the-keeper-by-bryan-bentley/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello world!</title>
		<link>http://www.bryanbentley.com/hello-world/</link>
		<comments>http://www.bryanbentley.com/hello-world/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 03:13:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.bryanbentley.com/?p=1</guid>
		<description><![CDATA[Welcome to my blog.  I know there are a ton of 3d blogs out there now a day and I figured I&#8217;d add my little bit of knowledge into the mix. I&#8217;ll be posting some more content soon!]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bryanbentley.com/wp-content/uploads/2009/10/IMG_6597-e1312814942800.jpg"><img class="alignleft size-medium wp-image-41" title="mayshoot" src="http://www.bryanbentley.com/wp-content/uploads/2009/10/IMG_6597-e1312814942800-200x300.jpg" alt="" width="200" height="300" /></a>Welcome to my blog.  I know there are a ton of 3d blogs out there now a day and I figured I&#8217;d add my little bit of knowledge into the mix. I&#8217;ll be posting some more content soon!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bryanbentley.com/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Once Uppon a tYme&#8221;</title>
		<link>http://www.bryanbentley.com/once-uppon-a-tyme/</link>
		<comments>http://www.bryanbentley.com/once-uppon-a-tyme/#comments</comments>
		<pubDate>Mon, 18 Aug 2008 14:13:41 +0000</pubDate>
		<dc:creator>bbentley81</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.bryanbentley.com/?p=146</guid>
		<description><![CDATA[This was my first short at Savannah College of Art and design. I had the privilege of working with some really top notch animators. All of them went on to have success in the industry. I was responsible for the rigging pipeline , tools, and some of the texturing . The hippo was fun because [...]]]></description>
			<content:encoded><![CDATA[<p>This was my first short at Savannah College of Art and design. I had the privilege of working with some really top notch animators. All of them went on to have success in the industry.</p>
<p>I was responsible for the rigging pipeline , tools, and some of the texturing . The hippo was fun because I only had to focus on making his upper body look good. Looking back on there there is so much that can be improved , but I guess that is what happens when you look at your work years later. Still I think it holds up.</p>
<p>It was a lot of work and we were really happy with the results. It won best student animation at SIGGRAPH in 2007 I think. In any case, enjoy the silly!</p>
<object width="600" height="365"><param name="allowfullscreen" value="true" /><param name="wmode" value="opaque"><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=27861639&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=27861639&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="600" height="365" wmode="transparent"></embed></object>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bryanbentley.com/once-uppon-a-tyme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

