Search Unity

  1. Unity 2019.1 is now released.
    Dismiss Notice

USD for Unity Updates

Discussion in 'Editor Workflows' started by marief_unity, Mar 18, 2019.

  1. marief_unity

    marief_unity

    Unity Technologies

    Joined:
    Oct 9, 2018
    Posts:
    61
    Hey there,

    We are excited to announce that the USD Unity SDK is being released as a Preview Package for Unity! This package greatly expands on the existing USD integration with Unity.

    To get started, open the package manager (Window > Package Manager), enable preview packages (in “Advanced” options), search for USD and click the install button :
    usd-install.gif

    A blog post will be issued soon with more information !

    In the meantime, you can check the documentation.

    We would love to hear your thoughts and questions, so let us know here !
     
    Last edited: Mar 18, 2019
  2. Frenchdog

    Frenchdog

    Joined:
    Sep 17, 2018
    Posts:
    2
    Thanks for that. Looks already really nice!

    Quick question. When loading the Pixar Kitchen_set as a Game Object, switching the "Payload Policy" to "Load All" is working only if I click on the "Reimport from USD" icon. Is it the expected workflow?

    Cheers,
    Guillaume
     
  3. jcowles

    jcowles

    Joined:
    May 25, 2016
    Posts:
    11
    Thanks! And yes, that's right, it will not automatically reload.
    So it is working as intended, but automatically reloading might be nice to do in the future.
     
  4. Frenchdog

    Frenchdog

    Joined:
    Sep 17, 2018
    Posts:
    2
    Thanks for the confirming it is the expected behavior.
     
  5. delisef

    delisef

    Joined:
    May 20, 2013
    Posts:
    3
    Does this work in 2019.2? I dont see the package in the package manager
     
  6. vladala

    vladala

    Unity Technologies

    Joined:
    Mar 3, 2017
    Posts:
    40
    I just tried, and I see it package manage UI.
    The package should work from 2018.3 as a package there are side branches in case you need to use an ancient version of unity.
     
  7. SatishGodaPearl

    SatishGodaPearl

    Joined:
    May 7, 2018
    Posts:
    5

    Attached Files:

    Last edited: Mar 26, 2019
    jeremyco, marief_unity and vladala like this.
  8. marief_unity

    marief_unity

    Unity Technologies

    Joined:
    Oct 9, 2018
    Posts:
    61
    SatishGodaPearl likes this.
  9. kexar66

    kexar66

    Joined:
    Feb 27, 2013
    Posts:
    31
    Hi, can it import USD in runtime?
     
  10. jeremyco

    jeremyco

    Unity Technologies

    Joined:
    Oct 17, 2018
    Posts:
    13
    Yes! Run-time import is supported. There are /some/ limitations, but the vast majority of features are supported.
     
    Blarp likes this.
  11. jeremyco

    jeremyco

    Unity Technologies

    Joined:
    Oct 17, 2018
    Posts:
    13
    Yes, 2019.2 is supported, but you need to enable preview packages (check the blog post for details).
     
  12. APSchmidt

    APSchmidt

    Joined:
    Aug 8, 2016
    Posts:
    1,794
    What does USD stand for exactly?
     
  13. jeremyco

    jeremyco

    Unity Technologies

    Joined:
    Oct 17, 2018
    Posts:
    13
    This is how you install the USD package:
     

    Attached Files:

  14. jeremyco

    jeremyco

    Unity Technologies

    Joined:
    Oct 17, 2018
    Posts:
    13
    APSchmidt likes this.
  15. APSchmidt

    APSchmidt

    Joined:
    Aug 8, 2016
    Posts:
    1,794
  16. jeremyco

    jeremyco

    Unity Technologies

    Joined:
    Oct 17, 2018
    Posts:
    13
    francois85 likes this.
  17. Blarp

    Blarp

    Joined:
    May 13, 2014
    Posts:
    139
    Us AR devs thank you.

    GLTF and Umbra gonna struggle to compete with this via asset streaming
     
  18. Jean-Moreno

    Jean-Moreno

    Joined:
    Jul 23, 2012
    Posts:
    425
    Pretty neat!
    I suggest not serialiazing the Mesh instances in the scenes/prefabs using HideFlags, since they will be generated again from the source files eventually - unless there's a reason for it.
    Else they will be serialized as text and it will take a long time to open.
    This is what we did for the Sonder short film with Alembics importing, cutting hundreds of MBs in the scene files and reducing scene load times from multiple seconds to less than one.
     
    Blarp, jeremyco and vladala like this.
  19. jeremyco

    jeremyco

    Unity Technologies

    Joined:
    Oct 17, 2018
    Posts:
    13
    Yep, this is on the to-do list for the next release, thanks for the tip!

    Sonder is wonderful, BTW -- great work!!
     
    Jean-Moreno and Blarp like this.
  20. francois85

    francois85

    Joined:
    Aug 11, 2015
    Posts:
    373
    No feedback yet but just wanted to say THANK YOU !! This is awesome especially for film !!
     
    jeremyco and Blarp like this.
  21. francois85

    francois85

    Joined:
    Aug 11, 2015
    Posts:
    373
    100% agree, I’ve working in the feature film vfx and animation industry for over 10 year and USD is an absolute key feature. Every top animation and vfx house leverage USD. So I’m supper excited to see this in Unity. This will definitely draw the attention from big studios
     
    jeremyco and Blarp like this.
  22. Blarp

    Blarp

    Joined:
    May 13, 2014
    Posts:
    139
    Pixar has: Unreal, Unity, Apple, and Autodesk on the same page with USD.

    That alone is pretty damn impressive.

    Everyone is going to be pumping out 3d films on their video streaming services via unreal and unity for the next 10 yrs at least.

    Now is probably the only time "fbx killer" is actually taken seriously.
     
  23. pachermann

    pachermann

    Joined:
    Dec 18, 2013
    Posts:
    54
    @marief_unity is it possible to compile also on Mobile platforms when the USD system is active?
    We love to make simulations and complex things with alembic caches.
    I hade issues with USD and Alembic before, could not compile to systems like occulus go or IOS.

    thanky for the great product anyway.
     
  24. jeremyco

    jeremyco

    Unity Technologies

    Joined:
    Oct 17, 2018
    Posts:
    13

    Currently you can build USD assets into your scene to be released on all Unity platforms, but you cannot read or write USD files at runtime on platforms other than OSX and Windows.

    This is possible, iOS actually ships with USD libraries from Apple, however the work to fully support mobile platforms still needs to be done.

    If others need this, please reply and let us know what specific platform support you need and what your use case is.
     
    Last edited: Mar 31, 2019
    Cpt_Wolfheart likes this.
  25. Blarp

    Blarp

    Joined:
    May 13, 2014
    Posts:
    139
    iOS (for arkit) with import & export usd(z) functions at runtime.
    -this is for asset streaming of traditional 3d objects or generated meshes from ML image segmentation. Segmentation is mainly used for scanning objects and making a 3d copy of it in AR on mobile devices or to send to a server somewhere.

    We need this functionality really bad in the AR space. It's above and beyond what we look for in "asset bundle" type functionality.

    If all the current examples were usable on iOS, I would be happy as a clam right now. Nothing more.
     
    Last edited: Mar 31, 2019
    Cpt_Wolfheart and jcowles like this.
  26. DutchDog

    DutchDog

    Joined:
    Jul 6, 2018
    Posts:
    1
    We would love to get it running on Android for XR apps on mobile platforms like Oculus GO or Magic Leap.
    Streaming 3D data is more important for mobile XR than desktop I would argue.
     
    jeremyco, pachermann and Blarp like this.
  27. pachermann

    pachermann

    Joined:
    Dec 18, 2013
    Posts:
    54
    @jeremyco thank you for the Answer!
    We had the need to use Alembic format in unity, we did granular simulations of geology.
    we had then to cancell it because we could not deploy the alembic stuff on android and ios.
    We used then a very destructive workflow with a plugin that plays a OBJ sequence, but sthe sim data was very rough, since only alembic ist so powerful in plwaying very many data.
    Do it is a different Plugin i talk about, the one from github. -> https://github.com/unity3d-jp/AlembicForUnity
    We was blazed by the integration of timeline and so on, it was super useful, if it had worked out on mobile.
    I thought maybe the new USD release could help that work out.

    If this works we will do more applications with VR and AR with such complex simulations and compile to IOS and Android, like occulusgo.

    If there is a port going on we would be very very happy, we also wil pay for plugins as such.
    we are aware that this is very intesive development.
     
    jeremyco likes this.
  28. SatishGodaPearl

    SatishGodaPearl

    Joined:
    May 7, 2018
    Posts:
    5
    Hi.

    I am getting different shading results for an USD prefab and imported fbx. The geometry was generated in Tilt Brush and I in my project I have USD package and tiltbrush toolkit package.

    Please refer to the attachment.

    Thank you,

    Satish Goda
    ---------------------------------------------
    Department Technical Director
    Pearl Studio LLC/Netflix Animation
    https://www.pearlstudio.com/
    https://www.netflixanimation.com/
     

    Attached Files:

  29. jeremyco

    jeremyco

    Unity Technologies

    Joined:
    Oct 17, 2018
    Posts:
    13
    Seems like there are two issues, one is materials and the other is that the Hull Brush geometry appears inside out. I will follow up with the Tilt Brush team about geometry.

    Regarding materials: yes, this is expected because importing FBX via the Tilt Brush Toolkit will bind the original Tilt Brush shaders (distributed with the toolkit) and will update parameters and geometry in an attempt to make the imported result look exactly like Tilt Brush. Note that this is a function of the Tilt Brush Toolkit and not FBX, it just happens that the Tilt Brush Toolkit is designed to work with FBX and the special logic is triggered on FBX import when the file has an embedded Tilt Brush tag.

    The USD importer is fully general and has no special logic for Tilt Brush, so shading differences are expected.

    To get similar behavior for USD import, a post processor could be created to similarly bind the correct Tilt Brush materials, but this is work that needs to be done and would still require the shaders/materials from the Tilt Brush Toolkit.
     
    Last edited: Apr 2, 2019
    Blarp and SatishGodaPearl like this.
  30. SatishGodaPearl

    SatishGodaPearl

    Joined:
    May 7, 2018
    Posts:
    5
    Hi Jeremy.

    Thank you for the detailed reply. For now, I can use the fbx for the sketches and then USD for the camera paths.

    Will also look into the post processor workflow if required.

    Thank you,
    Satish.
    ---------------------------------------------
    Department Technical Director
    Pearl Studio LLC/Netflix Animation
    https://www.pearlstudio.com/
    https://www.netflixanimation.com/
     
  31. dreamerflyer

    dreamerflyer

    Joined:
    Jun 11, 2011
    Posts:
    897
    after test the demo,found some problem:
    1.the .usd format model can not preview in inspector as obj.
    2.how to dynamic load the scene ,and set the lod level?
    3.can streaming load the .usd?
     
  32. jeremyco

    jeremyco

    Unity Technologies

    Joined:
    Oct 17, 2018
    Posts:
    13
    You should be able to preview meshes in the inspector -- what are you trying to do exactly?

    If you mean LOD Groups, this is not yet supported, but based on discussions happening on the usd-interest Google Group, it seems like there is agreement that LODs should be represented as USD Variant Sets.

    By this do you mean you want to load USD at run-time? If so, yes, this is possible, either via the Timeline for streaming animation or by dynamically importing USD objects.

    If you are asking if there is an automatic streaming system which will automatically load and unload USD based on the camera position, no this does not exist, but it can be written via C# script.

    Does that make sense?
     
    dreamerflyer and Blarp like this.
  33. dreamerflyer

    dreamerflyer

    Joined:
    Jun 11, 2011
    Posts:
    897
    usd.png how preview the usd format mesh. thanks.
     
  34. jeremyco

    jeremyco

    Unity Technologies

    Joined:
    Oct 17, 2018
    Posts:
    13
    Oh! That is by design, USD files are not assets, they must be imported by using the USD menu (see "Importing and Exporting USD Assets" in the blog post.
     
  35. DominoOne

    DominoOne

    Joined:
    Apr 22, 2010
    Posts:
    404
    This package is very cool, thanks! We've started using it for USDZ export and would like to be able to export animation, as well. I've just tried animating a cube in Unity and exporting it as USDZ – it doesn't move on an iPhone. I also tried exporting an animated skinned mesh – it doesn't load on the iPhone at all. Any idea what might be wrong? Do I need to do something additional to make it work?
     
  36. jcowles

    jcowles

    Joined:
    May 25, 2016
    Posts:
    11
    I don't think vertex cache animation is supported on iPhone (IIRC) and skinned mesh support is currently a little finicky. If you can share a Unity project, I'd be happy to look at it.
     
  37. DominoOne

    DominoOne

    Joined:
    Apr 22, 2010
    Posts:
    404
    Thank for the reply. Here's a sample project (I deleted the Library to make the package smaller, so it will have to regenerate when you open the project in Unity): https://www.dropbox.com/s/p9oia0ip7oluj8r/USDZ Unity.zip?dl=1

    I used a random skinned animated mesh from the Asset Store. It seems simple enough to work, but it just doesn't :( It would be great to know how to make it work.
     
  38. bfloch

    bfloch

    Joined:
    Jan 4, 2013
    Posts:
    24
    Are you planning for a Linux version? Or would it be possible to build for Linux at all from the current state?
     
  39. jeremyco

    jeremyco

    Unity Technologies

    Joined:
    Oct 17, 2018
    Posts:
    13
    Currently there is no Linux build, but in theory it should be both possible and fairly easy to create. That said, I personally don't have easy access to a Linux workstation.

    Regarding plans, @marief_unity is best to answer that.
     
  40. jcowles

    jcowles

    Joined:
    May 25, 2016
    Posts:
    11
    The problem is the rig root is the character root, but USD needs one object for the Skeleton and one object for the SkelRoot.

    The structure you sent looks like this:

    /RPG-Character
    /RPG-Character/Motion
    /RPG-Character/Mesh



    If you add a parent game object to Motion, it will export correctly:

    /RPG-Character
    /RPG-Character/Rig/Motion
    /RPG-Character/Mesh


    And looks like this in usdview (see attached gif)

    I don't think there is much we can do about this, but I'll think about it -- at the least, maybe we can emit a warning with instructions on how to fix the rig so it exports...
     

    Attached Files:

  41. DominoOne

    DominoOne

    Joined:
    Apr 22, 2010
    Posts:
    404
    Thank you! I had tried modifying the hierarchy in all kinds of ways (mostly trying to simply it, not add objects), but hadn't tried this one :) An error with the explanation how to fix this would be super useful!

    Now it shows up on mobile, too, but it still doesn't animate there. It doesn't seem like anything new – people are continually complaining that their animations show up on the macOS viewer, but don't on iOS. There are various workarounds that seem to help, eg.: https://github.com/kcoley/gltf2usd/issues/22 However, I can't confirm if it's the same case, because I can't find the USDA export in Unity :( Any idea what else could be done here? Thanks!
     
  42. jcowles

    jcowles

    Joined:
    May 25, 2016
    Posts:
    11
    There is currently a mis-match between iOS/Model IO skeleton setup and the actual USD specification. When I look into the rigging setup, I'll see if we can do anything about this at the same time.
     
    Blarp likes this.
  43. DominoOne

    DominoOne

    Joined:
    Apr 22, 2010
    Posts:
    404
    OK, thanks. When do you think that could happen (just to be aware)?
     
  44. DominoOne

    DominoOne

    Joined:
    Apr 22, 2010
    Posts:
    404
    Any news on this (or any idea when to expect anything)? :)
     
    Blarp likes this.
  45. Udit_N

    Udit_N

    Joined:
    Mar 9, 2015
    Posts:
    16
    Hello!

    I have downloaded the "Kitchen_Set" USD asset from the given link, but when I am importing it into unity 2019.1, it is getting imported but it's absolutely showing nothing when dragged into the scene.
    I have done all the essential settings required for the USD setup in project settings.
    I have attached a screenshot of the scene.
    Kitchen_Set_Import.jpg
     
  46. marief_unity

    marief_unity

    Unity Technologies

    Joined:
    Oct 9, 2018
    Posts:
    61
    Blarp likes this.
  47. marief_unity

    marief_unity

    Unity Technologies

    Joined:
    Oct 9, 2018
    Posts:
    61
    Hey @Udit_N !

    Can you try setting Payload policy to all and refresh ?
     
  48. DominoOne

    DominoOne

    Joined:
    Apr 22, 2010
    Posts:
    404
    Hi. Thanks for the link. But isn't this the issue jcowles offered a workaround for? For me it helped make the model readable, but it still doesn't animate. So, it seems something else is wrong too. Any info on that would be very appreciated :)
     
  49. LittleBlueDot

    LittleBlueDot

    Joined:
    Wednesday
    Posts:
    3
    I'm having the same problem.
     
  50. jeremyco

    jeremyco

    Unity Technologies

    Joined:
    Oct 17, 2018
    Posts:
    13
    For kitchen set, make sure you set the payload policy to "load all", then hit the "reimport" button -- does that resolve the issue?