How to get multiple animations into USDZ

Most models are only available as glb or fbx, so I usually reexport them into usdz using Blender.

When I import them into Reality Composer Pro, Mesh, Textures etc look great, but in the Animation Library subsection all I can see is one default subtree animation. In Blender I can see all available animations and play them individually. The default subtree animation just plays the default idle animation.

In fact when I open the nonlinear animation view in Blender and select a different animation as the default animation, the exported usdz shows the newly selected animation as default subtree animation.

I can see in the Apple sample apps models can have multiple animations in their Animation Library.

I'm using the latest Blender 4.5 and the usdz exporter should be working properly?

Hello @Bersaelor , thank you for your question!

The process of exporting multiple animations from Blender into USD for the same skinned mesh is a bit awkward, but you are very close!

  1. In Blender, open the non-linear media tab. Place all of your animations on the same line, sequentially, so that your Blender file plays back each of your desired animations one after the other.
  2. In RCP, after importing your USD, you can "cut up" the combined animation into your separate animations using the inspector for AnimationLibaryComponent. This will create separate animation resources on your entity that you can then play back as a separate animation.

I recommend reviewing Compose interactive 3D content in Reality Composer Pro, specificaly around the 7:25 mark, where my colleague describes how AnimationLibaryComponent is used. You can drag over the playback line in the inspector to insert a mark for the start and end of your animation, then click the scissors icon to create the new AnimationResource.

I encourage you to send any feedback you have about working with animations in RCP using Feedback Assistant. Let me know if you have any more questions!

Thank you for the clarification, I rewatched that WWDC lecture again.

What I ended up doing is:

  1. export the main model with textures, uv etc with the main idle animation
  2. export each other animation as a usdz only containing the mesh & animation
  3. import all into RCP
  4. in the scene editor, add the main model, and then click (+) in the Animation Library, and import the other animations from the other usdz's
  5. in code, import the scene and take the entity out of the scene, not directly out of the RealityKitPackage

This probably will inflate the download size of the app slightly, as the pure mesh is like 300kb and ends up duplicated in the app bundle. But from a workflow perspective, if the designer changes a single animation, I can import it without the risk of getting the start-end wrong.

PS: I filed a feedback in feedback assistant, because I feel like both options are sub-optimal.

How to get multiple animations into USDZ
 
 
Q