当前位置: 首页 > article >正文

Ae 表达式语言引用:Layer - 3D

Layer - 3D(3D 图层属性)组允许访问和控制图层的三维变换属性、光照属性、材质属性、反射属性等。通过这些属性,可以实现动态的三维旋转、光照效果控制、材质特性调整,极大地提升 After Effects 项目的视觉效果和创作灵活性。

6f85155abe6d932fda2fe511afccf65f.png

orientation

获取 3D 图层的方向。

返回值:返回 3D 图层的方向属性值(Array[3]),每维以度为单位。

应用:

//示例:使图层的三维方向随时间旋转,实现持续旋转效果。
// 定义旋转速度var speed = 30; // 度/秒
// 计算新的三维方向
[speed * time, speed * time, speed * time];

0da81d828c1af7889d9e873544c84df2.gif

rotationX

获取 3D 图层绕 X 轴旋转的度数。

返回值:返回 3D 图层变换属性组中的“ X 轴旋转”属性值(Number),以度为单位。

应用:

// 示例:为 X 轴旋转属性添加表达式,使图层绕 X 轴来回摆动,模拟摇晃效果
// 定义摆动幅度和频率
var amplitude = 30; // 度
var frequency = 2; // 摆动次数/秒
// 计算旋转角度
amplitude * Math.sin(time * frequency * 2 * Math.PI);

rotationY

获取 3D 图层绕 Y 轴旋转的度数。

返回值:返回 3D 图层变换属性组中的“ Y 轴旋转”属性值(Number),以度为单位。

应用:

//示例:使子图层的 Y 轴旋转与父级图层同步。
if (hasParent) {
    parent.transform.rotationY;
} else {
    0;
}

rotationZ

获取 3D 图层绕 Z 轴旋转的度数。

返回值:返回 3D 图层变换属性组中的“ Z 轴旋转”属性值(Number),以度为单位。

应用:

//示例:使图层的 Z 轴旋转根据鼠标的 X 位置变化。
// 获取鼠标位置(假设有一个控制器图层)
var mousePos = thisComp.layer("Controller").transform.position;
// 将鼠标 X 位置映射到旋转角度
linear(mousePos[0], 0, thisComp.width, -45, 45);

lightTransmission

获取 3D 图层的透光率。

返回值:返回 3D 图层材质选项(materialOption)中的“透光率”(Number)百分比。

应用:

//示例 :根据光线透射值调整图层的不透明度
// 获取光线透射值
var transmission = lightTransmission;
// 将透射值映射到不透明度(0% - 100%)
transmission;

castsShadows

获取图层是否会投射阴影的状态。

返回值:返回 3D 图层材质选项中的“投影”属性的状态值(Number)。

“开”,则返回 1;“关”,则返回 0;“仅”,则返回 2。

应用:

//根据图层是否投射阴影来调整其透明度
// 判断图层是否投射阴影
if (castsShadows == 1.0) {
    100; // 完全不透明
} else {
    50; // 半透明
}

acceptsShadows

获取 3D 图层是否接受投影的状态。

返回值:返回 3D 图层材质选项中的“接受投影”属性的状态值(Number)。

“开”,则返回 1;“关”,则返回 0;“仅”,则返回 2。

应用:

//根据图层是否接受阴影来改变其颜色。
// 判断图层是否接受阴影
if (acceptsShadows == 1.0) {
    [0, 1, 0, 1]; // 绿色
} else {
    [1, 1, 0, 1]; // 黄色
}

acceptsLights

获取 3D 图层的接受灯光的状态。

返回值:返回 3D 图层材质选项中的“接受灯光”属性的状态值(Number)。

“开”,则返回 1;“关”,则返回 0。

应用:

//示例:根据图层是否接受光源来调整其不透明度。
// 判断图层是否接受光源
if (acceptsLights == 1.0) {
    100; // 完全不透明
} else {
    50; // 半透明
}

ambient

获取 3D 图层的环境的值。

返回值:返回 3D 图层材质选项中的环境(“周围”)属性值(Number)。以百分比形式表示。

应用:

环境光影响图层的整体亮度,无方向性。

//示例 1:使3D图层的环境光分量随时间变化,模拟光线强弱的变化
// 定义环境光变化幅度和速度
var amplitude = 30; // 百分比
var frequency = 0.5; // Hz
// 计算环境光分量
50 + amplitude * Math.sin(2 * Math.PI * frequency * time);


//示例 2:使3D图层的环境光分量根据与摄像机的距离变化
// 获取摄像机图层
var cam = thisComp.activeCamera;
// 计算摄像机与图层的距离
var distance = length(cam.toWorld([0,0,0]), thisLayer.toWorld([0,0,0]));
// 将距离映射到环境光分量(近距离高环境光,远距离低环境光)
linear(distance, 0, 1000, 100, 20);

diffuse

获取 3D 图层的漫射的值。

返回值:返回 3D 图层材质选项中的“漫射”属性值(Number),以百分比形式表示。

应用:

漫反射影响图层表面对光源的散射反射程度,具有方向性。

//示例 1:使3D图层的漫反射分量根据场景中光源的强度变化。
// 获取场景中主光源的强度(假设主光源命名为 "Main Light")
var lightIntensity = thisComp.layer("Main Light").intensity;
// 将光源强度映射到漫反射分量(低光强度低漫反射,高光强度高漫反射)
linear(lightIntensity, 0, 100, 20, 100);

specularIntensity

获取 3D 图层的镜面强度的值。

返回值:返回 3D 图层材质选项中的“镜面强度”属性值(Number),以百分比形式表示。

应用:

镜面反射影响图层表面对光源的高光反射程度,具有方向性和高光点的锐利度。

//示例:使3D图层的镜面反射分量根据与光源的距离变化。
// 获取光源图层(假设光源命名为 "Main Light")
var mLight = thisComp.layer("Main Light");
// 计算光源与图层的距离
var distance = length(mLight.toWorld([0,0,0]), thisLayer.toWorld([0,0,0]));
// 将距离映射到镜面反射分量(近距离高镜面反射,远距离低镜面反射)
linear(distance, 0, 1000, 100, 10);

specturalShinness

获取 3D 图层的镜面反光度的值。

返回值:返回 3D 图层材质选项中的“镜面反光度”属性值(Number),以百分比形式表示。

应用:

光泽度控制镜面高光的锐利度和范围,影响高光的细腻程度。

//示例:使3D图层的光泽度根据光源的强度变化,模拟不同光照条件下的表面反射效果
// 获取光源图层(假设光源命名为 "Ambient Light")
var lightIntensity = thisComp.layer("Ambient Light").light.intensity;
// 将光源强度映射到光泽度(低强度低光泽,高强度高光泽)
linear(lightIntensity, 0, 100, 10, 100);

metal

获取 3D 图层的金属质感的值。

返回值:返回 3D 图层材质选项中的“金属质感”属性值(Number),以百分比形式表示。

应用:

金属度决定材质的金属特性,影响光线反射的颜色和强度。

//示例:使3D图层的金属度随时间变化,模拟材质的动态变化
// 定义振幅和频率
var amplitude = 50; // 百分比
var frequency = 0.5; // Hz


// 计算金属度
50 + amplitude * Math.sin(2 * Math.PI * frequency * time);

reflectionIntensity

获取 3D 图层的反射强度的值。

返回值:返回 3D 图层材质选项中的“反射强度”属性值(Number),以百分比形式表示。

应用:

反射强度控制图层表面对光源的反射量,影响图层的光泽感和材质感。

//示例:使3D图层的反射强度随时间变化,模拟材质光泽度的波动效果
// 定义反射强度的振幅和频率
var amplitude = 30; // 百分比
var frequency = 1; // Hz
// 计算反射强度
50 + amplitude * Math.sin(2 * Math.PI * frequency * time);

reflectionSharpness

获取 3D 图层的反射锐度的值。

返回值:返回 3D 图层材质选项中的“反射锐度”属性值(Number),以百分比形式表示。

应用:

反射锐度控制反射的清晰度和边缘的锐利程度,影响反射的细腻度和真实感。

//示例:使3D图层的反射锐度根据其在空间中的Z位置变化,模拟距离对反射清晰度的影响。
// 获取图层的Z位置
var posZ = position[2];
// 将Z位置映射到反射锐度(靠近摄像机高锐度,远离低锐度)
linear(posZ, -500, 500, 100, 20);

reflectionRolloff

获取 3D 图层的反射衰减的值。

返回值:返回 3D 图层材质选项中的“反射衰减”属性值(Number),以百分比形式表示。

应用:

反射衰减控制反射随视角变化的衰减程度,影响反射在不同角度下的亮度和强度。

//示例:使3D图层的反射衰减根据摄像机与图层的相对角度变化,模拟反射在不同视角下的真实衰减效果。
// 获取摄像机图层
var cam = thisComp.activeCamera;
// 计算摄像机与图层的方向向量
var layerPos = thisLayer.toWorld([0,0,0]);
var camPos = cam.toWorld([0,0,0]);
var direction = normalize(camPos - layerPos);
// 计算反射衰减(方向向量与图层法线的夹角越大,衰减越高)
var angle = degrees(Math.acos(dot(direction, normalize([0,0,1])))); // 假设法线为Z轴
linear(angle, 0, 90, 0, 100);

134bf24749f19c705c20be97b1031498.jpeg

“点赞有美意,赞赏是鼓励”


http://www.kler.cn/a/512475.html

相关文章:

  • 京华春梦,守岁这方烟火人间
  • StackOrQueueOJ3:用栈实现队列
  • 数据结构学习记录-队列
  • BH1750使用程序
  • ovs实现lb负载均衡
  • 程序员不可能不知道的常见锁策略
  • excel 判断某个单元格的日期,如果超过3天,则在另一个单元格显示超过三天的公式
  • 【前端学习路线】前端入门 详细知识点学习路径(附学习资源)
  • VSCode下EIDE插件开发STM32
  • K8S中Pod控制器之DaemonSet(DS)控制器
  • Windows 服务器访问慢解决办法
  • 如何使用Spring Boot框架整合Redis:超详细案例教程
  • 日志(elk stack)基础语法学习,零基础学习
  • 【每日一题】LeetCode - 最长公共前缀
  • WPF 使用webView显示浏览器网页
  • Edu邮箱免费获取Photoshop等设计软件
  • 第七篇:vue3 计算属性:computed
  • Golang Gin系列-3:Gin Framework的项目结构
  • 华宇TAS应用中间件与新支点多款软件及操作系统完成兼容互认证
  • BERT和Transformer模型有什么区别
  • knife4j 文档解析 application/x-www-form-urlencoded表单解析成post json
  • 大模型之三十三- 开源Melo 语音合成
  • 【2025】拥抱未来 砥砺前行
  • 【北京迅为】iTOP-4412全能版使用手册-第八十七章 安装Android Studio
  • 如何通过云计算优化网站性能?
  • Redis 7.0 I/O多线程模型:小红书高并发性能的幕后推手