摘要:Camera (摄像机属性)组提供了控制摄像机兴趣点、缩放、景深、焦距、光圈及模糊等级等属性的方法。通过这些属性,可以实现动态聚焦、自动调整视野、景深效果切换以及多相机视角切换等高级动画和视觉效果,增强合成的表现力和灵活性。
Camera (摄像机属性)组提供了控制摄像机兴趣点、缩放、景深、焦距、光圈及模糊等级等属性的方法。通过这些属性,可以实现动态聚焦、自动调整视野、景深效果切换以及多相机视角切换等高级动画和视觉效果,增强合成的表现力和灵活性。
pointOfInterest
获取摄像机在世界空间(World Space)中的目标点(Point of Interest)坐标。
返回值 :Array,数组 [x, y, z],表示摄像机目标点在世界空间中的坐标 。
应用:
目标点是摄像机所关注的具体位置,摄像机会一直朝向这个点。
//示例 1:为摄像机的 pointOfInterest 属性添加表达式,使其始终指向目标图层targetLayer = thisComp.layer("mediaTEA");targetLayer.position;//示例 2:为摄像机的 pointOfInterest 属性添加表达式,使关注点在 Y 轴上随时间上升poi = value;poi[1] += time * 50;poi;zoom
获取摄像机的缩放值。
返回值 :Number,摄像机选项中的缩放值,以像素为单位 。
应用:
缩放值决定了摄像机的视野范围,缩放越大,视野范围越小,物体看起来越大;缩放越小,视野范围越大,物体看起来越小。
// 示例 1:为摄像机的 zoom 属性添加表达式,使其随时间缓慢增加initialZoom = 800;zoomRate = 50;// 每秒增加50像素initialZoom + zoomRate * time;//示例 2:图层的缩放属性的表达式//在第 2 秒后保持帧中图层的相对大小。if(time>2){cam = thisComp.activeCamera;distance = length(sub(position, cam.position)); scale * distance / cam.zoom;}depthOfField
获取摄像机的景深开关状态。
返回值 :Number,如果摄像机选项中的景深开启,返回 1;如果关闭,返回 0 。
应用:
若不启用景深,则不会产生虚化效果,所有图层内容全部清晰显示。
// 示例 1:根据景深状态调整摄影机的模糊级别:// 获取景深状态var dof = thisComp.activeCamera.depthOfField;// 根据景深状态应用不同的模糊程度blurAmount = dof ? 100 : 0;blurAmount;// 示例 2:根据景深开关状态控制发光效果的发光强度// 获取景深状态var dof = thisComp.layer("摄像机 1").cameraOption.depthOfField;// 根据景深状态启用或禁用特效if(dof == 1)10;else0;focusDistance
获取摄像机的焦距值。
返回值 :Number,摄像机选项中的焦距值,单位为像素 。
应用:
此处的焦距指的是“对焦距离”,用于控制物方焦平面离摄像机镜头的距离。
// 示例:根据图层与摄像机焦点的距离动态调整模糊程度var minDistance = length(thisComp.layer("mediaTEA1").transform.position, thisComp.activeCamera.transform.position);var maxDistance = length(thisComp.layer("mediaTEA4").transform.position, thisComp.activeCamera.transform.position);//随时间推移改变对焦距离linear(time,0,3,maxDistance,minDistance)aperture
获取摄像机的光圈值。
返回值 :Number,摄像机选项中的光圈值,单位为像素 。
应用:
此项值越大,光圈口径越大,景深越浅。
此项值越小,光圈口径越小,景深越深。
// 示例 1:根据光圈值调整图层的模糊效果// 获取摄像机的光圈值var aperture = thisComp.activeCamera.aperture;// 根据光圈值调整模糊程度blurAmount = aperture * 0.5;blurAmount;// 示例 2:光圈值随着时间逐渐增大,// 使摄像机的光圈值随时间线性变化aperture = 200 + time * 100;blurLevel
获取摄像机的模糊层次百分比。
返回值 :Number,摄像机选项中的模糊层次,以百分比表示 。
应用:
模糊层次用于进一步加强或减弱景深外图层内容的虚化程度。
// 示例 1:根据模糊程度动态调整图层的模糊效果// 获取摄像机的模糊程度var blur = thisComp.activeCamera.blurLevel;// 根据模糊程度调整图层的模糊效果blurAmount = blur;blurAmount;// 示例 2:创建模糊层次的渐变动画// 使摄像机的模糊程度随时间线性增加blurLevel = time * 100irisShape
获取光圈形状的边数。
返回值 :Number,摄像机选项中的光圈形状的选项值。
比如,快矩形为 1,三角形为 3,正方形为 4,六边形为 6,十边形为 10,等等 。
应用:
边数越多,散景光斑越圆。
// 示例:随时间推移增加边数linear(time,0,5,1,10);irisRotation
获取光圈旋转值。
返回值 :Number,摄像机选项中的光圈旋值,以度为单位 。
应用:
光圈旋转、光圈圆度以及光圈长宽比等影响着散景光斑的外观。
// 示例:通过滑块控制光圈旋转值thisComp.layer("mediaTEA").effect("滑块控制")("滑块")irisRoundness
获取光圈圆度值。
返回值 :Number,摄像机选项中的光圈圆度值,以百分比表示。
应用:
// 示例:光圈圆度随时间缓慢增加irisRoundness = linear(time, 0, 10, 0, 100);irisAspectRatio
获取光圈长宽比的值。
返回值 :Number,摄像机选项中的光圈长宽比值,默认为 1 。
应用:
// 示例:根据图层缩放调整光圈纵横比thisComp.layer("mediaTEA").transform.scale[0] / 100 // 假设scale[0]从50到150irisDiffractionFringe
获取光圈衍射条纹值。
返回值 :Number,摄像机选项中的光圈衍射条纹值 。
应用:
光圈衍射条纹可用于创建围绕光圈边缘的光环,以此模拟集中在光圈叶片边缘周围的曲光,常用于模拟反折射镜头。
// 示例:根据图层的 Z 位置调整光圈衍射条纹数量thisComp.layer("mediaTEA").transform.position[2] / 10; // 例如Z从0到100highlightGain
获取高亮增益值。
返回值 :Number,摄像机选项中的高亮增益值 。
应用:
高亮增益用于增加高于“高光阈值”指定的亮度级别及其以上级别的像素的亮度。
// 示例: 根据其它效果的亮度值调整高亮增益值thisComp.layer("mediaTEA").effect("亮度和对比度")("亮度")highlightThreshold
获取高光阈值的值。
返回值 :Number,摄像机选项中的高光阈值的值 。
应用:
高光阈值用于指定多少亮度级别的像素被定义为高亮像素。比如,此项值为 240 时,则 240 ~ 255 之间的像素被视为高光像素。
// 示例:根据复选框控制来控制高光阈值if(thisComp.layer("mediaTEA1").effect("复选框控制")("复选框").value)this.value = 255; //可有效消除任何高光elsethis.value = 0; //可增强亮度大于 0 的所有像素highlightSaturation
获取高光饱和度值。
返回值 :Number,摄像机选项中的高光饱和度值 。
应用:
高光饱和度指的是 被增亮的像素中可保留的颜色量,此属性在有彩灯的情况下(如城市夜景)尤为突出。
//示例:随时间的推移增加高光饱和度linear(time,0,5,0,100)获取一个布尔值,指示当前摄像机是否为合成的活动摄像机。
返回值 :Boolean,如果摄像机是活动摄像机(即视频开关开启、当前时间在摄像机图层的入点和出点之间,并且是时间轴中最上层的活动摄像机),返回 true;否则,返回 false 。
应用:
// 示例:控制其它效果仅在摄像机为活动状态时启用// 获取摄像机的活动状态var isActive = thisComp.layer("摄像机 1").active;// 根据摄像机状态启用或禁用特效effect("发光")("发光强度").value = isActive ? 100 : 0;“点赞有美意,赞赏是鼓励”
来源:岚岚课堂