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

エクスプレッションを使うとサウンドのレイヤーの長さに合わせて、オーディオレベルのフェードインやフェードアウトが指定できるので、いちいちレイヤーの長さを変えるたびにオーディオレベルのキーを調整しなくても済みます。
目次
エクスプレッションの解説
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)なので音がブツッと音切れを起こす場合があるのですが、その時は更に親コンポを作成して、そこでフェードアウトかけると良いです。
