// UFO val{ jphn_1(default=0,min=-1000000,max=1000000,step=0) jphs_1(default=0,min=-1000000,max=1000000,step=0) jphw_1(default=0,min=-1000000,max=1000000,step=0) jphe_1(default=0,min=-1000000,max=1000000,step=0) jpvn_1(default=0,min=-1000000,max=1000000,step=0) jpvs_1(default=0,min=-1000000,max=1000000,step=0) jpvw_1(default=0,min=-1000000,max=1000000,step=0) jpve_1(default=0,min=-1000000,max=1000000,step=0) wpow_1(default=0,min=-1000000,max=1000000,step=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) lrs_1(default=0,min=-80,max=80,step=80) lrr_1(default=0,min=-90,max=90,step=90) 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) auto_1(default=0,min=0,max=2,step=2) mode_1(default=0,min=0,max=1,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){ } } } } } script{ // 時間 // 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} 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<50)&(_vel(c_1)<1)|(_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(0)} 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)/2) jpvs_1=-2000*(lz-_vz(c_1)/2) jpvw_1=-2000*(lx-_vx(c_1)/2) jpve_1= 2000*(lx-_vx(c_1)/2) if(mode==1)&(dst<50){ jpvn_1=-2000*200000*(0.5-1/(1+_exp(_vz(c_1)/1))) jpvs_1= 2000*200000*(0.5-1/(1+_exp(_vz(c_1)/1))) jpvw_1= 2000*200000*(0.5-1/(1+_exp(_vx(c_1)/1))) jpve_1=-2000*200000*(0.5-1/(1+_exp(_vx(c_1)/1))) } 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()} }