Search Unity

  1. Looking for a job or to hire someone for a project? Check out the re-opened job forums.
    Dismiss Notice
  2. Good news ✨ We have more Unite Now videos available for you to watch on-demand! Come check them out and ask our experts any questions!
    Dismiss Notice

Timeline and Alembic Track Issue

Discussion in 'Timeline' started by olix4242, May 6, 2020.

  1. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,739
    I've found an issue in Alembic Track

    Now that Timeline has Alembic Track, it should be default behaviour to update alembic animation state on calling
    Code (CSharp):
    1. playableDirector.Evaluate();
    Right now Alembic Stream Player updates only once per frame. But an ability to update more times via timeline is essential for consistency reasons.
    p. s. This functionality is essential for Deckard Renderer motion blur that uses Multisampling, that gets rendered by rendering multiple frames with different time states.
     
  2. vladala

    vladala

    Unity Technologies

    Joined:
    Mar 3, 2017
    Posts:
    86
    Hey,

    As of alembic 2.0.0 the AlembicStreamPlayer has a method called UpdateImmediately that does not defer the streaming until LateUpdate. Unfortunately the TimelineTrack does not use it. I don't think updating upfront always would be the desired behaviour.
    What sort of functionality would you expect ?
    Would Update Immediately during an Evaluate and deferred during playback be enough?
     
    olix4242 likes this.
  3. olix4242

    olix4242

    Joined:
    Jul 21, 2013
    Posts:
    1,739
    If I understood well, yes, it should be OK. We just need that if timeline playableDirector receives Evaluate() call, it also sends each time UpdateImmediately (and animation position) to alembic track. This would work for our purposes, and it would be consistent with timeline Evaluate functionality.
    This is essential for my clients, as many of them use Deckard for rendering Alembic animations.
     
unityunity