Q. I am creating a character attack scene using Timeline. While moving the playback bar on the Timeline, the timing of the flame particle playback may not match, or the effect will continue to blow out without disappearing when rewinding. How can I synchronize time perfectly with Timeline?

A. To synchronize particles with Timeline, you need to use "Control Track" to forcefully drive particle simulation time from Timeline side, rather than "Activation Track" which only enables/disables objects.

Failure symptoms and discrepancy issues when linking with Timeline

When building productions and event scenes using Unity's cutscene production tool "Timeline," it is important to match the timing of effects. However, when many developers try to manage particles (Particle System) using the standard "Activation Track", they encounter the following synchronization errors and display bugs.

  • When you manually drag (seek) the Timeline playhead, the particles do not pause or rewind, but instead move forward and continue to blow out.
  • When rewinding and replaying the Timeline, remnants of particles that were played last time remain in the screen and remain floating.
  • The timing at which particles are generated and disappears is different between the in-game playback at runtime and the preview in the Timeline on the editor.

An analogy for beginners: The movement of putting in and taking out a music box and the mainspring

I will explain this synchronization problem by comparing it to a "screw-type music box (Particle System)" that plays music and a "movie film projector (Timeline)."

When using Activation Track, the operation is ``Put the music box that is playing on the desk at the specified time (activation), and when the time is up, put it in the drawer (deactivation)''. The music box placed on the desk begins to play music on its own using the power of its own spring. Now, even if you rewind or advance the film in the projector frame by frame, the music box on the desk will continue to play at its own tempo, regardless of the movement of the film. In this case, there is no way that the film footage and the music box music would match perfectly.

On the other hand, using a Control Track means ``removing the mainspring of the music box and connecting the film feed gear of the projector and the drive gear of the music box directly with a shaft.'' If you advance the film one frame, the music box will advance one beat, and if you rotate the film backwards and rewind it, the song on the music box will also play in reverse, returning to its original quiet state. In this way, the true nature of perfect synchronization is to firmly combine the progression of the Timeline's time axis (position of the playhead) and the internal clock that allows particles to advance the simulation.

Assumed main causes

The main reasons why the behavior of Timeline and particles do not match are as follows.

  1. Selecting an Activation Track: Since the Activation Track simply controls the active/inactive status of game objects, it does not have the power to synchronize the simulation time itself to the position of the playhead in the Timeline.
  2. Interference with Particle System's "Play On Awake" setting: If there is a setting that automatically plays the moment an object is activated, it will conflict with the Timeline control instructions and playback will run twice or the timing will be incorrect.
  3. Unfixed Random Seed: Since the way the particles scatter changes randomly each time you play, the appearance will change every time you aim for visual expression.

Specific solution and synchronization procedure

This is the correct procedure for fully synchronizing the Timeline playhead and particle system.

Step 1: Create a Control Track

Right-click an empty space in the track list on the left side of the Timeline window and add **`Control Track`** from the context menu.

Step 2: Drag and drop particle objects

From the hierarchy window, select the game object to which the `Particle System` you want to synchronize is attached, and drag and drop it directly onto the newly created `Control Track`. A `Control Playable Asset` clip will be automatically generated.

Step 3: Clip range adjustment and particle cleanup

  • Drag the left and right edges of the clip placed on the track to match the time period you want the effect to occur.
  • Open the particle object inspector and uncheck **`Play On Awake`** under `Particle System`.
  • Similarly, uncheck **`Looping`** (loop playback) under `Particle System`. Since loops and playback periods are managed on the Timeline side, there is no need to loop individual particles.
  • If necessary, make sure **`Resimulate`** near the bottom of the inspector is checked. This enables seek synchronization on the editor.

The following is a C# script for manually controlling the Particle System's time from a program in synchronization with the Timeline's seek operation.

using UnityEngine;

[ExecuteInEditMode]
public class ManualParticleDirector : MonoBehaviour
{
    [SerializeField] private ParticleSystem targetParticleSystem;
    [Range(0f, 10f)]
    [SerializeField] private float currentNormalizedTime = 0f;
    private float lastTime = -1f;

    void Update()
    {
        if (targetParticleSystem == null) return;

        if (!Mathf.Approximately(currentNormalizedTime, lastTime))
        {
            targetParticleSystem.Simulate(currentNormalizedTime, true, true);
            lastTime = currentNormalizedTime;
        }
    }
}

By following these steps and using Control Track, you will be able to create accurate effect animations that are perfectly matched to the video work and the operational feedback during the game. Full synchronization of Timeline and particles is an essential technique to enhance the user's game immersion.