0
$\begingroup$

I’m getting started with visionOS programming.1 One of the tools involved in this is Reality Composer Pro, Apple’s tool for previewing and preparing 3D content. Unfortunately, it’s not nearly as capable as Blender, and although it has basic editing features, it wouldn’t let me delete an object from a file I downloaded from Sketchfab. Apple works with USD[Z] files natively. But I’m having trouble working with them in Blender 4.x.

I downloaded the Sketchfab file as .usdz, and was able to import it directly into Reality Composer Pro. It shows up as having a top-level “scene” node, with “Materials” and “Meshes” beneath that:

Reality Composer Pro screenshot showing imported Tin_Cups.usdz

Unfortunately, RCP won’t let me delete nodes inside an imported object. I can “deactivate” them, which makes them invisible in the rendered scene in my app, but the data is still there.

So I decided to import it into Blender to fix up the file. When I do this, I get this hierarchy in Blender. When I do this, I get a similar hierarchy (as I write this I’m trying something new, checking “Create Collection” on import):

Blender screenshot after importing Tin_Cups.usdz into empty project.

I select one of the two cups, and delete it, and its unique parent nodes. Then I go to export it, and the only way I can export just the cups (and not the light or camera) is to select the entire hierarchy (selecting only the scene node doesn’t export its children and I don’t know if there’s a way to make it do that). This is only a minor annoyance for this small model, but I can imagine it would be very tedious in something more complex to have to open up the whole tree and select it all.

The export looks like this:

Blender screenshot showing export configuration.

When I import the resulting .usdc file into RCP, it has a _materials node sibling to scene, and RCP complains:

RCP screenshot showing the import of the Blender export, with two root objects scene and _materials.

Now, I can fix this up, by drilling down to the mesh and setting its material binding to the material manually. That’s tolerable for this small model, but untenable for something more complicated.

Is this a bug in Blender’s USD export? Or maybe the import? Is there a setting I have wrong?


  1. I’m an expert Apple developer, but I’m really just getting started with Blender.
$\endgroup$
6
  • $\begingroup$ Do you have to keep all the Empty objects hierarchy that come with the imported cups in Blender? I know USD ads its own anyway, but I perhaps the issue here is that redundancy of imported USD nodes converted into empty objects and exported again to USD. I would try to just delete everything except the cup object and export that as is. $\endgroup$
    – L0Lock
    Feb 10 at 1:32
  • $\begingroup$ @L0Lock Yeah, I can delete some of the hierarchy if I adjust the transform of the resulting node. But I still get the separate top-level _materials node in the export. Is there a way to export as USDA (ASCII)? It would be easier to inspect the result. $\endgroup$
    – Rick
    Feb 10 at 2:04
  • 1
    $\begingroup$ You shouldn't need to adjust the transforms, you can select the mesh object, press alt p > Clear Parent And Keep Transformations, then delete the empty objects. $\endgroup$
    – L0Lock
    Feb 10 at 20:29
  • 1
    $\begingroup$ To export as USDA, simply replace the file extension while in the file export dialogue. $\endgroup$
    – L0Lock
    Feb 10 at 20:31
  • $\begingroup$ Oh! I figured it out! In the “Root Prim” field in the Export dialog, I need to enter something like /scene. Blender then adds this node to the top and puts everything else under it. $\endgroup$
    – Rick
    Feb 11 at 8:39

1 Answer 1

2
$\begingroup$

To get a single root-level node in the exported USD file, enter a value like /scene in the export dialog’s Root Prim field:

Screenshot showing Root Prim field in Export dialog.

$\endgroup$
2
  • 1
    $\begingroup$ haha i did tried to put scene but it didn't work x) it's cool that you figured it out! $\endgroup$
    – L0Lock
    Feb 12 at 5:09
  • 1
    $\begingroup$ I had tried it once before without the leading slash and the error it gave me was somewhat vague, so I didn't try harder. Until now, lol. $\endgroup$
    – Rick
    Feb 14 at 6:14

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .