1. 为什么3D Stroke在After Effects里一直有人用做后期这行十几年我装过的AE插件少说也有大几十个但真正留在常用工具栏里、每隔几周就会打开一次的其实就那么几个。3D Stroke算一个。它不是什么新东西Trapcode Suite里的老成员了但每次接三维线条类的活儿我第一个想到的还是它。原因很简单AE原生形状图层做描边在三维空间里旋转、弯曲、做透视变化的时候控制起来特别别扭而3D Stroke把这件事变得像在二维里画线一样顺手。这个插件解决的核心问题就一个让二维的路径在三维空间里拥有真实的体积感和运动轨迹。你可以用钢笔工具随手画一条曲线套上3D Stroke它立刻变成一根有粗细、有锥度、能发光、能沿Z轴旋转的立体线条。做科技感UI动效、粒子拖尾、文字路径动画、地图路线生长、光剑效果甚至一些抽象的视觉背景它都能扛。适合谁学我的判断是只要你在AE里做过描边动画觉得原生方案不够用或者想往三维合成方向走这个插件就值得花两个小时认真摸一遍。新手也能上手但想做出有质感的东西得理解它那几个关键参数背后的逻辑。我见过太多人把3D Stroke当成“画线工具”来用结果做出来的东西像面条一样飘在画面里没有重量感。问题不在插件在于没搞懂它的三维坐标系和锥度控制。下面我按自己实际做项目的思路把这个插件拆开讲一遍。2. 插件核心机制与三维空间逻辑拆解2.1 它到底在AE里做了什么3D Stroke的本质是把一条二维路径映射到三维空间中的一条曲线上然后沿着这条曲线生成带有厚度和光照属性的几何体。注意它生成的不是真正的多边形网格而是一种“伪三维”的描边渲染。你在AE的合成里看到的线条实际上是由插件在渲染时计算出来的带状几何它有自己的法线方向、有锥度变化、有颜色渐变但不会像C4D那样参与真正的光线追踪。这个定位决定了它的优势和局限。优势是渲染快、参数直观、和AE的摄像机系统配合得很好局限是它不能做复杂的遮挡关系也不能像真三维模型那样被其他图层投射阴影。我个人的经验是用它做视觉层面的三维线条不要用它做物理层面的三维物体。想清楚这一点后面调参数就不会跑偏。2.2 路径、锥度、变换三者的关系3D Stroke的参数面板看起来密密麻麻但真正影响最终效果的其实就三组东西路径Path、锥度Taper、变换Transform。路径决定线条的走向锥度决定线条从起点到终点的粗细变化变换决定这条线在三维空间里的位置、旋转和缩放。很多人调不好是因为把这三者的顺序搞反了。正确的思路是先在二维平面上把路径画到你满意然后调锥度让线条有“生长感”最后再用变换把它放到三维空间里。如果你先调变换再调锥度会发现锥度的方向跟着变了因为锥度是沿着路径本身计算的而变换会改变路径在空间中的朝向。我踩过这个坑做一条从画面左下角延伸到右上角的光线先旋转了图层再调锥度结果粗细变化的方向完全不对返工了半小时。2.3 和AE原生描边的本质区别AE原生形状图层的描边是在二维平面上沿着路径均匀地画一条线。它没有Z轴概念也没有锥度控制除非你用多个描边叠加模拟。3D Stroke不一样的地方在于它给路径上的每一个点都赋予了三维坐标并且允许你沿着路径的切线方向做旋转。这意味着你可以做出一根“扭麻花”的线条或者让线条在空间中螺旋前进。举个实际例子做科技感数据流的时候我经常用3D Stroke画一条曲线然后给它的Transform里的Rotate X和Rotate Y加上表达式让线条自己慢慢旋转。原生描边做不到这个效果因为它的路径是锁死在二维平面上的。这个区别看起来小但在实际项目里它决定了你能不能做出那种“线条在空间中游走”的视觉感受。3. 关键参数逐项拆解与实操要点3.1 Path面板路径来源与偏移控制Path面板里最重要的两个参数是Path和Offset。Path就是你要绑定的路径图层通常是一个用钢笔工具画好的蒙版或者形状图层路径。Offset控制线条在路径上的起始位置用百分比表示。这个参数是做“线条生长”动画的核心。我通常的做法是给Offset打两个关键帧从0到100然后配合Taper里的Start和End参数让线条在生长过程中头部细、尾部粗或者反过来。这里有个细节Offset的数值变化是沿着路径长度均匀分布的但如果你在路径上加了额外的控制点分布会变得不均匀。所以画路径的时候尽量用最少的控制点保持路径的均匀性。注意Path绑定的路径图层如果被删除了3D Stroke会直接失效线条消失。做项目的时候养成把路径图层锁定并隐藏的习惯避免误删。3.2 Taper面板锥度曲线的秘密Taper是3D Stroke最有价值的功能之一。它允许你分别控制线条起点和终点的粗细并且可以调整锥度的曲线形状。Start Shape和End Shape两个参数分别控制起点和终点附近的粗细变化速率。数值越大变化越剧烈。我实测下来做“光线拖尾”效果的时候Start Shape设成0End Shape设成80左右线条会从起点开始迅速变细到终点几乎消失看起来就像一颗流星划过。做“生长动画”的时候反过来Start Shape设成100End Shape设成0线条从无到有地长出来头部圆润尾部收尖。这里有个很多人不知道的技巧Taper的Start和End参数可以超过100%。你把它设成150线条会在起点附近先变粗再变细形成一个类似水滴的形状。这个效果做能量脉冲的时候特别好用。3.3 Transform面板三维空间里的定位Transform面板里的参数和AE图层的变换属性很像但它是作用在路径本身上的。Position Z控制线条在Z轴上的深度Rotate X/Y/Z控制线条在三维空间中的旋转角度。这里的关键是这些变换是相对于路径的局部坐标系而不是合成的全局坐标系。什么意思呢如果你把Rotate X设成90度线条会绕着它自己的X轴旋转而不是绕着合成的X轴。这个区别在做复杂动画的时候特别重要。我通常的做法是先用Position Z把线条推到想要的深度然后用Rotate X/Y微调它的朝向最后用Rotate Z控制线条在画面中的倾斜角度。提示如果你想让线条跟着AE的摄像机一起运动记得把3D Stroke所在的图层打开三维开关并且把Transform里的Position和摄像机的Position区分开。很多人在这里搞混结果线条和摄像机各动各的画面完全失控。3.4 Repeater面板复制线条的几种玩法Repeater是3D Stroke里被低估的功能。它可以把同一条路径复制多份每份之间可以有位移、旋转和缩放的变化。做“光纤束”或者“能量网格”的时候这个功能能省掉大量手动复制图层的时间。我常用的参数组合是Instances设成5到8X/Y/Z Displacement设成很小的值比如2到5然后给Rotate Z加一个递增的偏移。这样出来的效果是一束线条从同一个起点出发在空间中散开像一束光被棱镜分光一样。注意Repeater的复制体是共享同一条路径的所以如果你改了路径所有复制体都会跟着变。这个特性在做动态路径动画的时候很方便但如果你想让每个复制体有独立的路径就得用多个3D Stroke图层。3.5 颜色与混合模式让线条融入画面3D Stroke的颜色控制相对简单但配合AE的混合模式能玩出很多花样。我通常把线条图层的混合模式设成Add相加或者Screen屏幕这样线条会自然地融入背景产生发光的感觉。如果背景比较亮用Overlay叠加或者Soft Light柔光线条会显得更柔和。颜色方面我建议用渐变而不是纯色。3D Stroke支持沿着路径做颜色渐变你可以让线条从起点到终点颜色逐渐变化这样视觉层次会丰富很多。做科技感画面的时候我经常用青色到紫色的渐变配合Add模式出来的效果很干净。4. 完整实操流程从零做一条三维生长光线4.1 准备工作与路径绘制新建一个合成尺寸1920x1080帧率25时长5秒。新建一个纯色图层作为背景颜色深灰偏蓝。然后用钢笔工具在合成里画一条曲线从画面左下角开始向右上角延伸中间带一点弧度。画的时候注意控制点不要太多3到5个就够了曲线要平滑不要有尖锐的拐角。画完之后把这个形状图层的眼睛关掉它只作为路径来源不需要显示。然后新建一个黑色纯色图层命名为“3D Stroke”给它添加3D Stroke效果。在效果控件的Path选项里选择刚才画的形状图层作为路径来源。4.2 锥度与偏移的关键帧设置把时间指示器移到第0帧给Offset打一个关键帧数值设为0。移到第3秒Offset设为100。这样线条会在3秒内从起点生长到终点。然后调整Taper参数Start设为100End设为0Start Shape设为60End Shape设为20。这样线条的起点粗、终点细生长过程中头部圆润尾部收尖。这里有个细节Offset从0到100的过程中线条的粗细变化是沿着整条路径计算的。如果你想让线条在生长过程中始终保持头部细、尾部粗需要给Taper的Start和End也打关键帧让它们随着Offset的变化而调整。我通常的做法是Start从100降到0End从0升到100这样线条在生长过程中粗细分布会动态变化看起来更有生命力。4.3 三维变换与摄像机配合打开3D Stroke图层的三维开关。在Transform面板里把Position Z设为-200让线条稍微往画面深处退一点。然后给Rotate Z打一个关键帧从-10度到10度让线条在生长过程中微微倾斜。最后新建一个摄像机图层焦距设成50mm给摄像机的Position Z打一个关键帧从-800到-600让镜头缓慢推进。注意摄像机的推进速度要和线条的生长速度匹配。如果镜头推得太快线条还没长完就出画了推得太慢画面会显得拖沓。我一般会让镜头推进的时长比线条生长多出0.5秒留一点余量。4.4 颜色渐变与发光处理在3D Stroke的颜色设置里启用渐变。起点颜色设为青色R:0, G:200, B:255终点颜色设为紫色R:150, G:0, B:255。然后把图层的混合模式设成Add。如果觉得发光不够可以给图层添加一个Glow效果阈值设成50%半径设成30强度设成1.2。这样线条会有一层柔和的光晕看起来更立体。我实测下来Glow的半径不要超过50否则线条会糊成一团失去锐利感。如果你想要更干净的光效可以用Deep Glow或者Optical Glow这类第三方插件但原生Glow调好了也够用。4.5 最终渲染与输出设置渲染的时候我建议用QuickTime PNG编码或者直接输出PNG序列。这样画质损失最小后期如果需要调整颜色或者合成也有足够的空间。输出之前记得把合成的背景色设成透明这样线条可以单独导出方便在其他项目里复用。如果你要输出带背景的版本把背景图层打开渲染成H.264的MP4就行。码率我一般设成15到20 Mbps1080p的线条动画这个码率足够清晰了。5. 常见问题与排查技巧实录5.1 线条不显示或显示异常这是新手最常遇到的问题。排查顺序是这样的先检查Path是否绑定正确如果Path为空线条不会显示。再检查Offset是否在0到100之间如果Offset是负数或者超过100线条可能跑到路径外面去了。最后检查图层的三维开关是否打开如果没打开Transform里的Z轴参数不会生效线条会看起来扁扁的。还有一种情况线条显示了但是断断续续的。这通常是因为路径上有重复的控制点或者路径本身有自交。解决办法是用钢笔工具把路径重新整理一遍删掉多余的控制点确保路径是连续的、不自交的。5.2 锥度方向不对或粗细变化不自然锥度方向不对多半是因为路径的起点和终点搞反了。AE里路径的起点是第一个控制点终点是最后一个控制点。如果你画路径的时候是从右往左画的锥度方向就会反过来。解决办法是在Path面板里勾选Reverse Path或者重新画路径从你想要的起点开始画。粗细变化不自然通常是Start Shape和End Shape的数值太极端了。我建议先把这两个值都设成50看看基础效果然后再慢慢调整。另外Taper的Start和End参数不要同时设成0或者100那样线条会变成一头尖一头粗的锥形看起来很生硬。5.3 渲染速度慢或预览卡顿3D Stroke在预览的时候如果路径控制点太多或者Repeater的Instances设得太高会明显拖慢AE的响应速度。我的经验是路径控制点控制在10个以内Repeater的Instances不要超过20。如果还是卡把合成的分辨率降到一半预览流畅了再调回全分辨率渲染。另外关闭不必要的图层和效果也能提升预览速度。比如背景图层在调线条的时候可以暂时隐藏Glow效果可以等线条调好了再加。我通常会把3D Stroke图层的质量开关设成Draft草图这样预览的时候只显示线条的基本形态不计算渐变和发光速度会快很多。5.4 线条和摄像机运动不匹配这个问题通常是因为3D Stroke图层的Transform参数和摄像机的Position参数没有协调好。我的建议是先调摄像机的运动再调线条的Transform。因为摄像机的运动会改变整个画面的透视关系如果先调线条再调摄像机线条的位置和角度可能会跑偏。还有一个技巧把3D Stroke图层的Parent绑定到一个空对象上然后给空对象打关键帧控制线条的整体运动。这样摄像机和线条的运动可以分开控制调整起来更灵活。5.5 常见问题速查表问题现象可能原因解决方法线条完全不显示Path未绑定或Offset超出范围检查Path绑定Offset设为0-100线条断断续续路径有重复控制点或自交重新整理路径删除多余控制点锥度方向反了路径起点终点画反勾选Reverse Path或重画路径粗细变化生硬Start/End Shape数值太极端先设成50再微调预览卡顿控制点太多或Repeater实例过多减少控制点Instances不超过20线条和摄像机不匹配Transform和摄像机参数冲突先调摄像机再用空对象控制线条6. 进阶技巧与个人经验分享6.1 用表达式让线条自动跟随路径变化如果你做的项目里路径本身是动态变化的比如文字路径动画可以用表达式让3D Stroke的Offset自动跟随路径的长度变化。具体做法是给Offset添加表达式thisComp.layer(路径图层).maskPath.points().length * 2这样Offset会根据路径控制点的数量自动调整。这个技巧在做动态文字描边的时候特别有用省去了手动打关键帧的麻烦。6.2 结合Particular做粒子拖尾3D Stroke和Trapcode Particular是绝配。我经常用3D Stroke画一条曲线然后让Particular的粒子沿着这条曲线发射形成粒子拖尾的效果。具体做法是把3D Stroke的路径图层作为Particular的发射器路径粒子的发射速度设成0生命周期设成2秒这样粒子会沿着路径慢慢飘散看起来像一条发光的尾巴。提示Particular的发射器路径和3D Stroke的路径可以共用同一个形状图层这样调整路径的时候线条和粒子会同步变化效率很高。6.3 做地图路线生长动画的实战心得地图路线生长是3D Stroke最常见的应用场景之一。我的做法是先用钢笔工具沿着地图上的道路画一条路径然后给3D Stroke的Offset打关键帧让线条从起点生长到终点。为了让线条看起来像在地图表面流动我会把3D Stroke图层的混合模式设成Add颜色用亮蓝色然后给线条加一个轻微的Glow。这里有个细节地图路线的路径通常比较长控制点比较多。如果直接绑定到3D Stroke线条可能会在某些拐角处出现尖锐的折角。解决办法是在Path面板里把Smooth参数调高一点让线条在拐角处自动圆滑过渡。我一般设成20到30效果比较自然。6.4 避免线条“飘”在画面上的三个技巧很多人做出来的3D Stroke线条看起来像飘在画面上的面条没有重量感。我总结了三个技巧来解决这个问题第一给线条加阴影。虽然3D Stroke不能投射阴影但你可以复制一层线条往下偏移几个像素颜色设成黑色透明度设成30%模拟阴影效果。第二控制线条的粗细变化。线条的粗细不要从头到尾都一样要有明显的锥度变化这样才有立体感。第三配合景深。给摄像机开启景深让远处的线条模糊近处的线条清晰这样线条就会自然地融入三维空间。6.5 个人常用的参数预设做了这么多项目我积累了几套常用的参数预设直接套用能省不少时间光线拖尾预设Offset从0到100Taper Start0End80Start Shape0End Shape60颜色青色到紫色渐变混合模式Add加Glow半径30。能量脉冲预设Offset从0到100再回到0Taper Start150End0Start Shape100End Shape50颜色白色到蓝色渐变混合模式Add加Glow半径50。地图路线预设Offset从0到100Taper Start100End100Start Shape20End Shape20颜色亮蓝色混合模式Add加Glow半径20Smooth25。这些预设不是固定的你可以根据具体项目微调。我通常会把调好的参数保存成动画预设下次直接拖到图层上改一下路径和颜色就能用。6.6 和其他描边插件的对比选择市面上做描边的插件不止3D Stroke一个还有Videocopilot的Saber、Red Giant的Stroke等。Saber的优势是自带发光和预设做光剑效果特别快但它的三维控制不如3D Stroke灵活。Stroke的优势是渲染速度快适合做大量线条的场景但锥度控制比较弱。我的选择逻辑是需要三维空间控制和锥度变化的时候用3D Stroke需要快速出光效的时候用Saber需要大量线条渲染的时候用Stroke。三个插件各有侧重不存在谁替代谁的问题。实际项目里我经常把3D Stroke和Saber结合使用用3D Stroke做主体线条用Saber做光晕层效果比单独用任何一个都好。7. 关于这个插件我最后想说的3D Stroke这个插件我用了快八年了。它不是什么新潮的东西Trapcode Suite的更新频率也不高但每次打开AE做线条类的效果我还是会习惯性地把它拖到图层上。原因很简单它把三维线条的控制逻辑做得足够直观同时又保留了足够的深度让你去挖掘。你可以花十分钟做一个能看的生长动画也可以花两个小时调出一条有呼吸感的光线。我见过很多新手装了一堆插件每个都只摸了个皮毛最后做东西的时候还是用原生工具硬扛。我的建议是插件不在多在于你能不能把它用透。3D Stroke的参数就那么多但每个参数背后的逻辑值得你花时间一个一个试过去。比如Taper的Start Shape你把它从0调到100再从100调到200看看线条的变化你就知道这个参数在什么场景下该用什么值了。最后分享一个小习惯我每次做完一个3D Stroke的项目都会把参数截图保存下来标注上项目名称和效果描述。时间长了就形成了一套自己的参数库。下次遇到类似的效果直接翻出来参考效率能提升好几倍。这个习惯看起来笨但确实管用。