后期制作基本上就是视频编辑、素材处理、特效处理、字幕处理、音频处理、包装处理、成品输出等几个方面,后期完善制作、修复不足。它要求掌握各类节目的制作程序以及各类机器的性能。

影视后期要怎么学(学习影视后期的正确步骤)(1)

后期制作的主要工作内容

影视后期要怎么学(学习影视后期的正确步骤)(2)

影视后期制作基本步骤是初剪-正式剪辑-作曲选曲-特效录入-配音合成这样一个流程。实操时主要工作内容有以下几点:

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)

,