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.)
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. 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 Sean Binder and Chad Dombrova for helping me troubleshoot this!
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 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’s arbitrary axis to the reference object’s position. Take a look in the example file to get some ideas of how you might use it. Special thanks to my friend, Sean Binder of Raven Software, for providing me with the torso model. Continue reading AM Tools 1.03
Things have been unusually hectic so far this year, and with GDC on the horizon it’s not looking to be much clearer for awhile. However, that doesn’t mean I haven’t found a way to make all of my different obligations overlap in some ways! I’ve been working a little bit as a consultant over the last few months to help out Infinite Ammo with an upcoming title: Marian.
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 posted up on the IA website where I show what the plug-in does. Hopefully some other folks out there will find it useful too!
In Maya, many built-in commands support any of three modes: create, edit, and query. Although it may not be immediately obvious, each of these modes has some particularities that set them apart, and which consequently require some extra effort on the part of the programmer to support. Maya does have some built-in support, which is presently only partially functional, so it is helpful to understand what it actually gains you to use it and work around its issues. Continue reading MSyntax.enableQuery() and MSyntax.enableEdit() Break Object Parsing