Home Website Youtube GitHub

Workshop: Facial Data-centric Rigging

New videos and the Support files package are available :slight_smile:

The new videos are 2560x1440 and 60fps. (at the time posting this some of the videos still processing the HD version :stuck_out_tongue: )





8 Likes

wow, thanks so much!!!






7 Likes

5 Likes

I’ am following this video in the series and when I try to run:

from mgear.rigbits import ghost
import pymel.core as pm

ghost.createGhostCtl(“control_C0_ctl”)
ghost.ghostSlider[pm.Pynode(“control_C0_ctl_ghost”),
(pm.Pynode(“nurbsSphere1”),
(pm.Pynode(“parent_slider”)]

I keep getting “invalid syntax” even If I’m doing exactly what you did in the video. Any assistance?

ghost.createGhostCtl(“control_C0_ctl”)
ghost.ghostSlider(pm.PyNode(“control_C0_ctl_ghost”), pm.PyNode(“nurbsSphere1”), pm.PyNode(“parent_slider”))

the use of [ ] and the () position was wrong

also python is case sensitive Pynode should be PyNode

So what should it be. Sorry I have zero knowledge of python so Im just mimicking for now.
EDIT: Got through after trial and error. My Gosh

By the way, when posting Python code, use triple backticks. 3 of these `

Then your code will show up without smart-quotes and will be easier to read and edit.

# With code formatting
import pymel.core as pm
pm.PyNode("test")

Without code formatting

import pymel.core as pm
pm.PyNode(“test”)

1 Like

Thanks. You guys are getting me sucked into the python vortex that I have resisted for so long. Oh well, hope the learning curve isn’t terrible.

Go for it! it will make so many things so much easier and faster once you learn it. Even simple basics like looping over things, or finding and selecting things can really help.

my recommendation to start with Python

If you create a new account with Udemy you can get 88% off
https://www.udemy.com/course/python-for-maya/

NOTE: Udemy is a tricky place is always offering this 6hr flash offer. :stuck_out_tongue: If you can see it delete the cookies or use incognito tab y Chrome :wink:

2 Likes

Just a little heads up on the workshop status.

I am working to finish the facial blendshapes for the model before continuing the recording. It is taking longer than expected but is not stoped by any means.

I hope to publish new videos in 1 or 2 weeks :slight_smile:

5 Likes

Hello @Miquel !

I have a question about the process to connect the proportions_setup to my main body rig which is generated from the biped template.

Here’s my current steps :

  1. I built a standard biped human rig from the template.

  2. I built the face setup in a local rig as shown in your videos, moving the mouth_C0_root guide from the biped rig to the local setup.

  3. In the proportions_setup group I skinned my headbend, ears, nose, lipup, liplow, etc… joints on a duplicate of the head geometry as you did. I connected it via a blendshape to the main head geo.

  4. Because my current controllers still in local ‘space’ and in order to use them in my main biped rig I created some ghost controls for each face_C0_root controls (headbend, ears, nose, lipup, liplow, etc…) and attached them to the biped rig under the neck_C0_head_ctl.

  5. It mostly worked but because of the ghost controls I lost the behaviour of the lips and teeth that previously followed the jaw via a specific group hierarchy…

I have no ideas on how to connect the lips/teeth cleanly without breaking any connections. Could you show me some hints ?

p.s: I don’t know if I should create a new topic for that, you’ll tell me :slight_smile:

Hello @Augu

There are different ways to make everything consistent and attach to the final rigs. I will be assembling everything towards the end of the workshop.
I am sorry that is taking longer to advance the workshop since I am very busy with other projects at the studio

I wish I have more time to reply to your question properly. For the moment I can share this as a little hint of one of the solutions :wink: and that you not always need ghost controls :wink:

applyop.gear_mulmatrix_op(
            self.offset_ref.attr("worldInverseMatrix[0]"),
            self.face_offset_jnt.attr("parentInverseMatrix[0]"),
            self.face_offset_jnt)

Yes Please, that would be very helpful for the community. Thanks in advance!

1 Like

yes please we need more game rigging tutorials and how we can do non human face rig setup

1 Like

To be honest the proportions and mouth part show all the basics and I was able to iterate upon it to create eyes, brows and other custom steps so no worries ! :grimacing:

There’s just this problem with the lips not following the jaw that drives me crazy haha :pensive:

So this function connects 2 objects through matrices ? To which objects offset_ref and face_offset_jnt refers to ? The jaw_jnt and ghost control ? You lost me here :fearful:

1 Like

hello everyone
i had some problem in my gost file im some editing but i cant solved
how to getting again just gost file please please

Do you have the data from Gumroad? you can download it again.

2 Likes

A post was split to a new topic: Data Centric Face help