Search Issue Tracker
By Design
By Design in 1.8.X
Votes
8
Found in [Package]
1.4.8
1.6.4
1.7.4
1.8.2
Issue ID
TB-194
Regression
No
Embedded Timeline Clips are not being played by the parent Timeline clip when entering the Play Mode
How to reproduce:
1. Open the "IN_33987" project
2. Open the "SampleScene"
3. Enter the Play Mode
4. Observe the Console
Expected result: info messages "First Track" and "Second Track" are thrown and both Timelines are played
Actual result: info message "First Track" is thrown and only one Timeline is played
Reproducible with: 1.4.8 (2020.3.47f1), 1.6.4 (2021.3.22f1), 1.7.4 (2022.2.14f1), 1.8.2 (2023.1.0b11, 2023.2.0a9)
Reproducible on: Windows 10 Pro
Note: also reproducible in the Player
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- VFX Graph Documentation dropdown button does nothing when clicked on the right side
- Required SpriteMask class (ID 331) is stripped when "Strip Engine Code" is enabled
- “Maximized serialized file backup not found” error is thrown when minimizing a window in a newly opened project
- Build stack trace contains invalid lines when building with IL2CPP using scripts with delegates containing generic types in the signature
- Entities Systems window has a “Show Full Player Loop” dropdown which does nothing when clicked after enabling “Show Full Player Loop”
Resolution Note:
The behaviour here is by design.
The issue is occurring due to the Timeline Asset's Playable having a Passthrough traveral mode. We create all Timeline Asset Playables like this. With the kind of setup presented in this report there's an extra clip playable in between the two Timeline Playables. The 'child' timeline has two outputs that are passed through but the intermediary clip expects 1 input (EmbeddedTimelineClip's playable). It accepts the first output (which prints "First Track") but the second is ignored.
A workaround is to manually set the Timelien Playable's traversal mode to Mix.
[Serializable]
public class EmbeddedTimelineClip : PlayableAsset
{
[SerializeField] private TimelineAsset _timelineAsset;
public override Playable CreatePlayable(PlayableGraph graph, GameObject owner)
{
if (!_timelineAsset)
return Playable.Null;
Playable playable = _timelineAsset.CreatePlayable(graph, owner);
playable.SetTraversalMode(PlayableTraversalMode.Mix);
return playable;
}
}
I've discussed this with the reporter and it fixes their issue.
Resolution Note (1.8.X):
The behaviour here is by design.
The issue is occurring due to the Timeline Asset's Playable having a Passthrough traveral mode. We create all Timeline Asset Playables like this. With the kind of setup presented in this report there's an extra clip playable in between the two Timeline Playables. The 'child' timeline has two outputs that are passed through but the intermediary clip expects 1 input (EmbeddedTimelineClip's playable). It accepts the first output (which prints "First Track") but the second is ignored.
A workaround is to manually set the Timelien Playable's traversal mode to Mix.
[Serializable]
public class EmbeddedTimelineClip : PlayableAsset
{
[SerializeField] private TimelineAsset _timelineAsset;
public override Playable CreatePlayable(PlayableGraph graph, GameObject owner)
{
if (!_timelineAsset)
return Playable.Null;
Playable playable = _timelineAsset.CreatePlayable(graph, owner);
playable.SetTraversalMode(PlayableTraversalMode.Mix);
return playable;
}
}
I've discussed this with the reporter and it fixes their issue.