AM Tools 1.05 and Unity Maya Extensions!

March 28th, 2011

Although I still need to do a formal write-up for my GDC presentation, I do finally have all of the source code ready to go (or at least I think it’s ready enough), so I wanted to make it available for download now. Here’s a brief summary of changes:

  • All of my Python stuff is officially copyrighted under the MIT License now.
  • Since I know a fair number of people out there rely on decent API examples for learning, I refactored all of my plug-ins to conform to better practice.
  • As part of the plug-in refactoring process, the AM_HipConstraintCmd and AM_ShoulderConstraintCmd plug-ins are now deprecated, and the commands are contained in the same plug-in files as the nodes.
  • Math has been dramatically simplified in both the amHipConstraint node and amShoulderConstraint node. In the case of the latter, the results you get should be identical to before, while the former will yield some minor different results when out of the lateral plane of rotation.
  • All of my comments have been reformatted so that Doxygen can generate more useful information for the online documentation.
  • All tool help menus now link to the online documentation to bypass text formatting issues with maya.cmds GUI in Qt.
  • Added files module with utilities for batch conversion of files to FBX, or for downgrading Maya ASCII files. (Note it is pretty hacky and not tested especially thoroughly, but I included it in case anyone might find it helpful.)
  • Added unity sub-package with utilities for modifying files to work in conjunction with my Unity Maya Extensions.

Read the rest of this entry »

Global Game Jam

March 10th, 2011

Now that GDC is over with, it’s time to get caught up on everything. (By the way, I’ll be putting up source code and a write-up for my presentation sometime in the next couple of days.)

Anyhow, way back in January I helped out at the Madison Global Game Jam. In addition to helping people out with their Unity projects, I squeaked in a short one of my own, which I have posted up on my portfolio page. Check it out and have fun, but remember it’s only a couple of hours worth of work. As such, it requires deferred-rendering capable hardware, and I made no optimization efforts whatsoever.

Throwing in the Towel: Stopping Development on Touch KO

March 9th, 2011

In the world of game development, you sometimes have to take a cue from the world of boxing, and know when to throw in the towel. I made the decision this week to finally terminate further development on Touch KO, and wanted to write up some thoughts and reflections on the process in hopes that some other developers may find the information handy.
Read the rest of this entry »

What the Book?

February 18th, 2011

Since I’ve gotten a few questions about this lately, I figured it might be more efficient to put up a post! As many of you are aware, I noted awhile back that Ryan and I were working on a Maya Python API book.

Apparently, Amazon had previously posted a listing for our book to be released in January, and recently changed its status to out of print. Since I’ve never communicated with Amazon, I don’t know where the January date came from in the first place, but I can assure you the book still has yet to be released!

As you can imagine, writing a book takes a lot of (free) time, and both Ryan and I have had some various family emergencies in the last year that have caused conflicts with this and other projects (believe it or not, the TKO update has also not been scrapped). Please rest assured that we are still working on the book and have also brought on some additional contributors to help wrap it up. The goal is for it to be available sometime later this year, but because I only handle the writing aspect, I can’t be more specific beyond that.

Please rest assured that I will post more detailed information as soon as I have it. I want to thank all of the supportive folks out there who have expressed their interest for their patience!

Using Multiple AssetPostprocessors

January 13th, 2011

In working on my asset pipeline for my current Unity project, I stumbled across something handy today I hadn’t needed to use before. As such, I figured a short post might help me remember and spread a useful tip. Specifically, the AssetPostprocessor class contains a function GetPostprocessOrder(). I didn’t find the documentation to be immediately obvious, so here’s a quick example.

A couple of weeks ago, I posted up an example video for an automated Blend Shape extraction tool I made for Unity and Maya. Moving this tool back into Touch KO 2.0, I needed it to work in conjunction with another big AssetPostprocessor script that sets up my boxer prefabs. Basically, I needed to make sure that my blend shapes were all set up on the character before I start building the prefab, so that I can link them up as needed.

My first thought was to make my prefab setup script inherit from the blend shape importer, call the base method, and then call all of my setup stuff. This approach would work, provided that my base method appropriately contained controls to avoid reduplication of information. Then I stumbled across this function. All I had to do was add it to my AssetPostprocessor class that sets up my boxer prefab.

/*
 * Ensure this script executes after blend shapes have been set up
 * */
public override int GetPostprocessOrder ()
{
	return 100;
}