Verknüpfen Sie Audio mit dem Deckkrafteffekt eines Bildes in After Effects

Ich habe 3 audio filesaus einem Podcast. 1 Datei von Steve, eine von John und die andere von mir.

Ich habe eine Komposition mit den drei Audiodateien und auch 3 png imagesmit unseren Gesichtern, eine für jedes unserer Gesichter. Jedes Bild hat an opacity keyframe set to 50%standardmäßig. Jetzt möchte ich jede Audiospur mit dem richtigen Bild verbinden und wie folgt animieren:

✖ Wenn die Audiointensität einer Spur more than x decibelsanimiert wird, wird das Bild, das mit dieser Spur verknüpft ist, allmählich animiert from 50% opacity to 100% opacity. Um den visuellen Effekt zu vermitteln, wer gerade spricht .

✖ Wenn ich die Lautstärke drops below the x decibelsvorher eingestellt habe, dann allmählichanimate the opacity back to 50%

Wie kann ich das erreichen?

Hast du diesen Artikel auf Reddit gesehen?
@bret7600 Danke, aber das hat mir nicht ganz die volle Antwort gegeben :)

Antworten (1)

Der einfachste Weg, dies zu tun, ist die Verwendung eines Ausdrucks. Zuerst konvertieren Sie Audio in Keyframes. Legen Sie dann einen Ausdruck für Ihren Deckkraftkanal fest. Wenn Sie das Pick-Whip für den Ausdruck auf die Audio-Keyframe-Eigenschaft ziehen, erhalten Sie eine Deckkraft, die wie verrückt überall hin und her springt, also müssen wir ein bisschen mehr daran tun.

Richten Sie zunächst im Deckkraftkanal für Ihre Ebene eine Variable wie folgt ein:

var audioAmp = thisComp.layer("Audio Amplitude").effect("Both Channels")("Slider");

(Der Ausdruck auf der rechten Seite =ist genau das, was Sie erhalten, wenn Sie die Pickwhip auf die Eigenschaft 'Both Channels' ziehen).

Wir möchten diese Eigenschaft im Laufe der Zeit abtasten, um langsame Ausblendungen zu ermöglichen.

Um die Anpassung zu vereinfachen, können wir zunächst einige Eigenschaften festlegen, die wir bearbeiten können, bis wir die besten Ergebnisse erzielen.

var numSamples = 200;
var sampleSpacing = thisComp.frameDuration;
var threshold = 5.0 //<--you set this
  • numSamplesist die Häufigkeit, mit der wir die Amplitude abtasten, um einen glatten Durchschnitt zu erhalten. Je höher es ist, desto flüssiger ist das Ergebnis, aber auch desto langsamer ist das Skript. Wenn Sie ihn wirklich hoch einstellen, möchten Sie den Ausdruck vielleicht in Keyframes umwandeln, sobald er richtig funktioniert. Die Werte, die ich hier eingegeben habe, sind einfach aus meinem Hut gezogen, Sie müssen sie optimieren, bis sie für Sie funktionieren. Dies ist die Haupteinstellung, die Sie anpassen können. Versuchen Sie, ihn wirklich hoch einzustellen, wie 2000, oder niedrig, wie 10, und sehen Sie, wie es funktioniert.

  • sampleSpacingist die Zeit zwischen den Proben. Die Einstellung auf thisComp.frameDurationbedeutet ein Sample pro Frame. Sie könnten ein kleineres Sample erstellen, aber da die Audioamplitudeneigenschaft nur einen Keyframe pro Frame hat, hilft dies möglicherweise nicht wirklich.

  • Thresholdist die Audioschwelle, oberhalb der kein Fading auftritt. Auch hier müssen Sie dies je nach Audiopegel Ihres Materials anpassen.

Ok, hier kommt das Hoo-hah.

var sum = 0;
for (var i = 0; i < numSamples; i++){
  sum += audioAmp.valueAtTime(time - i * sampleSpacing);
}
avAudio = sum / numSamples; //the average audio for all the samples
//now decide if the audio is low enough to start fading
if (avAudio < threshold) { 
  //normalises it to 0-100% where 100% = the threshold
  100 * avAudio / threshold; 
} else { //audio is above threshold
  100;
}

Im Grunde wird nur das Audio für die letzten numSamplesSamples gemittelt. numSamplesWenn Sie einen Ton haben, gefolgt von Stille, geht der Durchschnitt in * sampleSpacingSekunden von der Lautstärke des Tons auf Null , oder in diesem Fall 200 Frames.