<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4531994708013902850</id><updated>2011-11-02T01:21:25.762-07:00</updated><category term='MEL'/><category term='Python'/><category term='Maya'/><category term='Animation'/><category term='Rigging'/><title type='text'>Juss Rig It</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://juss-usa.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4531994708013902850/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://juss-usa.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Wai Keat Wong</name><uri>http://www.blogger.com/profile/16106270193305077051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_TMyvPyFsnzw/SNx9iND9JRI/AAAAAAAAAEs/U_WFUJxLhbI/S220/juss_sept02_08.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4531994708013902850.post-6204236963863926966</id><published>2011-06-25T11:28:00.000-07:00</published><updated>2011-09-25T11:33:10.162-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Maya'/><category scheme='http://www.blogger.com/atom/ns#' term='Rigging'/><title type='text'>Weight Painting - Maya 2011</title><content type='html'>&lt;span class="Apple-style-span"; font-family: verdana, arial, sans-serif; font-size: 11px;"&gt;I was using Maya 2011 and could not get used to the new weight painting system. To weight paint like how we used to in the previous Maya (2009 and before), just go into the Paint Skin Weights Tool options, change the "Normalize Weights" from "Post" (default) to "Interactive". A message box will pop up and ask if you want to normalize the weights, in which I prefer to pick 'No'. Normalize Weights is accessible from "Edit Smooth Skins option" if I need it later.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: verdana, arial, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4531994708013902850-6204236963863926966?l=juss-usa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://juss-usa.blogspot.com/feeds/6204236963863926966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://juss-usa.blogspot.com/2011/06/weight-painting-maya-2011.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4531994708013902850/posts/default/6204236963863926966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4531994708013902850/posts/default/6204236963863926966'/><link rel='alternate' type='text/html' href='http://juss-usa.blogspot.com/2011/06/weight-painting-maya-2011.html' title='Weight Painting - Maya 2011'/><author><name>Wai Keat Wong</name><uri>http://www.blogger.com/profile/16106270193305077051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_TMyvPyFsnzw/SNx9iND9JRI/AAAAAAAAAEs/U_WFUJxLhbI/S220/juss_sept02_08.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4531994708013902850.post-3649490846626668427</id><published>2011-02-04T15:06:00.000-08:00</published><updated>2011-02-04T15:10:15.169-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Maya'/><category scheme='http://www.blogger.com/atom/ns#' term='Rigging'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>joint Zero-ing</title><content type='html'>&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Here's a simple Python script that is used to zero-out selected joints' or given joint's rotation value and joint orient value.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;INSTRUCTION:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;For the first argument,&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;'jointName'&lt;/span&gt; is used to specify a given joint name. If you intend to run the script for selected joints instead, give a&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; 'None' &lt;/span&gt;or do not use this argument at all. It is defaulted as&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; 'None' &lt;/span&gt;though. Second and third argument is &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;'rot'&lt;/span&gt; and&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; 'jo'&lt;/span&gt;. Give it a &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;1&lt;/span&gt; to&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; 'rot' &lt;/span&gt;to zero-out rotation values or a &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;1&lt;/span&gt; to&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; 'jo'&lt;/span&gt; to zero-out joint orient values. Otherwise, give them a &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;0&lt;/span&gt; to do nothing on that particular arguments.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;EXAMPLE:&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;1) This will zero-out rotation values for joint1, but its joint orient will not be affected:&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: x-small;"&gt; &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;jointZero (jointName='joint1', rot=1, jo=0)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;2) This will zero-out rotation values and joint orient values for all selected joints:&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;jointZero (rot=1,jo=1) &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: small;"&gt;FULL SCRIPTS (to run before hand):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;def jointZero (jointName=None, rot=1, jo=1):&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if jointName == None:&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;sel = cmds.ls(sl=True)&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for joint in sel:&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if rot == 1:&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;cmds.setAttr ('%s.rx'%joint, 0)&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;cmds.setAttr ('%s.ry'%joint, 0)&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;cmds.setAttr ('%s.rz'%joint, 0)&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if jo == 1:&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;cmds.setAttr ('%s.jointOrientX'%joint, 0)&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;cmds.setAttr ('%s.jointOrientY'%joint, 0)&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;cmds.setAttr ('%s.jointOrientZ'%joint, 0)&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;else:&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if rot == 1:&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;cmds.setAttr ('%s.rx'%jointName, 0)&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;cmds.setAttr ('%s.ry'%jointName, 0)&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;cmds.setAttr ('%s.rz'%jointName, 0)&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if jo == 1:&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;cmds.setAttr ('%s.jointOrientX'%jointName, 0)&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;cmds.setAttr ('%s.jointOrientY'%jointName, 0)&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;cmds.setAttr ('%s.jointOrientZ'%jointName, 0)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-size: small;"&gt;Note that this is a very simple script. Fail-proof procedures are not added. So make sure your selection type is 'joint' and no rotation or joint orient attributes are locked or non-keyable.&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;That is all for now. Hope this sheds some lights to the blog's viewers.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4531994708013902850-3649490846626668427?l=juss-usa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://juss-usa.blogspot.com/feeds/3649490846626668427/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://juss-usa.blogspot.com/2011/02/joint-zero-ing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4531994708013902850/posts/default/3649490846626668427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4531994708013902850/posts/default/3649490846626668427'/><link rel='alternate' type='text/html' href='http://juss-usa.blogspot.com/2011/02/joint-zero-ing.html' title='joint Zero-ing'/><author><name>Wai Keat Wong</name><uri>http://www.blogger.com/profile/16106270193305077051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_TMyvPyFsnzw/SNx9iND9JRI/AAAAAAAAAEs/U_WFUJxLhbI/S220/juss_sept02_08.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4531994708013902850.post-5148079357662518930</id><published>2011-01-11T23:26:00.000-08:00</published><updated>2011-11-01T08:19:13.902-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Animation'/><category scheme='http://www.blogger.com/atom/ns#' term='Maya'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Animation Transfer Script</title><content type='html'>A friend of mine was asking me if it is possible to have a script that can save the animation data into a text file and load the saved animation data text file into another object. So I wrote a simple Python script that could perform such operation. It saves the keys as well as its animation curves and tangents.&lt;br /&gt;&lt;br /&gt;The GUI is pretty simple to navigate. There are two tabs, LOAD and SAVE. To save out animation data into a text file, first select the object with the animation that you like to save out. Then click 'Browse' to browse to a directory where you want to save the text file containing the animation data. You can specify the start frame and end frame, as well as choosing the channels you like to save such as translate, rotate, scale and visibility. I made an additional custom attribute if you ever need one. The 'Save Data' button executes the saving data script. And to load the animation data, all you need to do is to choose your object, click 'Browse' to select your saved animation data text file, and decide whether if you like to remove the current keys on the selected object by ticking the checkbox. A click on 'Load Data' will executes the loading data script.&lt;br /&gt;&lt;br /&gt;That is all.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_TMyvPyFsnzw/TS1WV9-s7aI/AAAAAAAAAto/tCsncoVUd7M/s1600/jwAnimTransferSS.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="150" src="http://3.bp.blogspot.com/_TMyvPyFsnzw/TS1WV9-s7aI/AAAAAAAAAto/tCsncoVUd7M/s400/jwAnimTransferSS.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Download link:&lt;b&gt; &lt;a href="http://www.justinwwk.com/images/temp/jwAnimTransfer.py"&gt;Python File : jwAnimTransfer.py&lt;/a&gt; &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;** Note that this script is very simple. It can only save 1 object's animation at one time. Not that great, I know! Well, if you have any suggestions to make it more useful, let me know. Thanks!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4531994708013902850-5148079357662518930?l=juss-usa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://juss-usa.blogspot.com/feeds/5148079357662518930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://juss-usa.blogspot.com/2011/01/animation-transfer-script.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4531994708013902850/posts/default/5148079357662518930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4531994708013902850/posts/default/5148079357662518930'/><link rel='alternate' type='text/html' href='http://juss-usa.blogspot.com/2011/01/animation-transfer-script.html' title='Animation Transfer Script'/><author><name>Wai Keat Wong</name><uri>http://www.blogger.com/profile/16106270193305077051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_TMyvPyFsnzw/SNx9iND9JRI/AAAAAAAAAEs/U_WFUJxLhbI/S220/juss_sept02_08.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_TMyvPyFsnzw/TS1WV9-s7aI/AAAAAAAAAto/tCsncoVUd7M/s72-c/jwAnimTransferSS.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4531994708013902850.post-2217908422897568545</id><published>2011-01-04T00:09:00.000-08:00</published><updated>2011-01-09T00:23:15.371-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Maya'/><category scheme='http://www.blogger.com/atom/ns#' term='Rigging'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Joint Labeling</title><content type='html'>&lt;span style="font-size: x-small;"&gt;I developed this script about a year ago. It is used to rename the joint labeling and set the 'side' of the selected joints according to their prefix. In my case, I used 'cc' for center, 'll' for left side and 'rr' for right side. You may modify that to suit your preference. It is important to make sure the name on both sides of the selected joints are the same except its prefix. The script is as below:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&lt;br /&gt;# Import Maya functions&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;import maya.cmds as cmds&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;# Prefixes change here&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;leftSide = 'll'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;rightSide = 'rr'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;center = 'cc'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;def jointLabeling ():&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sel = []&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sel = cmds.ls (sl=True, fl=True)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for i in sel:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; afterName=i.split ('_', 1)[0] # take the starting prefix and check&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; afterNameTwo=i.split ('_', 1)[1] # take the obj's name and check&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if afterName == &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;leftSide&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; cmds.setAttr ('%s.side'%i, 1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; cmds.setAttr ('%s.type'%i, 18)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; cmds.setAttr ('%s.otherType'%i, '%s'%afterNameTwo, type= "string")&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; print 'Labeled %s prefix called %s' %(afterName, afterNameTwo)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if afterName == rightSide:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; cmds.setAttr ('%s.side'%i, 2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; cmds.setAttr ('%s.type'%i, 18)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; cmds.setAttr ('%s.otherType'%i, '%s'%afterNameTwo, type= "string")&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; print 'Labeled %s prefix called %s' %(afterName, afterNameTwo)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if afterName == center:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; cmds.setAttr ('%s.side'%i, 0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; cmds.setAttr ('%s.type'%i, 18)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; cmds.setAttr ('%s.otherType'%i, '%s'%afterNameTwo, type= "string")&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; print 'Labeled %s prefix called %s' %(afterName, afterNameTwo)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4531994708013902850-2217908422897568545?l=juss-usa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://juss-usa.blogspot.com/feeds/2217908422897568545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://juss-usa.blogspot.com/2011/01/joint-labeling.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4531994708013902850/posts/default/2217908422897568545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4531994708013902850/posts/default/2217908422897568545'/><link rel='alternate' type='text/html' href='http://juss-usa.blogspot.com/2011/01/joint-labeling.html' title='Joint Labeling'/><author><name>Wai Keat Wong</name><uri>http://www.blogger.com/profile/16106270193305077051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_TMyvPyFsnzw/SNx9iND9JRI/AAAAAAAAAEs/U_WFUJxLhbI/S220/juss_sept02_08.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4531994708013902850.post-1037607433050158361</id><published>2010-12-15T00:00:00.000-08:00</published><updated>2011-01-12T10:53:32.526-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MEL'/><category scheme='http://www.blogger.com/atom/ns#' term='Maya'/><category scheme='http://www.blogger.com/atom/ns#' term='Rigging'/><title type='text'>IK Spring Solver</title><content type='html'>&lt;span style="font-size: x-small;"&gt;IK Spring Solver is useful             when posing and animating limbs that have numerous joints such as             insect legs. The most prominent function is the ability to adjust the spring angle bias to keep the joint angles to be evenly distributed. To use this IK solver, it has to be activated through an easy MEL script:&lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&lt;span class="code" style="font-size: x-small;"&gt;ikSpringSolver&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: x-small;"&gt;Through the Internet, there are many people who bumps into problems while  using this IK Solver, especially when performing world rotation that seems  not to affect the joints rigged with IK Spring Solver. This problem has been a plague since Maya 7.0 and no rectification is being done up till Maya 2009 (which I am using) to make it behave properly.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: x-small;"&gt;The only available fix to it, is to have the first joint of a series of joints bounded to an IK Spring Solver not to be parented to its whatever parent. That joint shall be parent constrained to whatever parent it supposed to be, instead of directly parented underneath them.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: x-small;"&gt;Note that IK Spring Solver will also break if you choose to parent the joints under a transform node and choose that transform node to perform the required parent-constraining. It is okay if you parent constrain the joints to whatever parents it supposed to be as described above, and group the joints in an empty transform node for clarity purposes.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: x-small;"&gt;I guess that is as much as I could explain. Please do drop a message if the problem persists, or my instructions being unclear.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4531994708013902850-1037607433050158361?l=juss-usa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://juss-usa.blogspot.com/feeds/1037607433050158361/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://juss-usa.blogspot.com/2010/12/ik-spring-solver.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4531994708013902850/posts/default/1037607433050158361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4531994708013902850/posts/default/1037607433050158361'/><link rel='alternate' type='text/html' href='http://juss-usa.blogspot.com/2010/12/ik-spring-solver.html' title='IK Spring Solver'/><author><name>Wai Keat Wong</name><uri>http://www.blogger.com/profile/16106270193305077051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_TMyvPyFsnzw/SNx9iND9JRI/AAAAAAAAAEs/U_WFUJxLhbI/S220/juss_sept02_08.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4531994708013902850.post-2154997793168657981</id><published>2010-02-22T23:00:00.000-08:00</published><updated>2010-03-08T21:17:49.533-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Maya'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Returning multiple values from a Python function</title><content type='html'>&lt;span style="font-size: x-small;"&gt;I was working on my Python scripts. Then I came to a point where I require more than 1 value to be returned from a function that I wrote. Usually, functions in Python can only return one thing, but the one thing can be a collection of items - tuple. The returned values can be broken down into a bunch of variables:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# Create a function as below, with three returns:&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; def addme(num):&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;     v1 = num + 15&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;     v2 = num - 10&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;    v3 = num * 2&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;     return v1,v2,v3; &lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# Running the function: &lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; main = addme (15)&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; sA, sB, sC = addme (15)&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;#By printing main, main will be equal to (30,5,30):&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;print main&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;#By printing main[0], main[1] and main[2], you'll get individual values of 30, 5 and 30 respectively:&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;print main[0]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;print main[1]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;print main[2]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;#Or, another way would be printing sA, sB and sC; you'll get 30, 5 and 30 respectively as well:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;print sA&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;print sB&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;print sC&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4531994708013902850-2154997793168657981?l=juss-usa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://juss-usa.blogspot.com/feeds/2154997793168657981/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://juss-usa.blogspot.com/2010/02/returning-multiple-values-from-python.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4531994708013902850/posts/default/2154997793168657981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4531994708013902850/posts/default/2154997793168657981'/><link rel='alternate' type='text/html' href='http://juss-usa.blogspot.com/2010/02/returning-multiple-values-from-python.html' title='Returning multiple values from a Python function'/><author><name>Wai Keat Wong</name><uri>http://www.blogger.com/profile/16106270193305077051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_TMyvPyFsnzw/SNx9iND9JRI/AAAAAAAAAEs/U_WFUJxLhbI/S220/juss_sept02_08.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4531994708013902850.post-6653271070880570278</id><published>2010-02-18T17:00:00.000-08:00</published><updated>2011-01-12T11:24:46.606-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Maya'/><category scheme='http://www.blogger.com/atom/ns#' term='Rigging'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>'It has non-zero rotations'</title><content type='html'>&lt;span style="font-size: x-small;"&gt; If you ever try to joint orient some joints that has rotation values, an error message ' It has non-zero rotations' will appear. &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;This script is to remove unneeded rotation values on joints and apply them to their joint orient attribute. The position will not be affected. After applying this script to the joints, these joints can now be joint-oriented:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;import maya.cmds as cmds&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;import sys&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;sel = []&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;sel = cmds.ls (sl=True)&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;for i in sel:&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;rot = cmds.xform (i, q=True, ro=True)&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;print rot&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;jrot = cmds.joint (i, q=True, o=True)&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;print jrot&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;newjrotX = rot[0] + jrot[0]&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;newjrotY = rot[1] + jrot[1]&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;newjrotZ = rot[2] + jrot[2]&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;print newjrotX&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;print newjrotY&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;print newjrotZ&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;cmds.joint (i, e=True, ax=0, ay=0, az=0)&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;cmds.joint (i, e=True, o=(newjrotX,newjrotY,newjrotZ))&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;Note that this is never advised to be done unless in some circumstances. It is always better to keep your joints clean with its values early on and not relying this script to alter the joint orients and rotation values at later times.&amp;nbsp; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4531994708013902850-6653271070880570278?l=juss-usa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://juss-usa.blogspot.com/feeds/6653271070880570278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://juss-usa.blogspot.com/2010/02/it-has-non-zero-rotations.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4531994708013902850/posts/default/6653271070880570278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4531994708013902850/posts/default/6653271070880570278'/><link rel='alternate' type='text/html' href='http://juss-usa.blogspot.com/2010/02/it-has-non-zero-rotations.html' title='&apos;It has non-zero rotations&apos;'/><author><name>Wai Keat Wong</name><uri>http://www.blogger.com/profile/16106270193305077051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_TMyvPyFsnzw/SNx9iND9JRI/AAAAAAAAAEs/U_WFUJxLhbI/S220/juss_sept02_08.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4531994708013902850.post-4639773997236322778</id><published>2010-02-12T05:00:00.000-08:00</published><updated>2010-02-12T05:52:32.701-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Maya'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Modeling bumpy polygon plane</title><content type='html'>&lt;span style="font-size: x-small;"&gt;This simply Python script creates bumpy surface on a polygon plane by altering the Y position of each vertex points in a random manner. The User Presets area can be edited according to your needs.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color: #666666; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;import maya.cmds as cmds&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #666666; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;import random&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: #666666; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #666666; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;#User Presets Below This Line-----------------&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #666666; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #666666; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;numberOfVertex = 10200 # Number of vertexes&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #666666; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;pName = 'pPlane1' # Name of polygon plane&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #666666; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;loR = -5 # Lowest point of bumping&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #666666; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;hiR = 5 # Highest point of bumping&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #666666; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;mult = 0.1 # Magnitude of randomness&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #666666; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #666666; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;#&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;User Presets Above This Line&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;-----------------&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: #666666; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #666666; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;for i in range(1,numberOfVertex):&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #666666; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #666666; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vtx = ('%s.vtx[%s]'%(pName,i))&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #666666; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmds.move(0,(random.randrange(loR,hiR)*mult),0,vtx,r=True,ws=True)&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_TMyvPyFsnzw/S3VVTVKYDCI/AAAAAAAAAs0/Un4Fj3yK6Ek/s1600-h/TOpost_nobump.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="140" src="http://1.bp.blogspot.com/_TMyvPyFsnzw/S3VVTVKYDCI/AAAAAAAAAs0/Un4Fj3yK6Ek/s320/TOpost_nobump.jpg" width="320" /&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/_TMyvPyFsnzw/S3VVcyvwgEI/AAAAAAAAAs8/FPgb6z6dEI8/s1600-h/TOpost_withbump.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_TMyvPyFsnzw/S3VVcyvwgEI/AAAAAAAAAs8/FPgb6z6dEI8/s320/TOpost_withbump.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;Note that if your polygon plane is very high in resolution, it might take longer to complete depending on the processing power of your machine. I tried 10000+ vertexes and it took my computer's Maya about 30 seconds to complete.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;Don't panic if Maya froze during the process!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4531994708013902850-4639773997236322778?l=juss-usa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://juss-usa.blogspot.com/feeds/4639773997236322778/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://juss-usa.blogspot.com/2010/02/modeling-bumpy-surface-on-polygon-plane.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4531994708013902850/posts/default/4639773997236322778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4531994708013902850/posts/default/4639773997236322778'/><link rel='alternate' type='text/html' href='http://juss-usa.blogspot.com/2010/02/modeling-bumpy-surface-on-polygon-plane.html' title='Modeling bumpy polygon plane'/><author><name>Wai Keat Wong</name><uri>http://www.blogger.com/profile/16106270193305077051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_TMyvPyFsnzw/SNx9iND9JRI/AAAAAAAAAEs/U_WFUJxLhbI/S220/juss_sept02_08.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_TMyvPyFsnzw/S3VVTVKYDCI/AAAAAAAAAs0/Un4Fj3yK6Ek/s72-c/TOpost_nobump.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4531994708013902850.post-8743087495337106100</id><published>2010-02-10T21:00:00.000-08:00</published><updated>2010-12-01T13:15:32.534-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MEL'/><category scheme='http://www.blogger.com/atom/ns#' term='Maya'/><title type='text'>'File contains unknown nodes or data'</title><content type='html'>&lt;span style="font-size: x-small;"&gt;Some people happens to run into a problem when trying to save a Maya Binary (.MB) file to Maya ASCII (.MA) file. An error message would pop&amp;nbsp;up mentioning,&amp;nbsp;&lt;i&gt;&lt;span style="color: red;"&gt;'File contains unknown nodes or data. To preserve this information, the current file type cannot be changed.' &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;In this case, you can&amp;nbsp;write this&amp;nbsp;MEL script to look for the 'unknown' node(s):&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #666666; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;ls -type unknown;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;A list of unknown&amp;nbsp;node(s) will be generated.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;You can delete them by typing:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #666666; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;delete `ls -type unknown`;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;By deleting the unknown nodes, the problem should be solved. =]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;UPDATED 12.01.2010 :&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;Thank you to Ariel for adding extra info.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;If it says "Cannot delete locked node", make sure you get the name of that node and select it, and then type:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color: #666666;"&gt;&lt;span style="font-size: x-small;"&gt; &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;lockNode -l 0;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;Then type again:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color: #666666;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ls -type unknown;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #666666; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;delete `ls -type unknown`;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: black;"&gt;That should do it.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4531994708013902850-8743087495337106100?l=juss-usa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://juss-usa.blogspot.com/feeds/8743087495337106100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://juss-usa.blogspot.com/2010/02/file-contains-unknown-nodes-or-data.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4531994708013902850/posts/default/8743087495337106100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4531994708013902850/posts/default/8743087495337106100'/><link rel='alternate' type='text/html' href='http://juss-usa.blogspot.com/2010/02/file-contains-unknown-nodes-or-data.html' title='&apos;File contains unknown nodes or data&apos;'/><author><name>Wai Keat Wong</name><uri>http://www.blogger.com/profile/16106270193305077051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_TMyvPyFsnzw/SNx9iND9JRI/AAAAAAAAAEs/U_WFUJxLhbI/S220/juss_sept02_08.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4531994708013902850.post-4809661253068710239</id><published>2010-02-01T00:00:00.000-08:00</published><updated>2010-02-01T00:00:00.165-08:00</updated><title type='text'>Juss Rig It</title><content type='html'>Officially online!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4531994708013902850-4809661253068710239?l=juss-usa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://juss-usa.blogspot.com/feeds/4809661253068710239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://juss-usa.blogspot.com/2010/02/juss-rig-it.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4531994708013902850/posts/default/4809661253068710239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4531994708013902850/posts/default/4809661253068710239'/><link rel='alternate' type='text/html' href='http://juss-usa.blogspot.com/2010/02/juss-rig-it.html' title='Juss Rig It'/><author><name>Wai Keat Wong</name><uri>http://www.blogger.com/profile/16106270193305077051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_TMyvPyFsnzw/SNx9iND9JRI/AAAAAAAAAEs/U_WFUJxLhbI/S220/juss_sept02_08.jpg'/></author><thr:total>4</thr:total></entry></feed>
