/usd-unity-sdk

Integration of Pixar's Universal Scene Description into Unity. UPDATE: This package has been superseded by our new bundle of USD packages. Please see README & link below for further details.

Primary LanguageC#Apache License 2.0Apache-2.0

Important

Update - December 12 2023

We have just released a bundle of packages that provide Unity's next generation USD support. These supersede this package and are available for Unity 2023.1+. Further details can be found in our forum announcement.

The new packages can be installed by name via Unity's Package Manager.

Package name What it does Further Details
com.unity.importer.usd USD Import manual
com.unity.exporter.usd USD Export manual
com.unity.usd.core1 USD C# SDK manual

1. Please note com.unity.usd.core is installed automatically when either the importer or exporter are installed. You only need to install this by name if you are not using either import or export.

USD Unity SDK: USD Experimental Package for Unity

This repository contains the source code for the com.unity.formats.usd package. It includes a set of libraries designed to support the use of USD in C#, as well as code to import and export USD files into the editor. The goal of this package is to make it maximally easy to integrate and explore Universal Scene Description.

Animal Logic's ALab USD Sample in the Unity Editor

Animal Logic's ALab USD Sample in the Unity Editor.

Documentation

For full documentation of this package, including usage, see the package docs.

Features

The following is a brief listing of currently supported features:

  • Importing and exporting USD:
    • Import as GameObject, Prefab, or Timeline Clip
      • File formats: .usd, .usda, .usdc, .usdz
    • Export Game Objects to USD
      • File formats: .usd, .usda, .usdc, .usdz
      • Export of Transform Overrides
    • Export via Recorder package
  • Composition:
    • Variant Selection
    • Payloads
      • Load All and Individual
    • Layer stacks
  • Geometry:
    • UV Set
    • Vertex Colour
  • Instancing:
    • Point Instancing
    • Scenegraph Instancing
  • Primitive Types:
    • Meshes:
      • Arbitrary Primvars
      • Vertex Colors
    • Materials:
      • Standard Shader and Limited HDRP and URP Support
  • Cameras
  • Lightmaps:
    • Automatic Lightmap UV Unwrapping
  • Animation:
    • Timeline Playback:
      • Skeletal Animation via USDSkel
      • Animated Meshes
    • Timeline Recording Track via Unity Recorder Package
  • General:
    • High and Low Level Access to USD API via C#

Known Limitations

We do not currently support the following:

  • Apple Silicon (MacOS users must use Intel Editor)
  • Geometry:
    • Multiple UV Sets
    • Importing mesh UVs for a prim without a material attached
  • Composition:
    • Purposes
  • Primitive Types:
    • Camera
      • We do not currently import and export all physical camera settings
    • Materials:
      • Transparency Settings eg Alpha Clipping, Double Sided are not imported for HDRP and Built in (these can be set manually)
      • Imported maps override imported single values, eg presence of ColorMap will stop single Color being imported, same for Smoothness/ Roughness.
    • Lights
  • Animation:
    • Blend Shapes
  • General:
    • Custom prims

Due to conflicting USD plugins, this package may have unexpected errors when installed side-by-side with NVidia's Omniverse Connector package.

License

The USD Unity SDK is licensed under the terms of the Apache license. See LICENSE for more information.

Contribute

See CONTRIBUTING.md

Build

See BUILDING.md