// UFOx2 val{ auto_1(default=0,min=0,max=2,step=2) mode_1(default=1,min=0,max=1,step=0) jphn_1(default=0,min=-100000,max=100000,step=0,disp=0) jphs_1(default=0,min=-100000,max=100000,step=0,disp=0) jphw_1(default=0,min=-100000,max=100000,step=0,disp=0) jphe_1(default=0,min=-100000,max=100000,step=0,disp=0) jpvn_1(default=0,min=-100000,max=100000,step=0,disp=0) jpvs_1(default=0,min=-100000,max=100000,step=0,disp=0) jpvw_1(default=0,min=-100000,max=100000,step=0,disp=0) jpve_1(default=0,min=-100000,max=100000,step=0,disp=0) wpow_1(default=0,min=-100000,max=100000,step=0,disp=0) height_1(default=0,min=0,max=100000,step=0) yaw_1(default=0,min=-1000,max=1000,step=0) updown_1(default=0,min=-100,max=100,step=100) frs_1(default=0,min=-80,max=80,step=80,disp=0) lrs_1(default=0,min=-80,max=80,step=80,disp=0) lrr_1(default=0,min=-90,max=90,step=90,disp=0) tgtx_1(default=0,min=-100000,max=100000,step=0) tgty_1(default=0,min=-100000,max=100000,step=0) tgtz_1(default=0,min=-100000,max=100000,step=0) jphn_2(default=0,min=-100000,max=100000,step=0,disp=0) jphs_2(default=0,min=-100000,max=100000,step=0,disp=0) jphw_2(default=0,min=-100000,max=100000,step=0,disp=0) jphe_2(default=0,min=-100000,max=100000,step=0,disp=0) jpvn_2(default=0,min=-100000,max=100000,step=0,disp=0) jpvs_2(default=0,min=-100000,max=100000,step=0,disp=0) jpvw_2(default=0,min=-100000,max=100000,step=0,disp=0) jpve_2(default=0,min=-100000,max=100000,step=0,disp=0) wpow_2(default=0,min=-100000,max=100000,step=0,disp=0) height_2(default=0,min=0,max=100000,step=0) yaw_2(default=0,min=-1000,max=1000,step=0) updown_2(default=0,min=-100,max=100,step=100) frs_2(default=0,min=-80,max=80,step=80,disp=0) lrs_2(default=0,min=-80,max=80,step=80,disp=0) lrr_2(default=0,min=-90,max=90,step=90,disp=0) tgtx_2(default=0,min=-100000,max=100000,step=0) tgty_2(default=0,min=-100000,max=100000,step=0) tgtz_2(default=0,min=-100000,max=100000,step=0) } key{ 0:frs_1(step=-5) 1:frs_1(step=5) 2:lrs_1(step=5) 3:lrs_1(step=-5) 4:lrr_1(step=-5) 6:lrr_1(step=5) 5:updown_1(step=1) 8:updown_1(step=-1) 7:auto_1(step=1) } body{ core(name=c_1){ n:frame(angle=90){ n:frame(angle=-90){ n:jet(power=jphn_1,color=#FFFF00){ } } n:frame(angle=-65){ n:jet(angle=-115,power=jpvn_1){ } } n:wheel(angle=90,power=-wpow_1,name=foot_1){ } } s:frame(angle=90){ s:frame(angle=-90){ s:jet(power=jphs_1){ } } s:frame(angle=-65){ s:jet(angle=-115,power=jpvs_1){ } } } w:frame(angle=90){ w:frame(angle=-90){ w:jet(power=jphw_1){ } } w:frame(angle=-65){ w:jet(angle=-115,power=jpvw_1){ } } } e:frame(angle=90){ e:frame(angle=-90){ e:jet(power=jphe_1){ } } e:frame(angle=-65){ e:jet(angle=-115,power=jpve_1){ } } } n:chip(name=c_2){ n:frame(angle=90){ n:frame(angle=-90){ n:jet(power=jphn_2,color=#FFFF00){ } } n:frame(angle=-65){ n:jet(angle=-115,power=jpvn_2){ } } n:wheel(angle=90,power=-wpow_2,name=foot_2){ } } s:frame(angle=90){ s:frame(angle=-90){ s:jet(power=jphs_2){ } } s:frame(angle=-65){ s:jet(angle=-115,power=jpvs_2){ } } } w:frame(angle=90){ w:frame(angle=-90){ w:jet(power=jphw_2){ } } w:frame(angle=-65){ w:jet(angle=-115,power=jpvw_2){ } } } e:frame(angle=90){ e:frame(angle=-90){ e:jet(power=jphe_2){ } } e:frame(angle=-65){ e:jet(angle=-115,power=jpve_2){ } } } } } } script{ t=_split(c_2) // 時間 // sec=_mod(_ticks()/30,60) hmin=_int(_ticks()/86400)+_mod(_int(_ticks()/1800),60)/100 // _az(c_1)の補正 azv_1=_az(c_1) azs_1=_y(c_1)-_y(foot_1) if(azs_1<0){azv_1=_sgn(azv_1)*_pi()-azv_1} if(auto_1==1){mode_1=_mod(mode_1+1,2)} if(mode_1==0){goto manual_1} tgtx_1=_x(c_2) tgty_1=_y(c_2) tgtz_1=_z(c_2) lx=tgtx_1-_x(c_1) ly=tgty_1-_y(c_1) lz=tgtz_1-_z(c_1) dst=_len3(lx,ly,lz) // if(dst<20)|(_h(c_1)>=0){ // tgtx_1=_int(_rnd()*1001)-500 // tgty_1=_int(_rnd()*451)+50 // tgtz_1=_int(_rnd()*1001)-500 // lx=tgtx_1-_x(c_1) // ly=tgty_1-_y(c_1) // lz=tgtz_1-_z(c_1) // dst=_len3(lx,ly,lz) // } // 左右回転 lc=_atan2(-lx,-lz) yaw_1=0 // 前後左右相対位置 z=lz*_cos(_ay(c_1))+lx*_sin(_ay(c_1)) x=lx*_cos(_ay(c_1))-lz*_sin(_ay(c_1)) lz=z lx=x goto seigyo_1 label manual_1 lx=lrs_1 ly=updown_1 lz=frs_1 lc=_torad(lrr_1) if(lc<>0){yaw_1=_ay(c_1)} label seigyo_1 // 左右回転 lc=_ay(c_1)-yaw_1-lc if(lc<-_pi()){lc=lc+_pi()*2} if(lc> _pi()){lc=lc-_pi()*2} wpow_1=80000*(lc+_wy(c_1)) // リミッタ if(lx<-80){lx=-80} if(lx> 80){lx= 80} if(ly<-20){ly=-20} if(ly> 20){ly= 20} if(lz<-80){lz=-80} if(lz> 80){lz= 80} // 前後左右バランス jphn_1=-10000*_ax(c_1)-1000*_wx(c_1) jphs_1= 10000*_ax(c_1)+1000*_wx(c_1) jphw_1= 10000*azv_1 -1000*_wz(c_1) jphe_1=-10000*azv_1 +1000*_wz(c_1) // 上下 if(ly<>0){height_1=_y(c_1)} jphn_1=jphn_1+(5000*(ly+height_1-_y(c_1)+1.6)-1000*_vy(c_1))*_cos(azv_1) jphs_1=jphs_1+(5000*(ly+height_1-_y(c_1)+1.6)-1000*_vy(c_1))*_cos(azv_1) jphw_1=jphw_1+(5000*(ly+height_1-_y(c_1)+1.6)-1000*_vy(c_1))*_cos(azv_1) jphe_1=jphe_1+(5000*(ly+height_1-_y(c_1)+1.6)-1000*_vy(c_1))*_cos(azv_1) jpvn_1= 2000*(lz-_vz(c_1)/4) jpvs_1=-2000*(lz-_vz(c_1)/4) jpvw_1=-2000*(lx-_vx(c_1)/4) jpve_1= 2000*(lx-_vx(c_1)/4) /////////////////////////////////////////////////////////////////////////////// // _az(c_2)の補正 azv_2=_az(c_2) azs_2=_y(c_2)-_y(foot_2) if(azs_2<0){azv_2=_sgn(azv_2)*_pi()-azv_2} lx=tgtx_2-_x(c_2) ly=tgty_2-_y(c_2) lz=tgtz_2-_z(c_2) dst=_len3(lx,ly,lz) if(dst<20)|(_h(c_2)>=0){ tgtx_2=_int(_rnd()*1001)-500 tgty_2=_int(_rnd()*451)+50 tgtz_2=_int(_rnd()*1001)-500 lx=tgtx_2-_x(c_2) ly=tgty_2-_y(c_2) lz=tgtz_2-_z(c_2) dst=_len3(lx,ly,lz) } // 左右回転 lc=_atan2(-lx,-lz) yaw_2=0 // 前後左右相対位置 z=lz*_cos(_ay(c_2))+lx*_sin(_ay(c_2)) x=lx*_cos(_ay(c_2))-lz*_sin(_ay(c_2)) lz=z lx=x // 左右回転 lc=_ay(c_2)-yaw_2-lc if(lc<-_pi()){lc=lc+_pi()*2} if(lc> _pi()){lc=lc-_pi()*2} wpow_2=80000*(lc+_wy(c_2)) // リミッタ if(lx<-40){lx=-40} if(lx> 40){lx= 40} if(ly<-10){ly=-10} if(ly> 10){ly= 10} if(lz<-40){lz=-40} if(lz> 40){lz= 40} // 前後左右バランス jphn_2=-10000*_ax(c_2)-1000*_wx(c_2) jphs_2= 10000*_ax(c_2)+1000*_wx(c_2) jphw_2= 10000*azv_2 -1000*_wz(c_2) jphe_2=-10000*azv_2 +1000*_wz(c_2) // 上下 if(ly<>0){height_2=_y(c_2)} jphn_2=jphn_2+(5000*(ly+height_2-_y(c_2)+1.6)-1000*_vy(c_2))*_cos(azv_2) jphs_2=jphs_2+(5000*(ly+height_2-_y(c_2)+1.6)-1000*_vy(c_2))*_cos(azv_2) jphw_2=jphw_2+(5000*(ly+height_2-_y(c_2)+1.6)-1000*_vy(c_2))*_cos(azv_2) jphe_2=jphe_2+(5000*(ly+height_2-_y(c_2)+1.6)-1000*_vy(c_2))*_cos(azv_2) jpvn_2= 2000*(lz-_vz(c_2)/2) jpvs_2=-2000*(lz-_vz(c_2)/2) jpvw_2=-2000*(lx-_vx(c_2)/2) jpve_2= 2000*(lx-_vx(c_2)/2) /////////////////////////////////////////////////////////////////////////////// print 0,"Up/Down:Front/Back, Left/Right:Left/Right, Z/C:Yaw, X/S:Up/Down if(auto_1>0){ print 1,"A:Auto-Pilot[ON] } if(auto_1==0){ print 1,"A:Auto-Pilot[OFF] } print 2,"Vel=",_vel(c_1),", Speed=",_vel(c_1)*3.6,", Distance=",dst print 3,"x=",_x(c_1),", y=",_y(c_1),", z=",_z(c_1) print 4,"ax=",_todeg(_ax(c_1)),", ay=",_todeg(_ay(c_1)),", az=",_todeg(azv_1) print 5,"vx=",_vx(c_1),", vy=",_vy(c_1),", vz=",_vz(c_1) print 6,"wx=",_wx(c_1),", wy=",_wy(c_1),", wz=",_wz(c_1) print 7,"lx=",lx,", ly=",ly,", lz=",lz,", d=",dst if(sec<10){print 7,"Time=",hmin,".0",sec,", FPS=",_fps()} if(sec>=10){print 7,"Time=",hmin,".",sec,", FPS=",_fps()} }