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

<channel>
	<title>Technical Art for Games &#187; Node</title>
	<atom:link href="http://adammechtley.com/tag/node/feed/" rel="self" type="application/rss+xml" />
	<link>http://adammechtley.com</link>
	<description>Tips, Tutorials, and Tools - by Adam Mechtley</description>
	<lastBuildDate>Wed, 14 Jul 2010 02:27:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>AM Tools 1.04</title>
		<link>http://adammechtley.com/2010/02/amtools-1-04/</link>
		<comments>http://adammechtley.com/2010/02/amtools-1-04/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 15:30:11 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[General Interest]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Command]]></category>
		<category><![CDATA[Maya]]></category>
		<category><![CDATA[Maya Python]]></category>
		<category><![CDATA[Node]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://adammechtley.com/?p=649</guid>
		<description><![CDATA[I just released a minor update to AM Tools that I thought was worth mentioning here. The only change is some refactoring in plug-in verification to ensure everything will work fine with versions of Maya older than 2010 on Windows. Previously, I was using the allNodeTypes command to verify the existence of plug-ins containing nodes. [...]]]></description>
			<content:encoded><![CDATA[<p>I just released a minor update to <a title="Download free AM Tools Maya Python package for rigging and games" href="../../../tools/maya/#Python_AMTools">AM Tools</a> that I thought was worth mentioning here. The only change is some refactoring in plug-in verification to ensure everything will work fine with versions of Maya older than 2010 on Windows. Previously, I was using the <a title = "Maya Python allNodeTypes command" href="../../../2009/12/problems-with-allnodetypes-command/">allNodeTypes command</a> to verify the existence of plug-ins containing nodes. While this command generally only needs to be called twice to make it work in old versions of Maya on OSX (and I believe Linux too), Windows users could get a Debug.dll error that would just prevent the script from working. Special thanks to <a title="The art of Sean Binder, 3D character artist" href="http://binderart.blogspot.com/">Sean Binder</a> and <a title="Website of Chad Dombrova, creator of Pymel project" href="http://www.chadrikvon.com/">Chad Dombrova</a> for helping me troubleshoot this!</p>
]]></content:encoded>
			<wfw:commentRss>http://adammechtley.com/2010/02/amtools-1-04/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AM Tools 1.03</title>
		<link>http://adammechtley.com/2010/02/am-tools-1-03/</link>
		<comments>http://adammechtley.com/2010/02/am-tools-1-03/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 09:38:58 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Maya Python]]></category>
		<category><![CDATA[Rigging]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Command]]></category>
		<category><![CDATA[Maya]]></category>
		<category><![CDATA[Node]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://adammechtley.com/?p=623</guid>
		<description><![CDATA[I just uploaded an update to my AM Tools package, which contains some new goodies. In addition to including the AM_Ribbon plug-in that I previewed previously, I have also included an AM_ExposeTransform node, which I will be discussing in an upcoming Autodesk MasterClass that I am doing with Ryan. This node, much like its counterpart [...]]]></description>
			<content:encoded><![CDATA[<p>I just uploaded an update to my <a title="Download free AM Tools Maya Python package for rigging and games" href="../../../tools/maya/#Python_AMTools">AM Tools package</a>, which contains some new goodies. In addition to including the AM_Ribbon plug-in that I previewed previously, I have also included an AM_ExposeTransform node, which I will be discussing in an upcoming Autodesk MasterClass that I am doing with <a title="Ryan Trowbridge's website" href="http://rtrowbridge.com/blog">Ryan</a>. This node, much like its counterpart in 3D Studio Max, outputs transformation data for an object with respect to another object. In addition to basics like translation, rotation, and distance, the node also allows you to compute the angle between arbitrary axes on the objects as well as an angle from the exposed object&#8217;s arbitrary axis to the reference object&#8217;s position. Take a look in the example file to get some ideas of how you might use it. Special thanks to my friend, <a title="The art of Sean Binder, 3D character artist" href="http://binderart.blogspot.com/">Sean Binder</a> of Raven Software, for providing me with the torso model.<br />
<span id="more-623"></span><br />
On top of these additions and the usual cleanup and bug fixes, I have made some further changes:</p>
<ul>
<li>In keeping with Maya convention and planning for a future merge of hip and shoulder constraint commands and nodes, the node names are now lowercase (am_hipConstraint and am_shoulderConstraint) and the version numbering scheme has been changed. Please take note if you have any Maya ASCII files containing these nodes.</li>
<li>I fixed some errors with the Insert Parents tool (the module and the command) that could arise from naming conflicts.</li>
<li>I have added debug support for MDagPath and MObject objects in API debug mode.</li>
<li>I have added some <a title="Source code documentation for AM Tools Maya Python package" href="../../../downloads/python/documentation/" target="_blank">source code documentation</a> online generated using doxygen. It&#8217;s pretty bare bones for now, but I hope to expand it in the future.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://adammechtley.com/2010/02/am-tools-1-03/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New Plug-in Coming Soon: AM_Ribbon</title>
		<link>http://adammechtley.com/2010/02/new-plug-in-coming-soon-am_ribbon/</link>
		<comments>http://adammechtley.com/2010/02/new-plug-in-coming-soon-am_ribbon/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 03:54:58 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[General Interest]]></category>
		<category><![CDATA[Maya Python]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Command]]></category>
		<category><![CDATA[Marian]]></category>
		<category><![CDATA[Maya]]></category>
		<category><![CDATA[Node]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://adammechtley.com/?p=613</guid>
		<description><![CDATA[Things have been unusually hectic so far this year, and with GDC on the horizon it&#8217;s not looking to be much clearer for awhile. However, that doesn&#8217;t mean I haven&#8217;t found a way to make all of my different obligations overlap in some ways! I&#8217;ve been working a little bit as a consultant over the [...]]]></description>
			<content:encoded><![CDATA[<p>Things have been unusually hectic so far this year, and with GDC on the horizon it&#8217;s not looking to be much clearer for awhile. However, that doesn&#8217;t mean I haven&#8217;t found a way to make all of my different obligations overlap in some ways! I&#8217;ve been working a little bit as a consultant over the last few months to help out <a title="Indie game developer Infinite Ammo, creators of Marian" href="http://infiniteammo.ca/">Infinite Ammo</a> with an upcoming title: Marian.</p>
<p>During the course of my work on the project, I developed a new Python plug-in for Maya to help out with hair modeling. I will hopefully have a chance to deploy a new version of my free Python package soon that will include it, but in the meantime I thought I might share this video that Alec <a title="Making hair for Infinite Ammo's Marian: Adam's AM_Ribbon Maya Python plug-in for modeling hair from NURBS curves" href="http://infiniteammo.ca/blog/marian-mondays-maya-hair/">posted up on the IA website</a> where I show what the plug-in does. Hopefully some other folks out there will find it useful too!</p>
<p><object class ="video" width="425" height="344"><param name="movie" value="http://www.youtube.com/v/RzjsUQ3hrcs&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/RzjsUQ3hrcs&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://adammechtley.com/2010/02/new-plug-in-coming-soon-am_ribbon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AM Tools 1.01</title>
		<link>http://adammechtley.com/2010/01/am-tools-1-01/</link>
		<comments>http://adammechtley.com/2010/01/am-tools-1-01/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 20:41:15 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Maya Python]]></category>
		<category><![CDATA[Rigging]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Command]]></category>
		<category><![CDATA[Maya]]></category>
		<category><![CDATA[Node]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://adammechtley.com/?p=562</guid>
		<description><![CDATA[I just uploaded version 1.01 of my AM Tools Python package today, which you can of course download from the Maya tools section. You can look through the files to see all of the changes that I made, but here are some of the major highlights. amInsertParents is now a Python command. I have therefore [...]]]></description>
			<content:encoded><![CDATA[<p>I just uploaded version 1.01 of my AM Tools Python package today, which you can of course <a title="Download AM Tools free - a Python package for rigging and Python API programming in Maya" href="../../../tools/maya/#Python_AMTools">download from the Maya tools section</a>. You can look through the files to see all of the changes that I made, but here are some of the major highlights.</p>
<ul>
<li><a title="Download amInsertParents Python command for Maya free" href="../../../tools/maya/#PythonPlugin_InsertParents"><strong>amInsertParents</strong> is now a Python command</a>. I have therefore retired the old MEL version.</li>
<li>Added <strong>API Debug Mode</strong> to menu. Enabling this mode overrides some Maya Python API classes for debugging. For this release, this mode overrides the __str__() functionality of MMatrix and MVector.</li>
<li>Substantially improved a number of utility functions for validating input.</li>
<li>Added validation for custom plug-ins.</li>
<li>Fixed some language-related bugs that existed for Maya 8.5.</li>
</ul>
<p>As always, please let me know if you have any problems or other feedback!</p>
]]></content:encoded>
			<wfw:commentRss>http://adammechtley.com/2010/01/am-tools-1-01/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Problems with allNodeTypes Command</title>
		<link>http://adammechtley.com/2009/12/problems-with-allnodetypes-command/</link>
		<comments>http://adammechtley.com/2009/12/problems-with-allnodetypes-command/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 21:48:39 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[MEL]]></category>
		<category><![CDATA[Maya Python]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Bugs]]></category>
		<category><![CDATA[Maya]]></category>
		<category><![CDATA[Node]]></category>
		<category><![CDATA[Undocumented]]></category>

		<guid isPermaLink="false">http://adammechtley.com/?p=545</guid>
		<description><![CDATA[Oftentimes, when loading your own custom tool set, you may want to confirm the existence of a plug-in on the client machine in order to prevent weird errors. Specifically, if you create a tool that works with a custom node, you may want to verify the node&#8217;s existence using the allNodeTypes command. Unfortunately, this command [...]]]></description>
			<content:encoded><![CDATA[<p>Oftentimes, when loading your own custom tool set, you may want to confirm the existence of a plug-in on the client machine in order to prevent weird errors. Specifically, if you create a tool that works with a custom node, you may want to verify the node&#8217;s existence using the <code>allNodeTypes</code> command. Unfortunately, this command has a really quirky problem when used in Python.<br />
<span id="more-545"></span><br />
The first thing worth mentioning is that this command is undocumented in all current versions of Maya with Python support (8.5, 2008, 2009, and 2010). Thus, you are using it at your own risk. Nonetheless, because it can be really useful, we should risk it! The command basically returns a list of all <em>specific</em> node types registered in the Maya session. I say &#8220;specific&#8221; here because it doesn&#8217;t return un-creatable parent classes for nodes (e.g. dagObject), but rather only those those which can be created using the <code>createNode</code> command. Consequently, you may want to search this list for your custom node and load its plug-in file if the node is not registered in the current session.</p>
<p>While the command seems to behave as expected in MEL, it does <em>not</em> currently work as expected in Python. Namely, if you first call this command from Python, then the first time it is called it will return <code>None</code>. Thus, to work around this problem, you should either first call the command from MEL, or make the first invocation form Python a dummy, as in this example:</p>
<pre class="code">__allNodes__ = cmds.allNodeTypes() # This returns None
__allNodes__ = cmds.allNodeTypes() # This returns the list and can therefore be used throughout your module</pre>
]]></content:encoded>
			<wfw:commentRss>http://adammechtley.com/2009/12/problems-with-allnodetypes-command/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
