This repository contains a set of libraries designed to support the use of USD in C#/Unity. The goal of this package is to make it maximally easy to integrate and explore Universal Scene Description.
To get started, install USD via the Unity Package manager, either by using an official repository, or by browsing for a local package while working with source.
Once the USD package is installed, a USD menu will appear, enabling you to easily import an export USD files.
The following is a brief listing of currently supported features:
- Import as GameObject, Prefab, or Timeline Clip
- USDZ Export
- Transform Override Export
- Timeline Playback (Vertex Streaming & Skeletal Animation)
- Timeline Recording Track
- Mesh Import & Export
- Material Import & Export (USD Preview Surface or DisplayColor)
- Unity Materials: HDRP, Standard and limited LWRP support
- Material Export Plugins
- Variant Selection
- Payload Load/Unload
- Automatic Lightmap UV Unwrapping
- Skeletal Animation via UsdSkel
- Scene Instancing
- Point Instancing
- Integration with C# Job System
- High and Low Level Access to USD API via C#
To import materials from USD, import the USD file using the USD menu. Next, click on the root GameObject and select either DisplayColor or Preview Surface from the materials dropdown menu.
After importing a USD file with either skeletal or point cache animation, open the Timeline window. Select the root of the USD file.
Create a playable director by clicking the "Create" button in the Timeline window. Next, drag the root USD file into the Timeline to create a track for this object. Finally, drag the USD file once more to add a USD clip to the track for plaback. Scrubbing through time will now update the USD scene by streaming dat from USD.
Timeline playback is multi-threaded using the C# Job System.
The USD Unity SDK is licensed under the terms of the Apache license. See LICENSE for more information.