|
發表於 2011-4-1 20:25:52
|
顯示全部樓層
本文章最後由 johnson_choa 於 2011-4-10 17:06 編輯
回覆 3# niki
http://vimeo.com/20557792
AE就可以做,2:19後的相冊翻頁立體效果,就是如同那廣告的技法,設定很多便是,您問得算是還比簡單一點的,只能說都得費時費力沒有捷徑,以下是會使用的Expression
*********************************************************************
Global Controls
*Edge distance
angle = degreesToRadians(effect("Page Angle")("Angle")/4);
opp = effect("Edge Width")("Slider")/2
adj = Math.tan(angle)*opp
*Page1
effect("Cover")("Slider")*0.75
*Page2
effect("Cover")("Slider")*0.5
And so on...
*********************************************************************
Object Controls
*Angle
effect("Object Angle")("Angle")
if (effect("Object Angle")("Angle") > 180)
{180}
else {
if (effect("Object Angle")("Angle") < 0)
{
0
}
}
*Height
thisComp.layer("object name").height
*B
angle = Math.abs(effect("Object Angle")("Angle")-90);
hypo = effect("height")("Slider");
opp = Math.sin(degreesToRadians(angle))*hypo
*t
a =effect("height")("Slider");
b =effect("B")("Slider");
angle =degreesToRadians(thisComp.layer("Global Controls").effect("Page Angle")("Angle")/2);
t = (a*b)/(Math.sqrt(Math.pow(a,2)*Math.pow(Math.cos(angle),2) + Math.pow(b,2)* Math.pow(Math.sin(angle),2)));
*X
angle =degreesToRadians(thisComp.layer("Global Controls").effect("Page Angle")("Angle")/2);
t = effect("t")("Slider");
x = t * Math.cos(angle);
*a
angle = degreesToRadians(Math.abs(effect("Object Angle")("Angle")-90));
if (angle == 0)
{
angle = 1
}
opp = effect("X")("Slider");
size = (opp / Math.sin(angle))*2;
*********************************************************************
Object
XRotation
hypo =height*2;
adj =thisComp.layer("Object Control").effect("a")("Slider");
if (adj > hypo)
{
adj = hypo;
}
if (thisComp.layer("Object Control").effect("Object Angle")("Angle") > 90)
{transform.xRotation = (radiansToDegrees(Math.acos(adj/hypo))-90);}
else
{transform.xRotation = (radiansToDegrees(Math.acos(adj/hypo))-90)*-1;} |
|