// [RCD] // 「車の味」をメインに考え開発しています。 // valブロックの ***_SET のdefault値を変更すると、読み込み時のセッティングを変える事が出来ます。 // // created by tako('@`) Val { BASE_F_ANGLE(default=0, min=-90, disp=0) BASE_R_ANGLE(default=0, min=-90, disp=0) BRK_COLOR(default=8912896, min=8912896, max=16711680, step=7798784, disp=0) BRK_EFFECT(default=0, max=4095, step=4095, disp=0) BRK_FL(default=0, disp=0) BRK_FR(default=0, disp=0) BRK_M(default=0, max=100, step=20, disp=0) BRK_RL(default=0, disp=0) BRK_RR(default=0, disp=0) COLA(default=11193599, disp=0) COLB(default=11193599, disp=0) COLC(default=6706517, disp=0) COLD(default=11193599, disp=0) DRV_ANGLE(default=180, min=120, max=240, step=3, disp=0) POW_FL(default=0, min=-10000, disp=0) POW_FR(default=0, min=-10000, disp=0) POW_M(default=0, min=-1000, max=100, step=20, disp=0) POW_RL(default=0, min=-10000, disp=0) POW_RR(default=0, min=-10000, disp=0) SET_COL(default=8, disp=0) SET_MODE(default=1, disp=0) SET_SUS(default=2, disp=0) SET_TOP(default=0, disp=0) SPRING_FL(default=0, disp=0) SPRING_FR(default=0, disp=0) SPRING_RL(default=0, disp=0) SPRING_RR(default=0, disp=0) SPR_F(default=0, disp=0) SPR_R(default=0, disp=0) STR_L(default=170, min=145, max=195, disp=0) STR_M(default=0, min=-100, max=100, step=10, disp=0) STR_R(default=170, min=145, max=195, disp=0) SUS_F_ANGLE(default=90, disp=0) SUS_R_ANGLE(default=90, disp=0) TOPA(default=47, min=47, max=107, disp=0) TOPB(default=120, min=120, max=175, disp=0) TRQSPL(default=0, max=0.36, step=0.02, disp=0) WIN_F(default=165, min=145, max=177, disp=0) WIN_R(default=165, min=145, max=176, disp=0) } Key { 0:POW_M(step=10) 1:POW_M(step=-10) 2:STR_M(step=10) 3:STR_M(step=-10) 7:BRK_M(step=20), BRK_COLOR(step=7798784), BRK_EFFECT(step=4095) 10:POW_M(step=10) 11:BRK_M(step=20), BRK_COLOR(step=7798784), BRK_EFFECT(step=4095) 12:POW_M(step=-10) 14:DRV_ANGLE(step=3) 15:DRV_ANGLE(step=-3) } Body { Core(color=#666666) { S:RudderF(angle=DRV_ANGLE, option=1) { S:Frame(angle=40, option=1) { S:Frame(option=1) { S:Chip(angle=-42, color=#333333) { S:Cowl(angle=-13, color=#333333, effect=61440) { S:Cowl(angle=-130, color=#333333, effect=61440) { S:Cowl(angle=-67, color=#665555) { W:Cowl(color=COLA) { S:Cowl(angle=5, option=4, color=COLA) { } N:Cowl(angle=-75, option=5, color=COLA) { } } E:Cowl(color=COLA) { S:Cowl(angle=5, option=3, color=COLA) { } N:Cowl(angle=-75, option=5, color=COLA) { } } E:Cowl(angle=-140, option=1, color=#333333, effect=61440) { E:Cowl(angle=-80, option=1, color=#333333, effect=61440) { E:Cowl(angle=-140, option=1, color=COL, effect=61440) { N:Cowl(angle=-73, color=COLA) { E:Cowl(color=COLA) { } } } } } } } } S:Cowl(angle=-75, color=#333333) { S:Cowl(angle=155, color=#333333, effect=61440) { S:Cowl(angle=-170, color=#333333, effect=61440) { E:Cowl(angle=-71, color=COLB) { E:Cowl(color=COLB) { E:Cowl(angle=-19, color=COLB) { E:Cowl(color=COLB) { } } S:Cowl(angle=-78, option=5, color=COLB) { } } S:Cowl(angle=-79, option=4, color=COLB) { } } W:Cowl(angle=-71, color=COLB) { W:Cowl(color=COLB) { W:Cowl(angle=-19, color=COLB) { W:Cowl(color=COLB) { } } S:Cowl(angle=-78, option=5, color=COLB) { } } S:Cowl(angle=-79, option=3, color=COLB) { } } S:Cowl(angle=-79, color=COLB) { S:Cowl(angle=-8, color=COLB) { S:Cowl(angle=-70, option=2, color=#602010, effect=0) { S:Cowl(angle=65, color=#664444, effect=0) { S:Cowl(angle=75, option=5, color=#664444, effect=0) { } } } } N:Cowl(angle=-48, color=#444444, effect=0) { E:Cowl(angle=-80, option=3, color=COLB) { } W:Cowl(angle=-80, option=4, color=COLB) { } N:Cowl(angle=-115, color=#333333, effect=0) { } } } } } } S:Frame(option=1, angle=BASE_F_ANGLE, name=BASE_F) { E:TrimF(angle=SUS_F_ANGLE, option=1, spring=SPRING_FL, name=SUS_FL) { E:Frame(angle=100, option=1) { E:Wheel(angle=STR_L, power=POW_FL, brake=BRK_FL, effect=3, color=#666666, name=FL) { } E:Cowl(angle=STR_L, option=2, color=#666666, effect=0) { } } } W:TrimF(angle=-SUS_F_ANGLE, option=1, spring=SPRING_FR, name=SUS_FR) { W:Frame(angle=100, option=1) { W:Wheel(angle=STR_R, power=-POW_FR, brake=BRK_FR, effect=3, color=#666666, name=FR) { } W:Cowl(angle=STR_R, option=2, color=#666666, effect=0) { } } } } S:RudderF(angle=90) { E:Cowl(angle=-WIN_F, color=#333333) { } } S:RudderF(angle=-90) { W:Cowl(angle=-WIN_F, color=#333333) { } } N:Trim(angle=20, color=#333333) { N:Trim(angle=-40, color=#333333) { N:Trim(angle=20, color=#333333) { N:Rudder(angle=90, color=#333333) { S:Cowl(angle=-90, color=#665555) { S:Cowl(angle=90, color=COLC, effect=0) { N:Cowl(color=COLC, effect=0) { W:Cowl(angle=60, color=COLD) { N:Cowl(angle=85, option=3, color=COLB) { } } E:Cowl(angle=60, color=COLC, effect=0) { } N:Cowl(angle=70, color=COLB) { } } W:Cowl(angle=60, color=COLD) { S:Cowl(angle=85, option=4, color=COLB) { } } S:Cowl(angle=70, color=COLB) { } E:Cowl(angle=60, color=COLC, effect=0) { } } } E:Cowl(angle=-WIN_R, color=#333333) { } } N:Cowl(angle=-65, color=#333333) { } S:Cowl(angle=-120, color=COLA) { W:Cowl(angle=0, color=COLA) { W:Cowl(angle=-91, option=4, color=COLA) { } S:Cowl(angle=-60, color=COLA) { S:Cowl(angle=-60, color=COLA) { W:Cowl(angle=-91, option=3, color=COLA) { } } W:Cowl(angle=-87, color=COLA) { } } } E:Cowl(angle=0, color=COLA) { E:Cowl(angle=-91, option=3, color=COLA) { } S:Cowl(angle=-60, color=COLA) { S:Cowl(angle=-60, color=COLA) { E:Cowl(angle=-91, option=4, color=COLA) { } } E:Cowl(angle=-87, color=COLA) { } } } S:Cowl(angle=-70, color=#333333) { S:Cowl(angle=-38) { } } } N:Cowl(angle=-55, effect=61440) { N:Cowl(angle=120) { } } N:Frame(angle=BASE_R_ANGLE, option=1, name=BASE_R) { W:TrimF(angle=SUS_R_ANGLE, option=1, spring=SPRING_RR, name=SUS_RR) { W:Frame(angle=100, option=1) { W:Wheel(angle=170, power=-POW_RR, brake=BRK_RR, effect=3, color=#666666, name=RR) { } W:Cowl(angle=170, option=2, color=#666666, effect=0) { } } } E:TrimF(angle=-SUS_R_ANGLE, option=1, spring=SPRING_RL, name=SUS_RL) { E:Frame(angle=100, option=1) { E:Wheel(angle=170, power=POW_RL, brake=BRK_RL, effect=3, option=0, color=#666666, name=RL) { } E:Cowl(angle=170, option=2, color=#666666, effect=0) { } } } } N:Rudder(angle=-90, color=#333333) { W:Cowl(angle=-145, color=#333333) { W:Cowl(angle=-76, effect=61440) { W:Cowl(angle=160, color=BRK_COLOR, effect=BRK_EFFECT) { S:Cowl(color=BRK_COLOR, effect=BRK_EFFECT) { } W:Cowl(angle=2, color=0, effect=40960) { W:Cowl(angle=45, color=COLC, effect=0) { S:Cowl(color=COLC, effect=0) { S:Cowl(angle=83, color=0, effect=40960) { E:Cowl(angle=7, option=3, color=COLB) { } } W:Cowl(angle=-TOPA, effect=61440) { W:Cowl(angle=TOPB, effect=61440) { W:Cowl(angle=120, color=COLC, effect=0) { N:Cowl(color=COLC, effect=0) { } } } } } W:Cowl(angle=13, effect=61440) { W:Cowl(angle=50, color=0, effect=40960) { S:Cowl(color=0, effect=40960) { S:Cowl(angle=83, option=3, color=0, effect=40960) { } } N:Cowl(angle=83, option=4, color=0, effect=40960) { } } } N:Cowl(angle=83, color=0, effect=40960) { E:Cowl(angle=7, option=4, color=COLB) { } } } S:Cowl(color=0, effect=40960) { } } } } } E:Cowl(angle=-90, effect=61440) { } W:Cowl(angle=-WIN_R, color=#333333) { } } S:Trim(angle=-20, color=#333333) { } S:Cowl() { W:Cowl() { } E:Cowl() { } } } } } N:Trim(angle=-20, color=#333333) { } S:Frame(angle=-30, option=1) { S:Frame(angle=-150, option=1) { E:Jet(angle=30, power=0, option=1) { } W:Jet(angle=30, power=0, option=1) { } } } N:Cowl() { W:Cowl() { } E:Cowl() { } } } } } } } } Lua { function main() SPD=math.sqrt(_VX(0)^2+_VY(0)^2+_VZ(0)^2)*3.6 if math.abs(_ANALOG(0))>50 then STR_M=_ANALOG(0)/10 end STR_L=STR_M/4+170 STR_R=-STR_M/4+170 WIN_F=165+SPD/50-BRK_M/10 WIN_R=165+SPD/(50+SET_MODE)-BRK_M/10 SUS_F_ANGLE=90-BASE_F_ANGLE SUS_R_ANGLE=90-BASE_R_ANGLE ANTIROLL_F=math.abs(_RX(SUS_FL,SUS_FR))*0.5 ANTIROLL_R=math.abs(_RX(SUS_RL,SUS_RR))*0.1 SPRING_FL,SPRING_FR=SPR_F+SPD/8000+ANTIROLL_F,SPR_F+SPD/8000+ANTIROLL_F SPRING_RL,SPRING_RR=SPR_R+SPD/8000+ANTIROLL_R,SPR_R+SPD/8000+ANTIROLL_R if _KEYDOWN(4)==1 or _TICKS()==1 then sus() end if _KEYDOWN(6)==1 or _TICKS()==1 then color() end horo() brake() drive() ZOOM=_ZOOM(37) out (0,"2CV ver610 \\ (^o^) /") out (1,"#-----------------Infomation.") out (2,"FlameRate ",_FPS()," fps") out (3,"Speed ",SPD," km/h") out (4,"Total ",(POW_FL+POW_FR+POW_RL+POW_RR)/1000," k pow") out (5,"#--------------------Controal.") out (6,"Steering < / > ",STR_L-170) out (7,"Power V / F ( rev )") out (8,"Brake B / G ( hand )") out (9,"#----------------------Setting.") out (10,"Suspention Z : ",SUSN) out (11,"DriveMode X : ",MODN) out (12,"ColorSelect C : ",COLN) out (13,"CanvasTop E : ",TOPN) end function sus() SET_SUS=SET_SUS+1 if SET_SUS==3 then SET_SUS=0 end if SET_SUS==0 then BASE_F_ANGLE=12 BASE_R_ANGLE=15 SPR_F=0.05 SPR_R=0.06 SUSN="Comfort" end if SET_SUS==1 then BASE_F_ANGLE=0 BASE_R_ANGLE=3 SPR_F=0.12 SPR_R=0.13 SUSN="Sport" end if SET_SUS==2 then BASE_F_ANGLE=-10 BASE_R_ANGLE=-7 SPR_F=0.5 SPR_R=0.5 SUSN="Solid" end end function drive() ACC=(SPD/4*200+10000)*POW_M/100 DFL, DFR=0.35*(2-STR_M/100),0.35*(2+STR_M/100) SLP_F=(math.abs(_WY(FL))/math.abs(_VZ(0))+math.abs(_WY(FR))/math.abs(_VZ(0)))/2 SLP_R=(math.abs(_WY(RL))/math.abs(_VZ(0))+math.abs(_WY(RR))/math.abs(_VZ(0)))/2 if SLP_F>3.6 and SET_MODE==1 then TRQSPL=TRQSPL+0.02 end if SLP_R>3.6 and SET_MODE==2 then TRQSPL=TRQSPL+0.02 end if _KEYDOWN(5)==1 then SET_MODE=SET_MODE+1 end if SET_MODE==3 then SET_MODE=0 end if SET_MODE==0 then POW_FL, POW_FR, POW_RL, POW_RR = ACC*DFL, ACC*DFR, 0, 0 MODN="FF" end if SET_MODE==1 then POW_FL, POW_FR, POW_RL, POW_RR = ACC*DFL*(1-TRQSPL), ACC*DFR*(1-TRQSPL), ACC*DFL*TRQSPL, ACC*DFR*TRQSPL MODN="Auto F" end if SET_MODE==2 then POW_FL, POW_FR, POW_RL, POW_RR = ACC*DFL*TRQSPL, ACC*DFR*TRQSPL, ACC*DFL*(1-TRQSPL), ACC*DFR*(1-TRQSPL) MODN="Auto R" end end function brake() if STR_M<0 then ABS_X=FL else ABS_X=FR end if math.abs(_RY(0,ABS_X))<0.785 or math.abs(_RY(0,ABS_X))>2.35 then BRK_ABS=2.2 else BRK_ABS=1 end if SET_MODE==0 then BRK_F,BRK_R=BRK_M*0.75,BRK_M*0.25 end if SET_MODE==1 then BRK_F,BRK_R=BRK_M*0.70,BRK_M*0.30 end if SET_MODE==2 then BRK_F,BRK_R=BRK_M*0.60,BRK_M*0.40 end BRK_FL,BRK_FR=BRK_F*BRK_ABS,BRK_F*BRK_ABS BRK_RL,BRK_RR=BRK_R*BRK_ABS,BRK_R*BRK_ABS if _KEY(13)==1 then BRK_RL,BRK_RR=100,100 end end function horo() if _KEYDOWN(16)==1 then SET_TOP=SET_TOP+1 end if SET_TOP==2 then SET_TOP=0 end if SET_TOP==0 then TOPA=TOPA-1.2 TOPB=TOPB-1.1 TOPN="Open" end if SET_TOP==1 then TOPA=TOPA+1.2 TOPB=TOPB+1.1 TOPN="Close" end end function color() SET_COL=SET_COL+1 if SET_COL==10 then SET_COL=0 end if SET_COL==0 then A={170,204,255} B={170,204,255} C={102,85,85} D={170,204,255} COLN="Sky" end if SET_COL==1 then A={253,0,13} B={253,0,13} C={253,0,13} D={253,0,13} COLN="CitroenRed" end if SET_COL==2 then A={255,179,0} B={255,179,0} C={102,85,85} D={255,179,0} COLN="Camel" end if SET_COL==3 then A={51,51,51} B={128,128,128} C={68,68,68} D={119,119,119} COLN="Charcoal" end if SET_COL==4 then A={64,75,19} B={64,75,19} C={102,85,85} D={64,75,19} COLN="Olive" end if SET_COL==5 then A={51,51,51} B={214,198,175} C={102,85,85} D={214,198,175} COLN="Chocolate" end if SET_COL==6 then A={51,51,51} B={118,9,14} C={102,85,85} D={118,9,14} COLN="Celebrity" end if SET_COL==7 then A={237,189,204} B={237,189,204} C={102,85,85} D={237,189,204} COLN="Sakura" end if SET_COL==8 then A={61,58,67} B={137,131,143} C={107,85,114} D={137,131,143} COLN="Motoko" end if SET_COL==9 then A={126,142,132} B={158,174,154} C={102,85,85} D={133,147,147} COLN="Retro" end COLA,COLB,COLC,COLD=A[1]*65536+A[2]*256+A[3],B[1]*65536+B[2]*256+B[3],C[1]*65536+C[2]*256+C[3],D[1]*65536+D[2]*256+D[3] end }