Tools & Scripting
Python
After learning about and becoming enamored with the OEIS, I decided to make a tool that would plot out a curve like the one Edmund Harriss made for Recamán's sequence, with any integer sequence (Since recording this footage I have polished up the UI to set the sliders to the current keyed value of their attributes, and the key buttons only turn red when there is a keyframe on that frame!). The biggest challenges in this script were:
Setting up the mesh to be able to animate the end of the extrusion along the curve:
The things still on my wishlist for this tool:
Set up a rig for animation:
Allow for a more portable rig:
Allow for the editing of more than one curve in a scene:
Allow for the expansion along all 3 axes:
Setting up the mesh to be able to animate the end of the extrusion along the curve:
- The solution to this ended up being to switch the type of object being extruded. I was able to set up a polygon mesh to extrude along the curve, and by applying a Curve Offset animate the "Front" of the extrusion by animating the maxValue of the resulting subCurve node, but the "Back" did not animate well. The minValue of the subCurve could be animated, but because the extrusion did not affect the original ring of polygons, they could always stay at the world origin and stretch across to the current "Back" of the extrusion. This ended up being fixable by extruding a NURBS circle along the curve (And extruding directly to a polygon object.) Because there is no original surface, the "Back" of the extrusion was no longer being stretched in space to meet up with the original surface.
- This was a result of having a curve that made a full 360 degree rotation. Every time the extruded mesh made that full rotation, it would flip the normals as it tried to match itself up to the orientation of the original NURBS circle. My solution to this was to animate the NURBS circle along a motion path using the curve as the path, then removing the connection to the transforms. The result was that the circle would sit at the origin, and spin in place. I then remapped the uValue of the motion path to be the same 0-1 range that the extrusion's subCurve was in, and hooked it up in the UI to the same slider as the subCurve's minValue. This meant that wherever the "Back" of the extrusion currently was along the curve, the NURBS circle at the origin would be rotated to match the angle of the curve, which stopped the normals from flipping at every full rotation.
The things still on my wishlist for this tool:
Set up a rig for animation:
- Having animated with it a few times now I think I'd prefer to keyframe a slider in the world, rather than the sliders on the UI, this would be a simple solution to allow for more complex animations.
Allow for a more portable rig:
- Because the NURBS circle remains linked to the extruded mesh, it cannot currently be moved without interfering with the extrusion.
Allow for the editing of more than one curve in a scene:
- The UI currently only supports the editing of the last curve created, but it would be nice to be able to select any of the curves in the scene and edit their properties.
Allow for the expansion along all 3 axes:
- The curves are currently being created along the X and Y axes, but I'm curious what it would look like if they expanded out in the Z axis. Wouldn't it be cool if the curve could be one sequence looking down the Z axis, but a different sequence looking down the X axis?
MEL Script
Working at Exato Games these are some tools I created to speed up animation and rigging processes. These tools were created using MEL script and functioned within both Maya and Maya LT:
Retargeting from mocap skeleton:
Retargeting from mocap skeleton:
- Prior to our adopting the HIK editor into our pipeline, we were using stock motion capture clips that needed to be retargeted to our rigs. This tool allowed for the retargeting of limbs separately, as well as moving body animations from one rig to another, and moving facial animation from one rig to another.
- Once we began using the HIK editor, we needed a way to characterize the custom rigs and skeletons we already had.
- Because the studio was using Maya LT at the time, there was no way to reference in rigs or models. This tool would import files under a temporary namespace, then allow the user to delete them when finished, removing all references to the imported file.
C#
Here are two of the game projects I've made while learning C# as it relates to Unity, a breakout game and a bullet hell space shooter (Footage of a tower defense game coming soon!)