
使用此表达式的3D图层,将始终面向相机,而不会发生任何倾斜和变形。
try{
L = thisComp.activeCamera;
u = fromWorldVec(L.toWorldVec([1,0,0]));
v = fromWorldVec(L.toWorldVec([0,1,0]));
w = normalize(fromWorldVec(L.toWorldVec([0,0,1])));
sinb = clamp(w[0],-1,1);
b = Math.asin(sinb);
cosb = Math.cos(b);
if (Math.abs(cosb) > .0005){
c = -Math.atan2(v[0],u[0]);
a = -Math.atan2(w[1],w[2]);
}else{
a = (sinb < 0 ? -1 : 1)*Math.atan2(u[1],v[1]);
c = 0;
}
[radiansToDegrees(a),radiansToDegrees(b),radiansToDegrees(c)]
}catch(err){
value
}

1、新建一些图层,打开3d开关。新建一个摄像机。

2、展开文字图层的方向属性,给它添加上面的表达式。
其他图层不要添加,便于我们观察对比。
添加好表达式以后,旋转摄像机,就可以看到文字图层始终朝着摄像机。

3、稍微调整一下文字图层的旋转方向,可以看到,文字在原地产生了旋转效果,这样会更真实一些。

这段表达式是之前收集的,忘了出处,在此对原作者表示感谢。
表达式还是蛮复杂的,用到了很多不常用的表达式。
fromWorldVec(),toWorldVec(),clamp(),Math.atan2(),radiansToDegrees()
这些知识点在我的第三、第四章视频教程里将都会讲到。
第三、第四章视频教程,还有10个案例没有录完,结束以后会第一时间发布,欢迎关注。