Animation and Rigging Tools: FAQ, Known Issues and Feature Roadmap

In the Command line type:


ls -typ unknown

What does Maya tell you? Are those nodes important? If not type


delete `ls -typ unknown`

to delete tham and try saving. I think in the Optimize Scene UI there is an option to do that manually but I like scripting ; )

Has this error been fixed with 2015?

Error: ImportError: file C:///ProjectAdvena/Content/characters/Spaceman/Maya_AnimationRiggingTools/MayaTools/General/Scripts\P4.py line 211: DLL load failed: The specified module could not be found.

I’m also getting this error when I am trying to change my Maya Tools directory.

Warning: Selected directory is not valid. Please locate the MayaTools directory.

the issue is that I work on numerous projects. I have the ART tool working with one branch of p4, but the problem is I need to the tool to use with other characters in a new project/branch of perforce. Is their an easy way to set up ART so you can work in two different projetc branches in p4?

Thanks,

Watch out for deleting those “unknown” nodes! There are some super important nodes that exist as the ‘unknown’ type for the setup for ART (chain nodes, leaf nodes, etc.).

One solution I’ve found is to make sure you start from a clean Maya file (File > New) or from a Maya Binary file. If your default scene is set to Ascii, I’ve had issues. For example, if your mesh is MyCharacterMesh.ma and you start doing rigging setup in there, it’ll probably have node incompatibility issues/warnings (at least in my experience). It might have something to do with some ART rig files that get imported as MB’s into your MA rigging file. To start clean, import your mesh from FBX or the like, then start rigging from that file. Also make sure your Default scene isn’t set to an Ascii file either (File > New > Options).

I’ve actually done a super hacky conversion of ART in Binary to Ascii. It’s definitely possible, but at some point would be nice to have the option to switch between. If you really want to do this, go through and change all the “mb” or “mayaBinary” references to “ma” and “mayaBinary” respectively in the Python scripts. At your own risk, of course :slight_smile:

heya! v2.0 is already setup to use maya asciis :slight_smile: Believe me, I never want to use binary again :wink:
Plus, with asciis, you can make reference swaps super easily!

Hey folks,
Sorry I’ve fallen behind on this thread. I will catch up tomorrow.
I spent the last couple of weeks putting in tons of hours into the new version. It’s really coming along and I think you all will really dig it. I’ll do a big update in a week or two :slight_smile:

sounds awesome :smiley: Take your time :smiley:

Just wanted to say thanks for the awesome tool Really speeds up my workflow!

Hi ,

V2 is going to be “compatible” with the setup done for the current version? I mean, joint setup and deformation placing saved configuration

Can’t wait to try out the new version :slight_smile:

Hi! I just followed the tutorial to install the toolkit in Maya 2014, and the menu bar “Epic Games” doesn’t appear. I’ve reset it and nothing. I am missing something?

absolutely. That’s a requirement for sure, if our own projects are going to use it!
There will likely be a conversion tool that will rebuild a given file using the new modules.

hi!
Make sure you don’t have a userSetup.py in both the documents/maya/scripts folder and the documents/maya/maya_version/scripts folder. They could be competing and the one in your maya version folder will override the one in the global scripts folder.
Let me know if that doesn’t fix it.

thank you! I’m glad you’re finding it useful!

Hello!

All you need to do here is go into the EpicGames - > ART settings menu and turn off use with source control. The P4 module needs to be recompiled for each new version of Python. I shouldn’t have released that particular file with the tools as it has that caveat.

As for your branch question, the easiest way currently would be to go into settings, and change the Maya tools path when you want to work on another branch.

I would advise against this! The unknown node is likely a cache node used by the tool. Since the file was authored as a binary, ascii has no idea what to do with that node.
The best way to handle this is to convert the node using this script:


def convertSkelSettingsToNN():
    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])      

convertSkelSettingsToNN()

Just in case you don’t see my other reply, I’ll repost it here!
There is a cache node used by the tool. It was saved as a binary on creation and the ascii doesn’t know the node type so it doesn’t allow a save. Run this script to convert and you’ll be good to go!
(this is fixed in v2!)


def convertSkelSettingsToNN():
    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])      

convertSkelSettingsToNN()

Ah, that is likely a bug. Some of the space switching features were added later on and may not have had the full round of testing. I will look into this. Thanks!

We have had terrible luck with 2014 here at the studio. Even doing incredibly simple operations we get crashes (like maximizing maya after having it minimized) 2015 is looking more stable so far but we haven’t switched over to it yet on our projects. 2013 still seems like the most stable build in a while. If you haven’t installed the service packs, make sure you do. That helped us a little.

I met a rep from Autodesk at GDC that said he could hook me up with student versions so I could test. I’ll follow up with him on that.
My hunch is that since it seems to be on FBX export, it’s likely this line here where prompt is set to False:
cmds.file(fileName, es = True, force = True, prompt = False, type = “FBX export”)

try searching for that and replacing to prompt = True, and let me know if that fixes it. I think Maya student version insists on prompting you as much as possible to remind you that you’re in a student version :wink:

Disable “use with source control” in the settings under Epic Games menu. The P4 Module has to be compiled for each new version of Python and that particular version works only in Maya 2013.

Heya!

We’ve done tons of tests on this at work to see how to speed things up and most of our tests concluded that skinned geometry was killing our playback. We now use sliced up proxy meshes for the animators to work with that are children of the joints. This drastically improved our FPS.

V2 has a mesh slicer tool included!