Search Unity

  1. Unity 2019.1 is now released.
    Dismiss Notice

Alembic for Unity

Discussion in 'Editor Workflows' started by ans_unity, Mar 13, 2018.

  1. ans_unity

    ans_unity

    Unity Technologies

    Joined:
    Oct 12, 2017
    Posts:
    61
    We are pleased to announce a Unity Alembic Importer/Exporter preview package for 2018.1. More details to follow soon.
     
    Last edited: Mar 13, 2018
  2. xCyborg

    xCyborg

    Joined:
    Oct 4, 2010
    Posts:
    497
    I can't discover it in the package manager, also resource manager disappeared as well, shoud I switch to staging-packages in the manifest or something?
     
  3. GameDevCouple_I

    GameDevCouple_I

    Joined:
    Oct 5, 2013
    Posts:
    1,424
    "Announce", not "release".
     
  4. xCyborg

    xCyborg

    Joined:
    Oct 4, 2010
    Posts:
    497
    Right, sorry I'm so excited, I hope more formats are coming like glTF and usd
     
    GameDevCouple_I, FROS7 and ans_unity like this.
  5. FROS7

    FROS7

    Joined:
    Apr 8, 2015
    Posts:
    24
    I cant wait for glTF tbh.
     
    GameDevCouple_I likes this.
  6. seanlow

    seanlow

    Unity Technologies

    Joined:
    Jul 5, 2016
    Posts:
    2
    laurentlavigne likes this.
  7. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    2,012
    Is Alembic supported across more software than Disney/Pixar's new format (UDC or some other acronym)?
     
  8. markvi

    markvi

    Unity Technologies

    Joined:
    Oct 31, 2016
    Posts:
    47
    Hi Laurent,

    Yes, Alembic is an industry-wide standard for vertex caches across animation and vfx. Prior to Alembic every studio had their own home-grown vertex cache format and maintained its own importers and exporters for each DCC. USD is still not widely used outside of a few big studios, though it is gaining ground quickly. Note that USD doesn't replace Alembic - it actually integrates it.
     
    seanlow likes this.
  9. bhudson

    bhudson

    Joined:
    Nov 21, 2014
    Posts:
    16
    seanlow likes this.
  10. seanlow

    seanlow

    Unity Technologies

    Joined:
    Jul 5, 2016
    Posts:
    2
    Thanks everyone for joining us today! I'm glad that the presentation and demo project showed help you all to better understand how to use Alembic and setup in TImeline. Also thanks for the positive feedback during our sessions today. Hope you all have fun in creating more awesome contents using Alembic Importer! Feel free to let us know if you have any questions! :)
     
  11. damonsnowprint

    damonsnowprint

    Joined:
    Jun 21, 2017
    Posts:
    1
    Hello Sean. Quick question about performance with alembic on Mobile. If the vertex count is fairly low (ie mobile sizes < 1000 verts) is there any performance gain/loss to using an alembic cache? Using an example of say a 30 frame animation of 1000 verts vs a skinned mesh renderer with less than 6 bones and the same animation?
    (I wasn't able to be at GDC this year - would have been great to attend).

    So I guess to simplify the question further, is there any data on using an alembic cache on mobile?
    Platform wise, this question would be aimed at Iphone 5s and above (so after Metal was introduced) - or the Android Equiv.

    Thanks.
     
  12. markvi

    markvi

    Unity Technologies

    Joined:
    Oct 31, 2016
    Posts:
    47
    Hi, thanks for your question. We haven't done any testing at all on mobile platforms. Our efforts at the moment are focused on making Alembic available in the Unity Editor for film, VFX and animation customers. We have had internal discussions to bring some kind of compressed vertex cache to the Unity Player, but don't have a timeline for that at the moment.

    That said, we certainly don't want to prevent anyone from experimenting! Our Alembic support is completely open-source, so if anyone wants to contribute an iOS or Android build, you are welcome to submit a pull request to the github project.
     
    seanlow likes this.
  13. ans_unity

    ans_unity

    Unity Technologies

    Joined:
    Oct 12, 2017
    Posts:
    61
    Hi everyone,

    We have a video to help you get started with the Package Manager version of the Alembic importer here.

    Enjoy!
     
  14. kteitsort

    kteitsort

    Joined:
    Apr 30, 2014
    Posts:
    3
    Any likelihood of Hololens support with the Alembic Importer/Exporter preview package for 2018.1? and would the compressed vertex cache potentially work with the Hololens?

    Thanks
     
    Last edited: Apr 24, 2018
  15. ans_unity

    ans_unity

    Unity Technologies

    Joined:
    Oct 12, 2017
    Posts:
    61
    Sorry kteitsort but I don't have an answer to your question at the moment, I'll investigate with the XR team and come back as soon as I have more information.
     
  16. SoloChristian

    SoloChristian

    Joined:
    Oct 9, 2012
    Posts:
    572
    We are back to an old problem Again. This dos NOT recognize "Use Face Sets" So my character that has 2 materials (One for the Head and One for the Body) imports with only a Single material. I need a Fix for this A.S.A.P.!!
     
  17. WI_Spas

    WI_Spas

    Joined:
    May 11, 2018
    Posts:
    3
    Any plans for PS4/XB1 official support somewhere down the line and if so, any ETA?
     
  18. SoloChristian

    SoloChristian

    Joined:
    Oct 9, 2012
    Posts:
    572


    Here is my first test with it. :)
     
    markvi and i_saint like this.
  19. i_saint

    i_saint

    Unity Technologies

    Joined:
    Dec 14, 2015
    Posts:
    5
    this issue was resolved in private messages. but I re-write the answer to make the information public.
    this plugin generates submeshes based on face sets. but it doesn't generate materials for each face sets because Alembic doesn't have material data (so Alembic prefabs have always only one material). you need to create and assign materials in Unity.
     
  20. i_saint

    i_saint

    Unity Technologies

    Joined:
    Dec 14, 2015
    Posts:
    5
    we can't distribute binaries for consoles publicly because it is forbidden by license. but you can build it from the source (https://github.com/unity3d-jp/AlembicForUnity). if you have C++ experience, it will be not so difficult.
    not tested for a while but I did it in the past on both PS4 and XBox One. I will re-check.
     
  21. SoloChristian

    SoloChristian

    Joined:
    Oct 9, 2012
    Posts:
    572
    I am wondering about the character motion blur for Alembic files. Is this dependent on using the Unity Shaders or can I for example use a material I made with Amplify. And is there anything specific on exporting from Maya that I need to set to make sure Motion Blur is present.
     
  22. WI_Spas

    WI_Spas

    Joined:
    May 11, 2018
    Posts:
    3
    Great news! Thank you for the answer, we'll try to compile it ourselves in this case for now!
     
  23. Rod-Galvao

    Rod-Galvao

    Joined:
    Dec 12, 2008
    Posts:
    198
    If I make a liquid simulation with Realflow, export it as an alembic file and import it into Unity, can I change/deform/displace the animation somehow? The purpose here is to create variations of the same animation, preferably influenced by physics.
     
    Last edited: Jun 13, 2018
  24. SoloChristian

    SoloChristian

    Joined:
    Oct 9, 2012
    Posts:
    572
    So I have posted and messaged a few times about the Alembic Motion Blur and still haven't gotten a response. We spent the entire weekend trying to get it to work with no success. How do we force this to work??????

     
    Last edited: Jun 17, 2018
  25. vkovec

    vkovec

    Unity Developer - FBX Exporter

    Joined:
    Aug 9, 2017
    Posts:
    148
    Hi SoloChristian,

    In order to use motion blur with custom shaders, you can add the following to your shader:

    Code (csharp):
    1.  
    2. SubShader { UsePass "Hidden / Alembic / MotionVectors / MOTIONVECTORS" }
    3.  
    For more information see: https://translate.google.com/translate?sl=ja&tl=en&u=https://github.com/unity3d-jp/AlembicImporter

    Let me know if you run into any issues.

    Best,
    Viktoria
     
    SoloChristian likes this.
  26. vkovec

    vkovec

    Unity Developer - FBX Exporter

    Joined:
    Aug 9, 2017
    Posts:
    148
    Hi @Rod-Galvao,

    The most practical way to do this would be to write special vertex shaders. This would not be Alembic specific.

    Best,
    Viktoria
     
  27. SoloChristian

    SoloChristian

    Joined:
    Oct 9, 2012
    Posts:
    572
    Thank you very much for getting back to me! :) This answers one of my questions. My second question was in regards to Motion Vectors. Does Unity generate these Motion Vectors on import Or is this something we need to set at the Alembic Export stage from our animation program such as Maya. If we do have to set this up on export, What are the setting we need to be sure to have on?
     
  28. SoloChristian

    SoloChristian

    Joined:
    Oct 9, 2012
    Posts:
    572
    So I made a new Alembic with Relative Frame Sampling turned on. I figured this was one of the things we were missing for motion blur. We are using the Alembic from the Package Manager set-up. The result is Unity crashes on import every time.. Any ideas for a fix???

    Update: It also crashes on the Latest version on the Japan GitHub as well...
     

    Attached Files:

    Last edited: Jun 20, 2018
  29. vkovec

    vkovec

    Unity Developer - FBX Exporter

    Joined:
    Aug 9, 2017
    Posts:
    148
    You shouldn't need to export any additional info from Maya or set specific import settings.

    The necessary data will be calculated in the alembic runtime.

    However, you may need to add some additional information to the motion vector shader pass.
    I will get back to you when I have more information on what needs to be added.

    Best,
    Viktoria
     
    SoloChristian likes this.
  30. vkovec

    vkovec

    Unity Developer - FBX Exporter

    Joined:
    Aug 9, 2017
    Posts:
    148
    I was able to reproduce the crash on my side as well. It seems that this setting makes cyclic samples, which the importer does not currently handle.
    I have logged this as an issue. In the meantime I recommend turning off the 'Frame Relative Sample' option. Cyclic samples should not be necessary for realtime-rendering.

    Best,
    Viktoria
     
    SoloChristian likes this.
  31. SoloChristian

    SoloChristian

    Joined:
    Oct 9, 2012
    Posts:
    572
    Ok so it's different then film rendering, Because those need to be checked for programs such as Isotropix Clarisse. Its adjustable sampling for the quality of the motion blur.
     
  32. amorinImgSpc

    amorinImgSpc

    Joined:
    Jun 11, 2018
    Posts:
    41
    With Unity, motion vectors are generated at runtime and are enabled or disabled on a per-renderer basis. Conveniently enough, sample count for Unity motion blur can be adjusted with a slider in the Post-Processing Stack.

    I would suggest to at first try to apply the " Alembic > Standard " shader on your character and see if it displays motion blur properly with the Post-Processing Stack enabled, as that shader has built in Alembic motion vector support. What version of the Post-Processing Stack are you using?

    Let me know how things work out;
    Alexis
     
  33. SoloChristian

    SoloChristian

    Joined:
    Oct 9, 2012
    Posts:
    572
    We are doing all our tests with V2 of the Post processing stack. Do you recommend we stick with the alembic version we get through the Package Manager or the builds from Japan GitHub at this point???
     
  34. amorinImgSpc

    amorinImgSpc

    Joined:
    Jun 11, 2018
    Posts:
    41
    The package manager version, most definitely! It's the one that's the most up to date. If you give me some more leads we can dig in a little more together into the issue:

    1. Can you get other post-processing effects to work properly with your scene?
    2. If you click on your .abc file in your assets and look into its import settings, is "interpolate samples" toggled on? It has to be enabled for the importer to generate the information required for proper motion vector generation.
    3. What shader are you using on your character in your tests? Does the Alembic Standard shader look any different?

    Alexis
     
    pachermann likes this.
  35. SoloChristian

    SoloChristian

    Joined:
    Oct 9, 2012
    Posts:
    572
    I am going to make a fresh test today and let you know the results.

    I can tell you that we always have several effects including Asset Store FX and V2 Post Stack. Our preferred Renderer at this point is Offline Render. We will stick to your shader on today's test and see what we can get as a result.
     
  36. amorinImgSpc

    amorinImgSpc

    Joined:
    Jun 11, 2018
    Posts:
    41
    Great! I'll be awaiting your results.
     
  37. SoloChristian

    SoloChristian

    Joined:
    Oct 9, 2012
    Posts:
    572
    My only concern on this is that we don't always produce the Alembic files we use. Most of our clients are in the film industry and will probably have turned on Frame Relative Sampling.
    Will it be possible in the future to at least import these files even if Unity doesn't use the sampling. So we are not forced to ask our clients to Re-Export all their files?
     
  38. SoloChristian

    SoloChristian

    Joined:
    Oct 9, 2012
    Posts:
    572


    Unity Build:2018.1.6f1 (64-bit)

    Post Processing Package Version 2.0.7

    Alembic Package Version 0.2.0

    Motion Blur:
    Shutter Angle 122
    Sample Count 15

    Other Unity FX: Depth Of Field, Grain, Screen Space Reflections.

    Third Part FX: Next-Gen Soft Shadows, Hx Volumetric Lighting, MadGoat SSAA and Resolution Scaling, and Horizon Based Ambient Occlusion.

    Rendered with Offline Render

    Shader Used: Alembic / Standard (Roughness Setup)

    It worked Great. Now all I need to find out is all the additions I would need to add to shader code. The guys that write the Amplify Shader Editor said they would be happy to add the code as an option, So we can use it on our custom shaders.
     
    vkovec likes this.
  39. amorinImgSpc

    amorinImgSpc

    Joined:
    Jun 11, 2018
    Posts:
    41
    Glad to see the motion blur works! As far as the Frame-Relative Sampling crash is concerned, we're tracking it now and we'll fix it in a future release. For the time being, you can try to import the offending Alembic files in Maya and re-export them without the option checked; I just tested this workaround and it looks like it's working.

    Like Viktoria said some days ago, your shaders would only needs this subshader pass:

    Code (CSharp):
    1. SubShader { UsePass "Hidden / Alembic / MotionVectors / MOTIONVECTORS" }
    to work. I expect the people at Amplify can help you make a node for that easily enough.

    Tell me if you need anything else; always happy to help!
    Alexis
     
    Last edited: Jul 4, 2018
    SoloChristian likes this.
  40. SoloChristian

    SoloChristian

    Joined:
    Oct 9, 2012
    Posts:
    572
    It is now in the latest build of the Amplify Shader Editor. :)
     
  41. amorinImgSpc

    amorinImgSpc

    Joined:
    Jun 11, 2018
    Posts:
    41
    Neat! Congrats to the people at Amplify for being so efficient. :) Enjoy your custom shaders!
     
    SoloChristian likes this.
  42. Headup_Dev

    Headup_Dev

    Joined:
    Sep 18, 2013
    Posts:
    13
    Hi there,

    you mentioned that you successfully tried it on Xb1 and PS4 as well. We're currently trying this and are running into some problems. Any chance to receive the ready-to-use versions for consoles (Xb1, PS4 and also Switch)? Maybe through the closed systems/forums of the respective platforms? That would help us a lot.

    Cheers!
    Mark
     
  43. i_saint

    i_saint

    Unity Technologies

    Joined:
    Dec 14, 2015
    Posts:
    5
    this plugin doesn't work on Switch.
    probably it can compile and run, but your master will be rejected with high probability. (see documents about Switch if you want to to know the details)
     
  44. Mapasoft

    Mapasoft

    Joined:
    Oct 26, 2012
    Posts:
    2
    Hi Guys, I just want to know what is the latest Alembic Package number.. Actually, i use

    "dependencies": {
    "com.unity.formats.alembic" : "0.1.2-preview"
    }

    Thanks...
     
    DougRichardson and amorinImgSpc like this.
  45. amorinImgSpc

    amorinImgSpc

    Joined:
    Jun 11, 2018
    Posts:
    41
    You're up to date :)! We don't have an ETA for it but we're working on the 1.0 release...
     
  46. tonedela

    tonedela

    Joined:
    May 13, 2015
    Posts:
    1
    Hi there,
    Anyone knows how to get alembic motion blur working with Lit shader in HD Render Pipeline?
    Thanks..
     
    fherbst likes this.
  47. amorinImgSpc

    amorinImgSpc

    Joined:
    Jun 11, 2018
    Posts:
    41
    Hi! I managed to reproduce your issue. Normally you can just add
    Code (CSharp):
    1. UsePass "Hidden / Alembic / MotionVectors / MOTIONVECTORS"
    to any shader and Alembic motion vectors will be generated out-of-the-box for it but unfortunately the special shaders involved in making that happen (that come bundled with the Alembic package) aren't compatible yet with the way the shaders in the HDRP are structured.

    I'll log the issue, thank you for bringing it to light!

    Alexis
     
  48. miniduck

    miniduck

    Joined:
    Sep 27, 2012
    Posts:
    117
    Many thanks for pushing this as an official package, it's been working great so far!

    In an older version from unity-jp releases it used to be possible to reference alembic outside of you project.
    Would be great to have that option brought back. When you are simultaneously using the same assets in an offline renderer, it's a little bit wasteful having duplicated data in your unity project structure. (we don't build players, only run the editor)

    also noticed this ticket on the unity-jp github page:
    https://github.com/unity3d-jp/AlembicForUnity/issues/95
    This is not in the current release?

    Thank you
     
    Last edited: Sep 5, 2018
  49. vkovec

    vkovec

    Unity Developer - FBX Exporter

    Joined:
    Aug 9, 2017
    Posts:
    148
    Hi miniduck,

    That's great, glad to hear it!

    Thank you for the feedback, we will look into adding this back. A potential workaround could be creating symlinks to your files and adding these into your Unity project.
    On Windows you may need to be an Administrator for this. Alternatively, you can use a junction to link a directory into the project.

    I believe this fix was added after the latest release. It will be in an upcoming release.

    Best,
    Viktoria
     
  50. Phatage13

    Phatage13

    Joined:
    Nov 13, 2015
    Posts:
    4
    Hi, trying to build this for a HoloLens app. I'm able to get everything working correctly in Unity but upon building the VS project, I'm getting that it can't find DisplayName and DisplayNameAttribute in the System.ComponentModel namespace. I'm only getting this in Unity's console though, when I go to the error in VS there is no error there. Is there a different version of the namespace being used in the building process?