Not sure I follow. What is the first image of? Just a default character created using the tools without moving the joints? Or is it the actual new mannequin model in rig pose?
The new mannequin rig ships with 4.8 in the tools:
4.8\Engine\Extras\Maya_AnimationRiggingTools\MayaTools\General\ART\Projects\Sample
lol. I feel your pain.
I wrote a script to fix the unknown nodes though. Here ya go (Python):
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])
cmds.delete(orig)
cmds.rename(new, orig)
convertSkelSettingsToNN()
The first image is the default skeleton created by the tools without moving the joints.
What would you suggest for rigging a character with the ART on which all the 4.8 mannequin animations look good? If I just create a skeleton with the ART and use the default created mesh, it wont look good with the 4.8 animations, because as I said the clavicle to upper arm joints are just really different. When playing the animations the arms will move away from the body in a really unrealistic way. Shouldn’t the default skeleton the ART creates be 100% compatible with the 4.8 guy so that I would only need to rotate or scale some joints, but not move them a lot? For the 4.7 guy and animations only rotating and scaling the joints to make them fit the custom mesh worked well.
Or am I doing anything completely wrong?
Thanks you very much
I copied and pasted the file inside maya 2016 (educational version) and when i start with or without UAC, i dont get that windows to choose the path of the file inside maya tools, etc. What i did wrong?
thx for the help with this issue guys.
I’ve noticed with the 4.8 update / latest dropbox files for ART that I can’t actually open the mannequin character, either the export file or the rig file. I get this error when I try via the “Edit Existing Character” menu:
I’m using Maya 2013, and haven’t changed anything with my setup since 4.6 - only updated ART’s maya tools path and my userSetup.py. It seems like the tool works fine aside from that.
I actually wrote my own, you give it a folder (project probably) and it goes through every file and annihilates turtle ^^
Even gave it a nice UI. Just because I hate turtle that much You can choose to do subfolders, ascii files, binary files, and even ignore a folder name (incrementalSave by default) and tells you how many files it finds.
…After backing up, just in case. I don’t think anything would go wrong but it has to open every file, delete turtle, then save the file.
Took ~5 mins to do on 181 files but it was on an SSD. This is the first time I’ve actually given a script out publicly, so I hope it’s OK… It should be functional
For anyone who wants Turtle gone:
import maya.cmds as cmds
import glob, os, fnmatch
from functools import partial
'''Opens each file, removes Turtle nodes, then saves the file essentially removing Turtle from a project'''
def CheckTurtle(pathF, cBoxes, exclTF, stTxt, goBtn, *args):
# Get settings from the UI
path = cmds.textField(pathF, q = 1, tx = 1)
cv = cmds.checkBoxGrp(cBoxes, q = 1, va3 = 1)
exclude = cmds.textField(exclTF, q = 1, tx = 1)
# Set the file types to open (mb, ma)
extensionsMB = "_NONE_."
extensionsMA = "_NONE_."
if cv[1]:
extensionsMB = ".mb"
if cv[2]:
extensionsMA = ".ma"
print "-------------------------------------------------"
print "------------------FILE LIST-----------------------"
# Build a list of files to iterate through
fileList = ]
for (dirpath, subdir, files) in os.walk(path, topdown = 1):
if exclude:
subdir:] = [d for d in subdir if exclude not in d]# Remove excluded folders
subdir:] = [d for d in subdir if cv[0]]# Remove subdirectories if option wasn't selected
#try:# Not all the files will have an index but we don't need them
for f in files:
if f.endswith((extensionsMB)) or f.endswith((extensionsMA)):
#print files
fixdirpath = dirpath.replace("\\", "/")# Replace \ with / for paths
if not fixdirpath.endswith("/"):# Append / to path if needed
fixdirpath += "/"
fileList.append(fixdirpath + f)# Add to our list of files
print fixdirpath + f
#except IndexError:
# pass
if len(fileList) <= 0:
print "NO FILES FOUND",
else:
print "-------------------------------------------------"
print "-------------------------------------------------"
print "OPEN SCRIPT EDITOR FOR FILE LIST",
SetStatus(stTxt, str(len(fileList)) + " file(s) found & stored.", True)
cmds.button(goBtn, e = 1, en = 1, c = partial(DestroyTurtle, fileList, stTxt))
def DestroyTurtle(fileList, stTxt, *args):
for file in fileList:
cmds.file(file, f = 1, options = "v=0", ignoreVersion = 1, open = 1)# Open file
cmds.unloadPlugin("Turtle", f = 1)# Force unload the Turtle virus
for i in cmds.ls("Turtle*"):# Delete nodes starting with "Turtle" - Hopefully no one's making a turtle
if "_" in i or "." in i or not cmds.objectType(i).startswith("ilr"):# Matches Turtle's format for naming and is probably a Turtle node
continue
cmds.lockNode(i, l = 0)# Unlock
cmds.delete(i)
cmds.file(save = 1, f = 1, options = "v=0;")
cmds.file(new = 1, f = 1)
SetStatus(stTxt, "COMPLETED", False)
def SetStatus(stxtTF, stxt, appendDefault, *args):
default = "This can take a long time depending on how many files it has
to fix. It will open the file, remove the virus, then save each file.
- "
if appendDefault:
newtext = default + stxt + " -"
else:
newtext = "
" + stxt
cmds.text(stxtTF, e = 1, l = newtext)
def BrowseBtnPressed(pPathTF, *args):
pPath = cmds.fileDialog2(ds = 2, cap = "Select the desired path", fileMode = 3)
cmds.textField(pPathTF, e = 1, text = pPath[0])
class JTTVirus(object):
try:
cmds.deleteUI("jtTVirusWindow")
except:
pass
window = cmds.window("jtTVirusWindow", title = "JT Turtle Virus Remover")
mainL = cmds.rowColumnLayout(nc = 1)
cmds.text(l = "JT Turtle Virus Remover", font = "boldLabelFont")
cmds.separator(h = 30, style = "in", p = mainL)
pPathHL = cmds.rowLayout(nc = 3, p = mainL)
cmds.text(l = "Path: ", p = pPathHL)
pPathTF = cmds.textField(w = 196, tx = cmds.workspace(q = 1, rd = 1), p = pPathHL)
browseBtn = cmds.button(l = ". . .", c = partial(BrowseBtnPressed, pPathTF), w = 50, h = 20, p = pPathHL)
pExclHL = cmds.rowLayout(nc = 3, p = mainL)
cmds.text(l = "Ignore: ", p = pExclHL)
pExclTF = cmds.textField(w = 196, tx = "incrementalSave", p = pExclHL)
cmds.separator(h = 10, style = "in", vis = 0, p = mainL)
cBoxes = cmds.checkBoxGrp(numberOfCheckBoxes=3, labelArray3='Subfolders /*', 'Binary *.mb', 'Ascii *.ma'], va3 = [1, 1, 1], p = mainL)
cmds.separator(h = 20, style = "in", vis = 0, p = mainL)
stTxt = cmds.text(font = "smallObliqueLabelFont", p = mainL)
SetStatus(stTxt, "Back-up first!", 1)
cmds.separator(h = 20, style = "in", vis = 0, p = mainL)
chkBtn = cmds.button(l = "Get File List", h = 25, p = mainL)
cmds.separator(h = 5, style = "in", vis = 0, p = mainL)
goBtn = cmds.button(l = "Remove Turtle Virus", en = 0, h = 35, p = mainL)
cmds.button(chkBtn, e = 1, c = partial(CheckTurtle, pPathTF, cBoxes, pExclTF, stTxt, goBtn), h = 35, p = mainL)
cmds.showWindow()
v = JTTVirus
Hey man!
I would actually start by going to edit existing character, and choosing the mannequin from the samples project and rig your character making any adjustments to that file. That mannequin file is the exact same mesh that ships with 4.8, so that’d be where I’d start. You can also open that file, go back to edit placement, and save out a template from there too, that way in a new scene, you can just load a template to get the placement the same as the new mannequin. I can’t really change the defaults now, as it would break everyone’s previous characters, as if they ever went back to settings, then went forward to placement, it would load in the new jointMover file, and their values would no longer be valid and they would have to redo placement. No good.
I’m not sure I follow exactly what the issue is here. What file was pasted into Maya?
To get started with everything, all you need to do is grab the userSetup.py file from MayaTools, and place it in documents/maya/scripts. If there is an existing one, just replace it. Then make sure you don’t have a userSetup file anywhere else (like in documents/maya/maya2016/scripts or something).
Then restart maya and that should be it.
Heya!
Can you turn on show stack trace in the script editor and paste the full result? When I look at 324, there’s actually nothing on there, so I think our line numbers aren’t the same, so I’m not sure what it’s complaining about.
Sorry for the trouble!
That’s awesome!!
Sure thing :
When for Mac? Im impatient
Thanks
Just dropping in to express my anticipation of the incoming Mac version. The videos I’ve seen of this make it look like a real powerful tool! Hope to be able to get my hands on it soon.
It’s out with 4.8! It was in the release notes!
it’s out with 4.8!
hmm, so does the file it is trying to open exist on drive? I think it does, or the error would be a bit different. Was the file made in a version of maya different from the one you’re trying to open it in?
Greetings ,
Having a bit of trouble trying to edit my skeleton. The quick version is that I want to move some joints, I go to the drop down and select edit existing character and edit rig file. It opens up and the tool is between skeleton placement and build control rig. Clicking on skeleton placement will give me the standard warning about drastic changes but then I get an error. In the script editor it shows this:
Error: ValueError: invalid literal for int() with base 10: ‘Nothing counted : no polygonal object is selected.’
This happens whether I have the mesh selected or not and it refuses to go to skeleton placement. I am using Maya 2014 64bit and the version of ART that was in UE 4.7 if that helps.
Lousy programmers. What do they know?
Thanks!
The files in question are for the sample project mannequin that ships with 4.8 (so Mannequin.mb and Mannequin_Export.mb, which I can confirm are present) - is it possible that the updated grey-guy mannequin broke compatibility with Maya 2013? More likely something is awry with my install. If you’re referring to the customMayaMenu.py file, I’m using the latest from dropbox.
I wonder if someone could post the templates for the grey-guy mannequin here? That’s really what I’m looking to get out of opening the file.