Hi
DiegoM,
Thanks for your explanation. I tried your suggestion of pausing/resuming, but I didn't go into enough detail in my first message to explain the problem properly, my mistake.
I actually have multiple timeline for my character (a boss) like appear, idle, crush, attack A, attack B, death, etc…
It seemed easier for me that way as I want its actions to be randomized. So when I switch to another timeline, the offset happens. It happens exactly once I load a timeline for the first time. Once that first switch happens, the offset stays stable if I go back to a previous timeline that's already been played.
I changed a bit my example: dropbox.com/scl/fi/v73ffcvmnzlexpym6o08g/TimelineHierarchyLegsTest.c3p
I also tried several things but it didn't fix anything:
• Stop all (I expected this to reset to the initial editor state per the tooltip, but the drift is still there)
• Set time to 0 on the paused timeline before switching
• Adding Wait 0 between Play/Pause calls to force different ordering across ticks (this actually changes which transition the offset shows up on, but never removes it)
• "Warming up" every timeline once with Play all before ever using them for real gameplay
I noticed in your segmented boss fight example that all the different timelines are played from inside a function. Is using a function a requirement for timelines to work correctly, or just a structural choice in that example? And what does he think about this? There are a few good mechanics here that we could borrow.
In Construct 3, when you run a timeline for the first time on objects with parent-child hierarchy attached, the engine applies initial transforms based on where the object was sitting right before the timeline triggered. If the parent's position or angle doesn't match the starting keyframe of the new timeline before you switch, you get that offset drift.