Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to create a .usdz animation?

You can now convert 3D models to .usdz files (uncompressed zip archive) using Apple's command line tool bundled with Xcode 10 beta.

Example code to convert an .obj file to .usdz:

xcrun usdz_converter magnifying_glass.obj -g frame magnifying_glass.usdz 
-color_map gold-basecolor.png -normal_map gold-normal.png
-roughness_map gold-roughness.png -metallic_map gold-metallic.png

The following input 3D file types are supported:

  • OBJ file
  • Single-frame Alembic (ABC) file
  • USD file either .usda (ascii) or .usdc (binary)

It's my understanding the OBJ file does not support animation natively.

A single-frame Alembic file won't support animation either as its a single-frame.

So I'm guessing you need to use usda file which link to a sequence of single-frame Alembic or single-frame OBJ files to generate animations.

Is there any Publicly Available documentation on how to go about this?

A usda file can use payload files to reference single-frame meshes. The example below references a Treasure Chest single-frame alembic file geometry.

#usda 1.0

def "Chest_Base" (
     references = [ @./Chest.abc@</Chest_Base> ])
{

}

But I haven't found any concrete way of linking a sequence of .obj or single-framed alembic .abc files together to create say a 10-second animation.

Any help or hint would be greatly appreciated.

Edit 30th June:

I’ve now managed to animate a USDZ file. I’ve got a live demo here of a rotating gears and helicopter.

Basically, I needed to download the usd pipeline from github and build it on my mac. You can get good instructions on how to do that from here

Be warn set aside at least a couple of hours, the build itself takes about an hour.

After that i ran the animated tutorial example in the usd pipeline bundle. Step5.usda (ascii usd file) has an animation example which I followed to create my own animations using rotations.

Running this usdz command will create a simple animation of a spining top if you create the Step5.usda file following the pixar tutorial at the link above.

xcrun usdz_convertor Step5.usda animationTest.usdz

Edit 10th July 2018:

usdz also supports alembic assets (with animations).

I have now managed to get a simple animation working in usdz (using the alembic file format). However, a bone animation on a character I tried didn't work.

I exported Alembic assets with both the Blender & Modo Alembic exporters... same results.

UV materials were also not mapping correctly to the mesh. Something wrong with the uv scaling & mapping... materials come out fragmented. At this stage I don't know if this is a bug, or whether I'm not doing something wrong here. There is some discussion about this uv mapping issue on the Apple forum

Edit 8th Sept 2018:

This is a rapidly evolving area and I'm sure more ways to tackle usdz animation creation will appear over time. However, at present the best & least costly way (open source) to make transform, bone, blend-shape or morph animations usdz files is using a command-line tool hosted on GitHub called glTF2usd.

The tool can convert a glTF animation file into a usda file (the intermediary file type) for creating the usdz file. It should also support direct usdz creation shortly, negating the need to use Apples usdz_converter command line tool to go from usda -> usdz.

Only currently supports 1 animation group. Some bugs still exists regarding rotations, --use-euler-rotation handle can be used to help with smoother rotations.

I've been posting usdz animations I have been creating with the tool to an online usdz gallery www.fusionar.app

like image 237
Clay Avatar asked Jun 24 '18 10:06

Clay


People also ask

Can USDZ be animated?

OBJ -> USDZ only supports static meshes. Alembic (ABC) -> USDZ supports only tranform animations (position, rotation, scale).

What is .USDZ file?

It is an all-purpose transmission format, but it has been adopted by Google as the format of choice for Augmented Reality (AR) on Android's Scene Viewer. GLB is a binary container format of glTF. It bundles all the textures and mesh data into a single file. USDZ is a 3D file format created by Pixar.


2 Answers

Updated: March 29, 2022

USDZ with Animation

You can easily import, animate and then export USDZ, USD, USDA and USDC models in Autodesk Maya 2020 | 2022 with pre-installed Maya USD plug-in. All you need to do is to know how to animate your model in Maya (whether it's Asset Animation or Transform Animation), the other – is as easy as saying "cheese".

enter image description here

Also, simple Transform Animation of USDZ models is possible in Apple Reality Composer.

enter image description here

For this just drop USDZ model into Reality Composer's scene, apply any behaviour you need and then export a result as USDZ file.


USDZ Schemas

If you like Python scripting you can apply simple Transform Animations using USDZ Schemas.


FBX with Animation

enter image description here

After creating an animation in Maya 2022, bake your animation using menu:

Edit -> Keys -> Bake Simulation

After that export your scene as .fbx:

File –> Export All (option box) –> FBX Export (dropdown menu)

Now it's time to convert your FBX file for Xcode 13/12/11 using the following Terminal command:

usdzconvert ~/Desktop/model.fbx -v

If you're using Xcode 10, a command in Terminal looks like this:

xcrun usdz_converter ~/Desktop/model.fbx ~/Desktop/model.usdz -v

A detailed description of how to work with the usdzconvert command in Terminal you can see HERE.

like image 120
Andy Jazz Avatar answered Sep 20 '22 04:09

Andy Jazz


Now Apple provided a much easier way to convert almost any file (I would recommend using glTF/ glb as export option in Blender):

Reality Converter

It is a simple GUI tool released in January 2021, where you drop your files onto and it will give you a usdz file. Including mesh, materials and animation. For the download you need an Apple developer account.

like image 20
Leon D Avatar answered Sep 24 '22 04:09

Leon D