I’ve a live session (.live file) and that file is updated through our own connector. That works fine… every change we made through our connector is synced and we can see the changed immediately. But when we habe time codes values on some node the sync does not work correctly.
As long as a change anything under nodes with time coded values everything is fine. But as soon as I change nodes that do not habe time coded values, those time coded values on other nodes are lost (when playing the animation nothing changes).
But the values are correctly stored / synced to des .live-file. When simply reloading the scene everything works again. Looks like the time coded value in memory of USD compose get lost when updating nodes that do not have timecoded values.
Would be nice if some one could have a look into this.
Phase 1 (0:00): We load a scene graph with time coded animations… everything works fine
Phase 2 (0:10): We change the fabric (every node with a material is changed in this case)… it still works fine
Phase 3 (0:24): We change something the results in changes to scene nodes that do not habe animations… the animation stops working (except one rotation)… but the time coded values are still there (0:48)
Phase 4 (1:00) We reload the .live-file to make sure the file is correctly changed by our connector… after reloading the .live-file everything works again
Hello. The video looks like you are playing time sampled animation on the global timeline. Can you confirm this is correct observation? If so we technically do not support timeline sync in the current release of composer, however we are investigating this for a potential future release.
As a note, when you change the material, are you changing the entire prim, or just replacing the material binding or material shader attribute? We would suggest only changing the material and not changing the entire prim.
Hello again, after speaking with Developers in more detail, we may have legit bug here. Therefore, I’ll get this filed and tagged. Thank you for reporting this.
@c.bickmeier Can you provide a small repro with two Composers instead of your customized connectors? We tried to reproduce your issues internally, but cannot find the issues. From what I can tell from your video, the issue is that the timesamples are received, but viewport does not update the rotation. Is that correct? Thanks.
Hi unfortunately no… perhaps I can put together a small samples based on the connector sample, but I think it shouldn’t be so hard to reproduce.
Create a stage (with .live filetype)
Create a scene graph with child nodes with time sampled values and some nodes without any time sampled values
Call stage->Save() and omniClientLiveProcess()
Make changes to one node that does not have time sampled values.
Call stage->Save() and omniClientLiveProcess()
That should reproduce the problem.
And yes, you are right… the values are correctly stored to the scene but the viewport do not recognize them, after the stage was updated (when non of the nodes with time sampled values are changed).