AEJoy —— 表达式之面向相机时才显示图层JS

Posted panda1234lee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AEJoy —— 表达式之面向相机时才显示图层JS相关的知识,希望对你有一定的参考价值。

效果图

想法

有时,让一个 3D 层只在面对相机时可见是很方便的。其中一个应用可能是当物体背对相机时,你想要显示一张不同的图像。

设计

有不同的方法来实现这一点,但在这里我们将重点创建一个不透明度 表达式,可以检测相机何时可以看到图层的正面。在这种情况下,我们希望不透明度为 100% 。当相机可以看到图层的背面时,我们希望不透明度为 0% 。一旦我们有了这样的表达式,我们就可以将它应用到代表对象前后的图层上,将后层在其 y 轴上旋转180度,然后将后层添加(parent)到前层(作为它的子级)。然后当我们旋转前层或环绕相机时,我们总是会看到正确的图像。我们还希望即使没有摄像机,这个表达式仍然能奏效。

为了实现这一功能,我们将利用表达式语言中一种非常方便(但不幸的是,有点难以理解)的特性 —— 层空间转换

在本例中,我们将使用 toCompVec() 变换将指向层外( z 轴方向)的矢量转换为摄像机视图的坐标系统。然后我们需要检查这个变换的 z 分量。如果它是正的,则图层是面向相机的。如果是负的,图层就背对着相机。

注意,如果没有摄像机,toCompVec() 将矢量转换为合成的默认视图,所以它仍然可以工作。

以上是关于AEJoy —— 表达式之面向相机时才显示图层JS的主要内容,如果未能解决你的问题,请参考以下文章

AEJoy —— 表达式之反向动力学(Inverse Kinematics)JS

AEJoy —— 表达式之碰撞检测JS

AEJoy —— 表达式之基础音频动画JS

AEJoy —— 表达式之接触检测JS

AEJoy —— 表达式之从图像中采样颜色数据JS

AEJoy —— 表达式之模拟 Bezier 曲线JS