<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments for confectionary malfunction</title>
	<atom:link href="http://sugarandcyanide.com/blog/index.php/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://sugarandcyanide.com/blog</link>
	<description>a sugarandcyanide.com blog</description>
	<lastBuildDate>Sun, 20 Dec 2009 14:13:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on Katt&#8217;s Mysterious 3D Lectures &#8211; Vector Application: A Better Rivet by katt</title>
		<link>http://sugarandcyanide.com/blog/2009/06/20/katts-mysterious-3d-lectures-vector-application-a-better-rivet/comment-page-1/#comment-183</link>
		<dc:creator>katt</dc:creator>
		<pubDate>Sun, 20 Dec 2009 14:13:55 +0000</pubDate>
		<guid isPermaLink="false">http://sugarandcyanide.com/blog/?p=70#comment-183</guid>
		<description>Ahh sorry-- for some odd reason it converted my quotes?

I find that the number of points *does* in fact affect the result.  When you have non-1V degree surfaces, you end up with less intuitive motion on the locator.  It&#039;s not about evaluation time, but rather about keeping the tangent vectors crossing each other in predictable ways.

By clustering a line of V cv&#039;s and then rotating that line around the cluster, the path the U surface isoparms take through the surface becomes a bit skewed.

In the end as long as the rig doesn&#039;t flip out and makes pictures, that&#039;s all that matters; if you&#039;ve had success with the normal constraint then I can&#039;t say anything about that.  I don&#039;t use it because I haven&#039;t had any problems with my method and since I know the surface normal is created from the cross product tangent U and V vectors, I like using the source vectors.  The point of the post was that the rivet script which everyone uses can be improved upon, and that by using a script only as a black box of functionality you miss out on learning more about your software under the hood, as well as on potential fixes for poor behavior.</description>
		<content:encoded><![CDATA[<p>Ahh sorry&#8211; for some odd reason it converted my quotes?</p>
<p>I find that the number of points *does* in fact affect the result.  When you have non-1V degree surfaces, you end up with less intuitive motion on the locator.  It&#8217;s not about evaluation time, but rather about keeping the tangent vectors crossing each other in predictable ways.</p>
<p>By clustering a line of V cv&#8217;s and then rotating that line around the cluster, the path the U surface isoparms take through the surface becomes a bit skewed.</p>
<p>In the end as long as the rig doesn&#8217;t flip out and makes pictures, that&#8217;s all that matters; if you&#8217;ve had success with the normal constraint then I can&#8217;t say anything about that.  I don&#8217;t use it because I haven&#8217;t had any problems with my method and since I know the surface normal is created from the cross product tangent U and V vectors, I like using the source vectors.  The point of the post was that the rivet script which everyone uses can be improved upon, and that by using a script only as a black box of functionality you miss out on learning more about your software under the hood, as well as on potential fixes for poor behavior.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Katt&#8217;s Mysterious 3D Lectures &#8211; Vector Application: A Better Rivet by exceptional basis</title>
		<link>http://sugarandcyanide.com/blog/2009/06/20/katts-mysterious-3d-lectures-vector-application-a-better-rivet/comment-page-1/#comment-178</link>
		<dc:creator>exceptional basis</dc:creator>
		<pubDate>Fri, 18 Dec 2009 19:43:45 +0000</pubDate>
		<guid isPermaLink="false">http://sugarandcyanide.com/blog/?p=70#comment-178</guid>
		<description>Hey,

There&#039;s something happening with the &quot; symbol here which prevents code from running when copied from this thread and pasted into a script editor on OSX.  I had to run it through a plaintext converter to get it to work.

Anyway, your example works, but I was posting the above as an indicator of a situation of where it might not work, and a normal constraint would work a bit better.  

Having a non-1 V degree won&#039;t affect the result of either example.  It&#039;s true that using a smaller number of points is more efficient, but maya eats NURBS for breakfast...you&#039;d need an incredibly huge ribbon before doubling the V CVs would make any difference in evaluation time.  

Just because someone wrote it in a book, doesn&#039;t mean it&#039;s right!</description>
		<content:encoded><![CDATA[<p>Hey,</p>
<p>There&#8217;s something happening with the &#8221; symbol here which prevents code from running when copied from this thread and pasted into a script editor on OSX.  I had to run it through a plaintext converter to get it to work.</p>
<p>Anyway, your example works, but I was posting the above as an indicator of a situation of where it might not work, and a normal constraint would work a bit better.  </p>
<p>Having a non-1 V degree won&#8217;t affect the result of either example.  It&#8217;s true that using a smaller number of points is more efficient, but maya eats NURBS for breakfast&#8230;you&#8217;d need an incredibly huge ribbon before doubling the V CVs would make any difference in evaluation time.  </p>
<p>Just because someone wrote it in a book, doesn&#8217;t mean it&#8217;s right!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Katt&#8217;s Mysterious 3D Lectures &#8211; Vector Application: A Better Rivet by katt</title>
		<link>http://sugarandcyanide.com/blog/2009/06/20/katts-mysterious-3d-lectures-vector-application-a-better-rivet/comment-page-1/#comment-171</link>
		<dc:creator>katt</dc:creator>
		<pubDate>Sat, 12 Dec 2009 19:11:19 +0000</pubDate>
		<guid isPermaLink="false">http://sugarandcyanide.com/blog/?p=70#comment-171</guid>
		<description>Hi again EB,

I tried your code and tried plugging the .tv into the normalConstraint&#039;s worldUpVector.  I think I&#039;m fuzzy on what you&#039;re trying to accomplish.

From what I can see with your code, the reader object is behaving exactly as expected.  Now, in your example I do get some perceived shearing when I set reader.posU to 0.84.  Maybe that&#039;s what you&#039;re talking about?

The first problem I see here is that your V degree should be 1.  It was either in the original Art of Rigging or the Farenheit DVDs, but for a ribbon to work well you need to keep the number of points down to a minimum.  Here&#039;s an example modified from your code.  Scrub through the animation; you&#039;ll see that the Z axis always aims out properly.  Again there&#039;s a bit of perceived shearing in extreme circumstances, but in my experience that shearing never adversely effects a rig using ribbons.

If that&#039;s not what you mean, then I&#039;m a little lost here. :)


&lt;code&gt;file -new -force;

string $np[] = `nurbsPlane -d 3 -ch 0 -o on -po 0 -ax 0 1 0 -w 5 -lr .1`;
rebuildSurface -ch 0 -rpo 1 -rt 0 -end 1 -kr 0 -kcp 0 -kc 0 -su 3 -du 3 -sv 1 -dv 1 -tol 0.00393701 -fr 0  -dir 2 $np[0];

select -r nurbsPlane1.cv[0:1][0:1] ;
CreateCluster;

select -r nurbsPlane1.cv[2][0:1] ;
CreateCluster;

select -r nurbsPlane1.cv[3][0:1];
CreateCluster;

select -r nurbsPlane1.cv[4:5][0:1] ;
CreateCluster;

//make a hierarchy of the clusters
parent cluster2Handle cluster1Handle;
parent cluster3Handle cluster4Handle;

//make and connect a pointOnSurtfaceInfo node
string $posi = `createNode pointOnSurfaceInfo`;
connectAttr ($np[0] + &quot;.worldSpace[0]&quot;) ($posi + &quot;.inputSurface&quot;);

//add a reader group and give it attr for controlling the read point of the posi node, 
//make the local axis visible and make it grabbable
string $readr = `group -em -n &quot;reader&quot;`;

addAttr -ln &quot;posU&quot; -dv .5 -min 0 -max 1 -at &quot;double&quot; $readr;
setAttr -e-keyable true ($readr + &quot;.posU&quot;);

addAttr -ln &quot;posV&quot; -dv .5 -min 0 -max 1 -at double $readr;
setAttr -e-keyable true ($readr + &quot;.posV&quot;);

setAttr ($readr + &quot;.displayHandle&quot;) 1;
setAttr ($readr +&quot;.displayLocalAxis&quot;) 1;

//make the aim constraint for conversion of the output vectors of the posi node to euler rotations
string $aim = `createNode aimConstraint`;

//drive the reader&#039;s translation
connectAttr ($posi + &quot;.position&quot;) ($readr + &quot;.t&quot;) ;

//hook up the UV driver attrs to the posi node
connectAttr ($readr + &quot;.posU&quot; ) ($posi + &quot;.parameterU&quot; );
connectAttr ($readr + &quot;.posV&quot; ) ($posi + &quot;.parameterV&quot; );

//connect aim constrain as specified
connectAttr ($posi + &quot;.tangentU&quot;) ($aim + &quot;.target[0].targetTranslate&quot;) ;
connectAttr ($posi + &quot;.tangentV&quot;) ($aim + &quot;.worldUpVector&quot;) ;
connectAttr ($aim + &quot;.constraintRotate&quot; ) ($readr + &quot;.r&quot; );

setAttr &quot;cluster1Handle.ty&quot; 2.5;
setAttr &quot;cluster4Handle.ty&quot; 1.25;
setAttr &quot;cluster2Handle.rx&quot; -80;
setAttr &quot;cluster4Handle.ry&quot; 140;
setAttr &quot;cluster1Handle.ry&quot; 85;
setAttr &quot;cluster4Handle.ry&quot; 45;

currentTime 1;
setAttr reader.posU 0;
setKeyframe &quot;reader.posU&quot;;

currentTime 24;
setAttr reader.posU 1;
setKeyframe &quot;reader.posU&quot;;&lt;/code&gt;
</description>
		<content:encoded><![CDATA[<p>Hi again EB,</p>
<p>I tried your code and tried plugging the .tv into the normalConstraint&#8217;s worldUpVector.  I think I&#8217;m fuzzy on what you&#8217;re trying to accomplish.</p>
<p>From what I can see with your code, the reader object is behaving exactly as expected.  Now, in your example I do get some perceived shearing when I set reader.posU to 0.84.  Maybe that&#8217;s what you&#8217;re talking about?</p>
<p>The first problem I see here is that your V degree should be 1.  It was either in the original Art of Rigging or the Farenheit DVDs, but for a ribbon to work well you need to keep the number of points down to a minimum.  Here&#8217;s an example modified from your code.  Scrub through the animation; you&#8217;ll see that the Z axis always aims out properly.  Again there&#8217;s a bit of perceived shearing in extreme circumstances, but in my experience that shearing never adversely effects a rig using ribbons.</p>
<p>If that&#8217;s not what you mean, then I&#8217;m a little lost here. :)</p>
<p><code>file -new -force;</p>
<p>string $np[] = `nurbsPlane -d 3 -ch 0 -o on -po 0 -ax 0 1 0 -w 5 -lr .1`;<br />
rebuildSurface -ch 0 -rpo 1 -rt 0 -end 1 -kr 0 -kcp 0 -kc 0 -su 3 -du 3 -sv 1 -dv 1 -tol 0.00393701 -fr 0  -dir 2 $np[0];</p>
<p>select -r nurbsPlane1.cv[0:1][0:1] ;<br />
CreateCluster;</p>
<p>select -r nurbsPlane1.cv[2][0:1] ;<br />
CreateCluster;</p>
<p>select -r nurbsPlane1.cv[3][0:1];<br />
CreateCluster;</p>
<p>select -r nurbsPlane1.cv[4:5][0:1] ;<br />
CreateCluster;</p>
<p>//make a hierarchy of the clusters<br />
parent cluster2Handle cluster1Handle;<br />
parent cluster3Handle cluster4Handle;</p>
<p>//make and connect a pointOnSurtfaceInfo node<br />
string $posi = `createNode pointOnSurfaceInfo`;<br />
connectAttr ($np[0] + ".worldSpace[0]") ($posi + ".inputSurface");</p>
<p>//add a reader group and give it attr for controlling the read point of the posi node,<br />
//make the local axis visible and make it grabbable<br />
string $readr = `group -em -n "reader"`;</p>
<p>addAttr -ln "posU" -dv .5 -min 0 -max 1 -at "double" $readr;<br />
setAttr -e-keyable true ($readr + ".posU");</p>
<p>addAttr -ln "posV" -dv .5 -min 0 -max 1 -at double $readr;<br />
setAttr -e-keyable true ($readr + ".posV");</p>
<p>setAttr ($readr + ".displayHandle") 1;<br />
setAttr ($readr +".displayLocalAxis") 1;</p>
<p>//make the aim constraint for conversion of the output vectors of the posi node to euler rotations<br />
string $aim = `createNode aimConstraint`;</p>
<p>//drive the reader's translation<br />
connectAttr ($posi + ".position") ($readr + ".t") ;</p>
<p>//hook up the UV driver attrs to the posi node<br />
connectAttr ($readr + ".posU" ) ($posi + ".parameterU" );<br />
connectAttr ($readr + ".posV" ) ($posi + ".parameterV" );</p>
<p>//connect aim constrain as specified<br />
connectAttr ($posi + ".tangentU") ($aim + ".target[0].targetTranslate") ;<br />
connectAttr ($posi + ".tangentV") ($aim + ".worldUpVector") ;<br />
connectAttr ($aim + ".constraintRotate" ) ($readr + ".r" );</p>
<p>setAttr "cluster1Handle.ty" 2.5;<br />
setAttr "cluster4Handle.ty" 1.25;<br />
setAttr "cluster2Handle.rx" -80;<br />
setAttr "cluster4Handle.ry" 140;<br />
setAttr "cluster1Handle.ry" 85;<br />
setAttr "cluster4Handle.ry" 45;</p>
<p>currentTime 1;<br />
setAttr reader.posU 0;<br />
setKeyframe "reader.posU";</p>
<p>currentTime 24;<br />
setAttr reader.posU 1;<br />
setKeyframe "reader.posU";</code></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Katt&#8217;s Mysterious 3D Lectures &#8211; Vector Application: A Better Rivet by exceptional basis</title>
		<link>http://sugarandcyanide.com/blog/2009/06/20/katts-mysterious-3d-lectures-vector-application-a-better-rivet/comment-page-1/#comment-167</link>
		<dc:creator>exceptional basis</dc:creator>
		<pubDate>Sat, 05 Dec 2009 02:36:23 +0000</pubDate>
		<guid isPermaLink="false">http://sugarandcyanide.com/blog/?p=70#comment-167</guid>
		<description>here&#039;s some (sloppy) MEL:

//begin mel

{
//new file
file -f -new;

//make a simple d3 nurbs surface
string $plane[] = `nurbsPlane -ch on -o on -po 0 -ax 0 1 0 -w 5 -lr .1` ;

//deform the surface at each CV along V
select -r nurbsPlane1.cv[0][0:3] ;
CreateCluster;

select -r nurbsPlane1.cv[1][0:3] ;
CreateCluster;

select -r nurbsPlane1.cv[2][0:3] ;
CreateCluster;

select -r nurbsPlane1.cv[3][0:3] ;
CreateCluster;

//make a hierarchy of the clusters
parent cluster2Handle cluster1Handle;

parent cluster3Handle cluster4Handle;

//make and connect a pointOnSurtfaceInfo node
string $posi = `createNode pointOnSurfaceInfo`;
connectAttr ($plane[0] + &quot;.worldSpace[0]&quot;) ($posi + &quot;.inputSurface&quot;);

//add a reader group and give it attr for controlling the read point of the posi node, 
//make the local axis visible and make it grabbable
string $readr = `group -em -n &quot;reader&quot;`;

addAttr -ln &quot;posU&quot; -dv .5  -at double  $readr;
setAttr -e-keyable true ($readr + &quot;.posU&quot;);

addAttr -ln &quot;posV&quot;  -dv .5 -at double  $readr;
setAttr -e-keyable true ($readr + &quot;.posV&quot;);

setAttr ($readr + &quot;.displayHandle&quot;) 1;
setAttr ($readr +&quot;.displayLocalAxis&quot;) 1;

//make the aim constraint for conversion of the output vectors of the posi node to euler rotations
string $aim = `createNode aimConstraint`;

//drive the reader&#039;s translation
connectAttr ($posi + &quot;.position&quot;) ($readr + &quot;.t&quot;) ;

//hook up the UV driver attrs to the posi node
connectAttr ($readr + &quot;.posU&quot; ) ($posi + &quot;.parameterU&quot; );
connectAttr ($readr + &quot;.posV&quot; ) ($posi + &quot;.parameterV&quot; );

//connect aim constrain as specified
connectAttr ($posi + &quot;.tangentU&quot;) ($aim + &quot;.target[0].targetTranslate&quot;) ;
connectAttr ($posi + &quot;.tangentV&quot;) ($aim + &quot;.worldUpVector&quot;) ;
connectAttr ($aim + &quot;.constraintRotate&quot; ) ($readr + &quot;.r&quot; );

//set some keys

setKeyframe -breakdown 0 &#124;cluster4Handle.rotate;
currentTime 24 ;

setAttr cluster4Handle.ry 70;
setKeyframe -breakdown 0 &#124;cluster4Handle.rotate;

//playback the scene.  the z rotation does not work in a useful way, although the 
//x axis is pinned to the U isoparm.  The rotation does not &quot;follow&quot; the V isoparm of the surface

//one way this can be remedied by using a normal constraint (from the surface to the reader)
//instead of an aim constraint, and feeding the .tangentV of the posi node into the 
//.worldUpVector of the normal constraint

//This could have been setup so that we &quot;follow&quot; the U parameter instead of the V, 
//by altering the clusters and the length/ratio of the surface, however, what we are seeing 
//is a shearing of the U and V parameter vectors in relation to each other.  There will never 
//be shearing between U (or V) and the surface normal: that will always be 90 degrees, so 
//it&#039;s probably a superior method of reading the vectors produced by the surface and posi node.

}</description>
		<content:encoded><![CDATA[<p>here&#8217;s some (sloppy) MEL:</p>
<p>//begin mel</p>
<p>{<br />
//new file<br />
file -f -new;</p>
<p>//make a simple d3 nurbs surface<br />
string $plane[] = `nurbsPlane -ch on -o on -po 0 -ax 0 1 0 -w 5 -lr .1` ;</p>
<p>//deform the surface at each CV along V<br />
select -r nurbsPlane1.cv[0][0:3] ;<br />
CreateCluster;</p>
<p>select -r nurbsPlane1.cv[1][0:3] ;<br />
CreateCluster;</p>
<p>select -r nurbsPlane1.cv[2][0:3] ;<br />
CreateCluster;</p>
<p>select -r nurbsPlane1.cv[3][0:3] ;<br />
CreateCluster;</p>
<p>//make a hierarchy of the clusters<br />
parent cluster2Handle cluster1Handle;</p>
<p>parent cluster3Handle cluster4Handle;</p>
<p>//make and connect a pointOnSurtfaceInfo node<br />
string $posi = `createNode pointOnSurfaceInfo`;<br />
connectAttr ($plane[0] + &#8220;.worldSpace[0]&#8220;) ($posi + &#8220;.inputSurface&#8221;);</p>
<p>//add a reader group and give it attr for controlling the read point of the posi node,<br />
//make the local axis visible and make it grabbable<br />
string $readr = `group -em -n &#8220;reader&#8221;`;</p>
<p>addAttr -ln &#8220;posU&#8221; -dv .5  -at double  $readr;<br />
setAttr -e-keyable true ($readr + &#8220;.posU&#8221;);</p>
<p>addAttr -ln &#8220;posV&#8221;  -dv .5 -at double  $readr;<br />
setAttr -e-keyable true ($readr + &#8220;.posV&#8221;);</p>
<p>setAttr ($readr + &#8220;.displayHandle&#8221;) 1;<br />
setAttr ($readr +&#8221;.displayLocalAxis&#8221;) 1;</p>
<p>//make the aim constraint for conversion of the output vectors of the posi node to euler rotations<br />
string $aim = `createNode aimConstraint`;</p>
<p>//drive the reader&#8217;s translation<br />
connectAttr ($posi + &#8220;.position&#8221;) ($readr + &#8220;.t&#8221;) ;</p>
<p>//hook up the UV driver attrs to the posi node<br />
connectAttr ($readr + &#8220;.posU&#8221; ) ($posi + &#8220;.parameterU&#8221; );<br />
connectAttr ($readr + &#8220;.posV&#8221; ) ($posi + &#8220;.parameterV&#8221; );</p>
<p>//connect aim constrain as specified<br />
connectAttr ($posi + &#8220;.tangentU&#8221;) ($aim + &#8220;.target[0].targetTranslate&#8221;) ;<br />
connectAttr ($posi + &#8220;.tangentV&#8221;) ($aim + &#8220;.worldUpVector&#8221;) ;<br />
connectAttr ($aim + &#8220;.constraintRotate&#8221; ) ($readr + &#8220;.r&#8221; );</p>
<p>//set some keys</p>
<p>setKeyframe -breakdown 0 |cluster4Handle.rotate;<br />
currentTime 24 ;</p>
<p>setAttr cluster4Handle.ry 70;<br />
setKeyframe -breakdown 0 |cluster4Handle.rotate;</p>
<p>//playback the scene.  the z rotation does not work in a useful way, although the<br />
//x axis is pinned to the U isoparm.  The rotation does not &#8220;follow&#8221; the V isoparm of the surface</p>
<p>//one way this can be remedied by using a normal constraint (from the surface to the reader)<br />
//instead of an aim constraint, and feeding the .tangentV of the posi node into the<br />
//.worldUpVector of the normal constraint</p>
<p>//This could have been setup so that we &#8220;follow&#8221; the U parameter instead of the V,<br />
//by altering the clusters and the length/ratio of the surface, however, what we are seeing<br />
//is a shearing of the U and V parameter vectors in relation to each other.  There will never<br />
//be shearing between U (or V) and the surface normal: that will always be 90 degrees, so<br />
//it&#8217;s probably a superior method of reading the vectors produced by the surface and posi node.</p>
<p>}</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Katt&#8217;s Mysterious 3D Lectures &#8211; Vector Application: A Better Rivet by katt</title>
		<link>http://sugarandcyanide.com/blog/2009/06/20/katts-mysterious-3d-lectures-vector-application-a-better-rivet/comment-page-1/#comment-166</link>
		<dc:creator>katt</dc:creator>
		<pubDate>Fri, 04 Dec 2009 23:05:54 +0000</pubDate>
		<guid isPermaLink="false">http://sugarandcyanide.com/blog/?p=70#comment-166</guid>
		<description>I dunno, EB -- the aim constraint works perfectly for me in all situations with parametric surfaces.  I haven&#039;t tried the normal constraint for things like this because I&#039;ve never had any issues.  Can you give me a more specific example where the aimConstraint failed on you?</description>
		<content:encoded><![CDATA[<p>I dunno, EB &#8212; the aim constraint works perfectly for me in all situations with parametric surfaces.  I haven&#8217;t tried the normal constraint for things like this because I&#8217;ve never had any issues.  Can you give me a more specific example where the aimConstraint failed on you?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Katt&#8217;s Mysterious 3D Lectures &#8211; Vector Application: A Better Rivet by exceptional basis</title>
		<link>http://sugarandcyanide.com/blog/2009/06/20/katts-mysterious-3d-lectures-vector-application-a-better-rivet/comment-page-1/#comment-165</link>
		<dc:creator>exceptional basis</dc:creator>
		<pubDate>Fri, 04 Dec 2009 22:57:56 +0000</pubDate>
		<guid isPermaLink="false">http://sugarandcyanide.com/blog/?p=70#comment-165</guid>
		<description>I found that using this method with an aimConstraint does not produce acceptable rotation results, as described (or in quite a few other configurations).  however, using a normalConstraint from the deformed surface to the transform being driven and plugging the .tangentV attribute from the POSI node into the normalConstraint&#039;s .worldUpVector attribute does work very well.</description>
		<content:encoded><![CDATA[<p>I found that using this method with an aimConstraint does not produce acceptable rotation results, as described (or in quite a few other configurations).  however, using a normalConstraint from the deformed surface to the transform being driven and plugging the .tangentV attribute from the POSI node into the normalConstraint&#8217;s .worldUpVector attribute does work very well.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on this week in meetings by Patti</title>
		<link>http://sugarandcyanide.com/blog/2009/10/22/this-week-in-meetings/comment-page-1/#comment-141</link>
		<dc:creator>Patti</dc:creator>
		<pubDate>Thu, 22 Oct 2009 16:48:27 +0000</pubDate>
		<guid isPermaLink="false">http://sugarandcyanide.com/blog/2009/10/22/this-week-in-meetings/#comment-141</guid>
		<description>YOU&#039;D BETTER COME VISIT ME THEN!!!

p.s. YAY! :)</description>
		<content:encoded><![CDATA[<p>YOU&#8217;D BETTER COME VISIT ME THEN!!!</p>
<p>p.s. YAY! :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Katt&#8217;s Mysterious 3D Lectures &#8211; Vector Application: A Better Rivet by katt</title>
		<link>http://sugarandcyanide.com/blog/2009/06/20/katts-mysterious-3d-lectures-vector-application-a-better-rivet/comment-page-1/#comment-61</link>
		<dc:creator>katt</dc:creator>
		<pubDate>Fri, 04 Sep 2009 01:49:34 +0000</pubDate>
		<guid isPermaLink="false">http://sugarandcyanide.com/blog/?p=70#comment-61</guid>
		<description>Hi Animatix,

The steps are:
1) Create a locator, the nurbs surface you want to use, and an aimConstraint (createNode &quot;aimConstraint&quot;)
2) On the nurbs surface, create a pointOnSurfaceInfo node (pointOnSurface -ch on)
3) Connect the pointOnSurfaceInfo node&#039;s .position plug into the locator&#039;s .translate.
4) Connect the pointOnSurfaceInfo node&#039;s .tangentU plug into the aimConstraint&#039;s .target[0].targetTranslate.
5) Connect the pointOnSurfaceInfo node&#039;s .tangentV plug into the aimConstraint&#039;s .worldUpVector.
6) Connect the aimConstraint&#039;s .constraintRotate plug into the locator&#039;s .rotate.

That&#039;s it. I think. I&#039;m doing this off the top of my head at the moment after a long day. ;)</description>
		<content:encoded><![CDATA[<p>Hi Animatix,</p>
<p>The steps are:<br />
1) Create a locator, the nurbs surface you want to use, and an aimConstraint (createNode &#8220;aimConstraint&#8221;)<br />
2) On the nurbs surface, create a pointOnSurfaceInfo node (pointOnSurface -ch on)<br />
3) Connect the pointOnSurfaceInfo node&#8217;s .position plug into the locator&#8217;s .translate.<br />
4) Connect the pointOnSurfaceInfo node&#8217;s .tangentU plug into the aimConstraint&#8217;s .target[0].targetTranslate.<br />
5) Connect the pointOnSurfaceInfo node&#8217;s .tangentV plug into the aimConstraint&#8217;s .worldUpVector.<br />
6) Connect the aimConstraint&#8217;s .constraintRotate plug into the locator&#8217;s .rotate.</p>
<p>That&#8217;s it. I think. I&#8217;m doing this off the top of my head at the moment after a long day. ;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Katt&#8217;s Mysterious 3D Lectures &#8211; Vector Application: A Better Rivet by Animatix</title>
		<link>http://sugarandcyanide.com/blog/2009/06/20/katts-mysterious-3d-lectures-vector-application-a-better-rivet/comment-page-1/#comment-60</link>
		<dc:creator>Animatix</dc:creator>
		<pubDate>Thu, 03 Sep 2009 23:30:39 +0000</pubDate>
		<guid isPermaLink="false">http://sugarandcyanide.com/blog/?p=70#comment-60</guid>
		<description>I was having a bit of trouble following the steps to recreate this better rivet. I was wondering if you could give me a better break down. Thanks.</description>
		<content:encoded><![CDATA[<p>I was having a bit of trouble following the steps to recreate this better rivet. I was wondering if you could give me a better break down. Thanks.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
