Skip to content

Tag: components

Season 01 – Episode 18 – Refactoring Components

Refactoring Components

In this episode we do a pretty extensive refactoring (strict) of the leg and leg global components.

I’m not gonna lie, I’m actually quite happy with how it turned out.

Refactoring, in programming, is often done poorly and when people say “I have to refactor this for the future” they often mean “I’ll rewrite it according to my understanding of the problem space and destroy every interface in the process”.

We remained strict about it instead, moved a bunch of functionality across components and suppressed some unnecessary parts of the graph, both across and inside components, with the public interfaces left entirely unscathed.
The fact it was done methodically and entirely by just reasoning about the graph’s topology and our expectations is the part that I believe was successful. Worth a watch, even if I say so myself.

Enjoy,

Season 01 – Episode 16 – Maya Attributes Primer, FKoverIK set up

Attributes Primer, FKoverIK

We provide a quick primer on Maya attributes and how to form compound attributes, which will be very important for our guide clean up process, and then show how to do an FKoverIK set up which we’ll use to simplify the guide.

A very simple script is used during the stream. As usual it’s provided in this post, and I will eventually add it to the GitHub repository.

All new episode now free of low frequency hum in the audio!
Enjoy,

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from maya.api import OpenMaya as om2
sel = om2.MGlobal.getActiveSelectionList()
mob = sel.getDependNode(0)
 
fn_cAttr = om2.MFnCompoundAttribute()
fn_mAttr = om2.MFnMessageAttribute()
 
c_attr = fn_cAttr.create("toSwap", "toSwap")
fn_cAttr.array = True
 
m_attr1 = fn_mAttr.create("originalConnection", "originalConnection")
m_attr2 = fn_mAttr.create("guidedConnection", "guidedConnection")
 
fn_cAttr.addChild(m_attr1)
fn_cAttr.addChild(m_attr2)
 
fn_dep = om2.MFnDependencyNode(mob)
fn_dep.addAttribute(c_attr)

Season 01 – Episode 15 – Component Encapsulation, Clean up

Rig Component Encapsulation and Clean up

First let me apologise for the audio. Only after the stream I realised how present the low hum is, and there isn’t a lot I can do about it after the fact. I figured out what it is and should be able to suppress it in the future.

As for the contents of the video itself there isn’t a whole lot to say. We perform some much needed house cleaning and start properly encapsulating into containers the various parts of the rig.

Enjoy,

Season 01 – Episode 11 – Component Live Guide

Component Live Guide

I have to admit this stream came out better than I expected. I quite like what it came to and the subject, Live Guide, is important to me.

The long story short about it is that we want to add guides to our components, but instead of the run-once or build approach we show how to create Live, dynamic Guide layers that can tweak a built component on the fly.

During the Stream, in a discussion about visualising simple data in Maya, I mentioned Cesar Saez’s work, You can find it here:
http://www.cesarsaez.me/2016/07/mscreen.html

On a related note: Someone else mentioned something and in context it sounded like it was a tool/plugin (MUIDrawManager). I only realised later, when I my brain was less crowded by talking about what I was doing, that they were referring to the Maya API object dealing with view draw. Nothing there that you won’t get from your Maya SDK Documentation.

Enjoy,

Season 01 – Episode 09 – Custom IK Integration in Leg Component

Custom IK Integration in Leg Component

Here we finally start on the leg component proper.
We take our simple solver (in expression form) from the previous day’s sketch and integrate it into a proper component.

We didn’t quite get to where I wanted to; that would have included adding up vectoring, but we progressed well with the interface and encapsulation side of things.

This is mostly a nodelling heavy session.

Enjoy,