1. Post #4361
    Gold Member
    MrWhite's Avatar
    March 2010
    4,422 Posts


    I'll just leave this here
    Reply With Quote Edit / Delete Windows 10 Firefox United States Show Events Winner Winner x 5Artistic Artistic x 1 (list)

  2. Post #4362
    Svennex's Avatar
    September 2016
    93 Posts

    "I couldn't go fast."
    Reply With Quote Edit / Delete Windows 10 Waterfox Show Events

  3. Post #4363
    Whyteboxer's Avatar
    October 2014
    130 Posts
    content: Almost done 2000 Honda S2000, Still need to make a custom speedometer, do all the badges and that's about it

    Completely finished the 200SX S14

    and
        sorry for the huge block of images, had multiple projects going and had a massive burst of motivation to finish them all within the space of 2 weeks, apologies for making your mousewheel fingers sore    
    Reply With Quote Edit / Delete Windows 7 Chrome Australia Show Events Winner Winner x 3Artistic Artistic x 1 (list)

  4. Post #4364
    DatCheez's Avatar
    December 2014
    307 Posts
    Just gonna pop this here. Yea


    If anyone has a ball MG e2 that I could use it'd be very much appreciated :> Oh, and I'll have that video coming up tomorrow probably white :>
    Reply With Quote Edit / Delete Windows 10 Chrome Australia Show Events Winner Winner x 1 (list)

  5. Post #4365
    Gold Member
    MrWhite's Avatar
    March 2010
    4,422 Posts
    Really excellent video. Can you show us all the crew positions, perhaps? It looks like you really went to a lot of trouble to get the view positions just right, and it payed off. Reminds me a lot of how Red Orchestra did tanks.
    Reply With Quote Edit / Delete Windows 10 Firefox United States Show Events Agree Agree x 1Friendly Friendly x 1 (list)

  6. Post #4366
    Gold Member
    Sestze's Avatar
    March 2005
    1,362 Posts
    I'm working on a heavily modified version of bfw I'm using for REX, if anyone cares for a copy. All I've truly modified is walk cycle speeds, max speed, and an imperial crunchroll of new sound triggers for various stuff.

    May bother making a tutorial for using bfw, and how to change more walk cycle parameters than the vanilla "step height multiplier" you're given by default -- I think it's actually extremely creatively limiting that bfw doesn't present max speed and max walk cycle parameters to you natively. There are more mechs that can be built than just big, heavy, slow moving armor-plods with guns. I might even make a stylized racing mech under 10t just to show it can be done without it looking like par farce garbage. I mean Hell, REX without the armor and ammo weighs a measly 4t.

    Perhaps I'm actually more upset that it seems there's a stigma against walkers because they /can/ cheat, and thus "will cheat" -- even if they don't and the user followed ACF legal rules to the T. ( For the sake of reference by the way, vanilla bfw restricts your max mech velocity anyways -- It will never run faster than a seemingly arbitrary speed that seems to be based on your hip height from the feet. It barely outpaces the HL2 Jeep, and the majority of tanks greatly outpace that. )

    I don't know about you guys, but I don't have any "secret methods I don't share how I do things", I just throw random trash together until it acts like it isn't trash. Probably still is trash under the hood, but if nobody else knows that, do I really care?
    BFW's innards are pretty easy to find. There's a set of variables that are set after the initial data from the mech's layout is grabbed. I intended for it to be very easy to pick up and use, and I'm glad to see people are still using it. The "locked velocity" you're experiencing is actually the chip trying to figure out the current speed of the body and then making the mech's walk cycle almost match that speed with a small amount of loss, allowing for deceleration, while at the same time adding in the new player-provided walk vector to push the mech's gait in the direction you want it. That's why it feels weirdly hard to control, like it has a ton of inertia behind it.

    It doesn't walk without actually scraping the ground with its feet. It needs friction to operate, so there's an upper limit on how fast it can run. I've had successful tests with other varieties of mech chip that use the same system, but I can't really tell you why one system works better than the other, there's a lot of variables at play.

    Eventually I settled on something a bit more brutally simple for my walking cycle and decided to devote most of my flair to how the mech operates with rotation (propellering was an issue with BFW) as well as a fuel-limited aux movement system. Modelled on the movement in Hawken, I wrote this e2:
    Code:
    @name Hawken Walkin'
    @inputs [ADV CAM EMARKER]:wirelink
    @outputs [POS DIR SHOOTHERE]:vector Sx Sy Sz BoostOut FUELAMT
    #inputs
    @persist W A S D Space Shift Active
    #entites
    @persist [Pod Torso Hip FL FR]:entity Vitals:array
    #direction vectors
    @persist [HF HR HU TF TR TU]:vector
    @persist Bearing Elevation X Y LX LY CX CY DivX DivY
    #quats
    @persist [HHQ THQ HTQ TTQ HCQ TCQ]:quaternion
    @persist [HRO TRO]:vector
    #Vector offsets
    @persist [FLTL FRTL FLO FRO]:vector
    #other variables
    @persist Perc Time WalkVec:vector Inputs N Total Kill Dran:ranger
    @persist SpikeVec:vector SpikeAmt XTog SpikeTot
    #Jumping
    @persist InitZ InitLen JOffset JZMove JForce:vector
    #Quick Turn
    @persist PunchPerc FPerc
    #Tweakables
    @persist StepS StepHM Throttle MaxXDiv MaxYDiv CamOffset:vector
    @persist HipTorque TorsoTorque FootMul HipMul BoostMul DodgeMul
    @persist HovHeight JPush FuelPerc Fuel 
    #sound things
    @persist JINIT:string JLOOP:string BOOSTINIT:string BOOSTLOOP:string DODGE:string
    @persist QUICKROT:string
    @trigger none
    
    interval(20)
    
    if(dupefinished()) { reset() }
    
    if(first())
    {
        rangerPersist(1)
        rangerFilter(entity():getConstraints())
        
        Pod = ADV["Entity", entity]
        Torso = EMARKER["Entity1", entity]
        Hip = EMARKER["Entity2", entity]
        FL = EMARKER["Entity3", entity]
        FR = EMARKER["Entity4", entity]
            
        Vitals = EMARKER["Entities", array]
        Total = Vitals:count()
        
        HF = vec(0, 1, 0)
        HU = vec(0, 0, 1)
        HR = HF:cross(HU)
        
        TF = vec(0, 1, 0)
        TU = vec(0, 0, 1)
        TR = TF:cross(TU)
        
        #Held Quat Stuff
        HHQ = inv(quat(Hip)) * quat(HF, HU)
        THQ = inv(quat(Torso)) * quat(TF, TU)
        
        #Held Vector Stuff
        DispFL = Hip:massCenter() - FL:massCenter()
        FLTL = vec(DispFL:dot(HF), DispFL:dot(HR), DispFL:dot(HU))
        
        DispFR = Hip:massCenter() - FR:massCenter()
        FRTL = vec(DispFR:dot(HF), DispFR:dot(HR), DispFL:dot(HU))
        
        #Tweaking Variables
        StepS = 20          #Stepsize
        StepHM = 1.5
        Throttle = 16        #Time increment
        HipTorque = 800
        TorsoTorque = 800
        FootMul = 8
        HipMul = 8
        
        BoostMul = 120
        DodgeMul = 1200
        
        HovHeight = 600
        JPush = 8
        JZMove = 10
        
        MaxXDiv = 4         #Maximum bearing change per frame
        MaxYDiv = 4         #maximum elevation change per frame
        CamOffset = vec(-125, 0 , 75) #where you are with a camera.
        
        FuelPerc = 0.01
        Fuel = 1
        
        JINIT = "weapons/rocket_blackbox_explode2.wav"
        JLOOP = "weapons/flame_thrower_loop.wav"
        BOOSTINIT = "weapons/rocket_blackbox_explode2.wav"
        BOOSTLOOP = "weapons/gatling_spin.wav"
        DODGE = "weapons/ar2/npc_ar2_altfire.wav"
        QUICKROT = "weapons/metal_gloves_hit_world4.wav"
        
        timer("checkvitals", 10000)
    }
    
    #inputs and setup
    if(clk())
    {
        W = ADV["W", number]
        A = ADV["A", number]
        S = ADV["S", number]
        D = ADV["D", number]
        Space = ADV["Space", number]
        Shift = ADV["Shift", number]
        Active = ADV["Active", number]
        #do wasd first, then space, then shift.
    
        #neyepod mechanics
        
        Eye = Pod:driver():eye()
        Flat = (Eye - Pod:up() * Pod:up():dot(Eye)):normalized()
        
        LX = X
        CX = acos(clamp(Flat:dot(Pod:forward()), -1, 1)) * sign(Flat:dot(Pod:right())) + XTog * 180
        if(CX > 180)
        {
            CX = CX - 360
        }
        if( (CX - LX) > 180 )
        {
            DivX = (LX - CX) - 360
        }
        elseif( (CX - LX) <= -180 )
        {
            DivX = 360 - (LX - CX)
        }
        else
        {
            DivX = CX - LX
        }
        X = X + clamp(DivX, -1 * MaxXDiv * (8)^(PunchPerc > 0), MaxXDiv * (8)^(PunchPerc > 0)) 
        Cost = 15 * FuelPerc
        if(Shift & (S & $S > 0) & (Fuel > Cost))
        {
            #TODO:Add quick 180 sound
            Fuel = Fuel - Cost
            Hip:soundPlay(entity():id() + "quickrotate", 0, QUICKROT)
            soundPitch(entity():id() + "quickrotate", 75)
            PunchPerc = 1
            XTog = !XTog
        }
        PunchPerc = clamp(PunchPerc - 0.08, 0, 1)
        if(X > 180)
        {
            X = X - 360
        }
        elseif(X <= -180)
        {
            X = X + 360
        }
        Cost = 0.5 * FuelPerc
        if(Shift & (W & $W > 0) & (Fuel > Cost))
        {
            #TODO: Add boost loop
            Hip:soundPlay(entity():id() + "boostinit", 0, BOOSTINIT)
            soundPitch(entity():id() + "boostinit", 100)
            Hip:soundPlay(entity():id() + "boostloop", 0, BOOSTLOOP)
            soundPitch(entity():id() + "boostloop", 75)
        }
        if((!Shift & ($Shift < 0)) | (!W & ($W < 0)) | (Cost >= Fuel))
        {
            #Stop boost loop
            soundStop(entity():id()+"boostloop", 0.25)
        }
        
        Bearing = X * Active
        
        LY = Y
        CY = acos(clamp(Eye:dot(Flat), -1, 1)) * sign(Eye:dot(Pod:up()))
        DivY = CY - LY
        Y = Y + clamp(DivY, -1 * MaxYDiv, MaxYDiv)
        
        Elevation = clamp(Y * Active, -45, 45)
        
        CF = vec(sin(CX)*cos(CY), cos(CX)*cos(CY), sin(CY))
        CU = vec(0, 0, 1)
        CR = (CF:cross(CU)):normalized()
        CU = CR:cross(CF)
        
        CPOS = Torso:massCenter() + CF * CamOffset:x() + CR * CamOffset:y() + CU * CamOffset:z()
        CDIR = CF
        
        Dran = rangerOffset(Torso:massCenter(), CPOS)
        if(Dran:hit())
        {
            CPOS = Dran:position()
        }
        CAM["Position", vector] = CPOS
        CAM["Direction", vector] = CDIR
        CAM["Activated", number] = Active
        POS = CPOS
        DIR = CDIR
        
        Dran = rangerOffset(50000, CPOS, CDIR)
        if(Dran:hit())
        {
            SHOOTHERE = Dran:position()
            Sx = SHOOTHERE:x()
            Sy = SHOOTHERE:y()
            Sz = SHOOTHERE:z()
        }
        
        #set up vectors
        
        HF = vec(sin(Bearing), cos(Bearing), 0)
        HU = vec(0, 0, 1)
        HR = HF:cross(HU)
        
        TF = vec(sin(Bearing)*cos(Elevation), cos(Bearing)*cos(Elevation), sin(Elevation))
        TU = vec(0, 0, 1)
        TR = (TF:cross(TU)):normalized()
        TU = TR:cross(TF)
        
        #set up step info
        
        Inputs = abs((W-S) | (D-A)) & (!Space & !Shift) & (SpikeTot == 0)
        Perc = clamp(Perc + (Inputs - !Inputs) * 0.04, 0, 1)
        Time = Time - Perc * Throttle
        
        #effects
        BoostOut = ($Fuel < 0)
        
        #Fuel Regen
        FUInputs = (Shift & (W | abs(A - D))) | (Space)
        if(!FUInputs)
        {
            Fuel = clamp(Fuel + 0.5 * FuelPerc, 0, 1)
        }
        FUELAMT = Fuel * 100
        
        #All inputs
        AllInputs = abs(W-S) | abs(D-A) | Space | Shift
        FPerc = clamp(FPerc + (AllInputs - !AllInputs) * 0.04, 0, 1)
    }
    
    #Mechanics
    if(clk() & !Kill)
    {
        HCQ = quat(Hip) * HHQ
        HTQ = quat(HF, HU)
        HRO = Hip:toLocal(Hip:pos() + rotationVector(HTQ/HCQ))
        
        Hip:applyTorque(Hip:inertia() * HipTorque * (HRO + $HRO * 2.5))
        
        TCQ = quat(Torso) * THQ
        TTQ = quat(TF, TU)
        TRO = Torso:toLocal(Torso:pos() + rotationVector(TTQ/TCQ))
        
        Torso:applyTorque(Torso:inertia() * TorsoTorque * (TRO + $TRO * 2.5))
        
        if(Inputs)
        {
            WalkVec = ((W - S) * HF + (D - A) * HR):normalized()
        }
        
        Mirrorfrc = vec()
        
        DispFL = Hip:massCenter() - FL:massCenter()
        FLCL = vec(DispFL:dot(HF), DispFL:dot(HR), DispFL:dot(HU))
        Temp = FLTL - FLCL
        StepVec = StepS * Perc * (WalkVec * cos(Time) + HU * sin(Time) * StepHM)
        FLO = Temp:x() * HF + Temp:y() * HR + Temp:z() * HU + StepVec
        
        Force = FLO + $FLO * 2.5
        Mirrorfrc = Mirrorfrc - Force
        FL:applyForce(FL:mass() * -FootMul * Force * FPerc)
        
        DispFR = Hip:massCenter() - FR:massCenter()
        FRCL = vec(DispFR:dot(HF), DispFR:dot(HR), DispFR:dot(HU))
        Temp = FRTL - FRCL
        StepVec = StepS * Perc * (WalkVec * cos(Time+180) + HU * sin(Time+180) * StepHM)
        FRO = Temp:x() * HF + Temp:y() * HR + Temp:z() * HU + StepVec
        
        Force = FRO + $FRO * 2.5
        Mirrorfrc = Mirrorfrc - Force
        FR:applyForce(FR:mass() * -FootMul * Force * FPerc)
        
        Mirrorfrc = Mirrorfrc / -2
        
        Cost = 30 * FuelPerc
        if(((D & $D > 0) | (A & $A > 0)) & Shift & !W & !Space & (SpikeTot == 0) & (Fuel > Cost))
        {
            Hip:soundPlay(entity():id() + "dodge", 0, DODGE)
            soundPitch(entity():id() + "dodge", 75)
            Fuel = Fuel - Cost
            SpikeVec = (D - A) * HR
            SpikeAmt = DodgeMul * abs(D - A)
            SpikeTot = SpikeAmt
        }
        SpikeTot = clamp(SpikeTot - SpikeAmt * 0.08, 0, DodgeMul)
        Cost = 0.5 * FuelPerc
        BoostVec = vec()
        if((Fuel > Cost) & Shift)
        {
            Fuel = Fuel - Cost
            BoostVec = (W * HF + (D - A) * HR):normalized() * Shift * W * Hip:mass() * BoostMul * (SpikeTot == 0) * !Space
        }
        SpikePush = SpikeVec * SpikeTot * Hip:mass() * (SpikeTot > 0)
        
        Cost = FuelPerc * 0.5
        if(Space & (Fuel > Cost))
        {
            Fuel = Fuel - Cost
            if(($Space > 0))
            {
                InitZ = Hip:massCenter():z()
                Dran = rangerOffset(50000, Hip:massCenter(), vec(0, 0, -1))
                InitLen = InitZ - Dran:position():z()
                Hip:soundPlay(entity():id() + "jumpinit", 0, JINIT)
                soundPitch(entity():id() + "jumpinit", 100)
                Hip:soundPlay(entity():id() + "jumploop", 0, JLOOP)
                soundPitch(entity():id() + "jumploop", 100)
            }
            Dran = rangerOffset(InitLen + HovHeight, Hip:massCenter():setZ(InitZ), vec(0, 0, -1))
            if(Dran:hit())
            {
                InitZ = InitZ + JZMove       
            }
            JOffset = InitZ - Hip:massCenter():z()
            JForce = vec(0, 0, 1) * (JOffset + $JOffset * 2.5) * 4 * Hip:mass() + HF * W * JPush * Hip:mass()
        }
        if(!Space | (Fuel <= Cost))
        {
            if(($Space < 0) | (Fuel <= Cost))
            {
                soundStop(entity():id() + "jumploop", 0.25)
            }
            InitZ = Hip:massCenter():z()
            JForce = vec()
        }
        
        Hip:applyForce(Hip:mass() * Mirrorfrc * HipMul + BoostVec + SpikePush + JForce)
        
    }
    
    if(clk("checkvitals"))
    {
        #vitals
        N = 1
        while(N <= Vitals:count())
        {
            if(Vitals[N, entity] == noentity())
            {
                Kill = 1
            }
            N = N + 1
        }
        
        timer("checkvitals", 10000)
    }
    Configuration is similar to BFW, but requires an advanced entity marker to mark the Torso (1), Hip (2), Left foot (3) and Right foot (4) as well as any other mission critical entities on the mech (leg segments, etc.) This uses a simpler walking cycle with a easily set maximum step length and a multiplier for step height, as well as a maximum possible step throttle variable. It obeys the same sort of rules with respect to walking that the BFW chip does in that it needs the ground to provide friction to make it move forward.

    It has the somewhat lamented "cheap movement" that people have been mentioning in the thread, heavily limited by an internal fuel system that recharges over time. There's the marginally faster boosting (Shift + W/A/D), a boost dodge (Shift + A/D), a quick 180 (Shift + S) and a jump + hover system (Space). All of it consumes fuel and makes it difficult to zip around the map unless you tweak the variables super hard.

    Instead of an eyepod, it uses a serverside camera controller (this is newer than BFW, but still old, it was made before the change to clientside camera control). The e2 outputs the position where your camera's looking, creatively named SHOOTHERE as a vector. This can be shipped to an advanced hud indicator or another EGP to give yourself a crosshair as well as an aiming chip to point your weapons at the right spot.
    Code:
    @name Basic GPS Aiming
    @inputs Pod:entity Gun:entity Gunb:entity ShootHere:vector
    @outputs
    @persist Dran:ranger Gof:vector Gofb:vector Chk Hv:vector
    @trigger 
    
    #You're welcome.
    
    interval(20)
    
    if(Pod:driver())
    {
        if(Gun)
        {
            Gof = (ShootHere - Gun:massCenter()):normalized() - Gun:forward()
            Gun:applyOffsetForce((Gof + $Gof * 4) * 8 * Gun:mass(), Gun:massCenter() + Gun:forward() * 200)
            Gun:applyOffsetForce((Gof + $Gof * 4) * -8 * Gun:mass(), Gun:massCenter() + Gun:forward() * -200)
        }
        if(Gunb)
        {
            Gofb = (ShootHere - Gunb:massCenter()):normalized() - Gunb:forward()
            Gunb:applyOffsetForce((Gofb + $Gofb * 4) * 8 * Gunb:mass(), Gunb:massCenter() + Gunb:forward() * 200)
            Gunb:applyOffsetForce((Gofb + $Gofb * 4) * -8 * Gunb:mass(), Gunb:massCenter() + Gunb:forward() * -200)
        }
    }
    Here's the e2 for a basic two-gun system for aiming at a position. Hook up the correct entities, feed it the SHOOTHERE vector, and it'll aim your guns accordingly.
    Reply With Quote Edit / Delete Windows 10 Chrome Canada Show Events

  7. Post #4367
    Needs more suspension.
    Amplar's Avatar
    February 2006
    5,466 Posts
    What I always did with BFW was make an E2 to input values from A/D that would normally be from the eyepod for hip turning, and then an aiming chip for a torso. It worked great.
    Reply With Quote Edit / Delete Windows 7 Chrome United States Show Events

  8. Post #4368
    Gold Member
    Sestze's Avatar
    March 2005
    1,362 Posts
    Whenever I wanted a tank-type system, i did something like that with a simpler separate hip and torso e2. The problem is, for most applications, the simple mouse-aimed systems that you can make that mimic how players move usually made it easier move and fight intuitively than the tank control scheme.

    With the relative vulnerability and proclivities of mechs to carry mostly higher rate of fire weapons, more maneuverability means you're less likely to get pulped by heavier caliber rounds from more stationary tanks. Still I can understand why people don't like them very much.
    Reply With Quote Edit / Delete Windows 10 Chrome Canada Show Events

  9. Post #4369
    Frentano's Avatar
    October 2013
    115 Posts
    Genuine inquiry regarding tanks. What scale do you use for you actual MBTs when you build them?
    ie (1:2)
    Reply With Quote Edit / Delete Windows 10 Firefox Australia Show Events

  10. Post #4370
    Needs more suspension.
    Amplar's Avatar
    February 2006
    5,466 Posts
    Most tanks seem to be built around 3/4ths the size of real ones.

    probably the best way to describe the scale of tanks compared to real life in acf:

    Reply With Quote Edit / Delete Windows 7 Chrome United States Show Events Agree Agree x 1 (list)

  11. Post #4371
    DatCheez's Avatar
    December 2014
    307 Posts
    Really excellent video. Can you show us all the crew positions, perhaps? It looks like you really went to a lot of trouble to get the view positions just right, and it payed off. Reminds me a lot of how Red Orchestra did tanks.
    Bam bada-boom. Here it is.


    So basically, I just have cam controllers for everything and I just use a toggle to switch between 2 positions. 1 being FP and the other being the optics.
    Reply With Quote Edit / Delete Windows 10 Chrome Australia Show Events Winner Winner x 1 (list)

  12. Post #4372
    hermanberk's Avatar
    November 2012
    31 Posts
    if you want things to be reasonably sized to the player, the thing i do is: get the real sizes, multiply them by 0.75 and then measure them out with the measuring stick tool. never failed for me
    Reply With Quote Edit / Delete Windows 10 Chrome Netherlands Show Events Disagree Disagree x 1 (list)

  13. Post #4373
    Svennex's Avatar
    September 2016
    93 Posts
    Authentically baffled in a manner that I garnered a response, given how borderline arrogant I felt even touching bfw to begin with as if I expected to understand it despite hardly understanding most of the mathematics it was using. Hardly helped either that you had very clearly grown tired of helping others long ago in your other threads where you had replaced your posts with <derp>, which actually had me mildly concerned even mentioning I was doing anything with bfw to begin with, lest I be descended upon for some mysterious manner of heresy or for trudging up the past. Either way, my concept for using an ACF engine powered flywheel hasn't turned out the greatest, and I set out with the task of understanding bfw_v5 more -- I'll admit, I haven't learned a single thing about how it truly works beyond tweaking certain variables just makes it not work, and tweaking some others makes things seem to move faster at the expense of stability. Now that I know what's really revving under the hood, I understand why it came at that expense. I believe I have at least comprehended how it works conceptually, but you know what, my inexperience with programming means the code itself is still essentially Spanish to me. Spanish in the way that I understand only some parts of it, and the remainder is practically white noise.

    And, hm. You're right -- At first, I believed this line:
    Code:
        Time = Time + clamp(Adjusted:length() * 360 / (StepS * 2 * pi()), 0, ThrM*(1.5)^Boost)
    was clamping the evident maximum walk cycle to what at first to me appeared as being totally up to preference without any real reason, but somehow I had the feeling that wasn't quite it either with the amount of non-static operation going on.

    One of the greatest bothers to me has always been the way bfw locks its' baseprop to the Y axis similar to a keepupright. And that's the first thing I hoped to free bfw of, though as I come to understand it more, I also come to understand that may simply be impossible without working vastly more than I ever expected to from the start. Who knows, so far my understanding of it is exclusively that it's essentially an incredible amount of position offsetting taking place to give the illusion of "real" physics, with the baseprop as the frame of reference.
    Apologies if I'm coming off too eager; After having only just gotten into the building scene earlier this month, I'm very particular to making up for the lost time I had spent essentially doing everything /but/ building in this game.

    To everyone else, apologies for the Great Wall of Text. Have minor content.


    A fair measure of pages ago, someone I forget their name posted a dupe of a chassis, saying something about not being able to figure out what to do with it.

    So, in light of the troubles I've had getting any of my other projects to work, I based a simple scout vehicle, tug-tug, fuel-carrier, or whatever the driver wants it to be, Half Life 2 Scout-Car inspired thing on the chassis they had released. Only modification I made to the base chassis was replacing the engine, the rest is aesthetic only.

    Makes no use of the gastanks on it, in favour of using them to refill other tanks. I've actually never experimented with how refilling other tanks works -- So I don't know if this vehicle actually does it's job at all. Anyone who knows, input would be appreciated.
    I've been stuck on how exactly to make it tug other things -- Grabber was my first obvious option, but large heavy things I've grabbed with the grabber have a propensity for simply explosively freaking out and taking me into the great blue yonder with them. Any suggestions?
    Reply With Quote Edit / Delete Windows 10 Waterfox Show Events

  14. Post #4374

    October 2011
    445 Posts
    This thread needs more Multi-track Drifting!
    Reply With Quote Edit / Delete Windows 7 Chrome Australia Show Events Funny Funny x 3Winner Winner x 3 (list)

  15. Post #4375
    Needs more suspension.
    Amplar's Avatar
    February 2006
    5,466 Posts
    if you want things to be reasonably sized to the player, the thing i do is: get the real sizes, multiply them by 0.75 and then measure them out with the measuring stick tool. never failed for me
    Do not do this. 1 unit is 1 inch, and the player model is 72 inches high. If that were on that were on the .75 basis, player would be 4'5".
    Reply With Quote Edit / Delete Windows 7 Chrome United States Show Events Agree Agree x 2 (list)

  16. Post #4376
    Gold Member
    TestECull's Avatar
    July 2007
    9,776 Posts
    And here I am keying the size of the vehicle off the size of the ACF powerplant I want to use
    Reply With Quote Edit / Delete Android Chrome United States Show Events

  17. Post #4377
    Gold Member
    lintz's Avatar
    May 2006
    10,000 Posts
    i just grab real life measurements of tanks and convert them to inches. doesn't matter whether sprops is scaled to 1:1 or 3:4, my tank ends up scaled to sprops and that's really all that matters
    Reply With Quote Edit / Delete Windows 8.1 Chrome United Kingdom Show Events

  18. Post #4378
    Gold Member
    Sestze's Avatar
    March 2005
    1,362 Posts
    Authentically baffled in a manner that I garnered a response, given how borderline arrogant I felt even touching bfw to begin with as if I expected to understand it despite hardly understanding most of the mathematics it was using. Hardly helped either that you had very clearly grown tired of helping others long ago in your other threads where you had replaced your posts with <derp>, which actually had me mildly concerned even mentioning I was doing anything with bfw to begin with, lest I be descended upon for some mysterious manner of heresy or for trudging up the past. Either way, my concept for using an ACF engine powered flywheel hasn't turned out the greatest, and I set out with the task of understanding bfw_v5 more -- I'll admit, I haven't learned a single thing about how it truly works beyond tweaking certain variables just makes it not work, and tweaking some others makes things seem to move faster at the expense of stability. Now that I know what's really revving under the hood, I understand why it came at that expense. I believe I have at least comprehended how it works conceptually, but you know what, my inexperience with programming means the code itself is still essentially Spanish to me. Spanish in the way that I understand only some parts of it, and the remainder is practically white noise.
    I'll gladly explain all the stuff that's going on if you add me on STEAM, I can even show you how to make your own from scratch using the same method.
    And, hm. You're right -- At first, I believed this line:
    Code:
        Time = Time + clamp(Adjusted:length() * 360 / (StepS * 2 * pi()), 0, ThrM*(1.5)^Boost)
    was clamping the evident maximum walk cycle to what at first to me appeared as being totally up to preference without any real reason, but somehow I had the feeling that wasn't quite it either with the amount of non-static operation going on.

    One of the greatest bothers to me has always been the way bfw locks its' baseprop to the Y axis similar to a keepupright. And that's the first thing I hoped to free bfw of, though as I come to understand it more, I also come to understand that may simply be impossible without working vastly more than I ever expected to from the start. Who knows, so far my understanding of it is exclusively that it's essentially an incredible amount of position offsetting taking place to give the illusion of "real" physics, with the baseprop as the frame of reference.
    It's not quite "fake" physics. Everything ties into Newton's Third at the end of the day, all of the forces being applied to the feet are reflected back on the hip. A large system of averaged springs for translational movement, with locked rotation via advanced ballsocket.
    Reply With Quote Edit / Delete Windows 10 Chrome Canada Show Events

  19. Post #4379
    S1lverFish's Avatar
    December 2015
    5 Posts
    You want ships and planes? I've got ships and planes!
    The HS-E Family of ships, all based off of the same fictional hull. They were all intended to fill different roles and have slightly different characteristics to them.
    I'll probably fill out the specifics when each ship is done, but here is the stuff they all have in common:
    -Prop Count of 240-260
    -1x40mm Autocannon
    -1x20mm RAC
    -1xSmall Spherical Radar
    -1x4xFIM-92 Rack(not pictured)
    -2x4xBGM-71E Launchers
    -2x40mm Flare Launchers






    HS-E1 is getting a UAV and better radar.
    HS-E2 is getting a VTOL and 24-VLS missiles cells.
    HS-E3 gets to keep its whopping 72-VLS missiles cells.
    *May or may not give them ACF propulsion, depends on how much longer the automated missile defence system takes.

    Need to take more pictures of the planes, but here is a little teaser.
    Reply With Quote Edit / Delete Windows 7 Chrome United States Show Events Winner Winner x 12Artistic Artistic x 2 (list)

  20. Post #4380

    October 2015
    140 Posts
    1992 Nissan Silvia S13

    Reply With Quote Edit / Delete Windows 10 Chrome United States Show Events Winner Winner x 1 (list)

  21. Post #4381
    Metacore's Avatar
    June 2011
    341 Posts
    A whole bunch of people started making tiny tanks, so i made a thread for it

    There you'll find the latest version of the guidelines, and people can post their tiny tanks

    https://facepunch.com/showthread.php?t=1535532

    Reply With Quote Edit / Delete Windows 10 Firefox Netherlands Show Events

  22. Post #4382
    Whyteboxer's Avatar
    October 2014
    130 Posts
    Quick question, can anyone think of a single HL2 model that's the correct shape for a 22B hood vent?

    It's like a rounded rhombus with a bar through the centre; want to make them with as little props/holos as possible
    Reply With Quote Edit / Delete Windows 7 Chrome Australia Show Events

  23. Post #4383
    Gold Member
    MrWhite's Avatar
    March 2010
    4,422 Posts
    You might be able to get away with using a scaled hologram of the cinder block model, though it won't be quite as skewed as you want.
    Reply With Quote Edit / Delete Windows 10 Firefox United States Show Events

  24. Post #4384
    Whyteboxer's Avatar
    October 2014
    130 Posts
    I was thinking that at first, will definitely try, if it doesn't work out I'll just look around for alternatives, thanks for the response
    Reply With Quote Edit / Delete Windows 7 Chrome Australia Show Events Friendly Friendly x 1 (list)

  25. Post #4385
    DatCheez's Avatar
    December 2014
    307 Posts
    So I made a stealth bomber.



    All joking aside, I may or may not be making a tank track pack and hopefully getting shadow to add it to the Tank Track Tool. However I need suggestions so, please post your suggestions here, don't ruin the note though & add your name so I can see who did what c: I'm aiming for 25 track textures, but if theres more suggestions then I'll do more.
    Reply With Quote Edit / Delete Windows 10 Chrome Australia Show Events Informative Informative x 1 (list)

  26. Post #4386
    Gold Member
    TestECull's Avatar
    July 2007
    9,776 Posts
    Tossed in a few that I feel would get used often.
    Reply With Quote Edit / Delete Windows 7 Firefox Show Events

  27. Post #4387
    S1lverFish's Avatar
    December 2015
    5 Posts
    Meet the Family
    Just like the HS-E Family of ships, these planes are all based off of the same fictional fuselage. I wanted to see how many roles I could fill with the same basic fuselage shape.
    I'd say i went a little overboard. I wasn't expecting to get a solid 11 airplanes, 1 shuttle, 1 VTOL, 2 submarines and a heli out of it. While still having a few designs that I didn't get to make.

    Way too many of them to go into each one, but they all range in prop count from 60-180. Some have full interiors, some are acf powered, a good amount of them are combat ready.
    Huge thanks to walrus18 for helping out with the interiors, building the mirage, the shuttle, one of the subs, the glider, and one of the interceptors and ground pounders. And putting up with me.









    Interiors:



    Interiors by walrus, EGPs by me.

    Close-ups:


    This entire project turned out way bigger than I expected. *Including this post
    Reply With Quote Edit / Delete Windows 7 Chrome United States Show Events Winner Winner x 9 (list)

  28. Post #4388
    Supertoaster7's Avatar
    October 2015
    111 Posts
    You want ships and planes? I've got ships and planes!
    The HS-E Family of ships, all based off of the same fictional hull. They were all intended to fill different roles and have slightly different characteristics to them.
    I'll probably fill out the specifics when each ship is done, but here is the stuff they all have in common:
    -Prop Count of 240-260
    -1x40mm Autocannon
    -1x20mm RAC
    -1xSmall Spherical Radar
    -1x4xFIM-92 Rack(not pictured)
    -2x4xBGM-71E Launchers
    -2x40mm Flare Launchers






    HS-E1 is getting a UAV and better radar.
    HS-E2 is getting a VTOL and 24-VLS missiles cells.
    HS-E3 gets to keep its whopping 72-VLS missiles cells.
    *May or may not give them ACF propulsion, depends on how much longer the automated missile defence system takes.

    Need to take more pictures of the planes, but here is a little teaser.
    YES THANK YOU! FINALLY SOMETHING THAT ISN'T A TANK!
    Reply With Quote Edit / Delete Windows 10 Chrome Denmark Show Events Dumb Dumb x 5Agree Agree x 2Funny Funny x 1 (list)

  29. Post #4389
    Gold Member
    MrWhite's Avatar
    March 2010
    4,422 Posts
    YES THANK YOU! FINALLY SOMETHING THAT ISN'T A TANK!
    It's not that a lot of people don't build non-tank stuff, but rather that that sort of content isn't well represented in this thread. This is possibly because people see page after page of tanks and think that's all anyone wants to see itt, so they are sort of "scared off" from posting their content.
    Reply With Quote Edit / Delete Windows 10 Firefox United States Show Events Disagree Disagree x 1Dumb Dumb x 1 (list)

  30. Post #4390

    October 2015
    140 Posts
    W116 Sedan






    Reply With Quote Edit / Delete Windows 10 Chrome United States Show Events Winner Winner x 2Funny Funny x 1Friendly Friendly x 1 (list)

  31. Post #4391
    codylewiz's Avatar
    April 2015
    245 Posts
    So I made a stealth bomber.

    Dear Lord is that thing a beauty; the detail put into it is quite amazing.
    Reply With Quote Edit / Delete Windows 10 Firefox United States Show Events Dumb Dumb x 1Friendly Friendly x 1 (list)

  32. Post #4392
    TheAtomicFox's Avatar
    November 2015
    180 Posts
    Hey, look! Stuff that isn't tanks! Because apparently nobody builds it!

    Sarcasm aside, proper pleased with these things. First up, a 60t bunker, big enough for someone to stand in and fire out of.



    Drew inspiration from one of the call-in units from the World in Conflict No Hope mod, an anti-armor bunker that is an absolute bastard to take care of with anything other than a laser-guided bomb or other air strike that eats into your Tactical Aid points that could otherwise be going towards getting a massive bloody game-ending nuke. Sandbags are 25mm, sloped armor is 50mm, flat armor is 75mm. Carries 12 missiles and ~550 MG rounds, perfect for holding a cap point off for at least a little while. And since it is under 60 tons and uses the ACF pilot seat, Baik legal!

    Also, a heavy transport helicopter-thing;



    Weighs 6 tons, has a fully-armored cockpit with 20mm on the opaque bits and 5mm on the glass. Runs on MPFC v7, which handles very nice compared to v6. Not sure how much it can lift, but a physical ton wouldn't be unreasonable. Sorta-kinda based off of a LEGO set from 1999, of the Rock Raiders series, the Tunnel Transport. If I hit anyone in the nostalgia, my job is done. Probably could make a gunship/troop carrier variant, thinking about it.
    Reply With Quote Edit / Delete Windows 8 Firefox United States Show Events

  33. Post #4393
    DatCheez's Avatar
    December 2014
    307 Posts
    In the downtime whilst I was porting and setting up track textures for the pack, me and a mate of mine had an idea for a collection of reticles and tank hud related stuff for EGP, so that people could have nice looking huds without a bunch of EGP knowledge.

    Here it is. http://steamcommunity.com/sharedfile...e&id=769791162

    If you found something that you want added, let me know in the comments. Be sure to rate it and share it :>
    Reply With Quote Edit / Delete Windows 10 Chrome Australia Show Events Winner Winner x 1 (list)

  34. Post #4394

    October 2011
    445 Posts
    Handy little tool for calculating ACF gearbox ratios.

    Select your first gear ratio, how many gears, and the shift point margins, then place the e2 on your engine and check the chat.

    Code:
    @name Engine ratio calculator Fixed
    @inputs 
    @outputs Ratios:array PBS PBL PBH BSP:array Grad
    @persist PBL PBH PBS Count First Margin Engine:entity Grad
    @trigger none
    
    #Made by iwancoppa
    #Please feel free to share with your friends!
    ###If you're using a CVT, this E2 is of no use to you.###
    
    #################################
    ##   I N S T R U C T I O N S   ##
    #################################
    
    
    
    #Set up the first forward gear of your gearbox.
    #You need to determine this gear manually. 
    #Pick something low, like 0.1, and tweak the final drive ratio until your vehicle
    #accelerates quickly.
    
    #Once you've done that, fill in the variables below. 
    
    
    
    
    
    #A quick explanation of the Margin variables.
    
    #The margin variables tell the e2 where the shift points should be in the engine's powerband.
    #I'll use a 21l V12 diesel for this example. It has a powerband between 500 and 1500RPM.
    #For example, a margin value of 0 will make the e2 calculate gears like this:
    
    #Engine hits top of powerband, in gear 1    [1500RPM]
    #Engine shifts to gear 2
    #Engine RPMs are now at bottom of the powerband   [500RPM]
    #Vehicle accelerates
    #Repeat
    
    #This kind of shifting works well for low gears, when you have plenty of torque to accelerate.
    #However, trying this at high speeds will result in poor acceleration at best, and a loss of speed at worst.
    #This is where the margin variable comes in. With a margin of 50, your vehicle will do this:
    
    #Engine hits top of powerband in gear 1   [1500RPM]
    #Engine shifts to gear 2
    #Engine RPMs are now half way(50%) through the powerband [1000RPM]
    #Vehicle accelerates
    #Repeat
    
    #Because small margins are good for low gears, and large margins are good for high gears,
    #This calculator has a variable margins mode. It will use progessively larger margins
    #For higher gears. You should use variable margins!
    
    
    
    
    #Once you've filled in the variables below,
    #Place the chip on your engine, and check the chat for the results.
    #The e2 will notify you if your gears exceed 1.0. If they do, you should
    #Increase margins, or use a gearbox with less gears.
    
    
    
    
    
    
    ##Change these variables
    
    
    First = 0.1           #Value of the first gear ratio - ###set this yourself!###
    Count = 7             #Number of gears you want to calculate If you have a 7 forward, 1 reverse gearbox, this will be 7
    
    Variable_Margins = 1  #Set to one for tighter higher gears. Shift points will scale linearly between first and final gear if set to 1
    
    Margin = 25            #Percentage How far in to the powerband your first shift point will be.(Or, all shift points if variable margins is disabled)
    Margin_high = 75       ### !No effect unless variable margins selected! ###
                          #Percentage How far in to the powerband your final shift point will be.
    
    
    
    
    ##Code.
    
    
    print("Ratios for " + Count:toString() + " Speed Gearbox")
    
    
    Engine = entity():isWeldedTo()
    PBL = Engine:acfPowerbandMin() 
    PBH = Engine:acfPowerbandMax()
    PBS = PBH - PBL
    Grad = ((Margin_high - Margin) / (Count-1))    
    Ratios[1,number] = First
    BSP[1,number] = PBL + (PBS*(Margin/100))
    
    
    
    
    
    for(I=1,Count,1){
        BSP[I,number] = BSP[1,number] + PBS * (((((I-1)*Grad)*Variable_Margins))/100)
    }
    
        
       
    print("Ratios for " + Count:toString() + " Speed Gearbox")
    for(I=1,Count,1){
        
        print(Ratios[I,number])
        Ratios[I+1,number] = (floor(((PBH * Ratios[I,number]) / BSP[I+1,number]) * 100))/100
        
    }
    
    
    
    if(Ratios[Count,number] > 1){
        print("Increase margins, or use a gearbox with less gears!")
    }
    Reply With Quote Edit / Delete Windows 7 Chrome Australia Show Events Winner Winner x 1 (list)

  35. Post #4395
    Supertoaster7's Avatar
    October 2015
    111 Posts
    This is useful, thanks.
    Reply With Quote Edit / Delete Windows 10 Chrome Denmark Show Events Friendly Friendly x 1 (list)

  36. Post #4396
    Svennex's Avatar
    September 2016
    93 Posts


    Has a top speed of nope and a carry-on weight of nope. Powered by a 1.1l i3 because it was the closest I could find in terms of power to match the real Model T engine.
    Not sure what to do with the grille or backside. But that's why this is a "Post your current WIP!" thread, not a "Post your finished build!" thread, right?

    edited
    Since everyone's posting tanks and tank accessories lately should I put a 75mm in the passenger side sticking out the windshield?

    edited

    Ford Model T
    T for Tank.
    Reply With Quote Edit / Delete Windows 10 Waterfox Show Events Winner Winner x 2Funny Funny x 1Agree Agree x 1 (list)

  37. Post #4397
    Gold Member
    TestECull's Avatar
    July 2007
    9,776 Posts
    Handy little tool for calculating ACF gearbox ratios.

    Select your first gear ratio, how many gears, and the shift point margins, then place the e2 on your engine and check the chat.

    Code:
    @name Engine ratio calculator
    @inputs 
    @outputs Ratios:array PBL PBH
    @persist PBL PBH Count First Margin Engine:entity Grad
    @trigger none
    
    ##Made by iwancoppa
    ##Please share this with your friends
    
    
    ##Change these variables
    
    
    First = 0.05          #Value of the first gear ratio - ###set this yourself!###
    Count = 7             #Number of gears you want to calculate
    
    Variable_Margins = 1  #Set to one for tighter higher gears. Margin will scale linearly between first and final gear if set to 1
    
    Margin = 10           #Percentage difference between the shift point and powerband lower limit
    Margin_high = 50      ### !No effect unless variable margins selected! ###
                          #Percentage difference between shift point and powerband lower limit in top gear
    
    ##Code.
    
    
    
    Engine = entity():isWeldedTo()
    PBL = Engine:acfPowerbandMin() 
    PBH = Engine:acfPowerbandMax()
    PBL += (PBL*(Margin/100))
    
    
    if(Variable_Margins){ 
        Grad = ((Margin_high - Margin) / (Count-1))
    }   
        
    Ratios[1,number] = First 
        
        
    print("Ratios for " + Count:toString() + " Speed Gearbox")
    for(I=1,Count,1){
        
        print(Ratios[I,number])
        Ratios[I+1,number] = (floor(((PBH * Ratios[I,number]) / PBL) * 100))/100
        PBL += (PBL*(Grad/100))
        
    }
    if(Ratios[Count,number] > 1){
        print("Increase margins, or use a gearbox with less gears!")
    }

    Nifty chip but when I threw it on my rally truck it gave me ratios greater than 1 for fourth and fifth gear
    Reply With Quote Edit / Delete Windows 7 Firefox Show Events

  38. Post #4398
    chuckjoens11's Avatar
    November 2014
    18 Posts
    I made some new rims, any opinions?

    Reply With Quote Edit / Delete Windows 8.1 Firefox United States Show Events Winner Winner x 1 (list)

  39. Post #4399
    daniel199578's Avatar
    February 2012
    142 Posts
    thing

    Reply With Quote Edit / Delete Windows 10 Firefox Israel Show Events Friendly Friendly x 1Winner Winner x 1Zing Zing x 1 (list)

  40. Post #4400

    October 2011
    445 Posts
    Nifty chip but when I threw it on my rally truck it gave me ratios greater than 1 for fourth and fifth gear
    Increase the Margin_high value, it'll put higher gears closer together





    Refurbishing one of Red's old trucks, and widening the wheelbase by 12 inches. It has 7 forward gears for that 'takeoff while idling in first' style of driving.
    Reply With Quote Edit / Delete Windows 7 Chrome Australia Show Events