Sunday, December 4, 2011

It's gui in the middle...

My first GUI!

So, I've been learning python for the last year and have piles of tools I could use...when my brain remembered which module they were in and what the call arguments were. Handy, I know. As efficient as that was with all of our diabolical plans it made sense to have tools that were usable for other people.

Initially I looked at doing QT but after talking to some friends I had concerns about compatibility with artists all over the place. Eventually these tools will be a part of the Morpheus suite so I wanted to get as few potential blocks out of the road as possible. 

So the last few days I've been digging in to basic maya gui making and all the craziness that entails. Adding error checks (that seemingly Maya 2010 and below don't support mc.warning nor the wordWrap tag...yay....) and getting a feel for things. 

Now I've got a pretty well functioning tool in 2011 and above. 

Some of my thinking in designing a tool...
  • One button/many functions - One things I love in silo is how so many tools are contextual and that's something I've tried to emulate where possible. So there's a lot of logic going on behind the scenes to figure out what do based on your selection
  • Easy help - the help stuff doesn't load by default (it's the stuff with the lightest back), there's a toggle that turns it on. It's on in the attached image
  • Build a base tool module that all the rest of our tools can be built from.
  • Less steps. Anything created with a tool should be named intelligently. I'm using my bbAutoName stuff as a base for naming everything in the system and it's working pretty well so far.

What does bbLocinator do? 
  • Makes named locators off of pretty much anything - anything with a pivot, faces, verts, edges, cvs, curve or surface points and I think that's it.
  • Locators created match point, rotation and rotation order of source objects wherever possible.
  • Creates locators at the pivot of objects by default (objects only, not components), option to make it use the bounding box center for point position if desired
  • Intelligent naming - you'll always know where a locator came by just looking at it's name
  • Create a loc at the center of a selection - objects, edges, whatever...
  • Create a loc that's the closest point on a surface to a target object - works with polies, nurbsSurfaces, and curves
  • Loc every cv of a curve either at the cv position or at the closest point on the curve to that cv
  • Update any locator made with the tool either over time or just on the frame you're on
  • Tag an object with a locator so you can update that objects position just like the locator
  • Bake every frame or just keys on the tracked object
What's next?
  • Get the template stuff nailed down so that any tool can call  what it needs. 
  • Several other batches of scripts need to be gui'd
  • Figure out how to handle older versions of Maya 
If you have thoughts, suggestions, insults or whatever, post em!

No comments:

All the stuff on this site is 2000 - by Josh Burton...unless otherwise noted. All rights reserved.