您好,欢迎来到 CgCountry

AE小教程:让3D图层的大小不受距离影响(近大远小)

admin 2024-05-24 5次浏览 0条评论 0 打赏作者 0 0
你一定遇到过在AE里调整三维图层的麻烦:在PS或AI中画了一个场景,前中后景都有,把图层变成3D层,你要往前往后拉开距离,因为透视(近大远小),还要回头调一下图层的缩放,来让画面跟你原本画的平面图一样——好费劲。 这时候你可能想过,如果我拉开距离的时候,图层远了自动放大,近了自动缩小,在摄像机里看,...

你一定遇到过在AE里调整三维图层的麻烦:在PS或AI中画了一个场景,前中后景都有,把图层变成3D层,你要往前往后拉开距离,因为透视(近大远小),还要回头调一下图层的缩放,来让画面跟你原本画的平面图一样——好费劲。
这时候你可能想过,如果我拉开距离的时候,图层远了自动放大,近了自动缩小,在摄像机里看,整个画面没有发生变化(缩放补偿了透视),这不就完美了!——那么问题来了:图层往后100像素,它应该放大多少,才能在相机里和以前看起来一样大呢!中间有什么特殊算法吗?

答案当然是有,以下就是算法:
缩放*(距离差/(1/36*镜头焦距*合成宽))

翻译成表达式就是:
n = 1/36*35*thisComp.width; //1/36*镜头焦距*合成宽
d = position[2]-thisComp.layer("Camera 1").transform.position[2]; //距离差
scale * (d / n); //缩放*(距离差/(1/36*镜头焦距*合成宽))


把这句表达式加在每个图层的缩放属性上,大功告成。

有人可能会疑惑,为啥会有个1/36呢,为什么一定是1/36呢——我也不知道,这是我试出来的,别想为什么,直接用。

登录可见下载资源信息, 现在去登录

0 条评论