各位大佬,如下面代码,这是我软件的震荡(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>