I think I’m caught up now! Please let me know if I missed a question!
Awesome, I’m looking forward to V2 more and more with every update!
And ya, skinning is the biggest issue by far. It doesn’t even seem to matter too much how complex the geometry is. Even a lowpoly character with 2k tris and mostly 100% weighting is causing trouble. I use constrained proxy geometry as well whenever I can, but at some point - especially for facial animation - there’s just no way around using a skinned mesh. Vertex animation caching did wonders for me, but here’s hoping that we’ll get a performance boost in Maya 2016.
Thanks for the reply in any case and, once again, also thanks for ART!
Would this work with Maya 2016 LT? I have had no luck trying to get this installed in LT. Am I missing something?
Maya LT doesn’t support python and its written, at least in part, in python so I’m thinking its a no.
Hi Dave! while it is not what id like to hear I thank you for your speedy reply
so, nothing’s official yet, but while at GDC i talked with an Autodesk rep about getting the tools wrapped as a plugin that ships with LT. I’ll continue to follow up on that!
So far this looks like the cure for the Maya scene save failure! For any other ART users with the same issue: edit MayaTools/General/Scripts/ART_exportMotion.py and change the two occurrences mentioned in 's Quote above. When Maya is restarted it should be much improved.
And for the record, every time I save an ART scene in Maya 2015 Student Edition - Maya requires six (6) mouse clicks on the student version nag prompt.
Thanks again !
That would be really fantastic! Will rock on with 2015 for now until ART can be used with LT Great job on the tools BTW ! Unreal is just simply fantastic to work with!
Is anyone here having an extremely hard time getting attachment bones to orient correctly? I’m following the documentation - making a leaf joint then using the mover to place it. However every time I build the controls both the attachment controller and joint are a few degrees off on all rot xyz. The orientation in the export file is perfect, but in the rig file it’s off. I thought this was just “what it did”, however when I add sockets to the joints in Unreal they too are a few degrees. Am I doing something wrong?
Any suggestions/workflows would be great!
Cheers,
I’ve made a small videos of the issue. - YouTube
Not sure I follow exactly. What’s the desired result? That the attachment joint & ctrl has the same orientation as the hand joint & ctrl, but just offset slightly in translate Z?
Edit: so if this is indeed what you’re trying to do, back in the setup stage go into Mover mode. Parent constrain the leaf/attach node to the Hand mover with “maintain offset” set to OFF. The attachment mover should match orients and ‘snap’ to the Hand mover. Then delete the constraint (or break connections in the channel box). The orients of the 2 movers should now match. Now you can move the control to offset more in one direction (make sure to just move it on 1 axis, like Y), or just leave as-is in the same location as the Hand ctrl. Whatever you need. Once you publish the rig all should be good to go and the joint orients on the attachment and wrist joints should match.
Also, just FYI from the video you posted, after publishing the control orientations on the IK Hand ctrl and the leaf node ctrl are different. This is because the leaf is oriented basically along the FK arm/wrist (same as the skeleton). While the IK ctrl is oriented in world space (z-up). If you switch the arm to FK mode the orients will match between the attachment and the FK hand ctrl. Assuming you followed the above directions ok
Hope this helps.
Hi , one thing I’ve noticed is that the finger joints by default have non-zero translations in Y and Z. I haven’t looked at the mover group or skeleton creation code so not sure how complex the fix is yet, but just wanted to give a heads up. All the other bones have X-only translate so that’s all good
I got clean translations by doing some quick snapping. It makes the movers Trans/Rot values wonky, but as long as it’s manipulated in Local mode it’s cool
Edit: yeah looks like the mover groups (e.g. “ring_02_mover_l_grp”) aren’t defaulted to zero Trans YZ and zero Rot XYZ. Maybe a fix for V2?
Thanks very much for taking the time to describe a solution, much appreciated.
Hey guys,
I’m getting a hard crash every time I try to “Build the Control Rig”. At first I thought it was because I had made a mistake when creating the joints or something on the previous steps, so I went ahead and tried different times the default values, but either way it keeps crashing. So I did my research and I updated the scripts to the latest ones on the Dropbox links, tried to save or start from .ma and .mb files but nothing seams to work.
I’m using maya 2015, windows 8.1 and had the original scripts from the Engine version 4.7. I’m not sure which version of the ART I downloaded from Dropbox but is that the new v2?
Thanks in advance!
Hey , dropbox an updated ART for MAYA 2016
Someone mentioned in a previous post to delete your Maya Preference folder (or just rename it). And then run the setup again. This worked for me in the past. I get some crashes here and there, so make sure you save your Mover and Physique presets out. But way less crashes than with my non-clean Preferences folder. 2014 seems more stable than 2015 for me.
any news on facial rigging?
Hey , that simple thing just made the trick. I removed the preferences and suddenly I was able to create the rig. Thanks so much!
It’s going to take some minutes to reconfigure the hotkeys, but man, I’m excited to be able to use the tool.
Thanks again!
How do you run this script Im haveing some trouble? Do I just copy and past into the mel command line or do I put this in the scripts folder and run the command?
Thanx!
Copy and paste this into a new Python tab in the Script editor
import maya.cmds as cmds
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()
Copy and paste this into a new Python tab in the Script Editor
import maya.cmds as cmds
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()