後期制作基本上就是視頻編輯、素材處理、特效處理、字幕處理、音頻處理、包裝處理、成品輸出等幾個方面,後期完善制作、修複不足。它要求掌握各類節目的制作程序以及各類機器的性能。
後期制作的主要工作内容
影視後期制作基本步驟是初剪-正式剪輯-作曲選曲-特效錄入-配音合成這樣一個流程。實操時主要工作内容有以下幾點:
1.視頻編輯:按要求、按腳本,為突出某主題内容為目的剪輯制作。
2.素材處理:為視頻素材提供片段删減、段落順序重組、曆史素材并入、相關素材引入組合等。
3.特效處理:為視頻素材編輯過程中加入轉場特技、蒙太奇效果、三維特效、多畫面、畫中畫效果、視頻畫面調色等。
4.字幕處理:為視頻素材添加Logo、中外文字幕、說明字幕、修飾字幕、三維字幕、滾動字幕、挂角字幕等等。
5.音頻處理:為視頻素材添加背景音樂、特效音樂、專業播音員多語種配音解說、對口型配音、配樂。
6.包裝處理:為視頻素材剪輯後全方位特效包裝,蒙太奇效果、制作三維片頭片尾、Flash片頭片尾、形象标識特效等等。
7.成品輸出:制作好的影視作品輸出到各種格式的錄像帶、播出帶,壓制或刻錄至DVD、VCD,或輸出各種格式的數據文件。
想學好Ae,這些内容是必須要掌握的
我在這裡總結三個模塊,簡單-進階-高難度。
同學們可以按照這個規劃路線去學習,保證你成為視頻後期高手。
基本:圖層、圖層屬性、混合模式、關鍵幀動畫、關系父子級、蒙版遮罩、形狀層、時間重映射
進階:攝像機、燈光、塗鴉繪制、跟蹤特效、插件腳本、關鍵幀插值、序列動畫、動态草繪、動态Roto、字符動畫
難點:表達式、三維空間合成、多通道合成、多層嵌套、粒子特效、角色綁定、光影特效、光線跟蹤渲染模式、C4D場景數據互導。
那麼我們回到AE上面,需要怎麼學它呢?市場對它的要求是什麼呢?
由于網上的盜版、不系統的教程太多了,讓很多人誤以為AE是做特效的軟件。這裡我就簡單結合自己實際的工作說一下,學AE應該掌握什麼。無非就是三塊内容:MG動畫、合成和視覺效果。
MG動畫的學習重點是動畫節奏(學會關鍵幀的用法,會調關鍵幀曲線),還要懂得使用表達式,對插件和腳本的運用也要懂,我實際的工作中有一半的任務都是做MG動畫,這個真的非常實用。
合成的學習重點比較多,有摳像、跟蹤、反求攝像機、校色、攝像機、三維層等,但是這才是AE的強項,是真正需要花時間去學的東西。
視覺效果包括了粒子(Particular插件)和光(saber插件),可以表現很多抽象的概念,這部分比較炫酷,很多人喜歡AE就是被這種效果所吸引,如果你深入學的話,會發現有大量的插件需要學習,學都學不完。但是,你如果自學AE主要都在學這類的話,到實際工作的時候會深刻體會到浪費了太多時間。
所以,我們剛開始學習AE,一定要分清主次,動畫、合成是主,視覺效果是次。
AE十大常用 表達式1.反彈
e = .3; // 彈力
g = 1; // 重力
nMax = 10; // 最大反彈次數
n = 0;
if (numKeys > 0){
n = nearestKey(time).index;
if (key(n).time > time) n--;
}
if (n > 0){
t = time - key(n).time;
v = -velocityAtTime(key(n).time - .001)*e;
vl = length(v);
if (value instanceof Array){
vu = (vl > 0) ? normalize(v) : [0,0,0];
}else{
vu = (v < 0) ? -1 : 1;
}
tCur = 0;
segDur = 2*vl/(g*1000);
tNext = segDur;
nb = 1;
while (tNext < t && nb <= nMax){
vl *= e;
segDur *= e;
tCur = tNext;
tNext = segDur;
nb
}
if(nb <= nMax){
delta = t - tCur;
value vu*delta*(vl - (g*1000)*delta/2);
}else{
value
}
}else
value
2.彈性
amp = .04;//幅度
freq = 2;// 值越高, 頻率越高
decay = 5;// 值越高, 延遲越小
n = 0;
if (numKeys > 0){
n = nearestKey(time).index;
if (key(n).time > time){
n--;
}
}
if (n == 0){
t = 0;
}else{
t = time - key(n).time;
}
if (n > 0){
v = velocityAtTime(key(n).time - thisComp.frameDuration/10);
value v*amp*Math.sin(freq*t*2*Math.PI)/Math.exp(decay*t);
}else{
value;
}
3.彈性變形
maxDev = 20; //最大形變大小
spd = 30; //速度
decay = 1.0; //靜止快慢
t = time - inPoint;
x = scale[0] maxDev*Math.sin(spd*t)/Math.exp(decay*t);
y = scale[0]*scale[1]/x;
[x,y]
4.彈性文字
delay = 0.03; // 延遲
freq = 3; // 頻率
amp = 60; // 幅度
decay = 10; // 值越小,彈性越大
Speed = 0.8; // 值越小,動畫越慢
myDelay = delay*textIndex;
t = (time - inPoint)*Speed - myDelay;
if (t >= 0){
freq;
amp;
decay;
s = amp*Math.cos(freq*t*2*Math.PI)/Math.exp(decay*t);
[s,s] }else{
value
}
5.随機循環(對随機效果再進行循環)
freq = 1; // 頻率
amp = 110; // 幅度
loopTime = 3; // 循環時間
t = time % loopTime;
wiggle1 = wiggle(freq, amp, 1, 0.5, t);
wiggle2 = wiggle(freq, amp, 1, 0.5, t - loopTime);
linear(t, 0, loopTime, wiggle1, wiggle2)
6.對齊運動方向
try{
cornerEase = 3;// 角度松弛
p = transform.position;
t = Math.min(Math.max(time,p.key(1).time .001),p.key(p.numKeys).time);
pre = position.valueAtTime(t-thisComp.frameDuration*cornerEase);
post = position.valueAtTime(t thisComp.frameDuration*cornerEase);
delta = post-pre;
orient = radiansToDegrees(Math.atan2(delta[0],-delta[1]));
value orient 180;// 180度可調整轉動角度
}catch(err){value}
7.目标注視
function lookAtMe(fromPt, toPt){
lkAt = lookAt(fromPt, toPt);
if (toPt[1] > fromPt[1]){
return 180-lkAt[1];
} else {
return lkAt[1];
}
}
p0= transform.position; //look from point
p1=thisComp.layer("空 2").transform.position; //目标點位置
lookAtMe(p0, p1) 0 //0數值可調整旋轉角度
8.循環路徑
valueAtTime(time % key(numKeys).time)
9.标記控制關鍵幀
try{
if(marker.numKeys>1&&numKeys>1){
beginAnim=marker.key(1).time;
endAnim=marker.key(2).time;
markerMoveTime=endAnim-beginAnim;
keyStart=key(1).time;
keyStartN=key(2).time;
keyEnd=key(3).time;
if(time>=beginAnim && time<=endAnim)
{if((time-beginAnim)>=(keyStartN-keyStart)){valueAtTime(keyStartN);}
else valueAtTime(keyStart (time-beginAnim));
}
else if(time>endAnim)
{valueAtTime(keyEnd (time-endAnim));}
else if(time<beginAnim) {valueAtTime(keyStart);}
else {value;}
}else value;
}catch(err){value;}
10.計時器
rate=1;// 速率
clockStart=0;// 開始時間點
function minZero(n){
if(n<10)return"0" n
else
return"" n
};
function secZero(n){
if(n<10)return"0" n
else
return"" n
};
clockTime=Math.max(clockStart rate*(time-inPoint),0);
t=Math.floor(clockTime);
min=Math.floor((t600)/60);
sec=Math.floor(t`);
minZero(min) ":" secZero(sec)
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!