MRS: Branch Update 03.13.2019

Current Sprint: MK Base

  • GitHub
    • Finaling
  • mrsAnimate
    • Time Context
    • Bugs/workflow
  • Workflow
    • Continuing to iterate


MRS Branch Update –

If you’re currently using MRS you’ll wanna look at these until I get a chance to update the docs.

Important Changes

BIG – ‘Template’ Block State is now ‘Form ‘

  • Template state is now  Form State to avoid confusion with .template attribute and calling a guide collection a template as well as be more direct to what it is.
    • You can check blocks with the Block Current Call? below. It will report if a rigBlock needs to be changed.
  • AFTER the change you’ll need run the update patcher on your template files
    • import cgm.core.mrs.lib.general_utils as BLOCKGEN


  • New Menus/Options
    • Reorganized Context menu to make it sort by function better
    • Contextual>Prerig>Handles Lock/Unlock | Lock and unlock prerig handles when you need them to not move when you’re doing shaping stuff
    • Reordered Contextual menu so the rig states are at the top to keep them more organized
    • Contextual BlockDat | Only load the data from certain states
      • Load Define
      • Load Template
      • Load Prerig
    • Contextual>Names>nameList | edit | added ability to work with nameLists along with the prerig validation in LIMB
    • To ScriptEditor | Right click menu on block to initialize the selected block to the script editor as mBlock
  • General
    • Fixed a bug where the create size could get funky values. Now has a core min of .1 units
    • Builder had a .5 sec sleep on the contextual calls I’d forgotten to pull when I was doing the progress bar work. Should be much faster.
  • LIMB
    • Major iteration on leg setup
    • New foot setup options
    • Quad leg much better
    • New settings
      • ikRollSetup
        • attribute – old option
        • control – new option
      • ikExtendSetup
        • aim – aim the end lever
        • full – build the full ik chain
  • HEAD
    • Added baseIK Control aim setup when present.
    • Was having issues with the settings auto placement at rig time. Instead at prerig state a settings shape helper is created the user places where they want
    • Added baseIK control aim setup when not a hips setup
  • RigShapes
    • Redid how lever shape happens. Much more exact to form
  • Define
    • Sizing on the up/rp handles should be much more intuitive now
    • Added ability to scale start/end define handles to better shape things at define
  •  Template
    • The start/end handles not being able to scale felt weird. Now you can
  • Update
    • New tech/calls implemented to update blocks if you’ve not messed with them in a while

Git Hub

We decided to change over to gitHub. Let’s do it!

  • Setup account
  • Transfer repos
    • Transfer ssh key
  • Setup issue tracking

Single download update tool

New site means new api and working through the issues of getting those pulls.

from urllib2 import Request, urlopen, URLError
import json
response= urlopen('')
response= urlopen('')
response= urlopen('')
response= urlopen('')
response= urlopen('')
response= urlopen('')
  • Had to work through a lot of issues from the changes between how bitbucket and gitHub provide data
  • Wasn’t too bad, just not the kind of coding I normally do

Reworked some calls to get data.

import cgmUpdate as cgmUPDATE
cgmUPDATE.get_dat('MRSDEV',5)#...get dat list for last 5 commits of MRSDEV branch
cgmUPDATE.get_download('MRSDEV',0,'url')#...get download link for the 0 idx commit of MRSDEV


Exposing NameLists

Working with nameLists wasn’t intuitive. Took a few stabs at names and ended up with validating the namelist at the prerig state on LIMB to test to make sure there are enough names. If not, a prompt comes up.

Simplify limb End Settings

Much work on trying to get this to a better state. We’re simplifying what were two options at times to an enum covering both of those.

We’re simplifying to

  • buildBall:’none:dag:joint’,
  • buildToe:’none:dag:joint’,
  • buildLeverBase:’none:dag:joint’,
  • buildLeverEnd:’none:dag:joint’

The idea being that:

  • none | do nothing
  • dag | dag framework, no joint
  • joint | dag and joint

Quad leg/direct foot control setup

WordPress was down a few days and I couldn’t work on the class materials so I started updating the horse template for the new stuff and when I built it I wasn’t happy with the foot. There’s been a request for a while on the queue to offer direct foot roll control setup. This seemed like a good match to that

Here’s the first pass on the quad leg

  • Wasn’t happy with the fullIK option here so split that out to two different options

Define shaping

Wasn’t thrilled with how the define state shaping was just  a box. Added taper ability and it feels much better.

Updating old templates

In getting mDrake’s template updated from the new stuff ran into a few issues.

  • baseDat wasn’t getting reset. This is something that had presented before but not caused issue. It is now.
  • Wrote a bunch of calls to implement this
  • Tutorial Post

Define vector sizing

I tried this a couple of ways and kept getting hit with eval cycles as I wanted the sizing to be live but the handles being driven by eachother kept getting a loop. So…

  • Re implemented the sizing of these handles being live
  • The measure nodes wire back into baseSize
  • At Template state, this connection is broken to avoid loops
  • At templateDelete, the connection is restored

Questions from Patrons

Is there a way of to toggle on/off the template blocks when in preRig?

Josh Burton

[MRS Project Lead | CG Monks] Josh is an animator turned TD who hails from Oklahoma, pre-undergrad in the Marine Corps, animation basics at Savannah College of Art and Design, cut his teeth in gaming and commercials before co-founding CG Monks and more recently the CG Monastery. The Morpheus Rigging System is a culmination of years of R&D and he is now thrilled to see what users can create, collaborate and expand on with this open source MRS platform.