• This repository has been archived on 25/Mar/2020
  • Stars
    star
    300
  • Rank 134,228 (Top 3 %)
  • Language
    C++
  • License
    MIT License
  • Created about 8 years ago
  • Updated about 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

USD importer & exporter plugin for Unity

USD For Unity

Overview

USD (Universal Scene Description) is a file format that can store time-sampled 3D scene. It is something like 'Better Alembic' or 'Better FBX' developed by Disney / Pixar.
This plugin allow you to import USD or Alembic scene to Unity and export Unity scene to USD or Alembic file. The above image is exported scene of Candy Rock Star in usdview.

Requirements

  • Supported platform is Windows (64 bit), Mac (64 bit) and Linux (64 bit).
  • On Windows, VS2015 runtime must be installed (usually installed on recent version of Windows).
  • Tested on Unity 5.4, 5.5, 5.6 and likely works on other 5.x versions.

Usage

  • Import this package: USDForUnity.unitypackage
  • On Linux, you need to build the plugin from source
  • Assets -> "Import USD or Alembic" and select file

Some of USD's features are supported, some of others are not.

  • Xform, Camera and Mesh schemas are supported. Mesh topology can be dynamic.
  • Animation can be interpolated, which was not supported by AlembicImporter.
  • Normals and tangents can be generated on the fly. But generating tangent is very very slow and not recommended to do it at runtime.
  • You can precompute normals and tangents via "Precompute normals / tangents" button. It precomputes normals (+ tangents) and store them into USD file.
  • Variant is supported. You can switch variant sets and variants via inspector.
  • Reference & instance is supported. Mesh data is shared among instances that have same master.
  • Payload is supported. All payloads will be loaded when the scene is loaded.
  • Subdivision is not supported. It is planned but unlikely to come soon.
  • NURBS is not supported.
  • Point instancer is not supported yet.

Notes

  • This plugin is designed to stream data directory from USD (or Alembic) files because storing all vertex cache data in memory is sometimes impractical. For this reason, USD files must be in StreamingAssets directory at runtime. We are planning to add converter instead of direct USD file streaming for better performance and runtime portability (just like built-in FBX importer is doing).

  • This plugin doesn't care about materials as USD itself doesn't support material schema. I heard USD will support material schema that can store basic PBR parameters. When it is done, this plugin will adapt to it. Apart from that, we are planning to add NVIDIA's MDL support as we have clients who are using it.

  • This plugin supports import & export skinning animation (bone + vertex weight). But these data are stored in custom attributes and unlikely to compatible with other tools for now. I heard USD's mesh schema will support bone + weight attributes. When it is done, this plugin will adapt to it.
    Custom attributes in Mesh schema that this plugin uses:

    int maxBoneWeights
    int[] boneIndices
    float[] boneWeights
    matrix4d[] bindposes
    token rootBone
    token[] bones
    float2[] primvars:uv
    float4[] tangents
  • You can build this plugin from source.
  • Windows: Just open Plugin/usdi.sln with VisualStudio2015 and build. Pre-built USD libraries are included in this repository (It is based on our fork that includes some bug fixes and optimizations for Windows).
  • non-Windows: There is cmake build file (Plugin/CMakeLists.txt). In this case you must build USD by yourself, but building this plugin is straightforward as required libraries are almost same as USD. I confirmed it works on Mac and Ubuntu 16 (Unity for Linux is here).

License

MIT

More Repositories

1

UnityChanToonShaderVer2_Project

UnityChanToonShaderVer2 Project / v.2.0.9 Release
ShaderLab
3,720
star
2

MeshSync

A package for synchronizing meshes/models editing in DCC tools into Unity in real time.
C#
1,549
star
3

unitychan-crs

Unity-Chan "Candy Rock Star" Live Demo
C#
1,254
star
4

FrameCapturer

export framebuffer, GBuffer or any RenderTextures from Unity to file. supported format: png, exr, gif, webm, mp4
C++
1,033
star
5

NormalPainter

vertex normal editor for Unity
C++
699
star
6

UnityChanSpringBone

UnityChan Sping Bone System for lightweight secondary animations
C#
468
star
7

BlendShapeBuilder

tweak vertices and generate blend shapes in Unity
C++
436
star
8

AnimeToolbox

386
star
9

NVIDIAHairWorksIntegration

NVIDIA Hair Works Integration for Unity
C#
384
star
10

Project_TCC

TCC stands for Tiny Character Controller. TCC is the best way to make your own game. This repository contains all packages and examples for TCC projects.
C#
341
star
11

StreamingImageSequence

A package for playing sequential image sequences in Unity Timeline
C#
251
star
12

RaytracedHardShadow

DXR based raytraced hard shadow for Unity
C++
245
star
13

FbxExporter

export meshes to .fbx or .obj from Unity
C++
205
star
14

AnotherThread

Sample game for Unite 2016 Tokyo.
C#
183
star
15

WaveShooter

Demo for Unite 2017 Tokyo
C#
178
star
16

FirstTutorial

171
star
17

ProfilerReader

The library that read Unity profiler binary log directly
C#
139
star
18

playgrownd

Free Unity assets for level design
C#
135
star
19

Unity-ROS-MobileRobot-UI-Tutorial

本教材は Unity と ROS を組み合わせたロボット開発のための入門用教材です。
C#
124
star
20

WebGLNativeInputField

WebGLでIME入力を可能にします
C#
93
star
21

fuze-vj-kit

VJKit for fuZe
C#
90
star
22

BoidComputeShader

Boid implementation using Compute Shader
C#
72
star
23

OpenToonzPluginForUnity

OpenToonzPlugin for Unity
C++
54
star
24

UnityChanSSU

UnityChan Sunny Side Up! Style for Unity
51
star
25

UnityChanBallRoll

Unity-chan's Ball a Roll demo project
C#
51
star
26

DojoUI1

Unity道場「モダンなUIの提案と実装」
C#
48
star
27

SeparatedAssetBundleBuild

Workaround for long time to build many AssetBundles.
C#
44
star
28

SurfingGame

Unity tutorial game project with Oculus Rift.
C#
42
star
29

AngryChicken

C#
41
star
30

piranhan

「ピラニアン」 ("Piranhan") - Retro-style 2D shooting game made with Unity
C#
41
star
31

CppScript

C++
39
star
32

AnotherThreadVR

C#
38
star
33

TweetMedia

C++
34
star
34

Unite2016TokyoWS01

Unite 2016 Tokyo のトレーニングデイで開催される、Unity サービスに関するワークショップで使用されるプロジェクトです。
C#
31
star
35

ShootingGame

シューティングゲーム(ハンズオン用)
C#
30
star
36

DynamicPluginSample

Dynamic load/unload plugin on Editor sample.
C#
26
star
37

unitychan2d

C#
26
star
38

XmlToCustomAsset

XMLからカスタム形式のアセットデータを作成して利用するサンプル
22
star
39

ProBuilderWorkshop

ProBuilderを使ったワークショップ用
C#
19
star
40

UnityChanKAGURA

UnityChan KAGURA
16
star
41

TEMPRUN

C#
13
star
42

unityads-help-jp

Unity Ads ヘルプ
10
star
43

NativeVertexCache

C++
9
star
44

webplayer-templates

UnityのWebPlayerTemplate集(UnityChan)
C#
8
star
45

BacktraceUnitySample

C#
8
star
46

LearnSubtitles

Subtitle SRT files of Learn in unity3d.com - for English/Japanese localization.
SRecode Template
6
star
47

example-customcharset

Custom character set を使った TrueType フォントインポートの例。
JavaScript
5
star
48

FontAdjust

Unity5.3系→5.4等に移行すると、UI.Textが Y方向にずれてしまうため、それを解決するツールを作りました
C#
4
star
49

EDIX-sample

C#
3
star
50

learn-subtitles

This is repository of subtitles of Unity Learn Videos (http://unity3d.com/learn/)
Ruby
3
star
51

DojoParticle

2016年 2/21に行われたUnity道場用のサンプルデータです
C#
3
star
52

First-Unity-Example

JavaScript
3
star
53

move-test

1
star
54

unite-japan-subtitles

Subtitles of Unite Japan video
1
star
55

inter-high-webplayer-templates

HTML
1
star