Hello!
Thanks to everyone out there that has tried out the included animation and rigging toolkit! Your feedback has been valuable and I’ll be continuing to make improvements to the tools weekly! Currently, we don’t have a good system of getting fixes out to users as they happen, so I’ve setup a Dropbox public folder here that will always contain the latest and greatest code fixes:
https://www.dropbox.com/sh/e49zvu9btm55o3t/Ietd28dXEJ
*NOTE: The above link does not contain the complete toolkit. It only has the latest scripts and icons. Please copy the contents to the original install location on your machine!
F.A.Q:
-
Will this tool work with Maya LT?
Until Maya LT accepts python scripting support, this tool will not work with LT licenses. -
What versions of Maya does this tool support?
Maya 2012 -2014 have been officially tested on Windows operating systems. Support for Mac OS is coming. Maya 2015 should work as well, but has not been officially tested. -
Will this tool be available for Max/Blender/etc?
There are no plans to release this tool for anything other than Maya, which is what we use in house here at Epic for rigging and animation. -
What is the difference between the export file and the rig file?
The export file contains your geometry and skeleton, as well as all of the joint mover tools. It’s the foundation of your character rig that everything gets built from.
The rig file starts out as a new file that then references in your export file, then the rig code executes to build the rig on top of that. If you’ve added a post rig build script in the publish UI, that also gets executed at this time.
When a user adds a character for animation from the menu, they are referencing in the rig file. There are a couple reasons for the separation of files. By having the export file be separated out, you can polish and update weighting without the need to rebuild the rig, and the animator still gets those updates. The only time you really need to rebuild is if you’ve added joints, or changed the positions of existing joints. By having the rig in a separate file, you can also go in and do any custom work you may want to, like hook up morph targets, or add new controls, etc.
Recent Fixes:
-
Tools will now work with student licenses
-
Users should no longer receive the following error:
IOError: file C:\Program Files\Unreal Engine\4.0\Engine\Extras\Maya_AnimationRiggingTools/MayaTools/General/Scripts\customMayaMenu.py line 249: 2 -
Fixed issue with users being unable to bind mesh to newly created skeleton the first time
Known Issues:
- Running a resolution under 1920 x 1080 will result in UI elements being cut off
- Supplied hand poses in the pose editor do not work
MAC VERSION!:
4.8 now comes with a Mac version. Thanks to Widener for the port!
You can also grab it on github: https://github.com/EpicGames/UnrealEngine/tree/master/Engine/Extras/Maya_AnimationRiggingTools/ArtToolsOSX
MAYA 2015:
Check out this thread if you’re having crashes in 2015: Maya 2015 Animation and Rigging Toolkit crashing when building control rig with no error? - Character & Animation - Epic Developer Community Forums
Turns out just opening the jointMover file and resaving will set you straight!
Student Version Issues:
If you run into an issue with saving your file in a student version of Maya, run the following python code:
if type(newName) is list:
newName = newName[0]
cmds.file( rename=newName )
cmds.file(save = True, type = "mayaBinary", force = True, prompt = True)
print "File Saved as:", newName
Getting Unknown Nodes Errors/Warnings?
try running this (python):
print cmds.ls(type = "unknown")
unknownNodes = cmds.ls(type = "unknown")
for node in unknownNodes:
if node != "SkeletonSettings_Cache":
try:
cmds.delete(node)
except:
pass
else:
orig = 'SkeletonSettings_Cache'
if cmds.objExists(orig):
if cmds.nodeType(orig) == 'unknown':
new = cmds.createNode('network')
for att in cmds.listAttr(orig):
if not cmds.attributeQuery(att, node=new, exists=1):
typ = cmds.attributeQuery(att, node=orig, at=1)
if typ == 'typed':
cmds.addAttr(new, longName=att, dt='string')
if cmds.getAttr(orig + '.' + att):
cmds.setAttr(new + '.' + att, cmds.getAttr(orig + '.' + att), type='string')
elif typ == 'enum':
cmds.addAttr(new, longName=att, at='enum', enumName=cmds.attributeQuery(att, node=orig, listEnum=1)[0])
cmds.delete(orig)
cmds.rename(new, orig)
print cmds.ls(type = "unknown")
Upcoming Features:
- Facial Rigging Toolkit
In case you haven’t seen it, there is also a playlist covering the Animation and Rigging Tools. I’ll be adding on more videos with time as well!
https://www…com/playlist?list=PLZlv_N0_O1gb2ZoKzTApbv3LvhaXJ9elg
There is also a quick video here covering exporting your ART character to UE4:
https://dl.dropboxusercontent.com/u/10939513/ART_to_UE4.wmv