于是怒了,自己动手。这时候就涉及到一个经典问题:逐帧动画 VS 表达式驱动。新手可能觉得,十帧一个数字,一秒才三个数字,做几十秒也不累。你试试?数字跳变的时候那几帧过渡怎么办?不能硬切啊,数码管在物理世界里是有轻微余晖的,而且每个段点亮熄灭都有个微小的延迟差。如果只是两帧硬切,看起来就像PPT翻页。为了让效果更真,我选择用表达式控制数字显示,配合一点随机函数模拟“残辉抖动”。
表达式这关,我是怎么熬过来的
达芬奇(我用Fusion页面,哥们儿非说达芬奇比AE更专业……)里没有内置的七段数码管生成器,得自己拿Shape搭。❌ 光是画那七个矩形段,用到了Polygon和Rectangle节点,然后还得把它们合并成一组,通过一个自定义控件(CustomTool)来控制显示的数字。逻辑是啥呢?就是根据输入的数字,点亮对应的段。比如数字“0”需要点亮A、B、C、D、E、F段,熄灭G段。这个对应关系我做了个大的表达式,类似: if (number==0) then {A=1;B=1;C=1;D=1;E=1;F=1;G=0;} 诸如此类。写的时候头痛欲裂,因为达芬奇的表达式是Lua脚本,语法和AE不一样,各种分号逗号错一点就报错。中途还发现一个Bug:从4跳到5的时候,D段会闪一下,后来发现是表达式没处理好过渡状态导致。加了个小延时才搞定。😤