Does anyone know what is going on with the USD imports in 4.2? They come in with an empty attached to every single mesh. The meshes cannot be directly selected and the USD hierarchy is a mess (and there’s no scroll bar in Blender outliner so you have to scroll endlessly with the mouse wheel)
I’ve tried the various setting in the USD import dialogue, but no matter what I get this horrible mess of empties and proxy meshes that can’t be selected. So hiding the empties is not an option because the meshes cannot be selected or edited or receive materials. Is there a setting I’m missing to go back to 4.0 USD import behaviour, which worked perfectly fine?
Can you select all and have one of the empties be the active object? Then, depending if you have right click select or left click select you can use either right click or “w” in the viewport to open the menu and select “adjust empty display size”. You can then set all the emptie sizes to be really small.
This works with regular empties but alos with instanced collections, so perhaps it also works with USDs.
The problem is that meshes are all referenced in the scene, so the only way to select them is to select the empties as they are representing the proxy meshes in whatever way it is set up in this newer Blender version of the USD addon.
Yes, but the entries for the meshes in the outliner are all greyed out as they are proxies and can’t be edited or have materials applied.
So it’s not so much a matter of trying to find a workaround, but rather why is it even like this in the first place when USD import in Blender 4 was working perfectly fine for meshes?
Oh, so it is instancing the meshes, sorry I didn’t get that the first time.
I think I remember reading something about instancing being supported now for USD import, I guess that’s meant to keep the connection to the original file/mesh? Kinda like how USD in Unreal works, where you first “open” the usd file to inspect and preview and then you can import it… If that’s the case then maybe the model should be exported with different settings now?
Or it’s just a bug of the new implementation and Blender shouldn’t be defaulting to instancing in the first place, I don’t know hehe
Yes, instancing is supported, but I’ve disabled in the export from the other program so it shouldn’t affect it. They’re not instances though, there’s no ‘master’ meshes, they’re all proxies connected directly to these empties.
In the previous versions of Blender USD you could just import>select all>apply transforms> this would delete these empty nodes that the USD hierarchy uses.
I’m just going to go back to FBX. The reason I was using USD is because the files are huge and USD was a lot faster than FBX, but 4.2 seems to have significant speed improvements with large FBX imports.
Thanks, but this workaround won’t work here for my purposes. I need to be able to select the meshes directly, so I don’t want any empties in the scene at all.
For the time being you could try the following script. It simply iterates through all selected instances and places their respective collections into the collection you have active in your outliner. If you have no collection acitve it places them into the Scene Collection. You should probably try to avoid accidentially running the script in a collection that is instanced.
I allways wondered why something like this is not part of Blenders default UI as it is useful all the time.
import bpy
Sel = bpy.context.selected_objects
ActiveCollection = bpy.context.collection
for i in Sel:
instance = i.instance_collection
try:
ActiveCollection.children.link(instance)
except Exception:
print("Allready in Collection")
Could it be that the originals (the objects the instances you see are pointing to) are placed in collections that aren’t linked to the scene? you would only see them in an outliner in “blender file” mode in that case
I’m really not sure what’s going on. I’ve been using USD in quite a few programs for the last year or so and this is the first time I’ve encountered anything like this?
I dont have any issue importing an usd, but it’s impossible to export a proper usd out of blender, if i take this same file coming from zbrush import it in blender and export in usd in order to reimport into zbrush, zbrush will not even let me press ok.