Archive for August, 2012

Mon, Aug 20th, 2012
posted by jjburton 09:08 AM

Josh has been playing around with a tag animation for the company – both need a break from Python and wanting to animate a bit. Bokser has volunteered to do the particle fx. Seriously. He did. Don’t believe his denials…:)

Fri, Aug 17th, 2012
posted by jjburton 03:08 PM

New build for some testers wanting to play with cgm.clickSurface…



  • retooledclickIntersections,clickSurface ,clickMidPoint into one class handler with a mode argument
  • clickSurface
    • added setMode
    • added reset
    • Modified tool to make it more interactive. Doesn’t commit till you release the button
    • Added a dragUpdate mode to allow ‘drawing stuff’
    • fixed some bugs
Wed, Aug 15th, 2012
posted by jjburton 11:08 AM

Playing around with some new concepts. So many potential applications. Looking forward to hearing ideas from the community.


Wed, Aug 15th, 2012
posted by jjburton 10:08 AM

Been a bit. Trip to LA, Keith making Squirrely move through space and all, Siggraph, sleep…


Lessons Learned

  1. Store import objects to message attributes during a script to make sure you always have it’s name
  2. If you think a nested list is sounded good, see if a dictionary will work better
  3. Looking at code a year after writing it is painful….so very painful…
  4. Document your code!
  5. I appear to be close the edge of my current abilities in this current endevour and am more than ready to get back to rigging characters. This modular rigger may well break me:)
  6. Push auxilary keywords out of the def declaration for classes that will push keywords through
  7. Don’t use “”” in the body of code for commenting, it makes it harder to comment out sections
  8. Took another stab at the bridge concept to no avail:
    It doesn’t look like a singleton is what I’m looking for but the ability to intialize a super class from side a class and then see that instance from other instances. 


Build Notes

  • AttrFactory
    • Added lock flag ability on  call
    • Can now pass list values directly into compound attributes (vectors)
  • ObjectFactory
    • getNameTagsFromObject – copies cgm name tags from a target object
    • setDrawingOverrideSettings – added to easily set drawing overrides
  • Limb.module & ModuleFactory
    • getPartBaseDistance – gets base distance for a module with a start point and a mesh group
    • getGeneratedInitialPositionData – get’s split info for starting positions for controls to be built from
  • cgm.attributes
    • doGetAttr – fixed a bug I introduced with double attributes
    • doDeleteAttr – added a check for children attributes
    • doCopyAttr – added connectTargetToSource option
    • returnUserAttrsToDict – fixed a logic break down
  • cgm.dictionary
    • Added validateDirection – returns a validated direction from a dictionary of check terms
    • Added validateDirectionVector – to get back a valid vector from either string or vector call. False if not valid
  • cgm.distance
    • returnClosestPoint(startPos,posList) – pretty self explanatory
  • cgm.modules
    • doPurgeNull – fixed
  • cgm.position
    • moveAimObjects – aim a list of objects one to another with settings
    • Added some assertion checks
    • Modified most of the functions to allow string calls for vectors
  • cgm.rigging
    • zeroTransformMeObject – Fixed a bug introduced from some NameFactory work a few weeks back
  • cgm.constraints
    • Added – returnNormalizedWeightsByDistance = better distance weight tool whereby giving greater weight to closer objects
  • ModuleFactory
    • Added axis
    • Added returnOverrideColors
    • Added getState – simple state check for module
    • getCoreNames – generate core names for a module
  • DraggerContextFactory (NEW)
    • screenToWorld(startX,startY) – converts a screen space dragger context click to world space
    • findMeshIntersection(mesh,raySource,rayDir) – Return the closest point on a surface from a raySource and rayDir
    • class ContextualPick – class version of draggerContext to do magic with
    • class clickIntersections – class function to get intersected points on a mesh from a point in space and a vector
    • class clickSurface – class function to get surface points on a mesh from a draggerContext thingy
  • PuppetFactory
    • Added temp bridge to facilitate faster loads
    • Worked on aiming logic for templates
    • getState – checks the state of a puppet which happens to be the min state of it’s modules
    • doSize – working on batch template stuff for rigger
    • getOrderedModules
    • getOrderedParentModules – get’s an ordered list of parent modules by heirarchy and stores a dictionary of module children indexed to module name as well as stores rootModules to self
  • cgm.PuppetBox
    • Added temp bridge to facilitate faster loads
    • Setup initial if checks for state for buttons, help and report stuff
    • Added puppet state checking for the report at the top
    • Added axis setting per module via pop up menu
    • Added copy axis from parent module
      • currently just working with master module
Wed, Aug 15th, 2012
posted by jjburton 09:08 AM

First off, thank you for all the great uses so many of you have put Morpheus (and Squirrely) to. You’ve pushed the rig in ways I hadn’t anticipated and it’s so exciting to see it.

This September, CG Monks will be starting a Morpheus 2.0 Kickstarter campaign to help fund the project. We have a lot of ideas and would love to get moving on the project but we want to try and find a way to fund development of rigs like Morpheus and Squirrely, tools, assets and other projects for the community we so loving being a part of. We reached out to many of our communities and a Kickstarter campaign was one of the common themes we kept hearing. So, we’re gonna give it a shot.

What we’re looking for now is quality versions of some of the great animations we’ve seen on the internet. So, if you’ve created a great animation with Morpheus and want to possibly be included on a best of video to be featured as a part of our campaign, please upload a good (hd is preferred) version of it to Vimeo and send me a link to the video – (no spaces) j j b u r t o n @ c g m o n k s . c o m. In your message, please list your name and an email or webpage if and as you want them specified.

I’ll post again when we have a better idea of when the kickoff date will actually be.

Mon, Aug 6th, 2012
posted by jjburton 10:08 AM

This week we’ve got a great little demo by one of Josh’s good friends –  talented animator and teacher, Keith Osborn. He put together nice little demonstration for how to use cgm.locinator to bake animation of a character from local space to world space and back. In this case, Keith takes a cycled animation cycle of ole’ Squirrely and animates the master translate, then plots that animation through the scene. Enough explanations, just give it a watch!

Work has been plugging a long in the meantime – mainly on the rigger – just don’t have enough to show that makes sense. Josh is out in LA visiting David and we’ve been making plans for Morpheus 2.0 and for the next year of development. Super exciting:)