Archive for October, 2012

Mon, Oct 29th, 2012
posted by jjburton 11:10 AM

Some bug fixes and a few new features in this build. The biggest but was Locinator’s locator connections breaking on file reload to referenced object.

cgmToolbox_10292012

Added a standalone buttonable call for locinator’s update function at a user request. If you wanted to use that, use this as your button:

  • General
    • started playing with debug modes on tools
  • cgm.guiFactory
    • removed Bridge call from a failed experiment. Causing errors
  • attrTools/attrToolsLib
    • Added debug option
  • DraggerContextFactory
    • Removed joint sizing at tester request till we find a more dependable sizing logic function
  • setKeyMM
    • added breakdown/reg options
    • added a new keying mode which prioritizes selected channel box channes first, then regular selection
  • AttrFactory
    • Added message repairing for referenced objects connected to a message attr
  • Attributes
    • (new) repairMessageToReferencedTarget(obj,attr) – function to repair broken message connections to referenced objects
  • polyUnite
    • added version to window
  • animTools
    • added version to window
    • added debug flags
  • puppetBox
    • added version
    • added debug flags
  • polyUnite(standalone)
    • added version to window
  • search
    • reuturnTagInfo – updated to attempt to repair broken connections to referenced objects for message attributes only
  • locinator/locinatorLib
    • added debug
    • added version to window
    • (new) – doStandAloneUpdateSelected() – added standalone call for users to use a button to run update object
    • moved mode toggle to options menu to allow it to easily share the setting with other tools
Tue, Oct 16th, 2012
posted by jjburton 02:10 PM

Finally got this little bit of R&D in a functioning tool.

After looking into that bug at the end, it was messing up because this version of the Morphy proxy geo had messed up UV’s. Follicles need decent UV’s to work. Will look at adding a check for decent UV’s.

Info:

  • Add target mesh objects with the ‘>>’ button
  • Modes:
    • Surface – places on the surface
    • Bisect – places at every contact of the cast ray on the object(s)
    • MidPoint – finds the midpoint of hit points
  • Drag – whether you want creation as you drag or not. Default is only on mouse release
  • Clamp – how many intersection are allowed, 0 means infinite
  • Create Modes – all but locator and joint will create when you drop the tool or press ‘q’ on most maya default setups
    • locator
    • joint
    • jointChain
    • curve
    • follicle
    • group — only a transform at that spot
  • Start – initializes tool
  • Drop – finalizes it (or ‘q’)

To do in the future:

  • mirror mode
  • skinDeep mode – for placing joints just within the surface for facial work
  • Add a check to make sure a mesh has suitable UV’s
Tue, Oct 16th, 2012
posted by jjburton 12:10 PM

Sorry for the delays. Been busy on gigs and the Morpheus Kickstarter. Been wresting with matrices and space distances and maya. Api worldSpace returns are usually in cm though the docs fail to specify. More on this and more another time. Back to the build.

cgmToolbox_10182012
cgmToolbox_10162012 

Build notes(apologies, this is only from the last couple of weeks. Older changes may not be reflected):

  • General
    • started moving some reporting info to a debugReport flag toggle to keep the script editor a little clearer
    • Need to start doing some unit testing stuff
  • classes.ObjectFactory
    • Added flag to doParent, if False is passed into it, it will parent to world
  • classes.ContextFactory
    • clickSurface renamed to click Mesh
      • fixed various bugs
      • clamping works now
      • follicle creation added
      • locator and joint sizing
      • added implementation to tdTools
  • classes.ControlFactory(NEW)
    • subclass to ObjectFactory to handle control specific things
    • + verifyAimControls – necessary controls for a control to be aimed
    • + verifyRotateOrderControl – rotate order control, and connects
  • cgm.geo
    • added returnClosestUVToPos – standalone api tool for clickMesh
  • classes.SetFactory
    • Added cgm tag copying on duplication
  • cgmSetMenu
    • Added autohide options
    • Added a cap on loaded sets
  • cgm.distance
    • + returnPositoniDataDistanceSortedList(startPos,posList)
  • cgm.search
    • massive rework to returnObjectSets, not sorts scene sets
    • returnMayaInfo – added ‘currentUnit’
    • returnReferencePrefix – fixed to allow for reference chains – ref1:ref2
  • setTools/setToolsLib
    • added version on window
    • rewrote for stored instance method for speed improvements
    • Added multi setting for qss sets
    • Moved all set sorting to cgm.search
    • reworked doGroupLocal
    • Fixed rename
    • added ability to duplicated referenced sets
    • Various bug fixes
  • cgm.tdTools
    • Added version to window
    • Added a better rotation order to the master anim
    • Made control creation to use ControlFactory instead of ObjectFactory to get base control settings in
    • NEW FEATURE – Click Mesh
      • lots of options, play with it and see:)
  • cgm.attributes
    • Bug fixes in doGetAttr and doCopyAttr
  • cgm.joints
    • Added default options to orientJoint
  • cgm.lists
    • Added returnReplacedNameList
  • cgm.nodes
    • createNamedNode
    • added follicle
    • createPoseBuffer – fixed call bug
    • createNamedNode – added condition node to list of known nodes
Sat, Oct 13th, 2012
posted by jjburton 01:10 PM

So saw some questions on these enigmas around and wanted to attempt to shed some light on them.

optionVars are maya devices for saving information between maya sessions, from say one tool session to another or any other wide variety of things. By default you use them like something like this:

If you decided you wanted to play with optionVars. They’re awesome but can be a bugger to get working the way you want them. We use them to save settings between gui sessions and even to send info to some stand alone functions.

If you want to add to a string one you have to remember it’s a string one and use a different flag than a int or float one. It got confusing to us, so we decided to go a different route.

We wrote a class wrapper for dealing with them that made it easier for us to get a handle on so that we call them at the top of any gui with something like:

That initializes the option var to an instance that can be appended, rebuilt, culled purged, cleared, call, converted or whatever in any of our tools.

The defaultValue flag sets the value only if the optionVar doesn’t exist. We did that so that if a specific tool is reset and has it’s flags wiped. It builds again with the default ‘factory’ settings. It also converts on the fly so if you pass a string to a non string optionVar, it converts it to a string, and so on.

Settings are called and set via commands like:

We also flag all of our optionVar’s with a ‘cgmVar’ so that we can easily do a full wipe of our variables when needed for testing.

You’re welcome to give it a try if you like or take part of it it works for you and run with it or join us and help make it better. It’s in the cgmTool box from cgMonks – cgm/lib/classes/OptionVarFactory

Have a great weekend!

Mon, Oct 8th, 2012
posted by jjburton 04:10 PM

This week, the big thing we’re workin on is this…check it out:)

http://www.kickstarter.com/projects/cgmonks/morpheus-rig-v20 

Thu, Oct 4th, 2012
posted by jjburton 02:10 PM

The past few weeks…

It’s been a hectic few weeks at CG Monks. David and I have been working hard finishing a crazy deadline commercial gig. ~2 minutes of content in about 2 and half weeks. Yeah, nutty. I had a lot of fun on my own segment though, of course, wish I’d had more time  to polish. When you have a week and a half to animate 30 seconds with a continual movement shot comprising  4 main characters, a couple of birds, sets popping in and out of place, a crowd of ~100 and all on a spinning ‘world’ some corners have to get cut:)

The team did a great job and for what we had to work with in the time we had, it’s a nice bit of work. Bokser acted as the project lead on our end, we shared TD hats and I acted as animation lead.

Morpheus 2.0…

The ball is rolling. We have our project in for Kickstarter for review and expect it to be ready for Monday. If not, we may have to delay a day or two but it’s out of our hands. Our pal, Martin is doing our edit for the Kickstarter vid and he did a great job – especially with a talking Josh who talks like he’s  had an double shot espresso…Venti.

Support Platform…

Ryan has been working away on getting our community platform up and running and we’re looking to start opening up for testing soon. If you’re interest, connect with us on our testers page. As it’s the vehicle we want to use for both our own tool and rig support and potential place for others, we wanna get the kinks out before we get too much traffic.

Bugs…

Production is a great finder of bugs and oh did I find some bugs in the cgmTools. This week I’m trying to get a handle on them to avoid repeating some of these issues in the future and preparing for starting Morpheus 2.0 development.

 
Creative Commons License

Categories