After Effects│音量をフェードイン・アウトさせるエクスプレッション

音量のフェードを自動化したい

音のフェードイン・アウトは結構機械的につけてしまうので、音量をフェードイン・アウトさせるエクスプレッションを書きました。

エクスプレッションを使うとサウンドのレイヤーの長さに合わせて、オーディオレベルのフェードインやフェードアウトが指定できるので、いちいちレイヤーの長さを変えるたびにオーディオレベルのキーを調整しなくても済みます。

目次

エクスプレッションの解説

fadeTimeは秒数、audio.audioLevelsMaxは最大音量を表します。

フェードイン

fadeTime = 1;
audio.audioLevelsMin = -48;
audio.audioLevelsMax = 0;
layerDuration = outPoint - inPoint;
singleFrame = thisComp.frameDuration;
animateIn = linear(time, inPoint, (inPoint + fadeTime), audio.audioLevelsMin, audio.audioLevelsMax);
animateOut = linear(time, (outPoint - fadeTime+1), (outPoint-singleFrame), audio.audioLevelsMax, audio.audioLevelsMin);
if(time < (layerDuration/2+inPoint)){[animateIn,animateIn];
}else{[animateIn,animateIn];}

フェードアウト

fadeTime = 1;
audio.audioLevelsMin = -48;
audio.audioLevelsMax = 0;
layerDuration = outPoint - inPoint;
singleFrame = thisComp.frameDuration;
animateIn = linear(time, inPoint, (inPoint + fadeTime), audio.audioLevelsMin, audio.audioLevelsMax);
animateOut = linear(time, (outPoint - fadeTime), (outPoint-singleFrame), audio.audioLevelsMax, audio.audioLevelsMin);
if(time < (layerDuration/2+inPoint)){[animateOut,animateOut];
}else{[animateOut,animateOut];}

フェードイン・アウト

fadeTime = 1;
audio.audioLevelsMin = -48;
audio.audioLevelsMax = 0;
layerDuration = outPoint - inPoint;
singleFrame = thisComp.frameDuration;
animateIn = linear(time, inPoint, (inPoint + fadeTime), audio.audioLevelsMin, audio.audioLevelsMax);
animateOut = linear(time, (outPoint - fadeTime), (outPoint-singleFrame), audio.audioLevelsMax, audio.audioLevelsMin);
if(time < (layerDuration/2+inPoint)){[animateIn,animateIn];
}else{[animateOut,animateOut];}

音切れが発生する場合の対処法

たまにフェードアウト後(オーディオレベルが-48)なので音がブツッと音切れを起こす場合があるのですが、その時は更に親コンポを作成して、そこでフェードアウトかけると良いです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次