ZBrush modeling

3D sculpt inspired by mixed martial arts.

Space Switching Video Series

A video series explaining the concept and scripting a tool to setup and interact with space switching setup for rigs.

Rigid Bodies Simulation

Small project with simulated rigid bodies and nParticle effects.

Maya Muscle Tutorial

A tutorial on using the spline deformer on custom geometry to create muscle flexing and stretching behavior.

Saturday, June 8, 2013

Priming and Padding explained

Priming/Padding. Why is it necessary?

Visually and technically, padding refers to creating a group node above the object in question, and priming is creating a group above the object in question that is aligned (same pivot and orientation) as another object it is meant to control.

Why these may be necessary is simple.

Examples:

1. If you have a control object that is already in place and you want to make it a child of another object that is transformed, you can't simply parent the object to the other. If you do, the control object is going to inherit those initial transformations from the parent object. So what do we do. We first group the control object to itself, and now we parent that group (or pad) to the other object. In simple terms, the pad serves as a buffer, in which the transformations of the parent object go to it instead of the actual control object. As a result, we have a control object that still does what it did before, is now controlled by the parent object, but is still clean of transformations.

2. Another scenario is with constraints. With a similar idea, you want to constraint object A so that it follows object B's rotations (so an orient constraint). By simply doing an orient constraint, your now 'locking' the rotate attributes of object A, because its being driven by object B. That might not be a problem if you dont need object A's rotate to drive anything else, but its a huge problem if you do. So, we use padding again. We make object A child of an empty group and we constraint the group node to object B. Now object A is controlled by object B because its local space is determined by the group node above it. But! It is still clean. Awesome!


3. Another really awesome reason why we use padding is to allow for our rigs to be quickly repurposed, or changed. What do I mean. Say your on the job, and you've been working on this awesome rig, and its perfect, your art director loves it, but now he comes up to you and tells you we have this scene, that can only be done with this foot rig. We cant use the original foot, we're bringing in a new foot, and we need it right now. Well, if the foot chain (from ankle to toe) was all in one group (pad), that pad can be constrained to any control object, and as we talked before, the joints will be controlled by those objects through the pad above it. The pad can also be parented under the end joint of the leg (in this case) ,so the foot behaves as the continuation of the leg joint chain. Now comes the new foot. Can you already see how easy this will be? All we need to do, is get rid of the original foot (not the pad), and place the new foot root joint under the pad. And Voila! The new foot now follows the leg, and the control object's constraints still carry over into it.

Watch the video on this topic here: https://vimeo.com/67955225

Part 1 and Part 2 of space switching series is up

First two parts of the video series on space switching are now available for viewing.

Check it here:

Part 1: https://vimeo.com/67944961
Part 2: https://vimeo.com/67945607

Enjoy!

Tuesday, June 4, 2013

Space Switching Video Series

Hello everyone,

This past 2 weeks I've been hearing a lot of question about space switching, so I decided to put together a video series explaining the concept and going a little further by actually stepping through the process of how to script a tool to setup space switching for rigs and creating an animation tool to interact with that setup.

In this video series I'll go from theory to the actual step by step process, as you can watch me implementing a tool that I use with all my rigs.

As you may know, isolating movement of a body part for example, in a character rig can be very important. For example, imagine that you have a character standing facing straight ahead, if then you start to rotate the body to face the other way, the head would turn with it as well. But if you need the head to keep facing forward, you would need to isolate its rotation. The initial way to fix that, would be for the animator to counter animate the head rotating back to its default pose facing forward.

The problem with this is that any time the animator makes an adjustment, they
have to go back and fix the head again. This can become really annoying.

Thankfully we can use space switching to help us with that. Check out this video for a quick breakdown on space switching until the first video in the series is uploaded


This is what the video series will cover:

1. Introduction
- What is Space Switching
- Breakdown and examples
- Setting it up in maya

2. Automating the process
- Theory and requirements
- Recreating the process in python

3. Creating a tool
- Starting UI for tool
- Implementing functions for UI controls
- Putting it all together

4. Creating an animation tool for space switching
- Introduction
- New concepts - Space Matching
- Starting UI for animation tool
- Implementing new functionality
- Putting it all together



Thursday, May 23, 2013

lpCreateCustomTool_v2.py

Just uploaded a new revision v2.1

Bugs fixed:
           - Maya restarted. Whenever maya restarts, an exported scripts needs to import the proper      
              libraries.
           - Duplicate attribute controls. Controls common to both transform and shape nodes were created        
              twice.
           - Instance in the scene. If object in created script wasn't in the scene when the script is called,      
              script would error. Check for object existence now only occurs after the reload button is
              pressed.

The tool is more stable now, the script itself is lighter and more elegant too.
Enjoy!

Download new version @ http://www.creativecrash.com/maya/downloads/scripts-plugins/character/c/create-custom-tool

Monday, May 20, 2013

lpCreateCustomTool.py

Just uploaded a pretty cool tool to help anyone in any discipline speed up their workflow. This tool gives the user the means to create their own set of tools with controls to manage any maya node's attributes. I outlined below the basic workflow for creating your own tools.

I also uploaded a demo video @ https://vimeo.com/66616563

You can download the script @ http://www.creativecrash.com/maya/downloads/scripts-plugins/c/create-custom-tool

Steps:


Basic workflow:

1. Select and load object into the UI
2. Select attributes to create controls for
3. Create Tool or Export script
4. Create Tool to generate a test window of what the final tool will actually look like
5. Add or remove controls if needed
6. When satisfied with the tool's contents, export script
7. Select and drag script to the shelf
*Note: created tool will work with any object of the same tye of the object the tool was created with (for)

Using new created tool with multiple objects 

1. Click tool in the shelf
2. Type in the object field the name of the object in the scene you want to control
3. Click reload to load attributes for object
*Note: at any point you can change object being controlled just by changing the name in the object field and clicking reload

4. Add or remove controls as needed with the Add Controls button

In the Add Controls window:
      Move attributes to and form using the 'arrow' button
      < to remove
      > to add

*Note: left list is list of all atttributes associated with the current object. right list is list of current attributes being controlled.

I hope you enjoy it!
Any feedback will be very appreciated!

Tuesday, May 7, 2013

nCloth simulation Test

Posted a small nCloth sim test for a motion captured sprint animation.

Check it out @ https://vimeo.com/65689310

Saturday, May 4, 2013

lpConnectAttr.py Tutorial

Check out this new tutorial I posted on creating a useful little tool for maya with an user friendly interface to connect attributes between two objects.

This will show you how to get started making your own tools and gui's for them, and get you exploring the maya commands to create your scripts.




Maya Muscle Tutorial

I posted a tutorial on how to use maya muscle to create muscle systems and setup a simple muscle deformer on geometry to mimic flexing and stretching of a muscle and by interacting with the skin geometry create muscle sliding.

Bicep muscle deformer on arm model
Video goes through workflow using primitive geometry and at the end shows a more complete version working on an actual arm model I did, done using the same workflow.

This demo was done to show some of the components of maya muscle and muscle objects, and how to customize your own shapes to deform. In another video I'll demo how to setup using the more advance muscle building tool to customize with more control muscle objects.

Video: https://vimeo.com/65464654


Enjoy!

Thursday, May 2, 2013

Facial Rig work in progress

Wanted to document the work in progress of a facial rig Im working on.
I did a quick demo of the rig and an animation test.

Demo: https://vimeo.com/65383946
Anim Test: https://vimeo.com/65348425

The Artist's Complete Guide to Facial Expressions

I wanted to post an awesome book for anyone interested in understanding more about facial expressions. Filled with tons of amazing reference drawings, its a great guide for the artist wanting to learn how to draw expressions, the animator wanting to learn how to animate expressions and of course the setup artist wanting to learn more about how to make believable expressions. I have this now always nearby whenever doing face rigs, it never hurts to have extra reference.

Here is a nice review I found on the book with some media on it.

http://www.parkablogs.com/content/book-review-artists-complete-guide-facial-expression