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