Tuesday, January 17, 2012
Tuesday, December 6, 2011
Wednesday, July 6, 2011
F.E.A.R. 3

I am a little late posting this, but the game I was working on has shipped! a few weeks ago! It is actually a ton of fun I definitely recommend checking it out if you like first person shooters.
Primarily I worked on rigging, deformation, physics, and lots of pipeline stuff. If it moves I probably touched it at some point :) I had a lot of fun working on it and also learned a lot on the project.
Friday, January 29, 2010
Procedural Test
Here is a quick test for a real-time procedural system I have been working on.
The animator has control over the amplitude, frequency, and shape. Amplitude acts as a multiplier for the entire motion. Frequency controls the rate at which it will swing back and forth. Included with the frequency option is an indicator which displays the frame number for when the animation will loop. Finally, the shape spinner controls the overlap and rigidity of the motion. Lower values will be more rigid and higher values will be more loose.
There are also some other options found within the system. It provides the animator with the freedom to hand key, bake the automated motion to FK controllers, or blend between the automated motion and hand keyed motion. This way the animator can choose when they want to go from procedural motion to keyframed, or even use a combination of the two.
This system does not require that the bones are set up in a straight line, it will function based on any starting pose. It also supports posing in FK, and then updating the starting shap to match that new pose.
This system is based on sine waves, and there are no spring controllers involved. This means that all updates can be seen real time in the viewport, during playback. It also means that the object does not react to translation or rotation of its parent, which is the effect that I was going for.
procedural test from Erik Eidukas on Vimeo.
The animator has control over the amplitude, frequency, and shape. Amplitude acts as a multiplier for the entire motion. Frequency controls the rate at which it will swing back and forth. Included with the frequency option is an indicator which displays the frame number for when the animation will loop. Finally, the shape spinner controls the overlap and rigidity of the motion. Lower values will be more rigid and higher values will be more loose.
There are also some other options found within the system. It provides the animator with the freedom to hand key, bake the automated motion to FK controllers, or blend between the automated motion and hand keyed motion. This way the animator can choose when they want to go from procedural motion to keyframed, or even use a combination of the two.
This system does not require that the bones are set up in a straight line, it will function based on any starting pose. It also supports posing in FK, and then updating the starting shap to match that new pose.
This system is based on sine waves, and there are no spring controllers involved. This means that all updates can be seen real time in the viewport, during playback. It also means that the object does not react to translation or rotation of its parent, which is the effect that I was going for.
Sunday, January 17, 2010
Anim Bake Manager

I found myself baking animation to objects for various reasons. Most commonly I would use it in situations to avoid circular dependencies, or to bake bones to simulated objects, as well as other miscellaneous situations.
At first I just did it in a few lines of code and adjusted it as needed, eventually I made a simple interface for it. Once others started needing to use this method for various situations, I decided to make a version that was a bit more robust. I also wanted to simplify the process and make it easier to manage and update existing objects if and when the animation changed.
When the "Create" button is pressed it will create point helpers for each selected object, and key their transforms to match the target object within the specified frame range. The main listbox displays all of the point helpers created by the script. These are not name dependent and the names can be changed to whatever you like, but by default it uses the selected objects name with the prefix of "abm_"
The listbox underneath will display the target object for whichever abm helper is selected in the list. If the target is deleted from the scene it will display "Target Missing" Having a target object is not a requirement because the animation was baked when the helper was created. The reason script stores the targets so you can easily refresh if the animation has changed. Double clicking in any of the items will select it in the viewport.
Pressing the refresh button will re-bake any of selected helpers in the listbox, within the specified frame range. Refreshing will also clean up any abm helpers that were deleted from the scene. The retarget button allows for you to change the target object of the abm helper selected in the list. This is useful if you delete the target object or you want to swap target objects mid animation.
The "manual" option takes a specified object and matches and keys its transforms to the specified target object.
I have had a number of instances where I have found this useful, if you are interested you can check it out here:
**download temporarily removed**
Tuesday, August 18, 2009
new job
Wednesday, March 4, 2009
Max to MEL polySel

I was working with a Max file that needed to be ported to Maya, and this file included multisub materials which were not transferring via FBX. Baking the multi subs was not an option because of the way the UVs were set up. After may different approaches and no success I turned to Maxscript/MEL and wrote up this tool. It will run through your multisub objects in Max and write MEL that will select and assign the material to the scene objects. All you need to provide is the file path in which the MEL scripts will be output to and the path that your textures for the maya file will be in. Then you just select the object and run the script. It will then generate a MEL script for each multi-sub that is in use for that selection. Then you just drag and drop the MEL scripts into the Maya viewport and it creates, names and assigns the materials to the correct objects/faces.
Subscribe to:
Posts (Atom)

