【求助】关于视频动画特效

各位大佬,如下面代码,这是我软件的震荡Shake)效果(视频处理)的封装,根据下面格式,可以写出视频变速效果吗?求解答

<?xml version='1.0' encoding='UTF-8' ?>
<effect id="com.alightcreative.effects.xshake" name="抖动(Shake)" desc="@am:string/shake_Rudy" tags="transform" thumb="thumb/shake.webp">

    <params>
       <slider id="mag" default="4" min="0" max="20" label="振幅" snap="0,0.5,1,1.5,2,3,4,5,6,7,8,9,10,12,14,16,20" ticks="0,0.5,1,1.5,2,3,4,5,6,7,8,9,10,12,14,16,20" originValue="0" />
        <slider id="freq" default="2" min="0" max="10" label="频率" snap="0,2,4,7" ticks="0,2,4,7" originValue="0" />
        <slider id="zdist" default="1" min="0.001" max="5" label="距离" snap="0.250,0.5,0.75,1,1.25,1.5,2,3,4,5" ticks="0.250,0.5,0.75,1,1.25,1.5,2,3,4,5" originValue="1" />
        <slider id="rot" default="0" min="-360" max="360" label="旋转" snap="-360,-270,-180,-135,-90,-45,-30,-15,0,15,30,45,90,135,180,270,360" ticks="-360,-270,-180,-135,-90,-45,-30,-15,0,15,30,45,90,135,180,270,360" originValue="0" />
        <section text="抖动设定" />
        <tip text="在这里你可以自己抖动" />
        <section text="X 抖动" />
        <slider id="xmag" default="15" min="0" max="100" label="X 振幅" snap="0,0.5,1,1.5,2,3,4,5,6,7,8,9,10,12,14,16,20" ticks="0,0.5,1,1.5,2,3,4,5,6,7,8,9,10,12,14,16,20" originValue="0" />
        <slider id="xfreq" default="12" min="0" max="100" label="X 频率" snap="0,2,4,7,10,15" ticks="0,2,4,7,10,15" originValue="0" />
        <section text="Y 抖动" />
        <slider id="ymag" default="40" min="0" max="100" label="Y 振幅" snap="0,0.5,1,1.5,2,3,4,5,6,7,8,9,10,12,14,16,20" ticks="0,0.5,1,1.5,2,3,4,5,6,7,8,9,10,12,14,16,20" originValue="0" />
        <slider id="yfreq" default="18" min="0" max="100" label="Y 频率" snap="0,2,4,7,10,15" ticks="0,2,4,7,10,15" originValue="0" />
        <section text="Z 抖动" />
        <slider id="zmag" default="1" min="0" max="100" label="Z 振幅" snap="0,0.5,1,1.5,2,3,4,5,6,7,8,9,10,12,14,16,20" ticks="0,0.5,1,1.5,2,3,4,5,6,7,8,9,10,12,14,16,20" originValue="0" />
        <slider id="zfreq" default="10" min="0" max="100" label="Z 频率" snap="0,2,4,7,10,15" ticks="0,2,4,7,10,15" originValue="0" />
        <section text="倾斜 抖动" />
        <slider id="tmag" default="10" min="0" max="100" label="倾斜 振幅" snap="0,0.5,1,1.5,2,3,4,5,6,7,8,9,10,12,14,16,20" ticks="0,0.5,1,1.5,2,3,4,5,6,7,8,9,10,12,14,16,20" originValue="0" />
        <slider id="tfreq" default="40" min="0" max="100" label="倾斜 频率" snap="0,2,4,7,10,15" ticks="0,2,4,7,10,15" originValue="0" />
    </params>

    <script lang="js"><![CDATA[

        function animate(env,el,p) {
            let t = env.time;
            var zd = p.zdist;
            var dx = p.xmag/10;
            var dy = p.ymag/10;
            var dt = p.tmag/10;
            var dz = p.zmag/50;
            var dzz;
            let m;
            m = Math.sin(t * env.duration * p.freq * 3.14159);
            mx= Math.sin(t * env.duration * p.freq * (p.xfreq/10) * 3.14159);
            my= Math.sin(t * env.duration * p.freq * (p.yfreq/10) * 3.14159);
            mt= Math.sin(t * env.duration * p.freq * (p.tfreq/10) * 3.14159);
            mz= Math.sin(t * env.duration * p.freq * (p.zfreq/10) * 3.14159);
            dx *= dx * mx * p.mag;
            dy *= dy * my * p.mag;
            dt *= dt * mt * p.mag;
            dz *= dz * mz * p.mag;
            dzz = zd + dz;
            el.transform.location.x += dx;
            el.transform.location.y += dy;
            el.transform.angle = p.rot + dt;
            el.transform.scale.x = dzz;
            el.transform.scale.y = dzz;
            return el;
        }

    ]]></script>
</effect>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值