Showing posts with label vist405. Show all posts
Showing posts with label vist405. Show all posts

Tuesday, April 7, 2015

VIST 405 - VIDARR Rigging & Animation Milestone 3

I created rigs for Vidarr, the draugr, the snake, and the wolf. In the end our project leader decided to just focus on Vidarr and the draugr during this final phase in development.


Draugr



The draugr was the first character that I animated for the game. He has a much more simple set of animations than Vidarr's: a few idle poses, walk, attack, and death.

The rig is your standard IK setup for limbs, a few basic FK spine controls, and pole vector constraints for orienting the position of the draugr's elbows and knees. I also optimized the rig controls for animating by locking, hiding, and making unkeyable all unwanted attributes.

I did include a few special controls to enhance the movement of the draugr; there is a control attached to a one-joint IK which manipulates the draugr's gaping mouth, and another for the shield on the draugr's back.



Vidarr

Vidarr's rig was re-done to match the utility of the draugr's.



For a little extra freedom with animating I added controls to raise and lower Vidarr's shoulders and controls to bend his toes a bit. The model itself was not well-crafted which made skin weights exceptionally wonky for the toe controls.

The hip control's y-rotation is connected to an IK spline along Vidarr's spine up to his neck.

I also created some driven keys that control Vidarr's hand language. When the control is pushed outward the palms extend and when it is pushed inward towards his wrist Vidarr's fists close.

Parenting the sword, a separate Maya object, to Vidarr's wrist node hasn't given me problems yet.



Pipeline Notes

Since no real asset management pipeline is being used for this project I have done my best to manage my animations as cleanly as possible. A few notes:

  • So far, all the animations of a given character are located in the same file. I simply animated one action, then I start the next animation a few frames afterwards.
  • The graph editor and dope sheet make it simple enough for me to offset animations frames if an animation needs to be longer or shorter.
  • Since surfacing is being done in Mari, I simply created automatic mapping UVs while the rigs are in their bind pose (our surface artist does the same) so that the texture file can be re-referenced without UV problems.
  • Any corrections to skin weights will automatically apply to the rest of the animations.
  • This method saves me time and sanity; I only need to keep track of one animation file per character.



Custom Tools

To improve my workflow I have created three custom tools:


1) FBX prep - Runs a script that preps the animation for export as an FBX to Unreal with just one click. Specific steps are as follows:

  • Delete non-deformer history for all visible geometry
  • Select the skeleton's joint hierarchy and bake the IK animation for however long the animation playback range is set
  • Delete all IKs and controls, leaving just the geometry and skeleton.
Note: The script searches for certain names of groups rather than types of objects. Thus I have to follow a few personal "best practices" for the scene - the geometry mesh for the character must be named "Geo", any reference geometry must be named "GeoRef", the skeleton root joint must be named either "Hip" or "Root", and all IKs and controls must contain the prefix "IK_" or "CTRL_" in their names.

2) Export All... - More of a shortcut that exports the scene as an FBX set to my preset for exporting to Unreal.

3) Goto Pose Tool - Doesn't have anything to do with the "goto" command in programming. Goto Pose brings up a window displaying all current animations for the character as well as the start and end frames for that animation in the scene's time slider. Clicking a given pose's name snaps the animation playback range to that animation's. This saves me a lot of time trying to find the playback range for a given animation.


Note: In its current state, the Goto Pose Tool can't interactively manage poses in the tool window; any new animations and values for a particular pose/animation have to be written into the script itself. The tool currently only works for Vidarr.

Thursday, February 26, 2015

VIST 405 - Vidarr Character Rig Progress


The above video is a timelapse of the rigging work I've done for the Vidarr group. If it's not clear from watching the video, I worked on defining the skeletal joint system, setting IK handles, creating external controls, editing attribute connections, and general troubleshooting.

After working out some issues with the geometry mesh and doing a smooth skin bind, I went to work painting weights. Weight painting took nearly half of my work session, which lasted nearly four hours.


Technical Issues


  • The model for Vidarr is too complex. Some parts of the character mesh include things like individually modeled rivets on his boots, individual laces on his gauntlets, etc. which made weight painting a nightmare. I mean, even on my Skyrim character tiny details like that are just painted onto the texture with displacement/normals mapping.
  • The model for Vidarr came to me in different grouped parts rather than a single combined mesh. This caused major issues when I ran the smooth skin bind because many of Vidarr's limbs were mirrored instances. Because several parts were instanced, Maya wouldn't let me freeze transformations or reset their history.
  • When I tried to combine these mesh groups in Maya there was a loss of data - apparently an infamous bug that occurs a lot - and Vidarr's right arm disappeared. I tried things like exporting the mesh as an .fbx, re-importing it and binding the skin but it made Maya run ridiculously slow. Finally I re-modeled his right arm myself, stuck it into the hierarchy, and this time the combined mesh turned out alright.
  • Maya's skin weight painting utility is barbaric and I spent a lot of time trying to figure out what brush size will get those tiny spots painted the way I wanted.

What's Next

The rig is far from perfect; I still need to refine painting the skin weights. I'll also add things like shoulder controls, elbow controls, and hand rigs, with some custom attribute connections.

Tuesday, February 24, 2015

VIST 405 - Animated Texture Demo

Hand-Painted Digital Cels


After taking a 2048 x 2048 UV snapshot of a proxy tree object, I "painted" the color spread, frame-by-frame, for 24 frames. I imported the images into After Effects and compiled them into a video running essentially in half-time, so the video file ran for about two seconds.

Demo Animation in Maya

I then imported the video itself into Maya as a maps-based texture for the proxy "tree". The result was a demo on what a 2D-animated texture might look like:




This approach could be as time-consuming and tedious as we want it to be, but I think we could achieve a unique animated effect with this method. I also researched procedural animated masks in After Effects as an alternative method. Maybe we could use both methods on hero assets vs non-hero assets.

The "painted texture" will certainly be more time-consuming, but I think we'll achieve some striking effects. I'll advise the texture artists to take more shortcuts animating the textures on the non-hero tree objects in our environment.

Demo finished on 21st February, 2015


VIST 405 - Milestone Progress

2D Storyboard & 2D Animatic



I drew the storyboard images in ink on paper and later scanned them, doing a little post in Photoshop (levels adjust, contrast/color adjustments).

The shot of the deer taking notice of the color magically spreading through the tree underwent an important revision; after passing the shot off to management and layout for critique, it was determined that the camera direction didn't work. After working out the issue with layout, I revised the shot like so:

Original shot direction:

 

Revised shot direction:




I acted out the scene with layout until we got the shot we needed. After reviewing the new shot, it was approved for the 3D animatic by management and layout.

I passed the images off to editorial for the creation of the 2D animatic.

Completion of milestone: 12 February, 2015