NavHeader
journalHeader
Showing posts with label Maya. Show all posts
Showing posts with label Maya. Show all posts

Thursday, May 5, 2011

Morphy May be around....

Morphy Tip of the Month: Take a look at some of the lip sync choices some of the stronger pieces have used (especially the example below). Seen a lot of animations that are pretty much just open/close and wide/narrow. Remember, wide can be smiling wide or terse/angry wide or a myriad of other options. Play with showing more teeth for some characterizations as well. Some folks talk showing more lower teeth, some upper. Play with it and keep up the great work!

Awwww...baby Morphy. nice job Shawn!


It's just a flesh wound Morcy! Great work Jed.

Fantastic mod, Tim and great animation too:)

Here's a good example of nice mouth shapes for lip sync.

And from this months 11 Second Club a few selections:

In other news....
The gig is going along great but working some crazy hours. Ran across a wild Maya bug though. Some scenes would only playblast at 24fps regardless of settings. Spent a good couple hours banging my head against Maya before looking up the hot fixes and finding I wasn't up to date and that was a known issue. So, if you're using Maya 2011 on a project, I'd recommend getting hotfix 3:)

Can't wait to see this project up and done. The team is doing fantastic work and I plan on bragging on each and every one of them as soon as I can talk about it.

Cheers.

Thursday, April 2, 2009

Blake Rig and Script Jobs...

note - NOT my rig creation
Came across a new rig on Highend 3d and it's a pretty good looking rig. So I decided to use it for the lip sync piece I'm fixing to start on. It makes use of script jobs which don't seem to like referencing as the creator notes in the docs on the site. So I did some noodling and figured out how to make it work. If the character is referenced (all nodes prefix option) to "Ch1:", this is how to make the rig work.
  1. Fix the Expression
    • Go to the expression editor
    • Select the "CH1:blake_FKIKSpaceSwitch_scriptNode"
    • Input "CH1:" in the spot provided
  2. Fix the script jobs
    • For each character, you'll need to run this is in the script editor: scriptJob -ac "CH1:blake_L_arm_ikFK_switch.FK_IK_Match" "LArmFKIK"; scriptJob -ac "CH1:blake_R_arm_ikFK_switch.FK_IK_Match" "RArmFKIK"; scriptJob -ac "CH1:blake_L_leg_ikFK_switch.FK_IK_Match" "LLegFKIK"; scriptJob -ac "CH1:blake_R_leg_ikFK_switch.FK_IK_Match" "RLegFKIK"; scriptJob -ac "CH1:blake_L_arm_ikFK_switch.parent" "LArmSpace"; scriptJob -ac "CH1:blake_R_arm_ikFK_switch.parent" "RArmSpace"; scriptJob -ac "CH1:blake_L_leg_ikFK_switch.parent" "LLegSpace"; scriptJob -ac "CH1:blake_R_leg_ikFK_switch.parent" "RLegSpace"; scriptJob -ac "CH1:blake_tie_ikFK_switch.parent" "TieSpace";
  3. Notepad is your friend for additional characters - see Find and Replace
  4. Ran into an issue with referencing that the rig maker was kinda enough to help out with. You'll need to create a new script set to fuction on (Open/Close) and set the name spaces: proc multipleChars() { // prefix for character1 string $character1= "CH1:"; // prefix for character2 string $character2 = "CH2:"; // prefix for character3 string $character3 = "CH3:"; // prefix for character4 string $character4 = "CH4:"; string $a[] = `ls -sl`; if (($a[0] == ($character1+"blake_L_arm_ikFK_switch")) || ($a[0] == ($character1+"blake_R_arm_ikFK_switch")) || ($a[0] == ($character1+"blake_L_leg_ikFK_switch")) || ($a[0] == ($character1+"blake_R_leg_ikFK_switch")) || ($a[0] == ($character1+"blake_tie_ikFK_switch"))) { scriptNode -executeBefore ($character1+"blake_FKIK_SpaceSwitch_scriptNode"); } else if (($a[0] == ($character2+"blake_L_arm_ikFK_switch")) || ($a[0] == ($character2+"blake_R_arm_ikFK_switch")) || ($a[0] == ($character2+"blake_L_leg_ikFK_switch")) || ($a[0] == ($character2+"blake_R_leg_ikFK_switch")) || ($a[0] == ($character2+"blake_tie_ikFK_switch"))) { scriptNode -executeBefore ($character2+"blake_FKIK_SpaceSwitch_scriptNode"); } else if (($a[0] == ($character3+"blake_L_arm_ikFK_switch")) || ($a[0] == ($character3+"blake_R_arm_ikFK_switch")) || ($a[0] == ($character3+"blake_L_leg_ikFK_switch")) || ($a[0] == ($character3+"blake_R_leg_ikFK_switch")) || ($a[0] == ($character3+"blake_tie_ikFK_switch"))) { scriptNode -executeBefore ($character3+"blake_FKIK_SpaceSwitch_scriptNode"); } else if (($a[0] == ($character4+"blake_L_arm_ikFK_switch")) || ($a[0] == ($character4+"blake_R_arm_ikFK_switch")) || ($a[0] == ($character4+"blake_L_leg_ikFK_switch")) || ($a[0] == ($character4+"blake_R_leg_ikFK_switch")) || ($a[0] == ($character4+"blake_tie_ikFK_switch"))) { scriptNode -executeBefore ($character4+"blake_FKIK_SpaceSwitch_scriptNode"); } } scriptJob -killWithScene -e "SelectionChanged" "multipleChars";
That outa do it. Thanks Jason for the great rig and the help trouble shooting the referencing issue!

Thursday, February 7, 2008

Testing a new Autorigging system...

A classical pose...for a troll...?

Note - This'll prolly be the last update on Olaf for a bit. Some major forks in the road are quickly approaching - 1) I'm getting married in a couple of weeks , 2) Moving to Houston, 3) Transitioning to a freelance/contractor from being an employee so it's gonna be a "wee" crazy. Crazy good that is!

I've been playing with John Doublestein's autorigging system the last two nights and I have to say it's pretty awesome. John works with my buddy Dave and we're using his rig for Dave's film. I hadn't realized a bunch of the neat little features workin so far on the film. He's got some great little right click menus that get built when you rig a character that snap between fk and ik.

You can play with the rig on a character by downloading the Andy Rig on that same page. Some neat stuff I noticed on that version that aren't in the autorigger that I'm planning on implementing to Olaf:
  • Squash and stretch through the spine using scale. Prolly will do that in other places too
  • An extra curl on the hand that allows that pinky and ring finger base bones in the hand bend for a proper fist.
Couple of things I noticed with the rig:
  • Some of the systems don't work properly in Maya 2008 - namely the right click menu
    • Speaking of Maya 2008, the new smooth skin weights feature is awesome. I saw it in a Austin 3d user group meeting a couple months back and had been dying to play with it.
  • Joint placement and orientation is critical but this matters regardless of what rig you're using. Having the ability to quickly try out joint placement by quickly adding an arm rig and a default skinning is a great boon to the work flow.
    • That workflow allowed me to identify problem areas - I updated Olaf's tail and made major adjustments to the hands
What's next for Olaf?
  • Facial Rig - This is where I wanna spend some time over the next...well while...got a bunch of things I wanna try. I'm planning on blogging that process pretty well so tune back in if you're interested.
  • Tail Rig - at some point I'll have to rig his tail, but it'll be a bit
  • Animation - That's really the whole point....:)

Also....
Fingers are a pain in the rear to model well so that the proportions work to "roll the finger" on itself. If anyone knows a good tutorial or book on the subject, by all means let me know.


Monday, January 28, 2008

Pivot points...

  • "Locating Your Center" - No this isn't a philosophical rant. Having such a hard time keeping my own in check hardly would afford me a seat of authority on that matter. Pivot points matter in more than life changes; they have a good deal to do with proper rigging. Some examples might be wheels, orbs and the like. If you start spinning one in 3d and it's pivot point isn't dead center you're gonna get wobble. Like a flat tire.....more on that in my next post.

    Today I was rigging a car and for reasons unbenonced to me, the joint for the steering wheel had a pivot that didn't align with the tilt of the wheel. For various reasons I create a separate skeletal hierarchy for the rig and bake the animation down to the skinned hierarchy. Not having the luxury to fix the underlying issue I was looking for a good method to find the exact orientation of a pivot that would allow that wheel to spin properly on the steering column.

    To do so, I wanted a script that would find a center pivot based on a selection of verts and place a locator there so that I might snap things to it. I don't like reinventing the wheel, so my first stop was highend3d where a quick search revealed a handy script that did just what I was looking for.

    With that in hand, it was as easy as finding the center of two edge loops worth of verts snapping a couple of joints and reorienting the joint to the correct orientation.

Quick example with some dummy geometry....

Good edge loops and this little script have aiding the placing of Olaf's finger bones quite nicely.

If you know a faster way of accomplishing the same, by all means let me know.

  • Rig for Olaf - I think I'm gonna give John's tools a try for the body. He works with my buddy Dave (speaking of, looks like he has a new site in progress) and we're using the rig on Dave's film. It's pretty darn good.

Thursday, January 17, 2008

"1.#QO" - the value of DOOM!

Working in games and getting things to play nice in a game engine can be "fun." By fun I mean hey-kid's-let's-play-rake-the-leaves-on-a-windy-day kinda fun. This week's mind bender had to do with a crash every time I tried to do a pretty basic function of bringing in animation. What's especially endearing is not having error messages to have any idea what happened. So you start trying things. Fast forward multiple hours later and it turns out my Maya sim mentioned several previous posts past had sent an object into a quantum singularity known with translation and rotation values of "1.#QO." Now, I can't really fault Unreal for not knowing what to do with that. I didn't have a clue what to make of it either. Frankly I'm impressed Maya can still chug along will no mention of an apparent black hole in a scene. A couple of curves deleted later and things went swimmingly. Weird. Note - A quick google search informed me that this is the default value Visual C++ uses when a division by zero occurs.

All the stuff on this site is 2000 - by Josh Burton...unless otherwise noted. All rights reserved.