Closed Palmer-JC closed 3 years ago
Yeah. The socket call reads what material is currently set on G.app.selectedHuman. In pose/skeleton/some other views, a different (usually transparent) material is set.
It probably should read materials from some other place, although I currently don't know exactly where.
skeletonlibrary.py changes the material in its onShow and onHide functions and stores that information locally. Technically it should be possible to read out the local information without the need of altering MakeHuman itself, though this will be probably quite cumbersome. IMHO the cleanest solution to overcome the problem is to introduce a new property in human.py (self.backupMaterial) set to None and alter the onShow/onHide functions accordingly. Then you can run a simple "if human.material.name == 'XrayMaterial' and human.backupMaterial: ..."
... um, I forgot to mention, it has to be done for each proxy, too. Not so convenient, either.
I'm having the same issue with the material preview and rendered view ports. Does this stem from the same problem?
Unless you imported using MPFB while MH was in pose mode, it's unlikely it's the same problem.
As is probably known, but to clarify further. even if after you import from the 'pose/animate' tab and the materials fail, if you then delete all in blender, put makehuman to the modeling or other proper importable page, when you reimport, the materials stay failed as they did when you initially imported from 'pose/animate' tab. Possible relation to issue #79 at its core? I would have no way of verifying that assumption.
Providing a fix for this issue, though it was a problem on the MakeHuman side of the socket. To test the fix both MakeHuman and the socket plugin need an update.
Tested and working for me
I am now working almost full time on finishing Kinect. I was experimenting with getting different meshes. One time, I had left the MakeHuman session on the Skeleton selection area. When you do this the materials are just brand new principled nodes, basically all white with not textures.