恭喜你成为UI中国推荐设计师 (详情)
//百度统计 20220402 uicn

您的意见是我们 UI 中国进步的动力!
点击立即反馈按钮,发表您的意见!
立即反馈
QQ群反馈
您也可以加入UI中国官方反馈群进行反馈!
群号:302892100
备注:反馈问题后@管理员能让我们及时了解您的意见

提交需求

赛事与广告咨询合作,请填写需求表单,我们会在第一时间与您联系!

0/20
0/200

设计大赛

  • 设计大赛
  • 发布广告
  • 发布招聘
  • 其它需求

提交完成
感谢您对UI中国的支持和信赖!
AE小教程:让3D图层的大小不受距离影响(近大远小)
0.0°
2019-06-04 原创文章 经验/观点 举报 3630 2 5 0

你一定遇到过在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*镜头焦距*合成宽))



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


有一点忘了说了,计算距离的时候,最好把摄像机的Z轴也就是position[2],固定一个默认值,也就是刚创建相机时候它的z轴的像素值。
这样不会让推拉相机的时候,图片大小也跟着改变,而仅仅在推拉图片的时候,图片才会自动缩放。


n = 1/36*35*thisComp.width; //1/36*镜头焦距*合成宽
d = position[2]-(刚创建相机时它的默认Z轴数值); //距离差
scale * (d / n); //缩放*(距离差/(1/36*镜头焦距*合成宽))


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


更新:2019-06-04

收藏

2人已收藏

匕禾页__

AE小白

  • 5

    作品

  • 8

    粉丝

  • 10

    关注

  • 【AE 脚本】BHY_Collect
  • 怎么在AE里绑定一个伪三维角色?
  • AE脚本小教程:批量修改合成持续时间,帧速率
  • AE脚本-表达式报错纠正

    猜你喜欢

      2019-06-04 原创文章 经验/观点 举报 3630 2 5 0

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

      0.0°

      你确定要举报AE小教程:让3D图层的大小不受距离影响(近大远小)

      如果查出恶意举报,十天内禁止提交任何举报申请。

      0/200

      上传证据: 超过10M的附件请使用网盘地址

      点击上传附件

      对谁可见:

      全部设计师
      • 全部设计师
      • 推荐设计师和认证设计师

      您确认要推荐?

      该作品发布时间:2019年06月01日

      评分

      完整度

      启发性

      勤奋性

      排版布局

      推荐心得

      建议20-200字以内

      0/200

      5
      2
      0

      账号或密码错误,请重新输入

      账号或密码错误,请重新输入

      登录

      手机号

      发送验证码 120s 验证码错误

      登录
      第三方账号登录