Hi there,
does anyone else have the problem, that from time to time Maya2015 will loose all the shader information after you saved the file? All you see is some weird green material assigned or sometimes even nothing.
It's not a big deal if only one material is assigned to the model, it's easy to reassign it, but if a model has 2 or more materials it will be an annoyance.
Before I bought my Maya2015 licence (Full release, not LT) I used Maya2012 and 2013 as student (Studentversions) and I never had some similar issues before.
Is there any change that this issue will be fixed in future service packs or bugfixes?
It costs time during production and our studio is a small indie gamestudio, so I can't affort upgrading to Maya2016 when it is out, just to have this bug fixed.
Thanks in advance for any feedback or infos about this issue.
I have not had that problem at all. But you could post it here: Small annoying things in Maya
Evidently you're not the only one with this issue:
http://simplymaya.com/forum/showthread.php?t=40767
and
http://www.polycount.com/forum/showthread.php?t=132533&page=6
Doesn't look like either thread leads to a solution, but thought you might want to compare notes. You may want to send a scene file to Autodesk and see if they can reproduce the problem...
Hi,
here is a tile from our latest game which has this issue after saving with assigned textures.
I hope this help for reproducing the issue. What I can say, it happend not always (at least in my case), but from time to time I have this issue on almost every saved mesh)...I could bypass it only be importing the fbx I've exported for the gameengine.
Edit.:
For any reason the board don't allow me to attach a rar or mb file
2nd Edit.: Sent via pm
xanderland,
I have received your scene file. thanx.
wreliford,
I have one scene file which should suffice for now.
I would however like to ask a few questions.
1. Are you guys working (either intentionally or accidentally) with instances when duplicating geometry that may have per-component (face) shading assignments?
2. when you apply materials do you apply them at the shader level or SG level?
3. How are materials applied? Drag and drop SG or shader from Hypershade onto object? Right click and Assign Shader? Right click and Assign to Selected Object Marking Menu. etc...
4. Does this occur while working or does it appear when a scene has been opened?
5. Is anyone importing objects from a referenced file that may or may not have had shader based reference edits applied to it?
6. Is the geo interop'ed in from another source (fbx import, obj import, etc..)?
7. What kind of modeling operations are being performed? Combine, Separate, etc...?
8. Specifically what version of Maya are you using?
Anything you can tell me about the specific workflow utilized when this issue occurs would be helpful. The more detailed the better.
tnx.
Here are my answers:
1. No, I use usually copies when duplicating a mesh...instances usually only for modelling characters and creatues and only to visualize the whole char while I work on a half char.
2. Usually I apply them from the Hypershade using "Assign Material to selection". I use only the lambert shader since I make all materials in Unreal anyway after importing, optimized for realtime rendering. To my workflow an assigned shader in Maya is only something to visualize the texture during assetproduction.
3. see above
4. Only when I open a saved scene, it never happend without loading a scene.
5. No
6. Usually not
7. In most cases it happend after combining a mesh.... but it also happend 1 or 2 times without combining.
8. Maya2015 SP 5 (However this issue is present since I bought my licence which was SP 2 I guess. It worked fine in Maya2012 and 2013
I hope this helps
Hi Syracoj,
while working I've found a way to reproduce this issue (more or less I discovered it by accident)...here is a step by step description
- Make a new scene
- place a few primitives in the scene
- combine them
- delete history
- use Mesh/ Seperate to seperate them again
- now grab the seperated meshes and move them out of the group
- now delete the empty group WITHOUT deleting your history
now the meshes should look like those in the screen
I did the comibine/ seperate thing during work because I was to lazy to place all the pivots of my colliders for a cluster of mushrooms by hand in the center...but the issue has to do with combining the mesh, since it also happends after saving and just opening the scene again.
I hope this may help to get rid of this annoying bug in Maya2015
- Xander
Seems tied to that transform node that gets created within the group when you do the mesh->separate. Note that if you merely delete that node without even moving the separated meshes out of the group, the objects turn green...
hey Xanderland, thats an interesting find.
I took a look at the graph when this is occurring and can see a few interesting things going on here.
The Transform node that is under the resulting polySeparate group is the associated transform for the intermediate object (the original). This intermediate has DAG set member connections on the shading Group Node (Shading Engine)
If I graph in the two resulting meshes from the polySeparate operation, along with the intermediate transform into the Node Editor, we can see that they also have outbound connections going to the DAG set membership attributes on the shadingEngine node.
The intermediate outbound is going into the DAG Set member index [0], where the outbound of the resulting shapes are going to DAG Set member index [1] and [2]
If we continue with the reproduction steps (unparent the two resulting shapes and delete the top group which includes the intermediate) we do get the green shading in the viewport (<- representative of a lost shader). Whats interesting though is the intermediate shape that was going to the DAG Set member index [0] is resolved and the outbound DAG set membership on the resulting meshes remain in index [1] and index [2] respectively. At first glance, nothing should change. But it does, the shading gets lost. If we approach it with Deleting History as opposed to unparenting from the resulting group an interesting thing occurs. The intermediate going to index[0] is resolved but the resulting meshes are in new DAG set membership indices (now [3] and [4]). It would appear that this reconnection to new indices is causing a perceived
preservation of the shading.
One thing thats interesting to note though is that if we manually reconnect the connections of the resulting meshes outbound to the same DAG Set member indices when performing the problematic repro steps, the shading in the viewport comes back. Its as if its triggering a refresh on the connection.
It is not clear as to why this is happening. It would be my understanding that if it has connections to the SG node then it should always know how to draw its surface material for as long as the connection exists. If we move the objects out of the group and delete the group it appears that nothing is happening to those connections. So the shading should persist. Therefore I would say this is indeed a defect.
The current workaround however is to `DeleteHistory`
or perhaps one could also unparent the Intermediate before deleting the group (will cause change to long name and/or namespace of the intermediate).
I also found that the script put together below works too but its a fairly bad script 🙂
////////////////////////////////////////////////////////////////////////////////////////////////////
// when losing the shading, I could return it with this script
string $storeSelectedItems[] = `ls -sl -dag -shapes`;
for ( $each in $storeSelectedItems){
select -r $each;
string $getSGOnly[] = `listConnections -type "shadingEngine"`;
string $getSGConnection[] = `listConnections -p on -type "shadingEngine"`;
string $getDSMattr[] = `listAttr $getSGConnection[0]`;
connectAttr -f ($each + ".instObjGroups[0]") ($getSGOnly[0]+ "." + $getDSMattr[0]);
}
// very basic script.
// wont work with per-component shading
// used only to test on my side, I dont recommend anyone to use this as a viable workaround.
////////////////////////////////////////////////////////////////////////////////////////////////////
NOTES
---------------------------------------------
Delete History Workflow:
Pre Delete History
intermediateObj.instObjGroup[0] -> SG.Dag Set Member[0]
resultMesh01.instObjGroup[0] -> SG.Dag Set Member[1]
resultMesh02.instObjGroup[0] -> SG.Dag Set Member[2]
Post Delete History:
intermediateObj is resolved
resultMesh01.instObjGroup[0] -> SG.Dag Set Member[3] // interesting, it reconnects them to different index ports.
resultMesh02.instObjGroup[0] -> SG.Dag Set Member[4] // Perhaps this triggers a change or refresh internally, causing the shader to be preserved
---------------------------------------------
Manual Workflow where shading is lost:
Pre Unparent and Delete Group
intermediateObj.instObjGroup[0] -> SG.Dag Set Member[0]
resultMesh01.instObjGroup[0] -> SG.Dag Set Member[1]
resultMesh02.instObjGroup[0] -> SG.Dag Set Member[2]
Post Unparent and Delete Group:
intermediateObj is resolved
resultMesh01.instObjGroup[0] -> SG.Dag Set Member[1] // Same index as before Unparent
resultMesh02.instObjGroup[0] -> SG.Dag Set Member[2]
If we reconnect the connections manually into the same Indexes:
resultMesh01.instObjGroup[0] -> SG.Dag Set Member[1]
resultMesh02.instObjGroup[0] -> SG.Dag Set Member[2]
And then press rewind, the shading comes back.
Something here is triggering a refresh
CLOSING: I will check our backlog to see whats there. Fairly certain this specific issue is not catalogued but I will ask around. Regardless, if I find a defect or write one up, I will return to you guys a defect number.
more to follow later.
I have checked this with an older version of Maya (2010) and this has regressed since.
I have drawn up MAYA-50717 "deleting the intermediate is causing shader loss" to catalogue this issue.
thanks gang!
they can manually reconnect the same connection to the same port in the node editor to see if that alleviates the problem (brings the shading back).
Or a proper delete by type > history can be performed.
I would not rely on the script. The script is not robust and will not work in other scenarios.
I am not sure if the posted UV issue is indeed related to this one or not.
Further more, there may be other workflows out there that present this problem that are not due to the result of the intermediate object being deleted.
Thanks for the update, Syracoj.
I just have to mention that it also happens if the delete history command was performed...however not during the work session, but when you reopen the saved scene.
One question since I'm curious about it.
Will there be more ServicePacks or Hotfixes for Maya 2015, even if the next Maya Version is out...or are we doomed to live with that bug and use workarounds to avoid it?
This is something I'm a bit nervous about.