<?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; General Interest</title>
	<atom:link href="http://adammechtley.com/category/general/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>Root Motion Computer for Unity</title>
		<link>http://adammechtley.com/2010/05/root-motion-computer-for-unity/</link>
		<comments>http://adammechtley.com/2010/05/root-motion-computer-for-unity/#comments</comments>
		<pubDate>Wed, 26 May 2010 16:45:22 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[General Interest]]></category>
		<category><![CDATA[3D Animation]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Unity]]></category>

		<guid isPermaLink="false">http://adammechtley.com/?p=786</guid>
		<description><![CDATA[I recently finished up a new component for Unity as part of a contract job with Mixamo. For those of you who are unaware, Mixamo provides an online motion capture download and retargeting service powered by HumanIK. It lets you use sliders to creatively adjust a piece of motion capture data and then automatically retarget [...]]]></description>
			<content:encoded><![CDATA[<p>I recently finished up a new component for Unity as part of a contract job with <a title="Mixamo: Character animation in seconds" href="http://mixamo.com">Mixamo</a>. For those of you who are unaware, Mixamo provides an online motion capture download and retargeting service powered by HumanIK. It lets you use sliders to creatively adjust a piece of motion capture data and then automatically retarget it onto your own hierarchy and download it for use in your game. It&#8217;s really slick and pretty affordable, so it&#8217;s definitely worth checking out, particularly for any indie developers out there.</p>
<p>At any rate, the component that I created is designed to let animation data, rather than procedural velocity values, drive a character&#8217;s motion in space. The component sits on top of Unity&#8217;s animation API to let you simply play, crossfade, and blend animations using any of the existing API methods, and the computer takes care of everything else after the fact. The way it works is by tracking the position and rotation of the pelvis in the space of the character&#8217;s root node for each active AnimationState and then backward applying this motion to the root node itself and snapping the pelvis back into its position hovering over the root. Since the source code is all available in the project, I won&#8217;t belabor the details too much here, but you can certainly ask me if you have any questions. (The one thing perhaps worth mentioning, as an addendum to the video, is that the pelvis forward axis is not strictly necessary for computing output: only for displaying debug information. For computation, the character&#8217;s rotation is determined using the pelvis right axis.)</p>
<p>You can <a title="Download free Unity project with Root Motion Computer component and motion-captured animations" href="http://content.mixamo.com/mixamo_animationdrivenplayablecharacter.zip">download an example project from Mixamo</a> that contains the component as well as a sample character with some animations. Because the <a title="Root Motion Computer tutorial" href="http://www.mixamo.com/c/tutorials#unity2">tutorial video on the Mixamo website</a> is compressed pretty substantially, I have also uploaded a copy to my Vimeo account in case you would like to watch it in full HD resolution.</p>
<p><object width="640" height="360"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=12052874&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=12052874&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="360"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://adammechtley.com/2010/05/root-motion-computer-for-unity/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>New Section for Unity Tutorials</title>
		<link>http://adammechtley.com/2010/04/new-section-for-unity-tutorials/</link>
		<comments>http://adammechtley.com/2010/04/new-section-for-unity-tutorials/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 01:26:42 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[General Interest]]></category>
		<category><![CDATA[Unity]]></category>
		<category><![CDATA[Maya]]></category>
		<category><![CDATA[Photoshop]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://adammechtley.com/?p=717</guid>
		<description><![CDATA[Among other things, I&#8217;ve been developing some new tutorial videos for a friend (and former instructor) of mine who teaches in LA. He&#8217;s been spinning up a program focused on iPhone development using Unity, so I&#8217;ve started to put together some introductory Unity videos for him to share with his art students. As such, I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>Among other things, I&#8217;ve been developing some new tutorial videos for a friend (and former instructor) of mine who teaches in LA. He&#8217;s been spinning up a program focused on iPhone development using Unity, so I&#8217;ve started to put together some introductory Unity videos for him to share with his art students. As such, I&#8217;ve added a <a title="Free Unity video tutorials for artists" href="../../../tutorials/unity/">tutorials section for Unity</a>, which currently features a video on basics. As you can see from visiting the section, I have a few more lined up in the short term, so it will be growing over time. Let me know if there&#8217;s anything specific you might like to see in the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://adammechtley.com/2010/04/new-section-for-unity-tutorials/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coming Soon: Complete Maya-Unity Workflow</title>
		<link>http://adammechtley.com/2010/04/coming-soon-complete-maya-unity-workflow/</link>
		<comments>http://adammechtley.com/2010/04/coming-soon-complete-maya-unity-workflow/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 03:08:04 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[General Interest]]></category>

		<guid isPermaLink="false">http://adammechtley.com/?p=678</guid>
		<description><![CDATA[Over the last few weeks I&#8217;ve been working on a set of scripts in my free time to help get additional relevant data from Maya into Unity. In particular, I&#8217;ve been interested in getting things for procedural animation (constraints, expressions, etc.) out of Maya and into Unity automatically, since I have traditionally had to re-code [...]]]></description>
			<content:encoded><![CDATA[<p>Over the last few weeks I&#8217;ve been working on a set of scripts in my free time to help get additional relevant data from Maya into Unity. In particular, I&#8217;ve been interested in getting things for procedural animation (constraints, expressions, etc.) out of Maya and into Unity automatically, since I have traditionally had to re-code them manually. As such, I&#8217;ve developed a Python script that is invoked whenever Unity imports a Maya asset, which in turn adds attributes to the intermediate FBX file for Unity to operate on in an AssetPostprocessor script. Rather than babble, however, I decided to make a video to demonstrate how the tools work. (Click through to Vimeo to view in full HD.)</p>
<p><object class="video" width="640" height="360"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=10968593&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=10968593&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="360"></embed></object><br />
<span id="more-678"></span><br />
I&#8217;ll be releasing an early version of all of these scripts for free download soon, which will come as an update to my <a title="Download AMTools free Maya Python scripts and plug-ins" href="http://adammechtley.com/tools/maya/#Python_AMTools">AMTools Maya Python package</a> as well as a Unity package containing all of the editor scripts and components I created (these include a point constraint, orient constraint, aim constraint, expose transform, and so on).</p>
<p>As noted in the video, there are some limitations (some of which I can and will fix later). Briefly:</p>
<ul>
<li>The orient constraint that I coded only uses slerp, average, and slime, so it does not yet support the Longest or No Flip interpolation types</li>
<li>Expressions support a limited range of node types (I currently only support transforms, aim/orient/point constraints, and some custom nodes that I made for Maya)</li>
<li>No support yet for getting attributes or executing MEL on-demand inside expressions (e.g. <code>$var = `getAttr pSphere1.tx`;</code>)</li>
<li>Unity only lets you <em>set</em> Euler rotations using zxy order</li>
<li>I have not yet finished adding quaternion decomposition for arbitrary rotation orders, so you can only get Euler rotations in zxy (hint: if you&#8217;re still using Euler angles, it&#8217;s time to step up to flavor town)</li>
<li>Euler angles can be set to any value, but since they are decomposed from a quaternion they can only be obtained as the shortest arc from [-180,180]</li>
<li>I have not yet implemented functionality to build game code from node networks</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://adammechtley.com/2010/04/coming-soon-complete-maya-unity-workflow/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>GDC Python MasterClass and Unity  Maya Workflow for iPhone</title>
		<link>http://adammechtley.com/2010/03/gdc-python-masterclass/</link>
		<comments>http://adammechtley.com/2010/03/gdc-python-masterclass/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 15:27:07 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[General Interest]]></category>

		<guid isPermaLink="false">http://adammechtley.com/?p=656</guid>
		<description><![CDATA[I had meant to post this up before GDC, but I was overloaded with deadlines leading up to the conference, unfortunately. For anyone who was at the conference, you may have seen that I was a guest presenter at the Autodesk booth twice to discuss the Maya Unity workflow for iPhone development. These presentations were [...]]]></description>
			<content:encoded><![CDATA[<p>I had meant to post this up before GDC, but I was overloaded with deadlines leading up to the conference, unfortunately. For anyone who was at the conference, you may have seen that I was a guest presenter at the Autodesk booth twice to discuss the Maya <-> Unity workflow for iPhone development. These presentations were streamed live via their website, but I will post a link here later if they make them available somewhere. (<em>EDIT: One of the presentations is now available online. Visit the Area website to catch <a title="Unity-Maya workflow for iPhone development" href="http://area.autodesk.com/gdc/ondemand9">my presentation</a>.</em>)</p>
<p>Moreover, <a title="Ryan Trowbridge's website" href="http://rtrowbridge.com/blog">Ryan</a> and I recorded a <a title="GDC MasterClass on Maya Python presented by Ryan Trowbridge and Adam Mechtley" href="http://area.autodesk.com/gdc/class2">Maya Python MasterClass</a> for them, which you can view on the Area website. In it, Ryan covers an example of how to use threading and I cover an API example (the expose transform plug-in I recently released). Check it out and let us know what you think! Please note you will need to go through a free registration process on the Area website to view this video.</p>
]]></content:encoded>
			<wfw:commentRss>http://adammechtley.com/2010/03/gdc-python-masterclass/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<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>
	</channel>
</rss>
