Summary

Title:[urgent] Save groom doesnt work
Category:Crash/Critical
Status:Open
Posted By:deex ( )
Date Created:1 December 2016

Problem

Description:
Hi,
 
We are in a production and we are seeing that the save groom doesnt work !
Maya 2015 win64. We tried 1.1.4.9479, 1.1.3.9340...
 
Here the log :
 
OxSaveGroom;
// Error: Ornatrix: ..\MayaUtilities.cpp(455): Assert failed: status: (kInvalidParameter): Data is not an array
Stack trace:
uninitializePlugin
uninitializePlugin
uninitializePlugin
uninitializePlugin
uninitializePlugin
uninitializePlugin
uninitializePlugin
uninitializePlugin
THcommandObject::doIt
TmetaCommand::doCommand
Tjournal::operator=
melScanDouble
TmelVariableList::`default constructor closure'
TmelVariableList::`default constructor closure'
SophiaExecutable::evaluate
TcommandEngine::executeCommand
TscriptAction::execute
QmayaQtHelper::executeCommandScript
QmayaIconTextButton::executeSingleClickCommand
QmayaIconTextButton::mouseReleaseEvent
QWidget::event
QApplicationPrivate::notify_helper
QApplication::notify
ThotkeyManager::hotkeysActive
QCoreApplication::notifyInternal
QApplicationPrivate::sendMouseEvent
QScrollBar::trUtf8
QApplication::winMouseButtonUp
TranslateMessageEx
TranslateMessage
QEventDispatcherWin32::processEvents
QApplicationPrivate::openPopup
QEventLoop::exec
QCoreApplication::exec
Tapplication::start
Tapplication::start
TiteratorWrapperBidir<TscenePartitions::ConstIteratorDescriptor,TiteratorWrapper<TscenePartitions::ConstIteratorDescriptor> >::operator=
TiteratorWrapperBidir<TscenePartitions::ConstIteratorDescriptor,TiteratorWrapper<TscenePartitions::ConstIteratorDescriptor> >::operator=
BaseThreadInitThunk
RtlUserThreadStart
 // 
Steps to Reproduce:

Confirmed, thank you

Marsel Khadiyev (Software Developer, EPHERE Inc.)

Thank you.

Do you think it can be fixed quickly please ? (the save and import)

 

Thank you,

Damien

Does the plugin crash after the error, or does it save the groom successfully (although with some info missing)? I think it should be working, just the some data does not get saved properly (e.g. guide edits).

You can try the latest nightly build (9495) where I just removed the error message, but changes to the guides in EditGuidesShape are still not saved into the file.

Ivan Kolev (Software Developer, EPHERE Inc.)

E-mail: ivan.kolev at ephere dot com

Discord: ikolev

" I think it should be working, just the some data does not get saved properly (e.g. guide edits)."

But....it will be fixed ?

Because we are validated some hairs with the client and now we need to start to transfer them on animation/lighting scenes....

Just tested, the save/import just doesn't work. We collapse all nodes to have a "simplify" thing, after ---> save groom.

After we re-import and an error appear and nothing happened.

Please try the saving in the next nightly (coming in 30 mins or so) 9495+

Marsel Khadiyev (Software Developer, EPHERE Inc.)

Well, i don't have any messages now but...it doesn't work. When i re-import, the hair is completly differente or i have this :

// Warning: file: C:/Users/damien.SDC/git/8vfxpipe2/softwares/maya/common/plugins/OrnatrixForMaya/2015/win64/1_1_4_9496/plug-ins/Ornatrix/scripts/OxGetTargetStackNode.mel line 39: Please select a single target node //
// Error: Ornatrix: Private\HairTemplate.cpp(434): Assert failed (4): status: (kFailure): Unexpected Internal Failure //

Hey,

 

Ok i found what is wrong : when you do save groom, it doesn't save any maps connected !

It is possible to fix this please ?

We use a lot of maps (for lengh, curl, frizz) and when export and re-import them, nothing is connected, the value is resetted to a white color.

If this can be in priority please, we are in a middle of a production.

 

Thank you,

Damien

And i bake the hair (right click, colapse here), i have this error at the import :

Error: Ornatrix: Private\HairTemplate.cpp(434): Assert failed: status: (kFailure): Unexpected Internal Failure
Stack trace:
uninitializePlugin
uninitializePlugin
uninitializePlugin
uninitializePlugin
uninitializePlugin
uninitializePlugin
uninitializePlugin
THcommandObject::doIt
TmetaCommand::doCommand
Tjournal::operator=
melScanDouble
TmelVariableList::`default constructor closure'
TmelVariableList::`default constructor closure'
SophiaExecutable::evaluate
TcommandEngine::executeCommand
QmayaCommandScrollFieldExecuter::event
QmayaCommandScrollFieldExecuter::doRun
QmayaCommandScrollFieldExecuter::keyPressEvent
QWidget::event
QFrame::event
QAbstractScrollArea::event
QTextEdit::event
QApplicationPrivate::notify_helper
QApplication::notify
ThotkeyManager::hotkeysActive
QCoreApplication::notifyInternal
qt_translateKeyCode
qt_translateKeyCode
QApplication::winMouseButtonUp
TranslateMessageEx
TranslateMessage
QEventDispatcherWin32::processEvents
QApplicationPrivate::openPopup
QEventLoop::exec
QCoreApplication::exec
Tapplication::start
Tapplication::start
TiteratorWrapperBidir<TscenePartitions::ConstIteratorDescriptor,TiteratorWrapper<TscenePartitions::ConstIteratorDescriptor> >::operator=
TiteratorWrapperBidir<TscenePartitions::ConstIteratorDescriptor,TiteratorWrapper<TscenePartitions::ConstIteratorDescriptor> >::operator=
BaseThreadInitThunk

Grooms are not designed to be used as de-facto hair assets with references to external assets. They only save certain operators and parameters within them in a completely self-contained file. So saving map references should be done otherwise (by using Maya's referencing perhaps).

Do you have a scene you can share which reproduces the collapse issue?

Marsel Khadiyev (Software Developer, EPHERE Inc.)

My workflow is simple :

1) The hair artist does the hair on the model (not the rigged model because this is done in parrallel). He saves the groom (oxsave). At the same time, like i said, the rigger  does the rig.

2) When the rig is finished and the hair validated, we transfer the hair (the oxsaved hair) to the rig (oximport)

3) The hair dynamic team does the dynamic on the hair, and export all in abc

But it looks like this is not the good workflow (?). So i want to understand what is the workflow when you have to do the hair on a side, the rig on another side.

 

But here the problem :

- the oxsaved does not keep connection of maps.

So at the end i don't understand where we have to use the oxsave if the oxsave doesn't save the "exact" state of the hair (? what is oxsave ?). At the end this is better to just do a Maya export, and after Maya re-import and re-connect the hair to the mesh.

I will modified the pipeline to do a basic Maya export/import because, like i say, i don't understand where we have to use oxsave if it doesn't save everything.

 

Do you have a scene you can share which reproduces the collapse issue?

Currently i can't give the asset (i am in production), and just this character is really heavy (hair, face fur, bear, fur nose, fur ears, fur hand.. + 80 maps 8k tx + vrayFur on cloths.

But really, did you try ?

I just created a sphere, add hair on it, collapse (from the node below the rendersetting node), oxsave.

Create the same sphere, oximport : crash

I can confirm the problem with grooms generated which contained baked hair or guides (though I don't get a crash, I just get an error box). This is due to us not having implemented support for these yet. I did already implement edit guides shape support for grooms in next nightly, and hopefully we will get the baked shapes in for the next build.

Grooms were designed to be used as presets for quick hair setup and thus they will not preserve all maps, though they should cover most important areas. The correct workflow in your case would be to collapse up to guides level so you get baked guides object and save that as a Maya scene. Then you can use Maya's referencing to import that scene and assign the rigged mesh as the base for the baked guides object. If the topology of the rigged mesh changes you can also use "Ground Strands" operator to re-ground them onto a new mesh.

The simulation would then be done on these guides and they can be converted to hair and rendered.

Marsel Khadiyev (Software Developer, EPHERE Inc.)

Hey,

Jut to say : i developped a custom exported/imported for Ornatrix Maya in our pipeline. So now it is working and this is not urgent anymore.

 

Thank you,

Damien

Hi Damien,

I'm glad to hear that. Thank you for the follow up.

 

Best Regards,

Jeordanis Figuereo

Jeordanis Figuereo (Product Designer. EPHERE Inc.)