Sprint | Finishing mDrake update

WIP POST

This post brought to you by the support of our MRS Patrons.

Intro

The last few months we’ve been updating the face blocks for MRS. To finalize this push I’m going to be updating mDrake with the new setup and update the asset for those users who have access.

You can see the previous sprint posts here:

Goals for this sprint:

  • Finish mDrake
  • Compile sprint update notes for a mrsDev branch merge to main
  • Hit minor bugs from users

mDrake

Build is up.

Pistol

Need to do a few things to finish prep for this to use.

  • Readd the holster to our mDrake template
  • Find the position for the hoslter joint to match gun for snapping in engine so we don’t need a prop joint there
  • Do we need prop joints on the hands?

Demo of a method for snapping geo.

Build

Working through a build.

To fix

  • Naming
    • space locator getting weird cgmAlias
      • Happening during control registration?
      • Nope, cgmPosition is getting set on the the skeleton phase to none
      • Went back to BLOCKUTILS.skeleton_getNameDicts | this now checks for bad string values [‘none’,’None’,”,’False’]
      • Still there. Looks like it’s at the prerig state
      • Updated BLOCKUTILS.prerigHandles_getNameDat | same checks as before
      • SpacePivots alias fixed
    • space alias on parents off | the arm going pointing to  chest_direct_anim_master for example.
    • Went to the dynParent target finder and fixed the alias  maker there.
  • General
    • Rotate order | haven’t been happy with fk order on LIMB.
      • Trying zyx (aimupout) for next LIMB build. Liking the segment one for now
      • New paradigm by main rotAxis – out | zxy , up| zyx
  • Prop
    • New profile for handle called snapPoint that doesn’t build extra bits
  • Settings
    • Some users have issues with setting placement
    • Move to prerig phase like with head

For users:

  • Weird alias names for spaces | you’ll have to go back to skeleton state and rebuild to get rid of the bad attrs making this issue

Pass 1

  • Grab skinning dat from last build
  • Trying ngSkin

Issues

  • Geo
    • Teeth still a bit big
    • Thumbs
  • Blocks
    • Left leg isn’t mirrored right
    • Thumb block to match new thumb
  • Controls
    • lid handles need to be out a little further
    • Change orient of sneer to be less along surface
    • Change holster pivot to be more under arm
    • Move lip corners way out
  • Joints
    • Move first upr/lowr lip joints closer to corner. Think having more fidelity there will give more bang for the buck
  • Setup
    • Position gun in hand and fix those snapPoints
      • Position
      • check after joint
    • Get rid of ears and hair on this proxy
    • Maybe look at transparent shader again
  • Poses
    • Setup initial pose library
  •  Post
    • Mirror mapping on face blocks feels off. Is the verify breaking it?

Pass 2

To do:

  • Naming
    • lip corners | check lip joints
  • Controls
    • lid handles need to be out a little further
    • Change orient of sneer to be less along surface
    • Change pivot
  • Joints
    • Move first upr/lowr lip joints closer to corner. Think having more fidelity there will give more bang for the buck
  • Setup
    • Position gun in hand and fix those snapPoints
    • Get rid of ears and hair on this proxy
    • Maybe look at transparent shader again
  • Poses
    • Setup initial pose library
  •  Post
    • Mirror mapping on face blocks feels off. Is the verify breaking it?

Pass 3

To do:

  • Setup
    • Add upr cheek control |Done
      • prerig
        • cheekUprSetup
      • joint
      • rig
    • Add smile
      • prerig
      • joint
      • rig_skeleton
      • rig_shapes
      • rig_controls
  • Geo
    • Implement new geo changes – smaller teeth, tweak to under neck
    • mesh_v12
  • Mirror
    • Facial mirror verify isn’t working right. Resolve.
      • Easiest solution would probably be to wired the mirror controls at build and then let the verify handle indexing on that process
      • Wire mirror controls
        • Brow
          • rig_controls
        • Muzzle
          • rig_skeleton | mirrorControl mapped. Here since we have all the left right splits there
          • rig_controls| mirror side set here since we register the mirrorSide
        • puppet_utils | Modified mirror_verify to look for a mapped mirrorControl. Added ability to match left and right on a single module (like face)

Issues

Maya Crashes

This is something we’ve run into with others rigs as well. Did some googling and came across this post which actually seems to be holding up for now.

l = []
for o in mc.ls(type='mesh'):
    l.append(cgmMeta.asMeta(o).getDag())

mc.select(l)

Then edit>delete by type> non deformer history

 

 

Thumb issue

Benn found a bug where the thumb is twisting  on form state. Digging in…

  • Looks to be stemming from the reaiming work a bit ago
  • Also found a bug on LIMB where some of the define state constraints will be deleted inadvertantly
  • Added typeMask, typeFilter to getConstraintsTo/From on cgmObject and CONSTRAINT calls to match
  • Fixed initially – removed the block reset orient of the end Handle. However I need to fix it when we have pivot setups. The simplest solution is to have a few modes and just have that be an attribute.
    • formEndAim
      • none
      • back
      • block

Prop Handle | snapPoint

We need a simple prop block handle for game work. Initially I experimented with a whole new blockType. In the end simply adding a new blockProfile snapPoint to handle it.

It does some special things for the handle block. The when this profile is active it no longer sets up the proxy mesh stuff. Just simple handles.

What matters:

  • addJoint
  • basicShape
  • shapeDirection

Need to:

  • When we have a parent block, add a vis setup to the settings for it
    • to rig_dataBuffer | added a get settings thing like we used with muzzle and brow to find the module parent settings or master
    • Wires to an attr there called snapPoint_partNameString

New Settings setup

Benn had a good idea to move the settings shape creation to prerig so you could tweak it before build.

So…

  • Added the ability to create in BLOCKSHAPES
  • BLOCKUTILS.get_handleIndices | new base call for generating those cast targets. because prerig handles aren’t placed where you want them by default I’m using the formHandles for casting.

Proxy Stuff

Lid geo proxy off.

Forgotten I’d turned this off. Wondering if workwhile to readd just to have ability to test.

Remember why it was off. It’s not a great look at present. My thought with clam was to just make some geo that rotated with the lid. Probably worth it for testing purposes.

 

Animate

Marking Menu

Bokser wants the marking menu to only do current time context and leave the other options to the ui.

  • Implemented new marking menu ui kill to try to get rid of some crash cases
  • Marking Menu calls now assume current frame time context

 

Other

  • Puppet menu radial reset has a broken link to the right call

 

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.