Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    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,962
    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.
     
    _slash_ likes this.
  2. vladala

    vladala

    Unity Technologies

    Joined:
    Mar 3, 2017
    Posts:
    189
    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,962
    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.
     
    _slash_ likes this.