Monday, February 17, 2014

Swift Smile Blendshape, work in progress


Here are some thoughts on some blendshape workflows that may be helpful that i'm developing on my original character Swift.

artistic take aways
-- what happens to volume change in cheek when see shape
-- how far do the lip corners move relative to the default pose
-- how far does the lip move up/dn in shape we want to create
(note: i found it helpful to sketch out some face shapes with very simple doodles to get an idea of volume change and lip corner/ brow corner movements… i like drawing a single face and then using arrows to show how far point moved from default to target pose)

technical take aways
-- export base mesh and 1 target shape to work on (here i worked on smile for an 1 hr... this allowed me to focus on this area of face rigging and not get distracted by other parts of the face rig)

-- using Mayas sculpting tools to tweak shape such as (lattices for moving regions smoothly, using 'ctrl' to deselect unwanted vertices,
using 'cluster' to move a group of view vertices, using 'polygon smooth tool' to fix overlapping edges

-- writing tools to help make blendshape sculpting process easier
-----like it would be nice to write a hot key that will set a ket at 0 and key at 1 at start and end frame of current timeline for selected blendshape and set keys at zero for all other blendshapes..

-----today i wrote one tool to quickly preview a quicktime .. (just change the dir = '/Users/noa/Desktop/' in function to a directory that you want your preview quicktimes to go in)

import maya.cmds as cmds

def na_quickPreview ( f = '_1', dir = '/Users/noa/Desktop/' ):
 filePath = dir+f
 cmds.playblast( format = 'movie', filename = filePath, clearCache = 1, viewer = 0, showOrnaments = 1, fp = 4, percent = 100, compression = 'none')

###get user file name
text = ' '
result = cmds.promptDialog(
    title =  "Preview Movie",
    message = "Enter File:",
    button = ["OK", "Cancel"],
    defaultButton = "OK", cancelButton = "Cancel",
    dismissString = "Cancel")

if ( result == "OK"):
 text = cmds.promptDialog( query = True,  text = True)
 print('na_quickPreview ( f = \'_1\', dir = \'/Users/noa/Desktop/\' )')
 na_quickPreview ( f = text, dir = '/Users/noa/Desktop/' )

Hope this was helpful,


Inspired by Mark Simon's Facial Expressions A Visual Reference for Artists
Inspired by Jason Osipa's Stop Staring: Facial Modeling and Animation Done Right