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:
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
OBJ -> USDZ only supports static meshes. Alembic (ABC) -> USDZ supports only tranform animations (position, rotation, scale).
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.
Updated: March 29, 2022
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".
Also, simple Transform Animation
of USDZ
models is possible in Apple Reality Composer
.
For this just drop USDZ
model into Reality Composer's scene, apply any behaviour you need and then export a result as USDZ
file.
If you like Python scripting you can apply simple Transform Animations using USDZ Schemas.
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With