SlideShare a Scribd company logo
Unity asset workflows for Film and Animation pipelines - Unite Copenhagen 2019
Unity Asset Workflows for
Film and Animation
Pipelines
Chris Redmann
Unity Technologies
What should I get out of this?
3
1. How can I get data from my production pipeline into Unity?
2. What can I do with it, once it is in Unity?
3. How can I get my data back out from Unity, and into my
pipeline?
Who is this talked geared for?
4
— Likely familiar with production pipelines, but new to Unity
— Familiar with Unity, but new to using Film workflows
— Interested in learning about how to leverage Unity in your
production pipeline
Production Pipelines
6
Story Art
Editorial
Modeling Rigging
Surfacing
Layout
Animation
Crowds
Character
FX
FX
LightingMatte
Painting
Compositing
Where does Unity fit in the production
pipeline?
8
— Unity is a general real-time engine
— Allow ingestion of industry standard formats
— Export of assets
– Same format
– Other methods for consumption in the pipeline
What are the industry standard formats?
9
What are the industry standard formats?
10
Requirements
11
— Unity 2019.3.0b4
— Packages
— USD (preview.1-1.0.1)
— Alembic (1.0.6)
— High Definition RP (7.0.1)
— Unity Recorder (preview.1-2.0.3)
— Unity AOV Recorder (preview.3-0.1.0)
What do we need to get started?
12
How do I get data into Unity?
13
— Cover some basic export settings
— Common DCC Tools
— Maya
— Houdini
Starting with Alembic
14
— What is supported?
— IPolyMesh
— IPoints
— ICamera
— IFaceSet
— IXform
— ISubD is not
– Not for transferring workflow data
Houdini Alembic Output
15
— Primitive Groups
— Save Non-Empty Groups as Face
Sets
— Submesh output
— Point Export
– POP objects
– SOP Points
— Attributes
– Point
– Vertex
Maya Alembic Output
16
— Shading groups as submeshes
— Enable Write Face Sets
— Multiple UV sets
– Enable UV Write
– Enable Write UV Sets
— Vertex Color
– Enable Write Color Sets
— Write Normals
Starting with USD
17
— What is supported?
— UsdGeomMesh
— UsdGeomPointInstancer
— UsdGeomCamera
— UsdSkel
— As name implies, scene description format
– More supported scene entities than Alembic
– Rigs can be handled via UsdSkel
– PreviewSurface – Basic Material
Houdini USD Output
18
— The Prefix will be set as the root in the
Unity Prefab or GameObject
— For animated sequences, use one file
— Use the usdprimpath primitive attribute
for GameObject naming
— Attributes
– st/uv
– Cd
– N
Maya USD Output
19
— pxrUsdExport
— Export UVs
— map1
— Export displayColor primvar
— UsdSkel
– Export Skeletons
– Export Skin Clusters
— Default Mesh Scheme
Now I have data from my pipeline, how do I get it into
Unity?
20
Start with Alembic import
21
— Import like any other asset
— Creates a Prefab
— Entire Xform hierarchy recreated
Alembic caveats
22
— Copied into project
— Reimport on external Asset change
— No material support
– Alembic Material Mapper (Film TV toolbox package)
– Requires simultaneous export of FBX, but could alleviate initial asset
pain
Alembic Components
23
— Alembic Stream Player
— Alembic Points Cloud
— Alembic Points Renderer
— Alembic Exporter
The time parameter can be used to set a
specific point in the cache
Alembic Stream Player
24
Offsetting this adjusts the point in time, but
will not drive the animation
Alembic Import
25
USD Import
26
— USD Menu
– Import as GameObjects
– Import as Prefab
– Import as Timeline Clip
USD Import
27
— UsdSkel
– Quality Settings Skin Weights
— Import settings
– Composition arcs
– UV data
— USD Components
— Not copied into the Project
— Can also import Alembic
USD Asset - Simple
28
— Rebuilding and Refreshing
— USD Root Path
— Payload Policy
— Materials
USD Asset - Advanced
29
— Material Options
— Mesh Options
– St
— Generate Lightmap Uvs
— Material Import Mode
– Import Display Color
– Import Preview Surface
USD Inspector
30
— primvars from USD
— Not all are in every file
USD Inspector – Console Output
31
C# Scripting
32
string usdFile = System.IO.Path.Combine(UnityEngine.Application.dataPath, "sceneFile.usda");
// Populate Values.
var value = new MyCustomData();
value.aString = "IT'S ALIIIIIIIIIIIIIVE!";
value.anArrayOfInts = new int[] { 1, 2, 3, 4 };
value.aBoundingBox = new UnityEngine.Bounds();
// Writing the value.
var scene = Scene.Create(usdFile);
scene.Time = 1.0;
scene.Write("/someValue", value);
Debug.Log(scene.Stage.GetRootLayer().ExportToString());
scene.Save();
scene.Close();
// Reading the value.
Debug.Log(usdFile);
value = new MyCustomData();
scene = Scene.Open(usdFile);
scene.Time = 1.0;
scene.Read("/someValue", value);
Debug.LogFormat("Value: string={0}, ints={1}, bbox={2}",
value.aString, value.anArrayOfInts, value.aBoundingBox);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
UsdSkel
33
USD Variant Sets
34
USD Variant Sets
35
USD Payloads
36
USD Payloads
37
How do we play back our data?
38
After instantiating a Prefab, create a Timeline
and Playable Director
Alembic Timeline Workflow
39
On the newly created Timeline, drop an
instantiated Prefab onto an Alembic Track
Alembic Timeline workflow
40
Create an Animator and an Animation Clip
Alembic Unity Animation Workflow
41
Add the Current Time Property to the
Animation Window
USD Timeline workflow
42
Why choose one over other?
43
— Depends on pipeline
— Alembic is more straightforward, as it works like any other
imported asset
— USD is more flexible
– Also adds additional complexity
We have our data in Unity, but what are some possible
uses?
44
Look Development
45
— High Definition Render Pipeline
– Physically Based
– Area lights
– Disney Diffuse / GGX specular
– Support of DXR for ray-traced effects
Look Development
46
Layout
47
Layout
48
Previz
49
Now, how do we get data back out?
50
Geometry export
51
— Alembic
– Alembic Exporter Component
— Supported Types
— Static and Animated Meshes
— Skinned Meshes
— Particles
— Cameras
Geometry export
52
— USD
– Export Selected
– Export Overrides
– Export as USDZ
– Usd Recorder Track
USD Static Geometry
53
USD Static Geometry
54
USD Recorder
55
— Usd Recorder Track
— Usd Recorder Clip
— Game Object Hierarchy
USD Recorder
56
USD Recorder
57
USD Overrides
58
USD Overrides
59
60
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
over "column_prefab" (
prepend references = @.Unite_CPHcolumn.usda@</World>
)
{
matrix4d xformOp:transform.timeSamples = {
0: ( (1, 0, 0, 0), (0, 1, 0, 0), (0, 0, 1, 0), (0, 0, 0, 1) ),
}
uniform token[] xformOpOrder = ["xformOp:transform"]
over "Materials"
{
}
over "column"
{
float3[] extent.timeSamples = {
0: [(-0.5727719, -1.5, -0.49923185), (0.5727719, 11.14996, 0.49945638)],
}
matrix4d xformOp:transform.timeSamples = {
0: ( (1, 0, 0, 0), (0, 1, 0, 0), (0, 0, 1, 0), (0, 0, 12, 1) ),
}
uniform token[] xformOpOrder = ["xformOp:transform"]
}
USD Overrides
Geometry export caveats
61
Geometry export caveats
62
Camera export
63
Camera export
64
Unity Recorder
65
Unity Recorder
66
Unity Recorder
67
AOV Recorder
68
Render Images
69
Render AOVs
70
Where can you go from here?
71
Conclusion
73
— Use the tools, provide feedback!
— Production pipelines can vary wildly, tools need to be
extensible
— GitHub
– https://github.com/Unity-Technologies/usd-unity-sdk
– https://github.com/unity3d-jp/AlembicForUnity

More Related Content

PDF
PR-315: Taming Transformers for High-Resolution Image Synthesis
Hyeongmin Lee
 
PDF
Introduction to Computer Vision using OpenCV
Dylan Seychell
 
PPTX
Frostbite on Mobile
Electronic Arts / DICE
 
PPT
Animation
Vasu Mathi
 
PPT
A Bit More Deferred Cry Engine3
guest11b095
 
PPTX
Semantic Segmentation Methods using Deep Learning
Sungjoon Choi
 
PDF
Stable Diffusion path
Vitaly Bondar
 
PPTX
Decima Engine: Visibility in Horizon Zero Dawn
Guerrilla
 
PR-315: Taming Transformers for High-Resolution Image Synthesis
Hyeongmin Lee
 
Introduction to Computer Vision using OpenCV
Dylan Seychell
 
Frostbite on Mobile
Electronic Arts / DICE
 
Animation
Vasu Mathi
 
A Bit More Deferred Cry Engine3
guest11b095
 
Semantic Segmentation Methods using Deep Learning
Sungjoon Choi
 
Stable Diffusion path
Vitaly Bondar
 
Decima Engine: Visibility in Horizon Zero Dawn
Guerrilla
 

What's hot (20)

PDF
A Beginner's Guide to Monocular Depth Estimation
Ryo Takahashi
 
PDF
CNN Algorithm
georgejustymirobi1
 
PDF
SPU Optimizations-part 1
Naughty Dog
 
PDF
SSD: Single Shot MultiBox Detector (UPC Reading Group)
Universitat Politècnica de Catalunya
 
PPTX
You only look once (YOLO) : unified real time object detection
Entrepreneur / Startup
 
PDF
Attention is All You Need (Transformer)
Jeong-Gwan Lee
 
PDF
Generative adversarial networks
Yunjey Choi
 
PPTX
The Rendering Technology of Killzone 2
Guerrilla
 
PDF
Understanding cnn
Rucha Gole
 
PPSX
Dx11 performancereloaded
mistercteam
 
PDF
Graphics Gems from CryENGINE 3 (Siggraph 2013)
Tiago Sousa
 
PPTX
Weighted Blended Order Independent Transparency
zokweiron
 
PDF
Multiprocessor Game Loops: Lessons from Uncharted 2: Among Thieves
Naughty Dog
 
PPTX
CONVOLUTIONAL NEURAL NETWORK
Md Rajib Bhuiyan
 
PPTX
Convolutional neural network from VGG to DenseNet
SungminYou
 
PDF
Imagen: Photorealistic Text-to-Image Diffusion Models with Deep Language Unde...
Vitaly Bondar
 
PPTX
LOD and Culling Systems That Scale - Unite LA
Unity Technologies
 
PDF
「原神」におけるコンソールプラットフォーム開発
Unity Technologies Japan K.K.
 
PPTX
Approaching zero driver overhead
Cass Everitt
 
PDF
Amazing Feats of Daring - Uncharted Post Mortem
Naughty Dog
 
A Beginner's Guide to Monocular Depth Estimation
Ryo Takahashi
 
CNN Algorithm
georgejustymirobi1
 
SPU Optimizations-part 1
Naughty Dog
 
SSD: Single Shot MultiBox Detector (UPC Reading Group)
Universitat Politècnica de Catalunya
 
You only look once (YOLO) : unified real time object detection
Entrepreneur / Startup
 
Attention is All You Need (Transformer)
Jeong-Gwan Lee
 
Generative adversarial networks
Yunjey Choi
 
The Rendering Technology of Killzone 2
Guerrilla
 
Understanding cnn
Rucha Gole
 
Dx11 performancereloaded
mistercteam
 
Graphics Gems from CryENGINE 3 (Siggraph 2013)
Tiago Sousa
 
Weighted Blended Order Independent Transparency
zokweiron
 
Multiprocessor Game Loops: Lessons from Uncharted 2: Among Thieves
Naughty Dog
 
CONVOLUTIONAL NEURAL NETWORK
Md Rajib Bhuiyan
 
Convolutional neural network from VGG to DenseNet
SungminYou
 
Imagen: Photorealistic Text-to-Image Diffusion Models with Deep Language Unde...
Vitaly Bondar
 
LOD and Culling Systems That Scale - Unite LA
Unity Technologies
 
「原神」におけるコンソールプラットフォーム開発
Unity Technologies Japan K.K.
 
Approaching zero driver overhead
Cass Everitt
 
Amazing Feats of Daring - Uncharted Post Mortem
Naughty Dog
 
Ad

Similar to Unity asset workflows for Film and Animation pipelines - Unite Copenhagen 2019 (20)

PDF
Real-time CG animation in Unity: unpacking the Sherman project - Unite Copenh...
Unity Technologies
 
PDF
Introduction to Unity by Purdue university
asdf936939
 
PDF
【Unite Tokyo 2019】Unity映像制作パイプライン完全マスター
UnityTechnologiesJapan002
 
PDF
Refresh what you know about AssetDatabase.Refresh()- Unite Copenhagen 2019
Unity Technologies
 
PDF
Mobile AR Lecture6 - Introduction to Unity 3D
Mark Billinghurst
 
PPTX
Speed up your asset imports for big projects - Unite Copenhagen 2019
Unity Technologies
 
PPTX
Introduction to Unity
University of Auckland
 
PDF
The Basics of Unity - The Game Engine
OrisysIndia
 
PDF
Developing VR Experiences with Unity
Mark Billinghurst
 
PPTX
unity basics
Reham Maher El-Safarini
 
PPTX
Game Project / Working with Unity
Petri Lankoski
 
PPTX
Polybot Onboarding Process
Nina Park
 
PDF
Unity: Introduction
Václav Vančura
 
PPT
Maya To Unity3D
Susan Price
 
PPTX
unity gaming programing basics for students ppt
KathiriyaParthiv
 
PPTX
Workingwithunity 110519054824-phpapp01
Srijib Roy
 
PDF
[UniteKorea2013] Art tips and tricks
William Hugo Yang
 
PDF
Unit III-Material_Setting up Assests.pdf
vijaykrishanmoorthy
 
PPTX
Creating great Unity games for Windows 10 - Part 1
Jiri Danihelka
 
PDF
Unreal Engine Basics 06 - Animation, Audio, Visual Effects
Nick Pruehs
 
Real-time CG animation in Unity: unpacking the Sherman project - Unite Copenh...
Unity Technologies
 
Introduction to Unity by Purdue university
asdf936939
 
【Unite Tokyo 2019】Unity映像制作パイプライン完全マスター
UnityTechnologiesJapan002
 
Refresh what you know about AssetDatabase.Refresh()- Unite Copenhagen 2019
Unity Technologies
 
Mobile AR Lecture6 - Introduction to Unity 3D
Mark Billinghurst
 
Speed up your asset imports for big projects - Unite Copenhagen 2019
Unity Technologies
 
Introduction to Unity
University of Auckland
 
The Basics of Unity - The Game Engine
OrisysIndia
 
Developing VR Experiences with Unity
Mark Billinghurst
 
Game Project / Working with Unity
Petri Lankoski
 
Polybot Onboarding Process
Nina Park
 
Unity: Introduction
Václav Vančura
 
Maya To Unity3D
Susan Price
 
unity gaming programing basics for students ppt
KathiriyaParthiv
 
Workingwithunity 110519054824-phpapp01
Srijib Roy
 
[UniteKorea2013] Art tips and tricks
William Hugo Yang
 
Unit III-Material_Setting up Assests.pdf
vijaykrishanmoorthy
 
Creating great Unity games for Windows 10 - Part 1
Jiri Danihelka
 
Unreal Engine Basics 06 - Animation, Audio, Visual Effects
Nick Pruehs
 
Ad

More from Unity Technologies (20)

PDF
Build Immersive Worlds in Virtual Reality
Unity Technologies
 
PDF
Augmenting reality: Bring digital objects into the real world
Unity Technologies
 
PDF
Let’s get real: An introduction to AR, VR, MR, XR and more
Unity Technologies
 
PDF
Using synthetic data for computer vision model training
Unity Technologies
 
PDF
The Tipping Point: How Virtual Experiences Are Transforming Global Industries
Unity Technologies
 
PDF
Unity Roadmap 2020: Live games
Unity Technologies
 
PDF
Unity Roadmap 2020: Core Engine & Creator Tools
Unity Technologies
 
PDF
How ABB shapes the future of industry with Microsoft HoloLens and Unity - Uni...
Unity Technologies
 
PPTX
Unity XR platform has a new architecture – Unite Copenhagen 2019
Unity Technologies
 
PDF
Turn Revit Models into real-time 3D experiences
Unity Technologies
 
PDF
How Daimler uses mobile mixed realities for training and sales - Unite Copenh...
Unity Technologies
 
PDF
How Volvo embraced real-time 3D and shook up the auto industry- Unite Copenha...
Unity Technologies
 
PDF
QA your code: The new Unity Test Framework – Unite Copenhagen 2019
Unity Technologies
 
PDF
Engineering.com webinar: Real-time 3D and digital twins: The power of a virtu...
Unity Technologies
 
PDF
Supplying scalable VR training applications with Innoactive - Unite Copenhage...
Unity Technologies
 
PDF
XR and real-time 3D in automotive digital marketing strategies | Visionaries ...
Unity Technologies
 
PDF
Creating next-gen VR and MR experiences using Varjo VR-1 and XR-1 - Unite Cop...
Unity Technologies
 
PDF
What's ahead for film and animation with Unity 2020 - Unite Copenhagen 2019
Unity Technologies
 
PDF
How to Improve Visual Rendering Quality in VR - Unite Copenhagen 2019
Unity Technologies
 
PDF
Digital twins: the power of a virtual visual copy - Unite Copenhagen 2019
Unity Technologies
 
Build Immersive Worlds in Virtual Reality
Unity Technologies
 
Augmenting reality: Bring digital objects into the real world
Unity Technologies
 
Let’s get real: An introduction to AR, VR, MR, XR and more
Unity Technologies
 
Using synthetic data for computer vision model training
Unity Technologies
 
The Tipping Point: How Virtual Experiences Are Transforming Global Industries
Unity Technologies
 
Unity Roadmap 2020: Live games
Unity Technologies
 
Unity Roadmap 2020: Core Engine & Creator Tools
Unity Technologies
 
How ABB shapes the future of industry with Microsoft HoloLens and Unity - Uni...
Unity Technologies
 
Unity XR platform has a new architecture – Unite Copenhagen 2019
Unity Technologies
 
Turn Revit Models into real-time 3D experiences
Unity Technologies
 
How Daimler uses mobile mixed realities for training and sales - Unite Copenh...
Unity Technologies
 
How Volvo embraced real-time 3D and shook up the auto industry- Unite Copenha...
Unity Technologies
 
QA your code: The new Unity Test Framework – Unite Copenhagen 2019
Unity Technologies
 
Engineering.com webinar: Real-time 3D and digital twins: The power of a virtu...
Unity Technologies
 
Supplying scalable VR training applications with Innoactive - Unite Copenhage...
Unity Technologies
 
XR and real-time 3D in automotive digital marketing strategies | Visionaries ...
Unity Technologies
 
Creating next-gen VR and MR experiences using Varjo VR-1 and XR-1 - Unite Cop...
Unity Technologies
 
What's ahead for film and animation with Unity 2020 - Unite Copenhagen 2019
Unity Technologies
 
How to Improve Visual Rendering Quality in VR - Unite Copenhagen 2019
Unity Technologies
 
Digital twins: the power of a virtual visual copy - Unite Copenhagen 2019
Unity Technologies
 

Recently uploaded (20)

PDF
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
PDF
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
PDF
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
PDF
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PDF
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
PDF
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
PDF
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
PDF
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PDF
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
PDF
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
PDF
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
The Future of Artificial Intelligence (AI)
Mukul
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 

Unity asset workflows for Film and Animation pipelines - Unite Copenhagen 2019

  • 2. Unity Asset Workflows for Film and Animation Pipelines Chris Redmann Unity Technologies
  • 3. What should I get out of this? 3 1. How can I get data from my production pipeline into Unity? 2. What can I do with it, once it is in Unity? 3. How can I get my data back out from Unity, and into my pipeline?
  • 4. Who is this talked geared for? 4 — Likely familiar with production pipelines, but new to Unity — Familiar with Unity, but new to using Film workflows — Interested in learning about how to leverage Unity in your production pipeline
  • 5. Production Pipelines 6 Story Art Editorial Modeling Rigging Surfacing Layout Animation Crowds Character FX FX LightingMatte Painting Compositing
  • 6. Where does Unity fit in the production pipeline? 8 — Unity is a general real-time engine — Allow ingestion of industry standard formats — Export of assets – Same format – Other methods for consumption in the pipeline
  • 7. What are the industry standard formats? 9
  • 8. What are the industry standard formats? 10
  • 9. Requirements 11 — Unity 2019.3.0b4 — Packages — USD (preview.1-1.0.1) — Alembic (1.0.6) — High Definition RP (7.0.1) — Unity Recorder (preview.1-2.0.3) — Unity AOV Recorder (preview.3-0.1.0)
  • 10. What do we need to get started? 12
  • 11. How do I get data into Unity? 13 — Cover some basic export settings — Common DCC Tools — Maya — Houdini
  • 12. Starting with Alembic 14 — What is supported? — IPolyMesh — IPoints — ICamera — IFaceSet — IXform — ISubD is not – Not for transferring workflow data
  • 13. Houdini Alembic Output 15 — Primitive Groups — Save Non-Empty Groups as Face Sets — Submesh output — Point Export – POP objects – SOP Points — Attributes – Point – Vertex
  • 14. Maya Alembic Output 16 — Shading groups as submeshes — Enable Write Face Sets — Multiple UV sets – Enable UV Write – Enable Write UV Sets — Vertex Color – Enable Write Color Sets — Write Normals
  • 15. Starting with USD 17 — What is supported? — UsdGeomMesh — UsdGeomPointInstancer — UsdGeomCamera — UsdSkel — As name implies, scene description format – More supported scene entities than Alembic – Rigs can be handled via UsdSkel – PreviewSurface – Basic Material
  • 16. Houdini USD Output 18 — The Prefix will be set as the root in the Unity Prefab or GameObject — For animated sequences, use one file — Use the usdprimpath primitive attribute for GameObject naming — Attributes – st/uv – Cd – N
  • 17. Maya USD Output 19 — pxrUsdExport — Export UVs — map1 — Export displayColor primvar — UsdSkel – Export Skeletons – Export Skin Clusters — Default Mesh Scheme
  • 18. Now I have data from my pipeline, how do I get it into Unity? 20
  • 19. Start with Alembic import 21 — Import like any other asset — Creates a Prefab — Entire Xform hierarchy recreated
  • 20. Alembic caveats 22 — Copied into project — Reimport on external Asset change — No material support – Alembic Material Mapper (Film TV toolbox package) – Requires simultaneous export of FBX, but could alleviate initial asset pain
  • 21. Alembic Components 23 — Alembic Stream Player — Alembic Points Cloud — Alembic Points Renderer — Alembic Exporter
  • 22. The time parameter can be used to set a specific point in the cache Alembic Stream Player 24 Offsetting this adjusts the point in time, but will not drive the animation
  • 24. USD Import 26 — USD Menu – Import as GameObjects – Import as Prefab – Import as Timeline Clip
  • 25. USD Import 27 — UsdSkel – Quality Settings Skin Weights — Import settings – Composition arcs – UV data — USD Components — Not copied into the Project — Can also import Alembic
  • 26. USD Asset - Simple 28 — Rebuilding and Refreshing — USD Root Path — Payload Policy — Materials
  • 27. USD Asset - Advanced 29 — Material Options — Mesh Options – St — Generate Lightmap Uvs — Material Import Mode – Import Display Color – Import Preview Surface
  • 28. USD Inspector 30 — primvars from USD — Not all are in every file
  • 29. USD Inspector – Console Output 31
  • 30. C# Scripting 32 string usdFile = System.IO.Path.Combine(UnityEngine.Application.dataPath, "sceneFile.usda"); // Populate Values. var value = new MyCustomData(); value.aString = "IT'S ALIIIIIIIIIIIIIVE!"; value.anArrayOfInts = new int[] { 1, 2, 3, 4 }; value.aBoundingBox = new UnityEngine.Bounds(); // Writing the value. var scene = Scene.Create(usdFile); scene.Time = 1.0; scene.Write("/someValue", value); Debug.Log(scene.Stage.GetRootLayer().ExportToString()); scene.Save(); scene.Close(); // Reading the value. Debug.Log(usdFile); value = new MyCustomData(); scene = Scene.Open(usdFile); scene.Time = 1.0; scene.Read("/someValue", value); Debug.LogFormat("Value: string={0}, ints={1}, bbox={2}", value.aString, value.anArrayOfInts, value.aBoundingBox); 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
  • 36. How do we play back our data? 38
  • 37. After instantiating a Prefab, create a Timeline and Playable Director Alembic Timeline Workflow 39 On the newly created Timeline, drop an instantiated Prefab onto an Alembic Track
  • 39. Create an Animator and an Animation Clip Alembic Unity Animation Workflow 41 Add the Current Time Property to the Animation Window
  • 41. Why choose one over other? 43 — Depends on pipeline — Alembic is more straightforward, as it works like any other imported asset — USD is more flexible – Also adds additional complexity
  • 42. We have our data in Unity, but what are some possible uses? 44
  • 43. Look Development 45 — High Definition Render Pipeline – Physically Based – Area lights – Disney Diffuse / GGX specular – Support of DXR for ray-traced effects
  • 48. Now, how do we get data back out? 50
  • 49. Geometry export 51 — Alembic – Alembic Exporter Component — Supported Types — Static and Animated Meshes — Skinned Meshes — Particles — Cameras
  • 50. Geometry export 52 — USD – Export Selected – Export Overrides – Export as USDZ – Usd Recorder Track
  • 53. USD Recorder 55 — Usd Recorder Track — Usd Recorder Clip — Game Object Hierarchy
  • 58. 60 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 over "column_prefab" ( prepend references = @.Unite_CPHcolumn.usda@</World> ) { matrix4d xformOp:transform.timeSamples = { 0: ( (1, 0, 0, 0), (0, 1, 0, 0), (0, 0, 1, 0), (0, 0, 0, 1) ), } uniform token[] xformOpOrder = ["xformOp:transform"] over "Materials" { } over "column" { float3[] extent.timeSamples = { 0: [(-0.5727719, -1.5, -0.49923185), (0.5727719, 11.14996, 0.49945638)], } matrix4d xformOp:transform.timeSamples = { 0: ( (1, 0, 0, 0), (0, 1, 0, 0), (0, 0, 1, 0), (0, 0, 12, 1) ), } uniform token[] xformOpOrder = ["xformOp:transform"] } USD Overrides
  • 69. Where can you go from here? 71
  • 70. Conclusion 73 — Use the tools, provide feedback! — Production pipelines can vary wildly, tools need to be extensible — GitHub – https://github.com/Unity-Technologies/usd-unity-sdk – https://github.com/unity3d-jp/AlembicForUnity