【AE表达式】简短,跟随摄像机角度

在三维空间制作的文本控件,本来是与空间物体对齐的,结果客户又要说都要朝向摄像机方向,就是都是面向画面,这个在官方文档里面有一段说明,我引用一下:

toWorld(point, t=time)
返回类型:数组 [2 或 3]。
参数类型: point 是数组 [2 或 3], t 是数值。
将点从图层空间变换到与视角无关的世界空间。示例:
toWorld.effect("Bulge")("Bulge Center")
Dan Ebberts 在其 MotionScript 网站上提供了一个使用 toWorld 方法仅沿一个轴自动定向图层的表达式。例如,这可用于在保持垂直时让字符从一侧移到另一侧以跟随摄像机。
After Effects 中的表达式语言 (adobe.com) Dan Ebberts's Expressioneering Design Guide
delta = toWorld(anchorPoint) - thisComp.activeCamera.toWorld([0,0,0]);
radiansToDegrees(Math.atan2(delta[0],delta[2]))

将上面这段代码贴到物体的 Y 轴,你会发现它根本不好使,正确的代码应该是下面这样子:

delta = toWorld(thisComp.activeCamera.pointOfInterest) - toWorld(thisComp.activeCamera.position));
radiansToDegrees(Math.atan2(delta[0],delta[2]))

正常情况下,在 javascript 中,数组不能直接使用加减乘除运算符,但是贴心的 AE 允许这样做,他会把上面这个运算自动转化为 AE 内置的专有矢量运算,它等效于下面的代码:

delta = sub(toWorld(thisComp.activeCamera.pointOfInterest), toWorld(thisComp.activeCamera.position));
radiansToDegrees(Math.atan2(delta[0],delta[2]))

具体要使用那种方式,随便!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值