教程

地址:https://courses.motiondesign.school/courses/fundamentals/lectures/5744816
https://courses.motiondesign.school/courses/fundamentals/lectures/5744827
使用:路径动画循环;‘效果-扭曲-湍流置换’;‘效果-时间-色调分离时间’;‘效果-设置遮罩’;父级链接;表达式toComp(value);‘效果-无线电波’;‘效果-散布’;切换定格关键帧;表达式time*数字、posterizeTime();‘效果-填充’

过程

火焰及小人3

火焰 1、给火焰fire1层加8个关键帧,修改为不同的形状,添加路径循环代码(附1)
2、给大小属性添加wiggle代码(附2)
3、添加Bend it效果,使用loopOut()让其循环
4、对Bend属性,使用motion tool将其Ease Out和Ease In值设为65左右
5、添加‘效果-时间-色调分离时间’,改为15
6、复制fire1,改为fire2,将混合模式改为叠加
7、对fire3层重复以上操作
8、加入motion制作的火焰资源,火焰烟雾不显示只留下粒子,调整尺寸高低位置
9、给粒子添加‘效果-扭曲-湍流置换’,置换类型改为扭转,大小为5
10、复制粒子层,稍微往左移动
‘效果-时间-色调分离时间’可以调整单个图层帧速率

‘效果-扭曲-湍流置换’,有扭转效果

motion提供的火焰合成(包括火焰、粒子、烟雾)
fire_rig_freebie_cc_2015.aep
小人3 1、将吉他纹理建立遮罩,使用设置遮罩,选择用作遮罩的图层
2、将身体各部分间建立父级链接
- 身体是头、手臂、吉他琴身的父级
- 吉他是倚在上面的左臂、吉他琴颈、吉他纹理的父级
- 头是帽子、耳朵、眼睛的父级
- 吉他琴颈是放在上面的右手的父级

3、给左手添加Bend it效果,对其Start和End参数添加表达式toComp(value),再对Bend参数添加动画,使用loopOut()让其循环
4、对右手建立2个位置关键帧,复制并使用时间反向关键帧,然后将速度曲线改为开始加速最后平稳减速
5、根据右手移动的位置,对右手臂建立路径动画
6、对眼睛,使用矩形工具建立蒙版,蒙版路径建立动画,复制眼睛层改为黑色建立蒙版作为眼珠,位置建立关键帧达到眼珠移动效果
7、头部和耳朵,旋转+Bend it
8、身体,旋转
9、将身体、头部和耳朵的关键帧偏移,以达到更自然的效果,选全部关键帧往前移知道把时间最后图层的第一个关键帧移到最前
10、影子,路径
11、将人物合成加进主合成里,使用矩形工具建立蒙版 | 遮罩的两种方式:
- TrkMat-遮罩”上方图层”,需要建立副本
- ‘效果-设置遮罩’,仅适用于矢量或形状图层


父级链接:将一个或多个图层的基本变换属性链接到父级图层

关键帧辅助-时间反向关键帧,将两个关键帧调换

身体先动带动头部再带动耳朵,关键帧略偏移:身体》头部》耳朵

使用CC Bend It效果时,起点和终点不跟随图层的移动是一个常见问题,因此可能会导致一些错误。
只需将toComp(value)表达式应用于起点和终点即可。当图层在视口中消失时不要惊慌。这是因为起点和终点已更改位置,手动固定其位置即可。
Bend.gif |

附1-路径循环代码:

  1. try{
  2. timeStart = thisProperty.key(1).time;
  3. duration = thisProperty.key(thisProperty.numKeys).time-timeStart;
  4. pingPong = false; //change to true value if you want to loop animationn back & forth
  5. quant=Math.floor((time-timeStart)/duration);
  6. if(quant<0) quant = 0
  7. if(quant%2 == 1 && pingPong == true){ t = 2*timeStart+ (quant+1)*duration - time;
  8. }
  9. else{
  10. t = time-quant*duration;
  11. }
  12. }
  13. catch(err){
  14. t = time;
  15. }
  16. thisProperty.valueAtTime(t)

附2-wiggle代码:

  1. freq = 1;
  2. amp = 110;
  3. loopTime = 3;
  4. t = time % loopTime;
  5. wiggle1 = wiggle(freq, amp, 1, 0.5, t);
  6. wiggle2 = wiggle(freq, amp, 1, 0.5, t - loopTime);
  7. linear(t, 0, loopTime, wiggle1, wiggle2)


小人1、2

character1.gif

运动部位 分析效果 最终使用效果
头部摇晃 旋转 旋转
耳朵跟着头摇晃 旋转+Bend Bend
关键帧偏移:头部》耳朵
眨眼 蒙版路径 蒙版路径
左手举东西晃动 旋转+Bend 手臂旋转,手旋转+Bend,东西Bend
关键帧偏移:手臂》手》手上的东西
左腿及上面右手 路径+旋转 旋转
抬脚尖,左脚3下左右脚1下 旋转+Bend 旋转+Bend
身上的影子 路径 路径

character2.gif

运动部位 分析效果 最终使用效果
头部下跌突然抬起,摇头 旋转+位置+Bend 位置+旋转
耳朵跟着头动,有个微小反弹 旋转+Bend 旋转+Bend
关键帧偏移:头部》耳朵
眼睛闭上突然睁开、眨眼 蒙版路径 蒙版路径
左右脚轮流上下 路径 位置
抬脚尖 旋转+Bend 旋转
左右手晃动 旋转+位置 旋转
身上的影子 路径 路径

风格化

火光 1、新建椭圆形状图层,颜色改为与火焰相同,混合模式改为强光
2、添加‘效果-模糊-高斯模糊’,数值改为80
3、添加‘效果-散布’,数量增加到360,勾选随机分布每个帧
4、添加‘效果-时间-色调分离时间’,帧率10
5、大小建立关键帧,添加loopOut()表达式,做成火光闪烁的效果
‘效果-散布’增加噪波效果
地面的阴影 1、添加‘效果-扭曲-湍流置换’,数量10,大小65,此时有扭曲效果
2、对演化参数添加表达式time*1080,让扭曲效果随时间变化强烈
3、表达式第一行加入posterizeTime(8),更具动画效果
将时间乘以任意数字,会使值的变化更明显
例如,将时间* 360 应用于“旋转”属性,使物体每秒旋转一整圈
Time.gif

posterizeTime()效果等同色调分离时间,但可用于单独的属性,效果只能用于图层
注意:如果使用posterizeTime()表达式,并与其他表达式如wiggle,loopOut,time等组合,请将posterizeTime()放在其他表达式之前的行上!
月亮光辉 1、月亮图层添加图层样式-外发光,颜色白色,不透明度50%,混合模式改为滤色,大小35,杂色10%
2、大小参数建立关键帧,达成光芒闪耀效果
3、添加posterizeTime(10)
月亮光波 1、新建纯色层,添加‘效果-无线电波’,发射点移到月亮上
2、频率0.5,扩展1.5,寿命6,描边改为白色,不透明度0.1,开始和末端宽度1
3、动画往前移,直到第一帧同时出现两个波纹,以达到完美循环
4、添加‘效果-扭曲-湍流置换’,大小24
‘效果-无线电波’提供扩散波纹动画
树木纹理 1、导入纹理psd
2、大小旋转建立关键帧,1个上下颠倒1个左右颠倒,保证纹理布满窗口
3、添加loopOut()使之循环,选中关键帧右键切换定格关键帧
4、加入主合成中,因为纹理层是合成因此不能使用效果-设置遮罩,采用TrkMat方法建立遮罩
5、透明度50%
6、篝火堆也需添加纹理,使用‘效果-填充’改变其颜色为火焰色,混合模式改为叠加
定格关键帧消除关键帧间参数变化产生的补充动画,直接跳转两个关键帧画面
木桩上光辉 1、位置,上下移动,loopOut()
2、缩放,posterizeTime(5),wiggle(3,10)
3、不透明度,posterizeTime(8),wiggle(3,50)
4、加入主合成中,采用TrkMat方法建立遮罩
5、将任一木桩的光辉动画偏移,不要让其同步播放
人物动画 添加色调分离时间,帧率15,增加手绘动画效果

压缩体积

地址:https://ezgif.com/
优化方法:有损GIF

效果图

ezgif.com-optimize.gif