@個別位置追跡(瞬間移動) --track0:字番号,1,2048,1,1 --check0:Import,0 --dialog:File,file="R:\\kobetsu.txt";Readme,t0="『TA個別データ取得』で出力したTXTを読み込ませます。"; ----------------------------------------- t0=math.floor(obj.track0) ----------------------------------------- if(kdata==null)then kdata={} end if(obj.check0)then local idx=1 local f=io.open(file,"r") for line in f:lines() do kdata[idx]=line idx=idx+1 end f:close() if(idx<#kdata)then for i=idx+1,#kdata do kdata[i]=null end end end if(math.floor(#kdata/8)<=t0)then t0=math.floor(#kdata/8) end knum=(t0-1)*8 x0=kdata[knum+1] y0=kdata[knum+2] z0=kdata[knum+3] cam=obj.getoption("camera_param") cam.x=cam.x +x0 cam.y=cam.y +y0 cam.z=cam.z +z0 cam.tx=cam.tx +x0 cam.ty=cam.ty +y0 cam.tz=cam.tz +z0 obj.setoption("camera_param",cam) @個別位置追跡(滑らか移動) --track0:字番号,1,2048,40,1 --track1:速度,1,4096,200,1 --track2:補正,-1000,1000,0,1 --track3:微細,1,1000,100,1 --check0:Import,0 --dialog:File,file="R:\\kobetsu.txt";Readme,t0="『TA個別データ取得』で出力したTXTを読み込ませます。"; ----------------------------------------- t0=math.floor(obj.track0) t1=math.floor(obj.track1) t2=math.floor(obj.track2) t3=math.floor(obj.track3) ----------------------------------------- if(xxx==null)then xxx={} end if(yyy==null)then yyy={} end if(zzz==null)then zzz={} end if(obj.check0)then local idx=1 local idx2=0 local n=8 local f=io.open(file,"r") for line in f:lines() do if(idx2%n==0)then xxx[idx]=line elseif(idx2%n==1)then yyy[idx]=line elseif(idx2%n==2)then zzz[idx]=line idx=idx+1 end idx2=idx2+1 end f:close() ---***開始位置、終了位置の重複(要再考) table.insert(xxx,1,xxx[1]) table.insert(yyy,1,yyy[1]) table.insert(zzz,1,zzz[1]) table.insert(xxx,idx+1,xxx[idx]) table.insert(yyy,idx+1,yyy[idx]) table.insert(zzz,idx+1,zzz[idx]) ---*** if(idx+2<#xxx)then for i=idx+3,#xxx do xxx[i]=null yyy[i]=null zzz[i]=null end end xxx0,yyy0,zzz0=null,null,null end if(#xxx<=t0)then t0=#xxx end anc=t0 nidx=0 n=t3 ik=1 spd=math.floor(obj.time*100)/100*t1 len=anc-2 for j=1,len do for i=0,n,ik do tm=1/n*i if(j==0)then x0,y0,z0,x1,y1,z1,x2,y2,z2,x3,y3,z3=xxx[j+1],yyy[j+1],zzz[j+1],xxx[j+1],yyy[j+1],zzz[j+1],xxx[j+2],yyy[j+2],zzz[j+2],xxx[j+3],yyy[j+3],zzz[j+3] elseif(j==len)then x0,y0,z0,x1,y1,z1,x2,y2,z2,x3,y3,z3=xxx[j-1],yyy[j-1],zzz[j-1],xxx[j],yyy[j],zzz[j],xxx[j+1],yyy[j+1],zzz[j+1],xxx[j+2],yyy[j+2],zzz[j+2] else x0,y0,z0,x1,y1,z1,x2,y2,z2,x3,y3,z3=xxx[j],yyy[j],zzz[j],xxx[j+1],yyy[j+1],zzz[j+1],xxx[j+2],yyy[j+2],zzz[j+2],xxx[j+3],yyy[j+3],zzz[j+3] end if(nidx+t2<=spd)then xxx0,yyy0,zzz0=obj.interpolation(tm,x0,y0,z0,x1,y1,z1,x2,y2,z2,x3,y3,z3) else xxx0,yyy0,zzz0=xxx0,yyy0,zzz0 end nidx=nidx+1 end end cam=obj.getoption("camera_param") cam.x=cam.x +xxx0 cam.y=cam.y +yyy0 cam.z=cam.z +zzz0 cam.tx=cam.tx +xxx0 cam.ty=cam.ty +yyy0 cam.tz=cam.tz +zzz0 obj.setoption("camera_param",cam) --[[http://madeinpc.blog50.fc2.com/]]--