Trying Unity

I’ve been working on Unity, trying to wrap my head around it and see how it all works. It’s really great, much easier than I expected it to be and runs beautifully on my ancient iMac. Clicking the image below will take you to a Unity Player that will let you play what I’ve got so far.

Unity game screenshot

Maya to FBX Batch Export

A simple FBX batch export script, useful for exporting multiple animations from a single file. You can download the .py file here. It should be noted however that this script isn’t tested anywhere near as much as it should be, so back up your work before running it.

# James Kyle 12/3/13, http://www.jameskyle.net
# Maya to UDK batch exporter script
# Contains code borrowed from Mark Jackson's blog, which can be found here: http://markj3d.blogspot.co.uk/2010/09/exporting-simple-skeleton-and-mesh-data.html

# Warning!
# This is probably a bit buggy and isn't tested. Save your work before you use it!
# I take no responsibility for any data lost as a result of this script. Use at your own risk! :) 

# Instructions:
# Edit the Tuple data below with your own filenames, start frames and end frames.
# Select the mesh/meshes and the root joint of the joint hierarchy you want to export.
# Run script!

# Important importing...
import maya.cmds as cmds
import maya.mel as mm

# Lists of animation names, start frames and end frames.
# Add/remove as required.
exportNames = ("BE_idle", "BE_fistBump", "BE_pickup")
exportStartFrame = (1, 32, 300)
exportEndFrame = (23, 70, 333)

# This code selects the joints and meshes only. This isn't my code!
# Original author credit at the top of the script.
meshes=[]
joints=cmds.ls(sl=True)

#find all joints
joints.extend(cmds.listRelatives(type='joint',allDescendents=True))

#find your Skinned Geo
for skin in cmds.listConnections(joints,type='skinCluster'):
    if skin:
        shape=cmds.skinCluster(skin,query=True,geometry=True)
        meshTransform=cmds.listRelatives(shape,parent=True)[0]
        if meshTransform not in meshes:
            meshes.append(meshTransform)
# Borrowed code ends here.

for x in range(len(exportNames)):
    print exportNames[x]
    # Select the mesh and joints to export
    cmds.select(joints,meshes)

    # FBX Exporter options. Set as required.
    # You can find a reference guide here: http://download.autodesk.com/us/fbx/20112/Maya/_index.html
    # Just add/change what you need.

    # Geometry
    mm.eval("FBXExportSmoothingGroups -v true")
    mm.eval("FBXExportHardEdges -v false")
    mm.eval("FBXExportTangents -v false")
    mm.eval("FBXExportSmoothMesh -v true")
    mm.eval("FBXExportInstances -v false")
    mm.eval("FBXExportReferencedContainersContent -v false")
    # Animation
    mm.eval("FBXExportBakeComplexAnimation -v true")
    mm.eval("FBXExportBakeComplexStart -v "+str(exportStartFrame[x]))
    mm.eval("FBXExportBakeComplexEnd -v "+str(exportEndFrame[x]))
    mm.eval("FBXExportBakeComplexStep -v 1")
    # mm.eval("FBXExportBakeResampleAll -v true")
    mm.eval("FBXExportUseSceneName -v false")
    mm.eval("FBXExportQuaternion -v euler")
    mm.eval("FBXExportShapes -v true")
    mm.eval("FBXExportSkins -v true")
    # Constraints
    mm.eval("FBXExportConstraints -v false")
    # Cameras
    mm.eval("FBXExportCameras -v false")
    # Lights
    mm.eval("FBXExportLights -v false")
    # Embed Media
    mm.eval("FBXExportEmbeddedTextures -v false")
    # Connections
    mm.eval("FBXExportInputConnections -v false")
    # Axis Conversion
    mm.eval("FBXExportUpAxis y")

    # Export!
    mm.eval("FBXExport -f "+exportNames[x]+".fbx -s")

German Suplex

Just a quick post to add this video to the site. It’s a short animation of a german suplex, a popular move from professional wrestling.

The timing could be adjusted to add a little more weight. The green guy seems a little light but that aside I think it’s okay. Feedback is always welcome!

Here’s a video of the move being performed live, so you can see what I was working towards.