@スライドショー --track0:時間,0,100,0.5,0.01 --track1:速度,0,9999,640,0.01 --track2:角度,-360,360,0,0.01 --track3:Z方向,-4096,4096,0,0.01 --check0:読込情報,1 --dialog:File,local file="F:\\Temp1\\001\\0001.jpg";フェードイン・アウト/chk,chk1=0;統一[W or H]/chk,chk2=1;幅,local ww=640;高,local hh=360;読込予定枚数,local inum=100;停止度[3以上],local ctc=10;速度係数,local t1c=3.20;交互登退/chk,chk3=0; ---------------------------------------- --正規表現がまだ勉強中で良くわかっていないので、Fileの読み込みが上手くいかないことがあるかも……。また、アドレスに日本語が含まれている場合も同様。 ---------------------------------------- local t0=obj.track0 local t1=obj.track1 local t2=obj.track2 local t3=obj.track3 local ot=obj.time local sw=obj.screen_w local sh=obj.screen_h ---------------------------------------- if(t0<=0)then t0=0.01 end local cidx=math.floor(ot/t0) local tcnt=math.floor((ot%t0)*100)/100 ---------------------------------------- local ptrn1="%w*$" --拡張子取得 local ptrn2="[%w|_]*%p%w*$" --filename local ptrn2a="%d*$" --filename 数値取得 local ptrn3="%w*%p*[%w|%s|%p|_]*\\" --drive&folder local f1=string.match(file,ptrn1) --拡張子 local f2=string.match(file,ptrn2) --ファイル全体 local f2a=string.sub(f2,1,string.len(f2)-4) --ファイル名 local f2b=string.match(f2a,ptrn2a) --ファイル名数値 local f3=string.match(file,ptrn3) --ドライブ&フォルダ local keta1=string.len(f2b) local f2a=string.sub(f2a,1,-keta1-1) local keta="%0"..keta1.."d" local ff=f3..f2a..string.format(keta,(f2b+cidx)).."."..f1 ---------------------------------------- local ow,oh,wc,hc local fidx=1 local kakuchoshi={"jpg","png","gif","bmp"} repeat ff=f3..f2a..string.format(keta,(f2b+cidx)).."."..kakuchoshi[fidx] obj.load("image",ff) ow,oh=obj.getpixel()--*** 画像サイズ取得 wc,hc=ww/ow,hh/oh fidx=fidx+1 until ow~=0 or fidx>4 local ang=t2-180 if(chk3==1 and cidx%2==1)then ang=t2 end --***対角線から交互に local r=math.rad(ang) local cs=math.cos(r) local sn=math.sin(r) t1=t1*t1c if(ctc<=3)then ctc=3 end if(tcnt<=t0/ctc)then dx=t1*(t0/ctc-tcnt)*cs dy=t1*(t0/ctc-tcnt)*sn if(chk1==0)then al=1 else al=1-(t0/ctc-tcnt) end elseif(tcnt<=t0*(ctc-1)/ctc)then dx=0 dy=0 al=1 elseif(tcnt<=t0)then dx=t1*(t0*(ctc-1)/ctc-tcnt)*cs dy=t1*(t0*(ctc-1)/ctc-tcnt)*sn if(chk1==0)then al=1 else al=1+(t0*(ctc-1)/ctc-tcnt) end end dz=t3 local op=nil if(chk2==1)then zm=hc op="H" else zm=wc op="W" end if(obj.check0)then obj.effect() obj.draw(dx,dy,dz,zm,al) else obj.ox=obj.ox+dx obj.oy=obj.oy+dy obj.oz=obj.oz+dz obj.zoom=zm obj.alpha=al end ---------------------------------------- if(obj.check0)then cmdf1,cmdf2=math.modf(t0-tcnt) obj.setfont("gothic",sh/18,3,0xffffff,0x000000) output="連番画像.JPGで使用します。\n拡張子をJPGにしておけば\nPNGとGIFが混ざっていてもOKです。" .."\n\nファイル "..ff .."\n切替間隔 "..t0.."秒" .."\nカウント "..cmdf1.."."..string.format("%02d",cmdf2*100).."秒" .."\n\n予定枚数 "..inum.."枚 総完了時間 "..inum*t0.."秒" .."\n移動速度 "..t1.."(速度x速度係数)" .."\n\n画像サイズ "..ow.."x"..oh .."\n統一サイズ "..math.floor(ow*zm).."x"..math.floor(oh*zm).." ("..op..")" obj.load("text",output) obj.draw() end ---------------------------------------- @スライドショー円形配置 --track0:範囲,0,4096,100,1 --track1:距離,1,9999,640,0.01 --track2:枚数,1,360,12,1 --track3:回転,-4096,4096,0,0.01 --dialog:File,local file="F:\\Temp1\\001\\0501.jpg";統一[W or H]/chk,chk2=1;幅,local ww=640;高,local hh=360;個別角度/chk,chk1=0;効果/chk,chk3=1;切替/chk,chk4=0;切替時間,local tcnt=1.50; ---------------------------------------- --正規表現がまだ勉強中で良くわかっていないので、Fileの読み込みが上手くいかないことがあるかも……。また、アドレスに日本語が含まれている場合も同様。 ---------------------------------------- local erng=obj.track0 local t1=obj.track1 local t2=obj.track2 local t3=obj.track3 local ot=obj.time local sw=obj.screen_w local sh=obj.screen_h ---------------------------------------- local ptrn1="%w*$" --拡張子取得 local ptrn2="[%w|_]*%p%w*$" --filename local ptrn2a="%d*$" --filename 数値取得 local ptrn3="%w*%p*[%w|%s|%p|_]*\\" --drive&folder local f1=string.match(file,ptrn1) --拡張子 local f2=string.match(file,ptrn2) --ファイル全体 local f2a=string.sub(f2,1,string.len(f2)-4) --ファイル名 local f2b=string.match(f2a,ptrn2a) --ファイル名数値 local f3=string.match(file,ptrn3) --ドライブ&フォルダ local keta1=string.len(f2b) local f2a=string.sub(f2a,1,-keta1-1) local keta="%0"..keta1.."d" local ff="" ---------------------------------------- local num=t2 local ang=360/num local dst=t1 for i=0,num-1 do r=math.rad(-i*ang-90+t3) cs=math.cos(r) sn=math.sin(r) if(chk4==0)then cidx=0 else if(tcnt<=0.01)then tcnt=0.01 end cidx=math.floor(ot/tcnt) end local ow,oh,wc,hc local fidx=1 local kakuchoshi={"jpg","png","gif","bmp"} repeat ff=f3..f2a..string.format(keta,(f2b+i%(num)+cidx)).."."..kakuchoshi[fidx] obj.load("image",ff) ow,oh=obj.getpixel()--*** 画像サイズ取得 wc,hc=ww/ow,hh/oh fidx=fidx+1 until ow~=0 or fidx>4 dx=dst*cs dy=0 dz=dst*sn+dst al=1 if(chk2==1)then zm=hc else zm=wc end if(chk1==0)then ry=0 else ry=-(-i*ang+t3) end if(chk3==1)then if((-erng< dx and dx < erng) and (-erng< dz and dz < erng))then obj.effect() end end obj.draw(dx,dy,dz,zm,al,0,ry,0) end ---------------------------------------- --[[http://madeinpc.blog50.fc2.com/]]--