<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Faith of the Fallen</title>
	<atom:link href="http://faithofthefallen.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://faithofthefallen.wordpress.com</link>
	<description>Some thoughts and Notes... on Rigging</description>
	<lastBuildDate>Fri, 29 Jul 2011 16:11:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='faithofthefallen.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Faith of the Fallen</title>
		<link>http://faithofthefallen.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://faithofthefallen.wordpress.com/osd.xml" title="Faith of the Fallen" />
	<atom:link rel='hub' href='http://faithofthefallen.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Awesome Spine Setup</title>
		<link>http://faithofthefallen.wordpress.com/2008/10/08/awesome-spine-setup/</link>
		<comments>http://faithofthefallen.wordpress.com/2008/10/08/awesome-spine-setup/#comments</comments>
		<pubDate>Wed, 08 Oct 2008 19:08:12 +0000</pubDate>
		<dc:creator>animatix</dc:creator>
				<category><![CDATA[Character Rigging]]></category>
		<category><![CDATA[Awesome Spine]]></category>

		<guid isPermaLink="false">http://faithofthefallen.wordpress.com/?p=36</guid>
		<description><![CDATA[&#8220;Awesome Spine” Setup A few people have showed interest in how I create what I call the Awesome Spine. So here is my tutorial. I hope you enjoy it. Click on the images to make them larger. Create a spine with 5 joints like Figure 1. and orient the joints correctly. Name the joints to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=faithofthefallen.wordpress.com&amp;blog=1450645&amp;post=36&amp;subd=faithofthefallen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<table style="height:40px;" border="0" cellspacing="0" cellpadding="0" width="688">
<tbody>
<tr>
<td>
<div>
<p class="MsoCaption">
</div>
<p style="text-align:center;"><strong>&#8220;Awesome Spine” Setup</strong></p>
</td>
</tr>
</tbody>
</table>
<p><!--[if !vml]--><!--[endif]--><!--[if gte vml 1]&gt;                     &lt;![endif]--><!--[if !vml]--><!--[endif]--><!--[if gte vml 1]&gt;--></p>
<table style="height:35px;" border="0" cellspacing="0" cellpadding="0" width="688">
<tbody>
<tr>
<td style="text-align:center;">A few people have showed interest in how I create what I call the Awesome Spine. So here is my tutorial. I hope you enjoy it. Click on the images to make them larger.</td>
</tr>
</tbody>
</table>
<ol style="margin-top:0;" type="1">
<li class="MsoNormal">Create a spine with 5 joints like Figure 1. and orient      the joints correctly.
<p><div id="attachment_52" class="wp-caption alignright" style="width: 74px"><a href="http://faithofthefallen.files.wordpress.com/2008/10/figure1.jpg"><img class="size-full wp-image-52" title="figure1" src="http://faithofthefallen.files.wordpress.com/2008/10/figure1.jpg?w=497" alt="Figure1"   /></a><p class="wp-caption-text">Figure1</p></div></li>
<li class="MsoNormal"><span>Name the joints to avoid      future confusion. I named the first set Spine_#_<span>ik</span>, replace the hash with      a number. Duplicate the all the joints and rename them Spine_#_bind. See Figure      2.</span></li>
<li class="MsoNormal"><span>Duplicate the spine_1_<span>ik</span> and      duplicate it again so you have two joints. Name them hip_joint,      shoulder_joint respectively. Snap the shoulder_joint to the top spine joint.</span></li>
<li class="MsoNormal"><span>Now create an <span>splineIK</span> from      spine_1_<span>ik</span> to spine_6_<span>ik</span>, with the attributes in Figure 3.</span></li>
<li class="MsoNormal"><!--[if gte vml 1]&gt;   &lt;![endif]--><!--[if !vml]--><!--[endif]--><span>Now select the      spine_curve, hip_joint, and shoulder_joint. We are going to smooth bind      these joints to the <span>splineIK</span> curve. Skin-&gt;Bind Skin-&gt;Smooth Bind. Use      the selected joints and default settings for the rest. The hip and      shoulder joints now control the spine. This is awesome because now we have      independent control of the shoulder and hips. By rotating either joint we      can get nice curves quickly. The only thing it can’t do yet is twist down      the length of the spine. This is what we are going to spend the rest of      the tutorial setting up.</span></li>
<li class="MsoNormal"><!--[if gte vml 1]&gt;--><!--[if !vml]--><!--[endif]--><span>Create      <span>ikRPSolver</span> for each joint in the spine_#_bind joints. A quick way of doing      this is to go to Skeleton-&gt;<span>IK</span> Handle Tool-&gt; <span>optionBox</span> and selecting      the spine_1_bind, then shift-select spine_2_bind. Repeat for the rest of      the joints. Figure 4 shows an <span>ikRPSolver</span> at each joint. The reason for applying the ikSolvers at each joint is so that we can have individual control of the twist at each joint.<br />
</span></p>
<p><div id="attachment_54" class="wp-caption alignright" style="width: 107px"><a href="http://faithofthefallen.files.wordpress.com/2008/10/figure2.jpg"><img class="size-thumbnail wp-image-54" title="figure2" src="http://faithofthefallen.files.wordpress.com/2008/10/figure2.jpg?w=97&#038;h=96" alt="Figure2" width="97" height="96" /></a><p class="wp-caption-text">Figure2</p></div></li>
<li class="MsoNormal"><!--[if gte vml 1]&gt;--><span>Parent each      <span>ikHandle</span> to the respective parent + 1. what I mean by this is</span><span> </span><span>look at where the first <span>ikHandle</span> is. It located      at the second joint in the bind chain, so parent the first <span>ikHandle</span> to      Spine_2_<span>ik</span>, and so on. Also, you will need to point constraint the spine_1_bind to the spine_1_<span>ik</span>. so select spine_1_<span>ik</span> and shift-select spine_1_bind and click point constraint. Now if you move the hip or shoulder joints the      spine_#_bind spine will follow.</span></li>
<li class="MsoNormal"><span>Create 5 <span>locators</span>. Exactly the number of <span>ikHandles</span> we have. Snap them      to each joint, except the last one, and move it a few units from the spine.      See Figure 4</span></li>
<li class="MsoNormal"><span>Create an empty group and      snap it to the first joint in spine_#_bind. Then Parent the first <span>locator</span> to </span>
<div id="attachment_56" class="wp-caption alignright" style="width: 138px"><a href="http://faithofthefallen.files.wordpress.com/2008/10/figure3.jpg"><img class="size-thumbnail wp-image-56" title="figure3" src="http://faithofthefallen.files.wordpress.com/2008/10/figure3.jpg?w=128&#038;h=74" alt="figure3" width="128" height="74" /></a><p class="wp-caption-text">figure3</p></div>
<p><span>the group. Do this for the rest of the <span>locators</span>. Now if you rotate the      group along the twist axis of the spine it will rotate the <span>locator</span> around      the spine. This is exactly the behavior we want. See Figure 5 for a      snap-shot of what the <span>locators</span> and groups look like. </span></li>
<li class="MsoNormal"><span>Now select the first <span>locator</span>, and shift_select the first <span>IKhandle</span> and click pole vector constraint. Do this for all the <span>locators</span> and <span>ikHandles</span>. This is what will control the twist of the spine.</span></li>
<li class="MsoNormal"><span>Once all the <span>locators</span> are      grouped parent the groups to the corresponding spine_#_<span>ik</span> joint. Now since      the twist axis of the spine joints is the X-Axis, we need to select the      all the groups we just parented </span>
<div id="attachment_57" class="wp-caption alignright" style="width: 54px"><a href="http://faithofthefallen.files.wordpress.com/2008/10/figure4.jpg"><img class="size-thumbnail wp-image-57" title="figure4" src="http://faithofthefallen.files.wordpress.com/2008/10/figure4.jpg?w=44&#038;h=96" alt="figure4" width="44" height="96" /></a><p class="wp-caption-text">figure4</p></div>
<p><span>and Freeze Transformations. Now the groups      will rotate about X and orbit the <span>locators</span> around the spine. You can see      this better if you select all the spine_#_bind joints and turn on the      Local Rotation Axis, Display-&gt;Transform Display-&gt;Local Rotation Axis.      Figure 6. </span></li>
<li class="MsoNormal"><!--[if gte vml 1]&gt;--><span>Now we are going to      distribute the twist equally along the spine. Open up the <span>HyperShade</span>. And drag      the hip_joint, shoulder_joint, and the <span>locator</span> groups into the <span>HyperShade</span>.      This part might get kind of confusing, that’s why I am including a large      picture of my <span>HyperShade</span> (figure 7) so you can see how I connect the      nodes. But I will still try my best explain.</span></li>
<li class="MsoNormal"><span>I first created a      plusMinusAverage node, known from now on as a <span>pma</span>. Name it spine_3_<span>pma</span>.      With the attribute editor I changed it from Sum to Average. I connected      the <span>rotateX</span> of the hip_joint to the </span>
<div id="attachment_59" class="wp-caption alignright" style="width: 74px"><a href="http://faithofthefallen.files.wordpress.com/2008/10/figure5.jpg"><img class="size-thumbnail wp-image-59" title="figure5" src="http://faithofthefallen.files.wordpress.com/2008/10/figure5.jpg?w=64&#038;h=96" alt="figure5" width="64" height="96" /></a><p class="wp-caption-text">figure5</p></div>
<p><span>input1D[0] of the <span>pma</span>. Then I connected      the <span>rotateX</span> of the shoulder_joint to the input1D[1] of the <span>pma</span>. I      connected the output1D of the <span>pma</span> to the locator3_<span>grp</span>.<span>rotateX</span>. Now if you      rotate the shoulder_joint 100 <span>degress</span> in <span>rotateX</span>, locator3_<span>grp</span> will have      rotated 50 degrees. </span></li>
<li class="MsoNormal"><span>Now move on to locator2_<span>grp</span>. Create      another <span>pma</span>. Name it spine_2_<span>pma</span>. Connect the output1D of spine_3_<span>pma</span> to      the input1D[0] of spine_2_<span>pma</span>. Then connect the hip_joint.<span>rotateX</span> to the      input1D[1] of spine_2_<span>pma</span>. Connect the output1D of spine_2_<span>pma</span> to      locator2_<span>grp</span>.<span>rotateX</span>. With the shoulder_joint still rotated 100 degrees,      the locator2_<span>grp</span> will now be rotated 25 degrees.</span></li>
<li class="MsoNormal"><span> </span><span>Create another <span>pma</span>, name it spine_1_<span>pma</span>. Connect      the hip_joint.<span>rotateX</span> to spine_1_<span>pma</span>.input1D[0]. </span>
<div id="attachment_60" class="wp-caption alignright" style="width: 60px"><a href="http://faithofthefallen.files.wordpress.com/2008/10/figure6.jpg"><img class="size-thumbnail wp-image-60" title="figure6" src="http://faithofthefallen.files.wordpress.com/2008/10/figure6.jpg?w=50&#038;h=96" alt="figure6" width="50" height="96" /></a><p class="wp-caption-text">figure6</p></div>
<p><span>Connect the      spine_1_<span>pma</span>.output1D to locator1_<span>grp</span>.<span>rotateX</span>. We want locator1_<span>grp</span> to only      get its rotation from the hip_joint. This seems like a waste of a utility      node, but I included it for organization and so the <span>HyperShade</span> would make      more sense. </span></li>
<li class="MsoNormal"><!--[if gte vml 1]&gt;--><span>Create another <span>pma</span>,      name it spine_4_<span>pma</span>. Connect the spine_3_<span>pma</span>.output1D to the</span><span> </span><span>spine_4_<span>pma</span>.input1D[0]. Connect shoulder_joint.<span>rotateX</span> to spine_4_<span>pma</span>.input1D[1]. Connect the spine_4_<span>pma</span>.output1D to      locator4_<span>grp</span>.<span>rotateX</span>.The locator4_<span>grp</span> should now have a 75 degree      rotation.</span></li>
<li class="MsoNormal"><span>Create another <span>pma</span>, and name      it spine_5_<span>pma</span>. Connect the shoulder_joint.<span>rotateX</span> to the      spine_5_<span>pma</span>.input1D[0]. Connect the </span>
<div id="attachment_64" class="wp-caption alignright" style="width: 88px"><a href="http://faithofthefallen.files.wordpress.com/2008/10/figure7.jpg"><img class="size-thumbnail wp-image-64" title="figure7" src="http://faithofthefallen.files.wordpress.com/2008/10/figure7.jpg?w=78&#038;h=96" alt="The HyperShade setup for the twist." width="78" height="96" /></a><p class="wp-caption-text">figure7</p></div>
<p><span>spine_5_<span>pma</span>.output1D to      locator5_<span>grp</span>.<span>rotateX</span>. Don’t forget to</span></p>
<div id="attachment_62" class="wp-caption alignright" style="width: 50px"><a href="http://faithofthefallen.files.wordpress.com/2008/10/figure8.jpg"><img class="size-thumbnail wp-image-62" title="figure8" src="http://faithofthefallen.files.wordpress.com/2008/10/figure8.jpg?w=40&#038;h=96" alt="figure8" width="40" height="96" /></a><p class="wp-caption-text">figure8</p></div>
<p>change each plusMinusAverage node      to “Average” instead of “Sum”.</li>
<li class="MsoNormal">If we did everything right      this is what it should look like Figure 8. Twist both the hip and      shoulder_joint around to see how it works. It definitely twists past 180      without flipping.</li>
<li class="MsoNormal"><span>Now to add a few controls for      easy selection and to finish it off. Create a <span>NURBS</span> circle, name it      hip_<span>ctrl</span>. Duplicate it and name it shoulder_<span>ctrl</span>. Snap the shoulder_<span>ctrl</span> to the top of the spine. Select hip_<span>ctrl</span> and hip_joint and parent constraint      it. Select the shoulder_<span>ctrl</span> and shoulder_joint and parent constraint it.      Figure 9 shows the controls and the spine twisted and manipulated.</span></li>
<li class="MsoNormal">I really hope this tutorial      is helpful. If you have questions, comments, or critiques feel free to state
<div id="attachment_63" class="wp-caption alignright" style="width: 55px"><a href="http://faithofthefallen.files.wordpress.com/2008/10/figure9.jpg"><img class="size-thumbnail wp-image-63" title="figure9" src="http://faithofthefallen.files.wordpress.com/2008/10/figure9.jpg?w=45&#038;h=96" alt="figure9" width="45" height="96" /></a><p class="wp-caption-text">figure9</p></div>
<p><span>them. Let me know if there are errors and <span>i&#8217;ll</span> fix them as soon as i can. If enough people are interested I can show how to make the spine      squash and stretchy. Its not that hard just takes a bit more work. Let me      know and I’ll add an addendum to this post. </span></li>
</ol>
<div id="attachment_82" class="wp-caption alignnone" style="width: 119px"><a href="http://faithofthefallen.files.wordpress.com/2008/10/side90_twist180.jpg"><img class="size-thumbnail wp-image-82" title="side90_twist180" src="http://faithofthefallen.files.wordpress.com/2008/10/side90_twist180.jpg?w=109&#038;h=96" alt="Side 90 and twist 180" width="109" height="96" /></a><p class="wp-caption-text">Side 90 and twist 180</p></div>
<p style="text-align:left;">
<table style="height:52px;" border="0" cellspacing="0" cellpadding="0" width="625">
<tbody>
<tr>
<td>
<div>
<p class="MsoCaption">
</div>
<p>Here is a link to the file, change the .doc extension to .ma. It is a 2008 file, but you can change the header to work for your version of maya. <a href="http://faithofthefallen.files.wordpress.com/2008/10/awesomespine1.doc">awesomespine1</a></td>
</tr>
</tbody>
</table>
<p><!--[if !vml]--><!--[endif]--><!--[if gte vml 1]&gt;   &lt;![endif]--><!--[if !vml]--><!--[endif]--></p>
<p class="MsoNormal" style="margin-right:207pt;page-break-after:avoid;">
<p class="MsoNormal" style="margin-right:207pt;">
<p class="MsoNormal" style="margin-right:207pt;">
<p class="MsoNormal" style="margin-right:207pt;">
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/faithofthefallen.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/faithofthefallen.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/faithofthefallen.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/faithofthefallen.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/faithofthefallen.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/faithofthefallen.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/faithofthefallen.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/faithofthefallen.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/faithofthefallen.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/faithofthefallen.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/faithofthefallen.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/faithofthefallen.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/faithofthefallen.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/faithofthefallen.wordpress.com/36/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=faithofthefallen.wordpress.com&amp;blog=1450645&amp;post=36&amp;subd=faithofthefallen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://faithofthefallen.wordpress.com/2008/10/08/awesome-spine-setup/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b62363690413c0b468143540f1a0c476?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">animatix</media:title>
		</media:content>

		<media:content url="http://faithofthefallen.files.wordpress.com/2008/10/figure1.jpg" medium="image">
			<media:title type="html">figure1</media:title>
		</media:content>

		<media:content url="http://faithofthefallen.files.wordpress.com/2008/10/figure2.jpg?w=97" medium="image">
			<media:title type="html">figure2</media:title>
		</media:content>

		<media:content url="http://faithofthefallen.files.wordpress.com/2008/10/figure3.jpg?w=128" medium="image">
			<media:title type="html">figure3</media:title>
		</media:content>

		<media:content url="http://faithofthefallen.files.wordpress.com/2008/10/figure4.jpg?w=44" medium="image">
			<media:title type="html">figure4</media:title>
		</media:content>

		<media:content url="http://faithofthefallen.files.wordpress.com/2008/10/figure5.jpg?w=64" medium="image">
			<media:title type="html">figure5</media:title>
		</media:content>

		<media:content url="http://faithofthefallen.files.wordpress.com/2008/10/figure6.jpg?w=50" medium="image">
			<media:title type="html">figure6</media:title>
		</media:content>

		<media:content url="http://faithofthefallen.files.wordpress.com/2008/10/figure7.jpg?w=78" medium="image">
			<media:title type="html">figure7</media:title>
		</media:content>

		<media:content url="http://faithofthefallen.files.wordpress.com/2008/10/figure8.jpg?w=40" medium="image">
			<media:title type="html">figure8</media:title>
		</media:content>

		<media:content url="http://faithofthefallen.files.wordpress.com/2008/10/figure9.jpg?w=45" medium="image">
			<media:title type="html">figure9</media:title>
		</media:content>

		<media:content url="http://faithofthefallen.files.wordpress.com/2008/10/side90_twist180.jpg?w=109" medium="image">
			<media:title type="html">side90_twist180</media:title>
		</media:content>
	</item>
		<item>
		<title>Maya &#8211; No Flip Knees with Local Global Switching</title>
		<link>http://faithofthefallen.wordpress.com/2008/02/13/maya-no-flip-knees-with-local-global-switching/</link>
		<comments>http://faithofthefallen.wordpress.com/2008/02/13/maya-no-flip-knees-with-local-global-switching/#comments</comments>
		<pubDate>Wed, 13 Feb 2008 19:42:12 +0000</pubDate>
		<dc:creator>animatix</dc:creator>
				<category><![CDATA[Character Rigging]]></category>
		<category><![CDATA[Leg Setup]]></category>
		<category><![CDATA[Maya Rigging]]></category>

		<guid isPermaLink="false">http://faithofthefallen.wordpress.com/?p=7</guid>
		<description><![CDATA[This method of creating no flip knees with local and global switch for the ankle is a compilation of ideas that were inspired by Aaron Holly.  Also there were some limitations I found with this way of creating No Flip knees, the animator no long had a control object to move that controls the knee [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=faithofthefallen.wordpress.com&amp;blog=1450645&amp;post=7&amp;subd=faithofthefallen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This method of creating no flip knees with local and global switch for the ankle is a  compilation of ideas that were inspired by Aaron Holly.  Also there were some limitations I found with this way of creating No Flip knees, the animator no long had a control object to move that controls the knee rotations, also the animators want to have the control to rotate the knees with the rotation of the ankle or to turn that feature off. So I created this method as follows.</p>
<p>So I start off with a basic IK leg setup, I am not going to address IK/FK switching in this post, but it is easy to integrate into a switch system.  <a title="basic setup" href="http://faithofthefallen.files.wordpress.com/2008/02/basicsetup.jpg"><img src="http://faithofthefallen.files.wordpress.com/2008/02/basicsetup.thumbnail.jpg?w=497" alt="basic setup" /></a> As you can see from the picture that it has an IK chain running from the thigh to the ankle and the ik handle is parented to a control object. Very basic. So what we are going to do now is setup the pole vector constraint, this so the animators can have an iconic representation of the knee control. I created a NURBS cone and aligned it to the knee joint then selected the cone and shift-selected the ik_handle and click the poleVector constraint. So now the cone controls were the knee points. But if you move the foot control or the root control the knee control doesn&#8217;t move. And if you move the foot control up in Y it will flip when it passes the pelvis line. <a title="Flipping Knee" href="http://faithofthefallen.files.wordpress.com/2008/02/flipping.jpg"><img src="http://faithofthefallen.files.wordpress.com/2008/02/flipping.thumbnail.jpg?w=497" alt="Flipping Knee" /></a> We will now fix this problem.</p>
<p>Start by creating 4 locators I named them as follows: _l_knee01_pos ,   _l_knee01_aim ,  _l_knee01_up ,  _l_knee01_tgt . I use Aaron Holly&#8217;s naming scheme so it might look familiar. The _aim and the _up are parented to the _pos locator. Point and orient constrain the _tgt to the thigh joint. Then point-constrain the _pos locator to the foot control. Move the _up out a bit form the _aim locator on the X-axis. The _up locator will be used to define the up vector for the aim-constraint we will setup. Select the _tgt and shift-Select the _aim locator and go to the animation menu constrain-&gt;aim-&gt;[option box].  For the aim vector I used 1 for Y, so it would aim in the Y-direction. For up vector I used 1 for X, so that it would point toward the _up locator. For world up type I used Object Up and then in World Up Object I typed the name of my _up locator: _l_knee01_up. The orientation of the _aim locator should be relatively the same if some axis flipped try entering a -1 for the aim or up vector.</p>
<p>Once that is setup the _aim locator should always point to look at the _tgt locator constrained to the hip. This is exactly the behavior we want for the knee control. If you haven&#8217;t grouped the knee control to zero out the transformations do it now. If you don&#8217;t what I mean look <a title="mGroup" href="http://faithofthefallen.wordpress.com/2008/02/13/maya-mgroup-zero-out-transformations/" target="_blank">here</a>. Now all you have to do is parent the knee control group node to the _aim locator.</p>
<p>Now if you move the foot control up past the pelvis it doesn&#8217;t flip but rotates perfectly around. As you can see the knee control follows the movement of the foot control as well as the root control. <a title="NoFlip" href="http://faithofthefallen.files.wordpress.com/2008/02/noflip.jpg"><img src="http://faithofthefallen.files.wordpress.com/2008/02/noflip.thumbnail.jpg?w=497" alt="NoFlip" /></a></p>
<p>Now on to the Local Global Switching. Sometimes animators want to be able to have the knee rotation follow the ankle rotation and sometimes they don&#8217;t want this behavior, so we are going to create a way to do both.</p>
<p>Right now if you select the foot control and rotate it the ankle moves independent of the knee. This is one of the behaviors we are after now we need the other. Create another locator and call it _c_bodyGlobal01_loc. You can move it off to the side just don&#8217;t rotate it. Right now it&#8217;s orientated to the world. Select the foot control and shift-select the _pos locator go to the constrain menu and click the parent option box. uncheck translate so it only adds a parent constraint for the rotation values. This will be our Local rotations inherited from the foot control. Now select the bodyGlobal locator and shift-select the _pos locator and do the same parent constraint. This is our Global rotations inherited from the bodyGlobal rotation.</p>
<p>So if you go into the hyperGraph and select the parent-Contraint node underneath the _pos locator, in the channel box you will see two weights. Set the first weight to 1 and the second to 0. Now if you rotate the foot control the knee rotates with the ankle. If you swap the weight values W0 = 0, W1 = 1, then you when you rotate the foot control the knee does not rotate with the ankle.</p>
<p>If your handy with MEL script you could easily make a GUI that will do this switching at the click of a button. You will notice that if you have it in Local mode, rotate the ankle, then switch to Global mode, the knee will pop back to its original position is this expected. To really fix it you will need to use MEL script. But basically what you do is before the local global switch unparent the knee control from the knee_control_group, do the local global switch, then parent back to the group.</p>
<p>That is basically it for the No Flip Knees with Local Global Switching. Please post any comments, questions, or corrections. There are probably mistakes, just let me know and I will fix them.</p>
<p><a title="NoFlipKnee File" href="http://faithofthefallen.files.wordpress.com/2008/02/mab_noflipkneesma.doc"></a><a title="No Flip Knee File" href="http://faithofthefallen.files.wordpress.com/2008/02/mab_noflipknees.doc">No Flip Knee File</a>- Just change the extension to .ma</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/faithofthefallen.wordpress.com/7/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/faithofthefallen.wordpress.com/7/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/faithofthefallen.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/faithofthefallen.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/faithofthefallen.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/faithofthefallen.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/faithofthefallen.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/faithofthefallen.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/faithofthefallen.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/faithofthefallen.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/faithofthefallen.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/faithofthefallen.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/faithofthefallen.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/faithofthefallen.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/faithofthefallen.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/faithofthefallen.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=faithofthefallen.wordpress.com&amp;blog=1450645&amp;post=7&amp;subd=faithofthefallen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://faithofthefallen.wordpress.com/2008/02/13/maya-no-flip-knees-with-local-global-switching/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b62363690413c0b468143540f1a0c476?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">animatix</media:title>
		</media:content>

		<media:content url="http://faithofthefallen.files.wordpress.com/2008/02/basicsetup.thumbnail.jpg" medium="image">
			<media:title type="html">basic setup</media:title>
		</media:content>

		<media:content url="http://faithofthefallen.files.wordpress.com/2008/02/flipping.thumbnail.jpg" medium="image">
			<media:title type="html">Flipping Knee</media:title>
		</media:content>

		<media:content url="http://faithofthefallen.files.wordpress.com/2008/02/noflip.thumbnail.jpg" medium="image">
			<media:title type="html">NoFlip</media:title>
		</media:content>
	</item>
		<item>
		<title>Maya &#8211; mGroup, zero out transformations</title>
		<link>http://faithofthefallen.wordpress.com/2008/02/13/maya-mgroup-zero-out-transformations/</link>
		<comments>http://faithofthefallen.wordpress.com/2008/02/13/maya-mgroup-zero-out-transformations/#comments</comments>
		<pubDate>Wed, 13 Feb 2008 18:19:48 +0000</pubDate>
		<dc:creator>animatix</dc:creator>
				<category><![CDATA[Character Rigging]]></category>

		<guid isPermaLink="false">http://faithofthefallen.wordpress.com/?p=10</guid>
		<description><![CDATA[To zero out the transformations of an object without using the freezeTransforms method. This is a very common method which I have seen on many websites. Here is what I do: Create a locator and move it away from the origin and rotate it some arbitrary amount. If you look in the channel box it [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=faithofthefallen.wordpress.com&amp;blog=1450645&amp;post=10&amp;subd=faithofthefallen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>To zero out the transformations of an object without using the freezeTransforms  method.  This is a very common method which I have seen on many websites. Here is what I do:</p>
<p>Create a locator and move it away from the origin and rotate it some arbitrary amount. If you look in the channel box it will have values for the translations and rotations. Sometimes you want to zero this but keep the relative position. Now create an empty group. Its world space location will be at the origin. Select the locator and shift-select the group probably by way of the outliner or hyperGraph since it isn&#8217;t visible. point and orient-constrain the group to the locator. Now the group has the exact position and rotation as the locator. Delete the point and orient-constraints from the group, and parent the locator to the group. If you look in the channel box it will have all zero&#8217;s. Thats it fairly easy.</p>
<p>Here is some code I wrote that will automate the process:</p>
<p>global proc mGroup()<br />
{<br />
string $selected[] = `ls -sl`;<br />
for($obj in $selected)<br />
{<br />
string $group = `group -em -name ($obj+&#8221;_grp&#8221;)`;<br />
select -r $obj;<br />
select -tgl $group;<br />
delete `pointConstraint -offset 0 0 0 -weight 1`;<br />
delete `orientConstraint -offset 0 0 0 -weight 1`;<br />
string $objParent[] = `listRelatives -p $obj`;<br />
if(size($objParent) != 0)<br />
{<br />
parent $group $objParent;<br />
parent $obj $group;<br />
}else { parent $obj $group; }<br />
}<br />
}</p>
<p>mGroup;</p>
<p>Syntax Highlighted picture:</p>
<p><a href="http://faithofthefallen.files.wordpress.com/2008/02/mgroup.jpg" title="mGroup"><img src="http://faithofthefallen.files.wordpress.com/2008/02/mgroup.jpg?w=497" alt="mGroup" /></a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/faithofthefallen.wordpress.com/10/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/faithofthefallen.wordpress.com/10/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/faithofthefallen.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/faithofthefallen.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/faithofthefallen.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/faithofthefallen.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/faithofthefallen.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/faithofthefallen.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/faithofthefallen.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/faithofthefallen.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/faithofthefallen.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/faithofthefallen.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/faithofthefallen.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/faithofthefallen.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/faithofthefallen.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/faithofthefallen.wordpress.com/10/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=faithofthefallen.wordpress.com&amp;blog=1450645&amp;post=10&amp;subd=faithofthefallen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://faithofthefallen.wordpress.com/2008/02/13/maya-mgroup-zero-out-transformations/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b62363690413c0b468143540f1a0c476?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">animatix</media:title>
		</media:content>

		<media:content url="http://faithofthefallen.files.wordpress.com/2008/02/mgroup.jpg" medium="image">
			<media:title type="html">mGroup</media:title>
		</media:content>
	</item>
	</channel>
</rss>
