- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hello!
Here at Hari Studios, we encounter weird issues since Maya 2020.
From a newly opened instance of Maya, opening some of our asset rigs loose their skin weights:
Reopening the same file from the same instance of Maya, restore the skin weights:
Acknowledments:
- The opened file contains no reference to other files
- There is only a skin cluster applied to the mesh, no other deformers
- History of the file has been cleaned
- The issue is reproductible from any new Maya instance
- Issue appears also with fresh preferences
- Evaluation mode is in Parallel
- The issue seems to appear for other deformers too (ffd as we experienced)
- The issue appears on both Windows and Linux
I also note that this problem appears when dealing with references.
Let's say, the above rig file "A" is referenced twice in another scene (A1 and A2), the first reference is always broken (as explained above) but the other references to the same files are always fine. I guess loading a reference multiple times has the same effect as reopening a file.
My analysis:
Because Maya successfully recover the skin weights on reopen, it does not seem like the file content is corrupted or anything. Maya just "fails" at loading it correctly from a fresh state.
We thought that might come from a deferred plugin load.
But loading the plugins prior to opening the scene: same problem.
We compared all the MEL commands Maya executes while opening the file (Script Editor -> History -> Echo All Commands) to see if there is any difference between opening the file from fresh Maya or from an already loaded file: no difference at all.
I then tried to check the weights stored within the skinCluster node using the following python script:
from maya import cmds
indices = cmds.getAttr("skinCluster8.weightList", multiIndices=True)
for idx in indices:
attr = "skinCluster8.weightList[{}].weights".format(idx)
attr_indices = cmds.getAttr(attr, multiIndices=True)
for attr_idx in attr_indices:
print cmds.getAttr(attr + '[{}]'.format(attr_idx))
I only get values of 1.0 everywhere despite the viewport clearly showing values of 0.0 (see the first image above).
Furthermore, trying to repaint the weights from that state results in a Maya Fatal Error:
Stack trace:
DeformSlice.dll!TDNskinCluster::getComponentWeights
DeformSlice.dll!TDNskinCluster::saveCurrentWeights
JasperSlice.dll!TartAttrSkinPaintCmd::createIterator
JasperSlice.dll!TartTangentStamp::paint
JasperSlice.dll!Tart2DStroke::interpolate
JasperSlice.dll!Tart2DStroke::continuePaintStroke
JasperSlice.dll!TartBaseContext::batchPaint
JasperSlice.dll!TartBaseContext::doDrag
SharedUI.dll!TstandardContext::preDoDrag
ExtensionLayer.dll!TtoolCallback::doIt
ExtensionLayer.dll!Tcontrol::doDrag
3dGraphics.dll!QmayaGLWidget::mouseMoveEvent
Qt5Widgets.dll!QWidget::event
Qt5Widgets.dll!QApplicationPrivate::notify_helper
Qt5Widgets.dll!QApplication::notify
ExtensionLayer.dll!QmayaApplication::currentMousePos
Qt5Core.dll!QCoreApplication::notifyInternal2
Qt5Widgets.dll!QApplicationPrivate::sendMouseEvent
Qt5Widgets.dll!QSizePolicy::QSizePolicy
Qt5Widgets.dll!QSizePolicy::QSizePolicy
Qt5Widgets.dll!QApplicationPrivate::notify_helper
Qt5Widgets.dll!QApplication::notify
ExtensionLayer.dll!QmayaApplication::currentMousePos
Qt5Core.dll!QCoreApplication::notifyInternal2
Qt5Gui.dll!QGuiApplicationPrivate::processMouseEvent
Qt5Gui.dll!QWindowSystemInterface::sendWindowSystemEvents
Qt5Core.dll!QEventDispatcherWin32::processEvents
USER32.dll!TranslateMessageEx
USER32.dll!TranslateMessage
Qt5Core.dll!QEventDispatcherWin32::processEvents
qwindows.dll!qt_plugin_query_metadata
Qt5Core.dll!QEventLoop::exec
Qt5Core.dll!QCoreApplication::exec
ExtensionLayer.dll!Tapplication::start
maya.exe!TiteratorWrapperFwd<TscenePartitions::ConstIteratorDescriptor,TiteratorWrapper<TscenePartitions::ConstIteratorDescriptor> >::operator++
maya.exe!TiteratorWrapperFwd<TscenePartitions::ConstIteratorDescriptor,TiteratorWrapper<TscenePartitions::ConstIteratorDescriptor> >::operator++
maya.exe!TiteratorWrapperFwd<TscenePartitions::ConstIteratorDescriptor,TiteratorWrapper<TscenePartitions::ConstIteratorDescriptor> >::operator++
kernel32.dll!BaseThreadInitThunk
ntdll.dll!RtlUserThreadStart
000007FEB617F600
There is clearly something wrong about the way this skinCluster has restored its values when opening the file the first time.
The issue seems to happen at a depper level within Maya and we have no way to debug it further.
Any ideas?
We understand it is not possible to fix that for Maya 2020 but if you have a workaround (do not ask to just reopen files twice please, this is not the answer we are looking for) it would be awesome!
We cannot share the source files here for confidentiality reasons but do not hesitate to contact us if you need them.
Thank you very much for your consideration.
The Hari Technology Team
Solved! Go to Solution.