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

Hey there!

So on Paragon, we extensively add leaf and chain modules to all the characters for secondary. For armor, I would add leaf modules, and use the anim dynamics node in UE4 to simulate them.
For cloth, we use Apex. To make Apex performant, we use physical meshes (sim meshes that are lower res) to simulate, and the graphical mesh (the original mesh) matches what the physical mesh is doing.

Cloth tutorial I quickly smashed together:

Our stream on anim dynamics:

https://.com/watch?v=5h5CvZEBBWo

I really wish I could give a date for ARTv2, but there have been a few wrenches thrown my way. First, we have a bunch of projects going on at work, so those take priority. Then, Maya 2017 came out and changed the Qt version, so I had to (still in the middle of) re-factor all of the code to not only work in 2014 -2016, but also in 2017+.

Still hoping for end of year release, but there is currently no schedule to ensure that happens. I work on it every chance I can!

I haven’t tested Maya 2017 with ARTv1, so I’m not sure what doesn’t work. Unlike V2, it doesn’t rely on using the Qt UI library, so it should work.

Not really, but what you could do is bring in your own skeleton, make an ART skeleton with same settings, and then place the ART skeleton in the same places as your existing character. Then you can simply constrain your original skeleton to the ART skeleton and use the ART rig to drive your character.

Hmm, one of the things that pops out as a red flag to me is that your space switcher UI isn’t lighting up red when you scrub. It is supposed to light up red when a frame change happens, then you hit the red button, and it refreshes the UI.
Since that isn’t happening, just make sure you have the latest and greatest files from dropbox. Also, on the control that has the spaces, you should be able to pick-walk up from that control to see what is actually happening with the spaces and if they are truly being switched or not.

They’ll usually be at the very bottom.

you can also run this code (python) to see what nodes it complains about being unknown:

print cmds.ls(type = “unknown”)

these might be the nodes that get listed:
mentalrayGlobals’, u’mentalrayItemsList’, u’miDefaultFramebuffer’, u’miDefaultOptions’

Then you can simply select those and delete.

Or you can run this, which will auto-check, delete, and convert any ART nodes that might be labeled as unknown:

(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")


I’m an idiot, that’s from my post haha. I’m pretty sure that line will fix it and I will edit that post.

Hello ,

first of all, thanks for the help! unfortunatly it didn’t seem to work.
at first i just ran the script without your added line, just for a test. and yeah a neww error occured:

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
// File read in 0.12 seconds. //
// Error: file: C:/Program Files/Autodesk/Maya2017/scripts/startup/cutCopyPaste.mel line 75: Error reading file. //
[u’Mannequin:Mannequin_ExportRN’, u’Mannequin:sharedReferenceNode’, u’MannequinRN’]
Mannequin:Mannequin_Export

Mannequin:sharedReferenceNode
Mannequin

[u’Mannequin’]
[u’Mannequin’]
[u’Mannequin:Mannequin_ExportRN’, u’Mannequin:sharedReferenceNode’, u’MannequinRN’]
Mannequin:Mannequin_Export

Mannequin:sharedReferenceNode
Mannequin

[u’Mannequin’]
[u’Mannequin:Mannequin_ExportRN’, u’Mannequin:sharedReferenceNode’, u’MannequinRN’]
Mannequin:Mannequin_Export

Mannequin:sharedReferenceNode
Mannequin

[u’Mannequin’]

Warning: The -bs/-borderStyle flag is obsolete and should not be used.

Warning: The -bs/-borderStyle flag is obsolete and should not be used.

Warning: The -bs/-borderStyle flag is obsolete and should not be used.

Warning: The -bs/-borderStyle flag is obsolete and should not be used.

Warning: The -bs/-borderStyle flag is obsolete and should not be used.

Warning: The -bs/-borderStyle flag is obsolete and should not be used.

Warning: The -bs/-borderStyle flag is obsolete and should not be used.

Warning: The -bs/-borderStyle flag is obsolete and should not be used.

Warning: The -bs/-borderStyle flag is obsolete and should not be used.

Warning: The -bs/-borderStyle flag is obsolete and should not be used.

Warning: The -bs/-borderStyle flag is obsolete and should not be used.

Warning: The -bs/-borderStyle flag is obsolete and should not be used.

Warning: The -bs/-borderStyle flag is obsolete and should not be used.

Warning: The -bs/-borderStyle flag is obsolete and should not be used.

Warning: The -bs/-borderStyle flag is obsolete and should not be used.

Warning: The -bs/-borderStyle flag is obsolete and should not be used.

Warning: The -bs/-borderStyle flag is obsolete and should not be used.

Warning: The -bs/-borderStyle flag is obsolete and should not be used.

Warning: The -bs/-borderStyle flag is obsolete and should not be used.

Warning: The -bs/-borderStyle flag is obsolete and should not be used.

Warning: The -bs/-borderStyle flag is obsolete and should not be used.

Warning: The -bs/-borderStyle flag is obsolete and should not be used.

Warning: The -bs/-borderStyle flag is obsolete and should not be used.

[u’Mannequin:Mannequin_ExportRN’, u’Mannequin:sharedReferenceNode’, u’MannequinRN’]
Mannequin:Mannequin_Export

Mannequin:sharedReferenceNode
Mannequin

[u’Mannequin’]
[u’Mannequin:Mannequin_ExportRN’, u’Mannequin:sharedReferenceNode’, u’MannequinRN’]
Mannequin:Mannequin_Export

Mannequin:sharedReferenceNode
Mannequin

[u’Mannequin’]

Warning: Invalid viewport for isolate select command

so and after that, i just tried the script with the added lline but nothing happend. i just ran it like this:

if type(newName) is list:
newName = cmds.file(q = True, sceneName = True)
newName = newName[0]
cmds.file( rename=newName )
cmds.file(save = True, type = “mayaBinary”, force = True, prompt = True)
print “File Saved as:”, newName

but it didnt executed something.

Downloaded the latest from the dropbox and it’s working perfectly now. I was using the art tool assets shipped with 4.13. Opps, I’ll just stick to grabbing them from the dropbox from now on. Thank you very much for helping!

This is going to be disappointing.

I can’t for the life of me get the use t0 as ref to work when importing into ue4, These are my settings:

It keeps the mismatch for some reason.

I found skeleton settings and you were right, no children at all. I’m not sure what I did, but it was clearly silly.

Here’s the export file if that helps. (Edit: bad link)

Can’t find General\ART\system\ folder either. Just see projects, skinweights and skeleton templates. I found the goblin.txt in skeleton templates which was writable. The stuff in general\scripts is writable too.

Thanks for the help, I owe you a beer or expensive bottle of something.

I appreciate all of your hard work. Show me the faces of your cruel taskmasters so that I may know who to scowl at should I meet them, it’s been a year since I first started salivating at the first glimpse of V2. Do they even give you ice in your water? When it is finally released I will do the Pylean dance of joy.

Kidding aside. ARTv1 at least loads up fine in Maya 2017, the basics seem functional.

Knee/Foot Solving problem

Hello everybody again.

So in the last few days I worked with some mocap data to stress the ARTv1 (Thanks for the update on the ETA for V2, I needed it!)
Unfortunately I’m getting some problems with the knee and foot solving over the IK chain:

Source files: Maya2014 FBX - Maya2016 FBX
Info: Using tool released with 4.13 (the files on dropbox have some problems with Modules and IK/FK switching), on both Maya 2016 and 2014.
Mocap source: Recorded with OptiTrack, solved using Ikinema Action and retargeted on the ExportFile Mannequin joints. Exported as FBX and then imported with the “Import Mocap” tool.

First problem - Knee Solving:

As you can see in the image above, in some particular motions, the IK knee solving can produce some flipping of the knee. Not having a poleVector system doesn’t help maintaining a correct direction.
I don’t know if this can be automatically solved in the code. For now I can only fix this manually.

The other problem is the high volume of jittering on the knees with the auto solving.
Cleaning the animation curves isn’t immediately possible in some cases becuase the values on the knee twist are jumping from 4/5 to 354.
For whoever needs it, I wrote a super simple/super quick script to fix and clean the curves so you can have a smoother movement on the knees:



#Usage:
#Copy the script inside a Python tab of your script editor, select one or both the "ik_foot_anim_*" controls and press enter (numeric pad) on your script editor

import pymel.core as pm

ctrls = pm.ls(sl = True)
for ctrl in ctrls:
    try:
        list = pm.keyframe( str(ctrl) + ".knee_twist", query=True, valueChange=True, timeChange=True)
        for key in list:
            if key[1] > 0:
                newValue = (( key[1] // 180 ) * ( -180 )) + ( key[1] % 180 )
                pm.keyframe( str(ctrl) + ".knee_twist", time= (key[0], key[0]), valueChange= newValue)
        
        pm.simplify(str(ctrl) + ".knee_twist", timeTolerance = 4.2, floatTolerance = 5, valueTolerance = 0.3 )
    except:
        pm.warning("Something, somewhere, went horribly wrong")


Please note this script is very simple and may not work in some rare cases (like keys switching from -180 to 180).

Second problem:

Using the Foot Roll solving creates some weird offset on the foot itself. This doesn’t happen with FK or IK without FootRoll solving.
In this case I really don’t have a specific idea on how to fix this automatically.

Anyone having similar problems?

Hello,

I’m new to this board, but have been working with ART for almost two years now. Overall it’s been really smooth, so thank you for working on this!

We are on our way to do a motion capture session, and the tech guy at the studio was a bit concerned that the joints on my skeleton weren’t zeroed out properly (offsets on translate X & Y). I updated to a newer Art version and that fixed the arms and legs but the fingers still have some offsets. I noticed that the Mannequin has everything at zero, is it possible to achieve this in some way?

I also have a lot of crashes and errors when A.R.T is enabled, if I remove userSetup I don’t get these errors. I rolled back to an older version of ART and it’s better, but still annoying. One example is when I try to open files I get this message more or less every other time and the file won’t load. I suspect it has something to do with Python dlls…

C:/Users/username/Documents/maya/2016/scripts/
C:/Users/username/Documents/maya/2016/prefs/
C:/Users/username/Documents/maya/2016/scripts/mayaTools.txt
optionVar -sv colorManagementColorPickerColorSpaceSelection “Rendering Space”;
optionVar -iv colorManagementColorPickerColorMgtEnabled 1;

Error: TypeError: Flag ‘menuItems’ must be passed a boolean argument

Wherec can i download maya since this is just updated icons and scripts?

I need to know where i can go and install maya since this is only updated components

http://www.autodesk.com/products/maya/overview-dts?s_tnt=69290:1:0 :slight_smile:

Hopefully this will answer the question regarding the zeroing of joints/movers:

As for the error, I’m not sure what the error is from. If you turn on stack trace in the script editor (along with line numbers), it will give more information that will be useful in tracking it down.

What issues are you getting from the dropbox files, because the ones from 4.13 are actually pretty old (internally, engine releases branch months before release for stress testing, so the scripts are back from that original branch date months ago).
Foot roll should have been updated in the most recent files to give better results. As for the knee matching, yeah, it’s a bit tricky without a pole vector, as it just tries to match the angle with the mocap. You will have much better results (and faster) if you actually just import to FK and match over frame range (IK to FK), as then it is comparing to itself and is far more stable.

Can you throw that file in here?
Dropbox - ARTv1_Support - Simplify your life?

I tried to download from the site, but it asked me to enter a credit card, and I was like NOOOPE!
I’ll be happy to take a look once I get it!

This is what the code should be:



newName = cmds.file(q = True, sceneName = True)
newName = newName
cmds.file( rename=newName )
cmds.file(save = True, type = "mayaBinary", force = True, prompt = True)
print "File Saved as:", newName


Hello , thanks for the answer! I never thought of zeroing out the parent of the joint mover, thanks I will try that!

I think I managed to solve the error messages by using the userSetup.py from 4.13. However using the latest version of the actual mayatool gave me a lot of errors. I think I read somewhere that it could be some kind of python dll problem but I couldn’t find the link again.

It worked!

Omg thanks! :slight_smile: