--track0:個数,1,1024,40,1 --track1:彩度,0,100,50,1 --track2:S補正,0,9999,10,1 --track3:角度,-360,360,45,0.01 --check0:順番⇔シャッフル,0 --dialog:列数,local len=10;取得フレーム数,local fnum=6;Figure/fig,fig="四角形";line[%],local fgs1=10;alpha,local al=0.5;blend,local blend="alpha_add";色変化速度,local hspd=0;SEED,sd=100; ------------------------------------set local t0=math.floor(obj.track0) local t1=math.floor(obj.track1) local t2=obj.track2 * 0.01 local t3=obj.track3 local sw=obj.screen_w local sh=obj.screen_h local ogvzm=obj.getvalue("zoom")*0.01 ------------------------------------ local div = t0 local buf = {} local bcor = 100 local n = obj.getaudio(buf,"audiobuffer","spectrum",div) local fs = sh / div obj.setfont("",fs,3,0x000000,0xffffff) -------------------------------------script local shuf = {} for i=1,div do shuf[i] = i end for i=1,div do swp = 0 rnd = obj.rand(1,div,-sd,i) swp = shuf[i] shuf[i] = shuf[rnd] shuf[rnd] = swp end -------------------------------------script if(recdata == null or obj.frame == 0)then recdata = {} framecnt = {} end if(recdata[obj.layer] == null)then recdata[obj.layer] = {} framecnt[obj.layer] = 0 for i=1,fnum do recdata[obj.layer][i] = {} end end if(obj.frame == 0)then recdata[obj.layer] = {} framecnt[obj.layer] = 0 for i=1,fnum do recdata[obj.layer][i] = {} end end -- local fn = obj.frame % fnum + 1 local fn = framecnt[obj.layer] % fnum + 1 obj.setoption("drawtarget","tempbuffer",sw,sh) local u0,v0=0,0 local u1,v1=sh,0 local u2,v2=sh,sh local u3,v3=0,sh for i=1,div do recdata[obj.layer][fn][i] = buf[i] ave,rep = 0,fnum -- if(obj.frame + 1 <= fnum)then rep = obj.frame + 1 end if(framecnt[obj.layer] + 1 <= fnum)then rep = framecnt[obj.layer] + 1 end for j=1,rep do ave = ave + recdata[obj.layer][j][i] end ave = math.floor(ave / rep / 10 * sh / 360 + 0.5) mindstx = sw * 0.0375 * t2 dx = mindstx* ((i-1) % len) - len * mindstx * 0.5 + mindstx * 0.5 dy = mindstx * (math.floor((i-1) / len)) - math.floor(div / len) * mindstx *0.5 + mindstx * 0.5 if(math.floor((i-1) / len)%2 == 0)then dx = dx + mindstx * 0.5 end mindstx = sw * 0.0125 * t2 if(obj.rand(0,1,sd,i) == 0)then x0,y0,z0 = -ave-mindstx,-mindstx,0 x1,y1,z1 = ave+mindstx,y0,0 x2,y2,z2 = x1,mindstx,0 x3,y3,z3 = x0,y2,0 else x0,y0,z0 = -mindstx,-ave-mindstx,0 x1,y1,z1 = mindstx,y0,0 x2,y2,z2 = x1,ave+mindstx,0 x3,y3,z3 = x0,y2,0 end ang = t3 r = math.rad(ang) cs = math.cos(r) sn = math.sin(r) xx0 = x0*cs - y0*sn + dx yy0 = x0*sn + y0*cs + dy xx1 = x1*cs - y1*sn + dx yy1 = x1*sn + y1*cs + dy xx2 = x2*cs - y2*sn + dx yy2 = x2*sn + y2*cs + dy xx3 = x3*cs - y3*sn + dx yy3 = x3*sn + y3*cs + dy if(obj.check0)then h = 360*(i-1)/div + obj.time * hspd else h = 360*(shuf[i]-1)/div + obj.time * hspd end col = HSV(h,t1,100) obj.load("figure",fig,col,sh,sh*fgs1*0.01) obj.setoption("blend",blend) obj.drawpoly(xx0,yy0,z0,xx1,yy1,z1,xx2,yy2,z2,xx3,yy3,z3,u0,v0,u1,v1,u2,v2,u3,v3,al) end framecnt[obj.layer] = framecnt[obj.layer] + 1 obj.load("tempbuffer") --[[http://madeinpc.blog50.fc2.com/]]--