Status: Alpha release

mrsBuilder

Last Updated: 02.27.2019

Overview

mrsBuilder is the UI for working with and creating Morpheus Rig System templates and rigs

What can I do with it?

  • Create rigBlocks
  • Connect, change options and more
  • Mirror blocks
  • Post Processes

Tool specs

  • Python
  • Built on zooBaseMelUI

Top cgm menu 

CGM Top Menu > MRS > mrsBuilder

Python

import cgm
cgm.core.mrs.Builder.ui()

Concepts

There’s a few concepts we need to talk about in regards to the ui for things to make sense.

Active Block

The active block is the rigBlock that is loaded to the ui. Several calls require an active block or it can be a point of context via the Push menu. Also the active block blockDat section works off the active block and has no function without it.

You can set the active block a couple of ways.

  • Top bar of setup – There is a button << which when pressed with a selected block will set that block as the active block
  • Right click menu – right clicking a selected rigBlock in the scroll list will provide an option To Active which will make that block the active block
  • Utilites - Contextual Section – There is a button To Active that does the same.

Context

We use the term context in several places in our tools. Simply but it is those things which will be affected by any given action.

  • self | selected — Only that selected block will be affected by contextual actions
  • self | active — Only the active block….
  • self | below — Selected and children blocks
  • root | below — Gets root from selected, then root below

Rigblock List

This ui element is a scroll list for selecting rigBlocks and access some other functions.

  • You can multi select this list | right click multi selection isn’t currently done
  • Right click menu is only built when a single rigBlock is selected

The format is as follows: blocknameBlocktype - [STATE]. If there is a side it will be appended to the front as R - blocknameBlocktype - [STATE]. The ticks in front are to denote depth in a limited format we have with scroll lists in the ui.

I mess with this every now and then trying to find the best way to display the most info in the space and limitations for the format. Open to suggestion.

  • Refresh | Refreshes the list if you’ve been messing with stuff manually

Right Click Menu

Only built when a single rigBlock is selected

Note – This menu needs a rework. In my last pass on workflow improvements I added the Utilities Contextual Menu which is much more intuitive for multi select work.

  • To active | Set the selected to the active rigBlock
  • Select | Select the rigBlock
  • Parent |
    • To Active| Set the active rigBlock as the blockParent
    • Clear| Clear the blockParent
  • Mirror |
    • Verify| Verify the rigBlock has a blockMirror
    • Rebuild| Rebuild the blockMirror
    • Push| Push blockDat to the blockMirror
    • Pull| Pull blockDat from the blockMirror
  • Size | IN TESTING
  • Set Name | Set the name tag of the rigBlock by uiPrompt
  • Set Side | Set side FIX THIS
  • Set Position | Set position FIX THIS
  • Recolor | Recolor the rigBlock
  • Verify | Verify the rigBlock
  • Delete | Delete the rigBlock
  • Duplicate | Duplicate the rigBlock

Push

Section for setting context settings and pushing states. It has two main parts – context and state pushing

Context

Set the context with three options currently.

First is the main context:

  • self | just the main rigblock
  • below | From the beginning
  • root | From the top most blockParent of the current context and below
  • scene | All blocks. Don’t use this for now. IN TESTING

Begin actions with:

  • active |Start with the active block
  • selected | Start with selected

Force

Note – Self mode will push force to True.

  • False | If the block is at the current state, let it be. Except in self mode.
  • True | Force means that even in the current state, it will rebuild that state. Normally you’ll want this to be False

State Pushing

Main buttons for changing rigBlock states. Works off of what you have in context.

Utilities – Contextual

This is the section we’re most often in these days. These utilities work off of selected context in the scroll list. We’ll talk about them by row. I’ve tried to keep them organized by category-------------[func][func]... format

Remember – multi select works

General

  • Select | Select rigBlocks in context
  • Verify | Verify the rigBlock
  • Recolor | Recolor the rigBlock
  • Duplicate | Create another rigBlock matching it
  • Delete | Delete the rigBlock and all it’s parts

blockDat

Functions for working with blockDat. This is still very much in iteration. The idea is to save a rigBlock at a certain setting state and do functions with that information.

  • Save | Store the blockDat
  • Load | Load stored blockDat
  • Load State | Only load the data the the current blockState
  • Query | Log the blockDat in the script editor
  • Copy | Copy the active block’s blockDat to any blocks in context
  • Reset | Reset the blockDat to the default data (WIP function)

Mirror

These calls are for working with blockMirror and self rigblock mirroring functionality.

  • Verify | Verify a blockMirror to our contextual rigBlocks
  • Rebuild | Delete existing and rebuild blockMirror
  • Push | Push settings from contextual rigBlocks to their blockMirrors
  • Pull | Pull settings from blockMirrors of contextual blocks to themselves
  • Self[L] | Self mirror with Left being prime axis. Not all blocks support. Added for facial blocks
  • Self[R] | … Right …

Block Dat – Active

This was the very pass on working with blockDate. It is a section for changing values on our active rigBlock. The ui is populated by getting the rigblock attributes then creating ui elements matching each attributes type.

  • We’ve been experimenting with filtering which blocks load their by state
  • Usually we’re just doing stuff in the channel box these days except for a few attributes that won’t show up there – strings for example.

This section has a blockDat utilities row at the top:

  • Save | Store the blockDat
  • Load | Load stored blockDat
  • Revert | Reset the blockDat to the default data (WIP function)
  • Refresh | Refresh the ui section if you’ve been manually messing with stuff in the channel box

Block Dat – Contextual

Section for changing values on a contextual basis. This was an early pass on doing contextual rigBlock work. The Utilities - Contextual section has largely replaced it. Though there are a few calls that are only here still.

  • This works on a ‘try to set’ function. So all rigBlocks in context may not have the setting your changing
  • The template/prerigNull lock/unlock are handy
  • If you want to change all the loftShapes of a bunch of fingers at once, this would be a good place to look.

Roadmap

  • Add rp visualization as a live helper

Change log

2019

February

  • Hit on ui updates in general
  • Added new contextual options: Geo, mirror, blockFrame and new sub options
  • Step Build – initial documentation
  • Progress bar implemented
  • Context menu – made frame element with a context report similar to the mrsAnimate time context stuff I’d been messing with

January

  • Added Focus framework and functionality to UI
  • Added new Post Process UI
  • Added new RP Pos visualize button
  • Did a pass on making contextual functions that I can not clear the block list
  • Head – new right click menu
  • New contextual rows
    • Name List
      • Reset to Profile
      • Iter from Base Name
    • Side – duplicated from right click menu

2018

December

  • Minor bug fixes for MRS Makers Workshop
  • IsHistoricallyInteresting first pass
  • Began documentation for the tool

October

  • Major update with MRS workflow update
  • Added multi select to the rigblock scroll list
  • Added refresh button
  • Added Utilities-Contextual
  • Reworked Add menu
Close Bitnami banner
Bitnami