《喵星人相处指南》PV的相关技术文档

这次的制作中用了些新的和不怎么新的技术,姑且还是发出来留个档案,万一就正好碰到有需要的人对吧,虽然在自己看来确实是没啥好说的……(x(沉迷研究技术的人都这样别介意(x
首先,祭上视频:

其次,太长不看摘要版:
3D部分运用的是C4D的物理+渲二,要点就是素描着色器+材质用发光着色+灯光强阴影。
2D动画部分运用的是MOHO的网格+骨骼+物理完成,要点是网格补正。
AE方面附送一个弹性表达式,可直接拉到文尾。

目录
前期筹备,概念及对动画用CG素材的分层指示
3D制作,物理与渲二
2D动画,骨骼与网格
最终合成,附送AE弹性表达式

前期筹备,概念及对动画用CG素材的分层指示
相对来说,这个PV内容并没有十分详细的剧情指向,所以是以概念的形式作为制作时候的靶向参照,简而言之中途穿拆的那些简化小人动画都是我想到哪做到哪的,不太具有参考价值……












3D制作,物理与渲二

3D部分是用C4D完成的,包括物理动画。
在渲二的方法上采用的是材质发光着色,而并非颜色着色。


一般来说两个颜色即可表达本体色与阴影色了,第三个颜色一般是用作高光。
超过三个以上的颜色并不太推荐,除非是为了表达有特殊反射的材质。

这个模式下需要配合灯光的投影来生成地面投影,选择光线追跟踪模式可以获得贴合的阴影,当然用贴图阴影也是可以的,只是效果不如光线跟踪来的好。
在我这个模式下运用的渲二还有一个最重要的东西,那就是——线条
关于素描着色器着色器和线条的参数调整可以参考我这篇文章:

这里就不再复述。

图中的红色物件是用来模拟猫爪子碰撞的刚体,最终渲染时候是不显示的。这个的话做完之后在AE中猫爪配合做动画就可以了,并不需要想得太复杂。
这里需要注意的是,碰撞物体的物理标签里【动力学】中【激发】需要设置为【开启碰撞】,否则容易出现诡异的自嗨现象……
而在【力】选项中,你可以设置【线性阻尼】和【角度阻尼】来限制碰撞物体的滚动速度,更加真实。

2D动画,骨骼与网格

2D角色动画是用MOHO PRO12完成的,网格+骨骼+物理配合使用。
这个软件呢……国内知名度相对较低,用的人也比较少,可能我说起来你们会摸不着脑阔……
如果你用过3D软件并且知道绑骨和权重的概念可能会比较好理解,这方面上是类似的,或者说近乎一个概念。

对于位图的定位绑骨需要先进行网格化,这点是类似于AE的操纵点工具,才是三角网格是可以被自己控制和规划的。
网格化完成后,以点为单位绑定给对应骨骼,图中的点是已经绑定到了对应颜色的骨骼上了。


还有一种泛骨骼绑定,就是在一根骨上设置权重来影响周围,这种软性绑定的方式会直接带动周围没有绑定的区域。
软性绑定的方式只适合大面积的操作,精细部分还是得靠网格来实现,比如眼睛嘴巴的动画、转身的图形微调。

图中眼睛部分是完整的一张图,但是依靠网格是能够做出眨眼状态的,这点上相较于AE方便太多,一个图层即可解决。而且仔细看你能够发现,红点外那些没有动过的网格不会受到影响。

其实2D骨骼类软件的操作和逻辑都是类似的,就看你用哪个顺手了。

最终合成
无外乎是在AE完成最后的合成,这里我也想不出能BB个啥了,几乎都是基础操作(x
要是你对其中哪部分有兴趣可以评论里告诉,我会尽量解答的。
SO分享一个AE弹性表达式作为结尾吧,先上图:


你以为这Q弹的感觉是手动K出来的吗,→_→年轻真好,当然不是,我那么懒(x
amp = 0.5;
freq = 2.0;
decay = 7.0;
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}
第一个参数 amp 是回弹的力度
第二个参数 freq 是弹跳的频率
第三个参数 decay 是弹跳的衰减幅度
适用于缩放、移动、旋转,在K真情况下生效。以缩放为例:1帧0%,30帧100%,套用弹性表达式之后的效果就是演示2中那样。

要是文章对你有所帮助的话不妨点个赞吧,感谢>w<