tuto

On peut avoir besoin d'afficher un chronomètre sur une vidéo, qui soit lié à la vitesse de la vidéo ou bien déconnecté de la vitesse de la vidéo. On peut avoir besoin d'un compteur qui soit décrémentiel, par exemple en commençant à 24 heures 00 et se terminant à 00 heure 00, ou d'un compteur incrémentiel, mais avec les milisecondes sur 3 décimales comme un chronomètre type course automobile. Avec ce tutoriel je vais vous donner les étapes en 2 minutes pour réaliser cela.

Il y a une partie script indispensable. Rassurez-vous inutile d'être informaticien. Si vous savez faire copier / coller, c'est gagné. Voici simplement l'explication pour pouvoir modifier la valeur de départ et la valeur d'arrivée. Dans le haut du script vous avez le "tag" config.start. C'est le temps du départ, et le "tag" config.stop le temps d'arrivée. Suivant votre ojectif, incrémentiel config.start = tout à 0, décrémentiel config.stop = tout à 0 (Les scripts sont en dessous de la vidéo)

Nom à copier pour le calque de texte : countdown

Nom à copier pour l'effet : countdown_percent

// Configuration chronomètre 
var config = {}
config.start = {
    hour   : 24,
    minute : 0,
    second : 0
}
config.stop = {
    hour   : 0,
    minute : 0,
    second : 0
}

Compteur Incrémentiel ou décrémentiel avec After Effects

Premier script à utiliser pour un affichage heure, minute, seconde

// Configuration chronomètre
var config = {}
config.start = {
    hour   : 24,
    minute : 0,
    second : 0
}
config.stop = {
    hour   : 0,
    minute : 0,
    second : 0
}
 
// Conversion en millisecondes
chrono_start = (config.start.hour*3600 + config.start.minute*60 + config.start.second)*1000;
chrono_end   = (config.stop.hour *3600 + config.stop.minute *60 + config.stop.second )*1000;
 
// Calcul de l'avancement du chrono à l'instant courant, défini par la valeur de la glissière à cet instant
chrono_amplitude = chrono_end - chrono_start;
pourcentage = effect("countdown_percent")("Curseur");
time_walk = chrono_start + Math.floor( chrono_amplitude * pourcentage / 100 );
 
// Extraction des heures, minutes, secondes
reste = time_walk;
 
nb_hour = Math.floor(reste/3600000);  // heures
reste = reste%3600000
 
nb_minute  = Math.floor(reste/60000); // minutes
reste = reste%60000;
 
nb_second = Math.floor(reste/1000);   // secondes
reste = reste%1000;
 
nb_ms = reste;                        // milliseconde
nb_cs = Math.floor(nb_ms/10);         // centième de seconde
 
// Ajout des zéros devant, pour l'affichage
str_hour    = ("0" + nb_hour  ).slice(-2);
str_minute  = ("0" + nb_minute).slice(-2);
str_second  = ("0" + nb_second).slice(-2);
str_cs      = ("0" + nb_cs    ).slice(-2);
str_ms      = ("00"+ nb_ms    ).slice(-3);
 
// Affichage
text.sourceText = str_hour+":"+str_minute+":"+str_second+":"+str_cs;

//fin du script

Deuxième script à utiliser pour un affichage  minute, seconde, miliseconde

// Configuration chronomètre
var config = {}
config.start = {
hour : 0,
minute : 0,
second : 0,
milli : 0
}
config.stop = {
hour : 0,
minute : 1,
second : 54,
milli : 456,
}

// Conversion en millisecondes
chrono_start = (config.start.hour*3600 + config.start.minute*60 + config.start.second )*1000 + config.start.milli ;
chrono_end = (config.stop.hour *3600 + config.stop.minute *60 + config.stop.second )*1000 + config.stop.milli;

// Calcul de l'avancement du chrono à l'instant courant, défini par la valeur de la glissière à cet instant
chrono_amplitude = chrono_end - chrono_start;
pourcentage = effect("countdown_percent")("Curseur");
time_walk = chrono_start + Math.floor( chrono_amplitude * pourcentage / 100 );

// Extraction des heures, minutes, secondes
reste = time_walk;

nb_hour = Math.floor(reste/3600000); // heures
reste = reste%3600000

nb_minute = Math.floor(reste/60000); // minutes
reste = reste%60000;

nb_second = Math.floor(reste/1000); // secondes
reste = reste%1000;

nb_ms = reste; // milliseconde
nb_cs = Math.floor(nb_ms/100); // centième de seconde

// Ajout des zéros devant, pour l'affichage
str_hour = ("0" + nb_hour ).slice(-2);
str_minute = ("0" + nb_minute).slice(-2);
str_second = ("0" + nb_second).slice(-2);
str_cs = ("0" + nb_cs ).slice(-2);
str_ms = ("00"+ nb_ms ).slice(-3);

// Affichage
text.sourceText = str_hour+":"+str_minute+":"+str_second+":"+str_cs;

//fin du script