Thank you fpliu and the engineering team.
Apologies, but this is getting pretty complex now. My original issue with grayed out materials has snowballed. I’ll try to keep my response as clear as possible in the hope that we can glean something useful from this.
For clarity: there are two versions of the scene that I have now shared with Richard:
The original version: In a folder called “Layers” with usd’s called “Stage_01”, “Stage_02” and “Stage_03”
The second version: called “Rooms_Modular_2.2_for_Richard”
I am unsure which of these versions you have examined.
So, following your message above, I went straight to the original version (“Stage_03”) that had been emptied by the Assest Validator to try out the script you suggested would restore the invisible data.
Open the script editor window
Copy and paste the script from your message above into the Python tab
Result: It didn’t restore the data, the scene remained unchanged and empty. (Note: on this original, when I ran the asset validator on this scene, all assets dissapeared from the Stage tab as well as the viewport)
I then opened the second version that I sent Richard, the usd called “Rooms_Modular_2.2” and ran the Asset Validator in the reduced way you suggested.
I opened the usd, selected everything in the Stage tab,
opened asset validator window (in uri mode)
disabled all, renabled only options in the usd:schema set,
selected everthing in the asset list
clicked fix errors on selected
The result was that everything in the environment prim and everything in it has dissaperared and the building has turned red.
I then tried on this scene the script you suggested might restore visbility to data made invisible by the asset validator. The scene remained unchanged.
(See image 1)
On a positive note: I have just experimented with a clean copy of the 2nd version of the scene and have begun to be able to restore the materials manually in a unexpected way, as follows:
1: Select the geometry subset of a greyed out object
2: Locate the MDL Source Asset
3: Drag the asset from the browser onto the mesh in the viewport
4: The wierd thing here is that doing this with only one material, this restores all other materials associated with all other geometry subsets on that mesh. (see image 2)
I hope this might gives you some further insight into whatever has happened here.
Anyway, I’m very grateful for your time in trying to work this out and I hope that anyone reading the thread can learn from my mistakes. I have actually rebuilt the whole scene from scratch and so far it’s working in the updated USD Composer. For the benefit of anyone reading this thread, I’ll list some of my considerations in the rebuild. This time I’ve:
- Avoided using any geometry subsets in the original meshes
- Introduced materials to a scene much more efficiently by ensuring they all go into one World/Looks folder, instead of having Looks folders spread thoughout the hierarchy
- Been much more considered in how the scenes are referencing usds,etc. (this is vital)
- Begun thinking of the scene as layers right from the start instead of trying to decomile a an existing scene into layers later on.
So it’s been a tough but valuable lesson for me.
I understand if you don’t want to take this investigation further, as it’s all got a bit messy now. However, if it helps the devs to improve the software, then I’m happy to continue trying anything you might suggest.
(EDIT: Even stranger! I just reopened the version where I had begun to restore materials manually. When I closed it before, I had only restored materials to one room, as you can see in the picture above. On reopening it, all materials have been restored to all assets!! The scene now looks exactly as it did before I began this whole thread :) )
Here’s a log of todays activity, incase it helps:
kit_20230706_113027.log (3.2 MB)
kit_20230706_120209.log (5.4 MB)